* Copyright (C) 2004-2012 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2012 Juanjo Menent * Copyright (C) 2013 Florian Henry * * 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 3 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, see . */ /** * \file htdocs/compta/deplacement/card.php * \brief Page to show a trip card */ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/trip.lib.php'; require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; if (! empty($conf->projet->enabled)) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } $langs->load("trips"); // Security check $id = GETPOST('id','int'); if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'deplacement', $id,''); $action = GETPOST('action','alpha'); $confirm = GETPOST('confirm','alpha'); $object = new Deplacement($db); // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array $hookmanager->initHooks(array('tripsandexpensescard','globalcard')); $permissionnote=$user->rights->deplacement->creer; // Used by the include of actions_setnotes.inc.php /* * Actions */ include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not includ_once if ($action == 'validate' && $user->rights->deplacement->creer) { $object->fetch($id); if ($object->statut == 0) { $result = $object->setStatut(1); if ($result > 0) { header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id); exit; } else { setEventMessage($object->error, 'errors'); } } } else if ($action == 'classifyrefunded' && $user->rights->deplacement->creer) { $object->fetch($id); if ($object->statut == 1) { $result = $object->setStatut(2); if ($result > 0) { header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id); exit; } else { setEventMessage($object->error, 'errors'); } } } else if ($action == 'confirm_delete' && $confirm == "yes" && $user->rights->deplacement->supprimer) { $result=$object->delete($id); if ($result >= 0) { header("Location: index.php"); exit; } else { setEventMessage($object->error, 'errors'); } } else if ($action == 'add' && $user->rights->deplacement->creer) { if (! GETPOST('cancel','alpha')) { $error=0; $object->date = dol_mktime(12, 0, 0, GETPOST('remonth','int'), GETPOST('reday','int'), GETPOST('reyear','int')); $object->km = GETPOST('km','int'); $object->type = GETPOST('type','alpha'); $object->socid = GETPOST('socid','int'); $object->fk_user = GETPOST('fk_user','int'); $object->note_private = GETPOST('note_private','alpha'); $object->note_public = GETPOST('note_public','alpha'); $object->statut = 0; if (! $object->date) { setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Date")), 'errors'); $error++; } if ($object->type == '-1') { setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Type")), 'errors'); $error++; } if (! ($object->fk_user > 0)) { setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Person")), 'errors'); $error++; } if (! $error) { $id = $object->create($user); if ($id > 0) { header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id); exit; } else { setEventMessage($object->error, 'errors'); $action='create'; } } else { $action='create'; } } else { header("Location: index.php"); exit; } } // Update record else if ($action == 'update' && $user->rights->deplacement->creer) { if (! GETPOST('cancel','alpha')) { $result = $object->fetch($id); $object->date = dol_mktime(12, 0, 0, GETPOST('remonth','int'), GETPOST('reday','int'), GETPOST('reyear','int')); $object->km = GETPOST('km','int'); $object->type = GETPOST('type','alpha'); $object->socid = GETPOST('socid','int'); $object->fk_user = GETPOST('fk_user','int'); $object->note_private = GETPOST('note_private','alpha'); $object->note_public = GETPOST('note_public','alpha'); $result = $object->update($user); if ($result > 0) { header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id); exit; } else { setEventMessage($object->error, 'errors'); } } else { header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id); exit; } } // Set into a project else if ($action == 'classin' && $user->rights->deplacement->creer) { $object->fetch($id); $result=$object->setProject(GETPOST('projectid','int')); if ($result < 0) dol_print_error($db, $object->error); } // Set fields else if ($action == 'setdated' && $user->rights->deplacement->creer) { $dated=dol_mktime(GETPOST('datedhour','int'), GETPOST('datedmin','int'), GETPOST('datedsec','int'), GETPOST('datedmonth','int'), GETPOST('datedday','int'), GETPOST('datedyear','int')); $object->fetch($id); $result=$object->setValueFrom('dated',$dated,'','','date'); if ($result < 0) dol_print_error($db, $object->error); } else if ($action == 'setkm' && $user->rights->deplacement->creer) { $object->fetch($id); $result=$object->setValueFrom('km',GETPOST('km','int')); if ($result < 0) dol_print_error($db, $object->error); } /* * View */ llxHeader(); $form = new Form($db); /* * Action create */ if ($action == 'create') { //WYSIWYG Editor require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; print_fiche_titre($langs->trans("NewTrip")); $datec = dol_mktime(12, 0, 0, GETPOST('remonth','int'), GETPOST('reday','int'), GETPOST('reyear','int')); print '
' . "\n"; print ''; print ''; print ''; print ""; print ''; print ""; print ''; print ""; print ''; // Km print ''; // Company print ""; print ''; // Public note print ''; print ''; print ''; // Private note if (empty($user->societe_id)) { print ''; print ''; print ''; } // Other attributes $parameters=array('colspan' => ' colspan="2"'); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook print '
'.$langs->trans("Type").''; $form->select_type_fees(GETPOST('type','int'),'type',1); print '
'.$langs->trans("Person").''; print $form->select_dolusers(GETPOST('fk_user','int'),'fk_user',1); print '
'.$langs->trans("Date").''; print $form->select_date($datec?$datec:-1,'','','','','add',1,1,1); print '
'.$langs->trans("FeesKilometersOrAmout").'
'.$langs->trans("CompanyVisited").''; print $form->select_company(GETPOST('socid','int'),'socid','',1); print '
'.$langs->trans('NotePublic').''; $doleditor = new DolEditor('note_public', GETPOST('note_public', 'alpha'), '', 200, 'dolibarr_notes', 'In', false, true, true, ROWS_8, 100); print $doleditor->Create(1); print '
'.$langs->trans('NotePrivate').''; $doleditor = new DolEditor('note_private', GETPOST('note_private', 'alpha'), '', 200, 'dolibarr_notes', 'In', false, true, true, ROWS_8, 100); print $doleditor->Create(1); print '
'; print '
'; print ''; print '     '; print ''; print '
'; print '
'; } else if ($id) { $result = $object->fetch($id); if ($result > 0) { $head = trip_prepare_head($object); dol_fiche_head($head, 'card', $langs->trans("TripCard"), 0, 'trip'); if ($action == 'edit' && $user->rights->deplacement->creer) { //WYSIWYG Editor require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; $soc = new Societe($db); if ($object->socid) { $soc->fetch($object->socid); } print '
' . "\n"; print ''; print ''; print ''; print ''; // Ref print ""; print ''; // Type print ""; print ''; // Who print ""; print ''; // Date print ''; // Km print ''; // Where print ""; print ''; // Public note print ''; print '"; // Private note if (empty($user->societe_id)) { print ''; print '"; } // Other attributes $parameters=array('colspan' => ' colspan="3"'); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook print '
'.$langs->trans("Ref").''; print $object->ref; print '
'.$langs->trans("Type").''; $form->select_type_fees(GETPOST('type','int')?GETPOST('type','int'):$object->type,'type',0); print '
'.$langs->trans("Person").''; print $form->select_dolusers(GETPOST('fk_user','int')?GETPOST('fk_user','int'):$object->fk_user,'fk_user',0); print '
'.$langs->trans("Date").''; print $form->select_date($object->date,'',0,0,0,'update',1,0,1); print '
'.$langs->trans("FeesKilometersOrAmout").''; print ''; print '
'.$langs->trans("CompanyVisited").''; print $form->select_company($soc->id,'socid','',1); print '
'.$langs->trans("NotePublic").''; $doleditor = new DolEditor('note_public', $object->note_public, '', 200, 'dolibarr_notes', 'In', false, true, true, ROWS_8, '100'); print $doleditor->Create(1); print "
'.$langs->trans("NotePrivate").''; $doleditor = new DolEditor('note_private', $object->note_private, '', 200, 'dolibarr_notes', 'In', false, true, true, ROWS_8, '100'); print $doleditor->Create(1); print "
'; print '
'; print ''; print '     '; print ''; print '
'; print '
'; print ''; } else { /* * Confirmation de la suppression du deplacement */ if ($action == 'delete') { print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("DeleteTrip"),$langs->trans("ConfirmDeleteTrip"),"confirm_delete"); } $soc = new Societe($db); if ($object->socid) $soc->fetch($object->socid); print ''; $linkback = ''.$langs->trans("BackToList").''; // Ref print ''; $form->load_cache_types_fees(); // Type print ''; // Who print ''; // Date print ''; // Km/Price print '"; // Where print ''; print ''; // Project if (! empty($conf->projet->enabled)) { $langs->load('projects'); print ''; print ''; print ''; } // Statut print ''; // Other attributes $parameters=array('colspan' => ' colspan="3"', 'showblocbydefault' => 1); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook print "
'.$langs->trans("Ref").''; print $form->showrefnav($object, 'id', $linkback, 1, 'rowid', 'ref', ''); print '
'; print $form->editfieldkey("Type",'type',$langs->trans($object->type),$object,$conf->global->MAIN_EDIT_ALSO_INLINE && $user->rights->deplacement->creer,'select:types_fees'); print ''; print $form->editfieldval("Type",'type',$form->cache_types_fees[$object->type],$object,$conf->global->MAIN_EDIT_ALSO_INLINE && $user->rights->deplacement->creer,'select:types_fees'); print '
'.$langs->trans("Person").''; $userfee=new User($db); $userfee->fetch($object->fk_user); print $userfee->getNomUrl(1); print '
'; print $form->editfieldkey("Date",'dated',$object->date,$object,$conf->global->MAIN_EDIT_ALSO_INLINE && $user->rights->deplacement->creer,'datepicker'); print ''; print $form->editfieldval("Date",'dated',$object->date,$object,$conf->global->MAIN_EDIT_ALSO_INLINE && $user->rights->deplacement->creer,'datepicker'); print '
'; print $form->editfieldkey("FeesKilometersOrAmout",'km',$object->km,$object,$conf->global->MAIN_EDIT_ALSO_INLINE && $user->rights->deplacement->creer,'numeric:6'); print ''; print $form->editfieldval("FeesKilometersOrAmout",'km',$object->km,$object,$conf->global->MAIN_EDIT_ALSO_INLINE && $user->rights->deplacement->creer,'numeric:6'); print "
'.$langs->trans("CompanyVisited").''; if ($soc->id) print $soc->getNomUrl(1); print '
'; print ''; if ($action != 'classify' && $user->rights->deplacement->creer) { print ''; } print '
'; print $langs->trans('Project'); print 'id.'">'; print img_edit($langs->trans('SetProject'),1); print '
'; print '
'; if ($action == 'classify') { $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project,'projectid', 0, 0, 1); } else { $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project,'none', 0, 0); } print '
'.$langs->trans("Status").''.$object->getLibStatut(4).'

"; // Notes $blocname = 'notes'; $title = $langs->trans('Notes'); include DOL_DOCUMENT_ROOT.'/core/tpl/bloc_showhide.tpl.php'; print ''; /* * Barre d'actions */ print '
'; if ($object->statut < 2) // if not refunded { if ($user->rights->deplacement->creer) { print ''.$langs->trans('Modify').''; } else { print ''.$langs->trans('Modify').''; } } if ($object->statut == 0) // if draft { if ($user->rights->deplacement->creer) { print ''.$langs->trans('Validate').''; } else { print ''.$langs->trans('Validate').''; } } if ($object->statut == 1) // if validated { if ($user->rights->deplacement->creer) { print ''.$langs->trans('ClassifyRefunded').''; } else { print ''.$langs->trans('ClassifyRefunded').''; } } if ($user->rights->deplacement->supprimer) { print ''.$langs->trans('Delete').''; } else { print ''.$langs->trans('Delete').''; } print '
'; } } else { dol_print_error($db); } } llxFooter(); $db->close();