* Copyright (C) 2004-2005 Laurent Destailleur * Copyright (C) 2005 Simon TOSSER * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * $Id$ * $Source$ */ /** \file htdocs/comm/action/fiche.php \ingroup commercial \brief Page de la fiche action commercial \version $Revision$ */ require_once("./pre.inc.php"); require_once(DOL_DOCUMENT_ROOT."/contact.class.php"); require_once(DOL_DOCUMENT_ROOT."/cactioncomm.class.php"); require_once(DOL_DOCUMENT_ROOT."/actioncomm.class.php"); $langs->load("companies"); $langs->load("commercial"); $langs->load("other"); $langs->load("bills"); // Sécurité accés client if ($user->societe_id > 0) { $action = ''; $socidp = $user->societe_id; } if (isset($_GET["error"])) $error=$_GET["error"]; /* * Action création de l'action * */ if ($_POST["action"] == 'add_action') { if ($_POST["contactid"]) { $contact = new Contact($db); $contact->fetch($_POST["contactid"]); } if ($_POST["socid"]) { $societe = new Societe($db); $societe->fetch($_POST["socid"]); } if ($_POST["actionid"]) { $db->begin(); $cactioncomm = new CActionComm($db); $cactioncomm->fetch($_POST["actionid"]); // Initialisation objet actioncomm $actioncomm = new ActionComm($db); $actioncomm->type_id = $_POST["actionid"]; $actioncomm->type_code = $cactioncomm->code; $actioncomm->priority = isset($_POST["priority"])?$_POST["priority"]:0; $actioncomm->label = $_POST["label"]; if (! $_POST["label"]) { if ($_POST["actionid"] == 5 && $contact->fullname) { $actioncomm->label = $langs->trans("TaskRDVWith",$contact->fullname); } else { if ($langs->trans("Action".$actioncomm->type_code) != "Action".$actioncomm->type_code) { $actioncomm->label = $langs->trans("Action".$actioncomm->type_code)."\n"; } } } $actioncomm->date = mktime($_POST["heurehour"], $_POST["heuremin"], 0, $_POST["acmonth"], $_POST["acday"], $_POST["acyear"]); $actioncomm->duree=(($_POST["dureehour"] * 60) + $_POST["dureemin"]) * 60; $actioncomm->percent = isset($_POST["percentage"])?$_POST["percentage"]:0; $actioncomm->user = $user; $actioncomm->note = $_POST["note"]; if (isset($_POST["contactid"])) $actioncomm->contact = $contact; if (isset($_POST["socid"])) $actioncomm->societe = $societe; if ($_POST["todo_webcal"] == 'on') $actioncomm->use_webcal=1; // On crée l'action $idaction=$actioncomm->add($user); if ($idaction > 0) { if (! $actioncomm->error) { $db->commit(); Header("Location: ".$_POST["from"]); exit; } else { // Si erreur $db->rollback(); $_GET["id"]=$idaction; $error=$actioncomm->error; } } else { $db->rollback(); dolibarr_print_error($db); } } else { dolibarr_print_error('',"Le type d'action n'a pas été choisi"); } } /* * Action suppression de l'action * */ if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == 'yes') { $actioncomm = new ActionComm($db); $actioncomm->delete($_GET["id"]); Header("Location: index.php"); exit; } /* * Action mise à jour de l'action * */ if ($_POST["action"] == 'update') { if (! $_POST["cancel"]) { $action = new Actioncomm($db); $action->fetch($_POST["id"]); $action->percent = stripslashes($_POST["percent"]); $action->contact->id = stripslashes($_POST["contactid"]); $action->note = stripslashes($_POST["note"]); $action->update(); } Header("Location: ".$_POST["from"]); exit; } llxHeader(); $html = new Form($db); /* ************************************************************************** */ /* */ /* Affichage fiche en mode création */ /* */ /* ************************************************************************** */ if ($_GET["action"] == 'create') { $caction = new CActioncomm($db); if ($_GET["contactid"]) { $contact = new Contact($db); $contact->fetch($_GET["contactid"]); } print '
'; print ''; print ''; /* * Si action de type Rendez-vous * */ if ($_GET["actionid"] == 5) { print_titre ($langs->trans("AddActionRendezVous")); print "
"; print ''."\n"; print ''; // Type d'action print ''; // Societe, contact print ''; // Si la societe est imposée, on propose ces contacts if ($_GET["socid"]) { print ''; } print ''; print ''; print ''; add_row_for_webcal_link(); print ''; print ''; print '
'.$langs->trans("ActionOnCompany").''; if ($_GET["socid"]) { $societe = new Societe($db); $societe->fetch($_GET["socid"]); print $societe->nom_url; print ''; } else { print $html->select_societes('','socid',1,1); } print '
'.$langs->trans("ActionOnContact").''; print $html->select_contacts($_GET["socid"],'','contactid',1,1); print '
'.$langs->trans("Date").''; $html->select_date('','ac'); print '
'.$langs->trans("Hour").''; print_heure_select("heure",8,20); print '
'.$langs->trans("Duration").''; print_duree_select("duree"); print '
'.$langs->trans("Note").''; print '
'; } /* * Si action de type autre que rendez-vous * */ else { /* * Click to dial * */ if ($conf->clicktodial->enabled) { $user->fetch_clicktodial(); if ($_GET["call"] && $user->clicktodial_enabled == 1) { print '\n"; } } /* * * */ print_titre ($langs->trans("AddAnAction")); print "
"; print ''; // Type d'action actifs print ''; print ''; // Societe, contact print ''; // Si la societe est imposée, on propose ces contacts if ($_GET["socid"]) { print ''; } // Avancement if ($_GET["afaire"] == 1) { print ''; print ''; print ''; } elseif ($_GET["afaire"] == 2) { print ''; print ''; } else { print ''; } // Date print ''; } else if ($_GET["afaire"] == 2) { $html->select_date('','ac'); print ''; } else { $html->select_date('','ac'); print ''; } print ''; add_row_for_webcal_link(); // Note print ''; print ''; print '
'.$langs->trans("Action").''; if ($_GET["actionid"]) { print ''."\n"; print $caction->get_nom($_GET["actionid"]); } else { $html->select_array("actionid", $caction->liste_array(1), 0); } print '
'.$langs->trans("Title").'
'.$langs->trans("ActionOnCompany").''; if ($_GET["socid"]) { $societe = new Societe($db); $societe->fetch($_GET["socid"]); print img_object($langs->trans("ShowCompany"),'company').' '.$societe->nom_url; print ''; } else { print $html->select_societes('','socid',1,1); } print '
'.$langs->trans("ActionOnContact").''; print $html->select_contacts($_GET["socid"],'','contactid',1,1); print '
'.$langs->trans("Status").' / '.$langs->trans("Percentage").''.$langs->trans("StatusActionToDo").' / 0%
'.$langs->trans("Status").' / '.$langs->trans("Percentage").''.$langs->trans("StatusActionDone").' / 100%
'.$langs->trans("Status").' / '.$langs->trans("Percentage").'
'.$langs->trans("Date").''; if ($_GET["afaire"] == 1) { $html->select_date('','ac'); print '
'.$langs->trans("Hour").''; print_heure_select("heure",8,20); print '
'.$langs->trans("Hour").''; print_heure_select("heure",8,20); print '
'.$langs->trans("Hour").''; print_heure_select("heure",8,20); print '
'.$langs->trans("Note").''; print '
'; } print "
"; } /* * Affichage action en mode edition ou visu * */ if ($_GET["id"]) { if ($error) { print '
'.$error.'

