New: Support location in events

This commit is contained in:
Laurent Destailleur 2008-09-09 17:57:12 +00:00
parent 4c6686c799
commit 4d92aa5027
7 changed files with 81 additions and 32 deletions

View File

@ -96,8 +96,9 @@ class ActionComm
// Clean parameters
$this->label=trim($this->label);
$this->note=trim($this->note);
if (! $this->percentage) $this->percentage = 0;
$this->location=trim($this->location);
$this->note=trim($this->note);
if (! $this->percentage) $this->percentage = 0;
if (! $this->priority) $this->priority = 0;
if (! $this->punctual) $this->punctual = 0;
if ($this->percentage > 100) $this->percentage = 100;
@ -147,7 +148,7 @@ class ActionComm
$sql.= "fk_user_author,";
$sql.= "fk_user_action,";
$sql.= "fk_user_done,";
$sql.= "label,percent,priority,punctual,";
$sql.= "label,percent,priority,location,punctual,";
$sql.= "fk_facture,propalrowid,fk_commande)";
$sql.= " VALUES (";
$sql.= "'".$this->db->idate($now)."',";
@ -162,7 +163,7 @@ class ActionComm
$sql.= ($user->id > 0 ? "'".$user->id."'":"null").",";
$sql.= ($this->usertodo->id > 0?"'".$this->usertodo->id."'":"null").",";
$sql.= ($this->userdone->id > 0?"'".$this->userdone->id."'":"null").",";
$sql.= "'".addslashes($this->label)."','".$this->percentage."','".$this->priority."','".$this->punctual."',";
$sql.= "'".addslashes($this->label)."','".$this->percentage."','".$this->priority."','".addslashes($this->location)."','".$this->punctual."',";
$sql.= ($this->facid?$this->facid:"null").",";
$sql.= ($this->propalrowid?$this->propalrowid:"null").",";
$sql.= ($this->orderrowid?$this->orderrowid:"null");
@ -215,7 +216,7 @@ class ActionComm
$sql.= " a.fk_user_author, a.fk_user_mod,";
$sql.= " a.fk_user_action, a.fk_user_done,";
$sql.= " a.fk_contact, a.percent as percentage, a.fk_facture, a.fk_commande, a.propalrowid,";
$sql.= " a.priority,";
$sql.= " a.priority, a.location,";
$sql.= " c.id as type_id, c.code as type_code, c.libelle";
$sql.= " FROM ".MAIN_DB_PREFIX."actioncomm as a, ".MAIN_DB_PREFIX."c_actioncomm as c";
$sql.= " WHERE a.id=".$id." AND a.fk_action=c.id";
@ -252,7 +253,8 @@ class ActionComm
$this->usertodo->id = $obj->fk_user_action;
$this->userdone->id = $obj->fk_user_done;
$this->priority = $obj->priority;
$this->location = $obj->location;
$this->societe->id = $obj->fk_soc;
$this->contact->id = $obj->fk_contact;
@ -297,6 +299,7 @@ class ActionComm
$sql = "DELETE FROM ".MAIN_DB_PREFIX."actioncomm";
$sql.= " WHERE id=".$this->id;
dolibarr_syslog("ActionComm::delete sql=".$sql, LOG_DEBUG);
if ($this->db->query($sql))
{
return 1;
@ -346,6 +349,7 @@ class ActionComm
$sql.= ", fk_soc =". ($this->societe->id > 0 ? "'".$this->societe->id."'":"null");
$sql.= ", fk_contact =". ($this->contact->id > 0 ? "'".$this->contact->id."'":"null");
$sql.= ", priority = '".$this->priority."'";
$sql.= ", location = ".($this->location ? "'".addslashes($this->location)."'":"null");
$sql.= ", fk_user_mod = '".$user->id."'";
$sql.= ", fk_user_action=".($this->usertodo->id > 0 ? "'".$this->usertodo->id."'":"null");
$sql.= ", fk_user_done=".($this->userdone->id > 0 ? "'".$this->userdone->id."'":"null");
@ -595,7 +599,7 @@ class ActionComm
$sql.= " a.fk_user_author, a.fk_user_mod,";
$sql.= " a.fk_user_action, a.fk_user_done,";
$sql.= " a.fk_contact, a.fk_facture, a.percent as percentage, a.fk_commande,";
$sql.= " a.priority,";
$sql.= " a.priority,a.location,";
$sql.= " c.id as type_id, c.code as type_code, c.libelle";
$sql.= " FROM ".MAIN_DB_PREFIX."actioncomm as a, ".MAIN_DB_PREFIX."c_actioncomm as c";
$sql.= " WHERE a.fk_action=c.id";
@ -657,20 +661,22 @@ class ActionComm
$datestart=$obj->datep;
$dateend=$obj->datep2;
$duration=$obj->durationp;
$event['summary']=$obj->label;
$event['desc']=$obj->note;
$event['startdate']=$datestart;
$event['duration']=$duration; // Not required with type 'journal'
$event['enddate']=$dateend; // Not required with type 'journal'
$event['summary']=$obj->label;
$event['desc']=$obj->note;
$event['category']=$obj->libelle;
$event['author']=$obj->fk_user_author;
$event['priority']=$obj->priority;
$event['location']=$obj->location;
$event['transparency']='TRANSPARENT'; // TRANSPARENT or OPAQUE
$event['category']=$obj->libelle; // libelle type action
$url=$dolibarr_main_url_root;
if (! eregi('\/$',$url)) $url.='/';
$url.='comm/action/fiche.php?id='.$obj->id;
$event['url']=$url;
if ($qualified)
if ($qualified && $datestart)
{
$eventarray[$datestart]=$event;
}

View File

@ -97,13 +97,13 @@ if ($_POST["action"] == 'add_action')
$_POST["p2month"],
$_POST["p2day"],
$_POST["p2year"]);
$datea=dolibarr_mktime($_POST["adhour"],
$datea=dolibarr_mktime($_POST["adhour"], // deprecated
$_POST["admin"],
0,
$_POST["admonth"],
$_POST["adday"],
$_POST["adyear"]);
$datea2=dolibarr_mktime($_POST["a2hour"],
$datea2=dolibarr_mktime($_POST["a2hour"], // deprecated
$_POST["a2min"],
0,
$_POST["a2month"],
@ -126,6 +126,7 @@ if ($_POST["action"] == 'add_action')
$actioncomm->type_id = $cactioncomm->id;
$actioncomm->type_code = $cactioncomm->code;
$actioncomm->priority = isset($_POST["priority"])?$_POST["priority"]:0;
$actioncomm->location = isset($_POST["location"])?$_POST["location"]:'';
$actioncomm->label = trim($_POST["label"]);
if (! $_POST["label"])
{
@ -191,7 +192,13 @@ if ($_POST["action"] == 'add_action')
if ($_POST["add_webcal"] == 'on' && $conf->webcal->enabled) $actioncomm->use_webcal=1;
if ($_POST["add_phenix"] == 'on' && $conf->phenix->enabled) $actioncomm->use_phenix=1;
// Check parameters
if ($actioncomm->type_code == 'AC_RDV' && ($datep == '' || $datep2 == ''))
{
$error=1;
$_GET["action"] = 'create';
$mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentities("DateEnd")).'</div>';
}
if ($datea && $_POST["percentage"] == 0)
{
$error=1;
@ -325,7 +332,8 @@ if ($_POST["action"] == 'update')
$actioncomm->dateend = $datea2;
$actioncomm->percentage = $_POST["percentage"];
$actioncomm->priority = $_POST["priority"];
$actioncomm->societe->id = $_POST["socid"];
$actioncomm->location = isset($_POST["location"])?$_POST["location"]:'';
$actioncomm->societe->id = $_POST["socid"];
$actioncomm->contact->id = $_POST["contactid"];
$actioncomm->note = $_POST["note"];
@ -416,9 +424,9 @@ if ($_GET["action"] == 'create')
else print "<br>";
print '<table class="border" width="100%">';
// Type d'action actifs
print '<tr><td><b>'.$langs->trans("Type").'*</b></td><td>';
print '<tr><td width="30%"><b>'.$langs->trans("Type").'*</b></td><td>';
if ($_GET["actioncode"])
{
print '<input type="hidden" name="actioncode" value="'.$_GET["actioncode"].'">'."\n";
@ -431,10 +439,18 @@ if ($_GET["action"] == 'create')
}
print '</td></tr>';
// Title
print '<tr><td>'.$langs->trans("Title").'</td><td><input type="text" name="label" size="30" value="'.$actioncomm->label.'"></td></tr>';
// Location
print '<tr><td>'.$langs->trans("Location").'</td><td><input type="text" name="location" size="30" value="'.$actioncomm->location.'"></td></tr>';
print '</table>';
print '<br>';
print '<table class="border" width="100%">';
// Societe, contact
print '<tr><td nowrap>'.$langs->trans("ActionOnCompany").'</td><td>';
print '<tr><td width="30%" nowrap="nowrap">'.$langs->trans("ActionOnCompany").'</td><td>';
if ($_REQUEST["socid"] > 0)
{
$societe = new Societe($db);
@ -466,13 +482,17 @@ if ($_GET["action"] == 'create')
$html->select_users($_REQUEST["doneby"]?$_REQUEST["doneby"]:$actioncomm->userdone,'doneby',1);
print '</td></tr>';
print '</table>';
print '<br>';
print '<table class="border" width="100%">';
if (! empty($_GET["datep"]) && eregi('^([0-9][0-9][0-9][0-9])([0-9][0-9])([0-9][0-9])$',$_GET["datep"],$reg))
{
$actioncomm->datep=dolibarr_mktime(0,0,0,$reg[2],$reg[3],$reg[1]);
}
// Date start
print '<tr><td nowrap="nowrap">'.$langs->trans("DateActionStart").'</td><td>';
print '<tr><td width="30%" nowrap="nowrap">'.$langs->trans("DateActionStart").'</td><td>';
if ($_REQUEST["afaire"] == 1) $html->select_date($actioncomm->datep,'ap',1,1,0,"action");
else if ($_REQUEST["afaire"] == 2) $html->select_date($actioncomm->datep,'ap',1,1,1,"action");
else $html->select_date($actioncomm->datep,'ap',1,1,1,"action");
@ -618,9 +638,20 @@ if ($_GET["id"])
if (! empty($_REQUEST["backtopage"])) print '<input type="hidden" name="from" value="'.($_REQUEST["from"] ? $_REQUEST["from"] : $_SERVER["HTTP_REFERER"]).'">';
print '<table class="border" width="100%">';
// Ref
print '<tr><td width="30%">'.$langs->trans("Ref").'</td><td colspan="3">'.$act->id.'</td></tr>';
// Type
print '<tr><td>'.$langs->trans("Type").'</td><td colspan="3">'.$act->type.'</td></tr>';
// Title
print '<tr><td>'.$langs->trans("Title").'</td><td colspan="3"><input type="text" name="label" size="50" value="'.$act->label.'"></td></tr>';
// Location
print '<tr><td>'.$langs->trans("Location").'</td><td colspan="3"><input type="text" name="location" size="50" value="'.$act->location.'"></td></tr>';
// Company
print '<tr><td>'.$langs->trans("Company").'</td>';
print '<td>';
print $html->select_societes($act->societe->id,'socid',1,1);
@ -712,10 +743,13 @@ if ($_GET["id"])
// Type
print '<tr><td>'.$langs->trans("Type").'</td><td colspan="3">'.$act->type.'</td></tr>';
// Libelle
// Title
print '<tr><td>'.$langs->trans("Title").'</td><td colspan="3">'.$act->label.'</td></tr>';
// Societe - contact
// Location
print '<tr><td>'.$langs->trans("Location").'</td><td colspan="3">'.$act->location.'</td></tr>';
// Societe - contact
print '<tr><td>'.$langs->trans("Company").'</td><td>'.($act->societe->id?$act->societe->getNomUrl(1):$langs->trans("None")).'</td>';
print '<td>'.$langs->trans("Contact").'</td>';
print '<td>';

View File

@ -8,6 +8,7 @@ Calendars = Calendars
AffectedTo = Affected to
DoneBy = Done by
Events = Events
Location=Location
SearchAnAction = Search an action/task
MenuToDoActions = All uncomplete actions
MenuDoneActions = All terminated actions

View File

@ -8,6 +8,7 @@ Calendars=Calendriers
AffectedTo=Affecté à
DoneBy=Réalisé par
Events=Evênements
Location=Lieu
SearchAnAction=Rechercher une action/tache
MenuToDoActions=Les actions incomplètes
MenuDoneActions=Les actions terminées

View File

@ -67,7 +67,7 @@ function build_calfile($format='vcal',$title,$desc,$events_array,$outputfile,$fi
if ($eventqualified)
{
// See http://fr.wikipedia.org/wiki/ICalendar for format
//$uid = dolibarr_print_date($now,'dayhourxcard',true).'-'.$event['uid']."-export@".$_SERVER["SERVER_NAME"];
// See http://www.ietf.org/rfc/rfc2445.txt for RFC
$uid = $event['uid'];
$type = $event['type'];
$startdate = $event['startdate'];
@ -78,7 +78,7 @@ function build_calfile($format='vcal',$title,$desc,$events_array,$outputfile,$fi
$location = $event['location'];
$email = $event['email'];
$url = $event['url'];
$transparency = $event['transparency'];
$transparency = $event['transparency']; // OPAQUE or TRANSPARENT
$description=eregi_replace('<br[ \/]?>',"\n",$event['desc']);
$description=clean_html($description,0); // Remove html tags
@ -134,9 +134,7 @@ function build_calfile($format='vcal',$title,$desc,$events_array,$outputfile,$fi
/ "CANCELLED" ;Indicates journal is removed.
;Status values for "VJOURNAL".
*/
if (! empty($category)) fwrite($calfileh,"CATEGORIES:".$encoding.$category."\n");
if (! empty($location)) fwrite($calfileh,"LOCATION:".$encoding.$location."\n");
//fwrite($calfileh,"TRANSP:".$transparency."\n");
//fwrite($calfileh,"CLASS:PUBLIC\n"); // PUBLIC, PRIVATE, CONFIDENTIAL
// Date must be GMT dates
@ -146,6 +144,9 @@ function build_calfile($format='vcal',$title,$desc,$events_array,$outputfile,$fi
if (empty($enddate)) $enddate=$startdate+$duration;
$enddatef = dolibarr_print_date($enddate,'dayhourxcard',true);
fwrite($calfileh,"DTEND:".$enddatef."\n");
if (! empty($transparency)) fwrite($calfileh,"TRANSP:".$transparency."\n");
if (! empty($category)) fwrite($calfileh,"CATEGORIES:".$encoding.$category."\n");
fwrite($calfileh,"END:VEVENT\n");
}

View File

@ -1,8 +1,9 @@
--
-- $Id$
--
-- Attention à l ordre des requetes.
-- Ce fichier doit être chargé sur une version 2.4.0
-- Be carefull to requests order.
-- This file must be loaded by calling /install/index.php page
-- when current version is 2.4.0 or higher.
--
alter table llx_product add column price_min double(24,8) DEFAULT 0;
@ -16,3 +17,7 @@ alter table llx_societe add column gencod varchar(255);
delete from llx_user_param where page <> '';
alter table llx_expedition add tracking_number varchar(50) after fk_expedition_methode;
alter table llx_actioncomm add column location varchar(128) after percent;

View File

@ -25,9 +25,9 @@ create table llx_actioncomm
(
id integer AUTO_INCREMENT PRIMARY KEY,
datep datetime, -- date debut planifiee
datep2 datetime, -- date fin planifiee si action non ponctuelle
datep2 datetime, -- deprecated
datea datetime, -- date debut realisation
datea2 datetime, -- date fin realisation si action non ponctuelle
datea2 datetime, -- deprecated
fk_action integer, -- type de l'action
label varchar(50) NOT NULL, -- libelle de l'action
@ -47,8 +47,9 @@ create table llx_actioncomm
priority smallint,
punctual smallint NOT NULL default 1,
percent smallint NOT NULL default 0,
location varchar(128),
durationp real, -- duree planifiee
durationa real, -- duree reellement passee
durationa real, -- deprecated
note text,
propalrowid integer,