'; } $act = new ActionComm($db); $act->fetch($_GET["id"]); $res=$act->societe->fetch($act->societe->id); $res=$act->author->fetch(); // Le paramètre est le login, hors seul l'id est chargé. $res=$act->contact->fetch($act->contact->id); /* * Affichage onglets */ $h = 0; $head[$h][0] = DOL_URL_ROOT.'/comm/action/fiche.php?id='.$_GET["id"]; $head[$h][1] = $langs->trans("CardAction"); $hselected=$h; $h++; $head[$h][0] = DOL_URL_ROOT.'/comm/action/document.php?id='.$_GET["id"]; $head[$h][1] = $langs->trans('Documents'); //$hselected=$h; $h++; dolibarr_fiche_head($head, $hselected, $langs->trans("Ref")." ".$act->id); // Confirmation suppression action if ($_GET["action"] == 'delete') { $html->form_confirm("fiche.php?id=".$_GET["id"],$langs->trans("DeleteAction"),$langs->trans("ConfirmDeleteAction"),"confirm_delete"); print '
'; } if ($_GET["action"] == 'edit') { // Fiche action en mode edition print '
'; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; // Auteur print ''; print ''; // Date print ''; print ''; if ($act->objet_url) { print ''; print ''; } // Note print ''; print ''; print '
'.$langs->trans("Ref").''.$act->id.'
'.$langs->trans("Type").''.$act->type.'
'.$langs->trans("Title").''.$act->label.'
'.$langs->trans("Company").''.img_object($langs->trans("ShowCompany"),'company').' '.$act->societe->nom.''.$langs->trans("Contact").''; $html->select_array("contactid", $act->societe->contact_array(), $act->contact->id, 1); print '
'.$langs->trans("Author").''.img_object($langs->trans("ShowUser"),'user').' '.$act->author->fullname.'
'.$langs->trans("Date").''.dolibarr_print_date($act->date,'%d %B %Y %H:%M').'
'.$langs->trans("PercentDone").'%
'.$langs->trans("LinkedObject").''.$act->objet_url.'
'.$langs->trans("Note").''; print '
'; print '     '; print '
'; } else { // Affichage fiche action en mode visu print ''; print ''; print ''; print ''; print ''; print ''; print ''; // Auteur print ''; print ''; // Date print ''; print ''; if ($act->objet_url) { print ''; print ''; } // Note print ''; print '
'.$langs->trans("Ref").''.$act->id.'
'.$langs->trans("Type").''.$act->type.'
'.$langs->trans("Title").''.$act->label.'
'.$langs->trans("Company").''.img_object($langs->trans("ShowCompany"),'company').' '.$act->societe->nom_url.''.$langs->trans("Contact").''; if ($act->contact->id) print ''.img_object($langs->trans("ShowContact"),'contact').' '.$act->contact->fullname.''; else print $langs->trans("None"); print '
'.$langs->trans("Author").''.img_object($langs->trans("ShowUser"),'user').' '.$act->author->fullname.'
'.$langs->trans("Date").''.dolibarr_print_date($act->date,'%d %B %Y %H:%M').'
'.$langs->trans("PercentDone").''.$act->percent.' %
'.$langs->trans("LinkedObject").''.$act->objet_url.'
'.$langs->trans("Note").''; print nl2br($act->note).'
'; } print "\n"; /** * Barre d'actions * */ print '
'; if ($_GET["action"] != 'edit') { print ''.$langs->trans("Edit").''; print ''.$langs->trans("Delete").''; } print '
'; } $db->close(); llxFooter('$Date$ - $Revision$'); /** \brief Ajoute une ligne de tableau a 2 colonnes pour avoir l'option webcalendar \return int Retourne le nombre de lignes ajoutées */ function add_row_for_webcal_link() { global $conf,$langs,$user; $nbtr=0; // Lien avec calendrier si module activé if ($conf->webcal->enabled) { if ($conf->global->PHPWEBCALENDAR_SYNCRO != 'never') { $langs->load("other"); if (! $user->webcal_login) { print ''.$langs->trans("AddCalendarEntry").''; print ''; print ' '.$langs->transnoentities("ErrorWebcalLoginNotDefined","id."\">".$user->login.""); print ''; print ''; $nbtr++; } else { if ($conf->global->PHPWEBCALENDAR_SYNCRO == 'always') { print ''; } else { print ''.$langs->trans("AddCalendarEntry").''; print 'global->PHPWEBCALENDAR_SYNCRO=='always' || $conf->global->PHPWEBCALENDAR_SYNCRO=='yesbydefault')?' checked':'').'>'; print ''; $nbtr++; } } } } return $nbtr; } ?>