30require
'../../main.inc.php';
31require_once DOL_DOCUMENT_ROOT.
'/core/lib/agenda.lib.php';
32require_once DOL_DOCUMENT_ROOT.
'/contact/class/contact.class.php';
33require_once DOL_DOCUMENT_ROOT.
'/comm/action/class/cactioncomm.class.php';
34require_once DOL_DOCUMENT_ROOT.
'/comm/action/class/actioncomm.class.php';
35require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
36require_once DOL_DOCUMENT_ROOT.
'/core/lib/images.lib.php';
37require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
38if (isModEnabled(
'project')) {
39 require_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
43$langs->loadLangs(array(
'companies',
'commercial',
'other',
'bills'));
46$action =
GETPOST(
'action',
'aZ09');
47$confirm =
GETPOST(
'confirm',
'alpha');
50$socid =
GETPOST(
'socid',
'int');
52 $socid = $user->socid;
54if ($user->socid > 0) {
55 unset($_GET[
"action"]);
62 $ret = $object->fetch($id);
63 $object->fetch_thirdparty();
67$hookmanager->initHooks(array(
'actioncard',
'globalcard'));
70$limit =
GETPOST(
'limit',
'int') ?
GETPOST(
'limit',
'int') : $conf->liste_limit;
71$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
72$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
73$page = GETPOSTISSET(
'pageplusone') ? (
GETPOST(
'pageplusone') - 1) :
GETPOST(
"page",
'int');
74if (empty($page) || $page == -1) {
77$offset = $limit * $page;
88$modulepart =
'actions';
90$result =
restrictedArea($user,
'agenda', $id,
'actioncomm&societe',
'myactions|allactions',
'fk_soc',
'id');
91if ($user->socid && $socid) {
95$usercancreate = $user->hasRight(
'agenda',
'allactions',
'create') || (($object->authorid == $user->id || $object->userownerid == $user->id) && $user->hasRight(
'agenda',
'myactions',
'create'));
96$permissiontoadd = $usercancreate;
103include DOL_DOCUMENT_ROOT.
'/core/actions_linkedfiles.inc.php';
110$form =
new Form($db);
112$help_url =
'EN:Module_Agenda_En|FR:Module_Agenda|ES:M&omodulodulo_Agenda|DE:Modul_Terminplanung';
114llxHeader(
'', $langs->trans(
"Agenda"), $help_url);
117$delay_warning = $conf->global->MAIN_DELAY_ACTIONS_TODO * 24 * 60 * 60;
119if ($object->id > 0) {
120 $result1 = $object->fetch($id);
121 $result2 = $object->fetch_thirdparty();
122 $result3 = $object->fetch_contact();
123 $result4 = $object->fetch_userassigned();
124 $result5 = $object->fetch_optionals();
126 if ($result1 < 0 || $result2 < 0 || $result3 < 0 || $result4 < 0 || $result5 < 0) {
131 if ($object->authorid > 0) {
132 $tmpuser =
new User($db);
133 $res = $tmpuser->fetch($object->authorid);
134 $object->author = $tmpuser;
136 if ($object->usermodid > 0) {
137 $tmpuser =
new User($db);
138 $res = $tmpuser->fetch($object->usermodid);
139 $object->usermod = $tmpuser;
142 $author =
new User($db);
143 $author->fetch($object->author->id);
144 $object->author = $author;
152 $linkback =
'<a href="'.DOL_URL_ROOT.
'/comm/action/list.php?mode=show_list&restore_lastsearch_values=1">';
153 $linkback .=
img_picto($langs->trans(
"BackToList"),
'object_calendarlist',
'class="pictoactionview pictofixedwidth"');
154 $linkback .=
'<span class="hideonsmartphone">'.$langs->trans(
"BackToList").
'</span>';
156 $linkback .=
'</li>';
157 $linkback .=
'<li class="noborder litext">';
158 $linkback .=
'<a href="'.DOL_URL_ROOT.
'/comm/action/index.php?mode=show_month&year='.
dol_print_date($object->datep,
'%Y').
'&month='.
dol_print_date($object->datep,
'%m').
'&day='.
dol_print_date($object->datep,
'%d').
'">';
159 $linkback .=
img_picto($langs->trans(
"ViewCal"),
'object_calendar',
'class="pictoactionview pictofixedwidth"');
160 $linkback .=
'<span class="hideonsmartphone">'.$langs->trans(
"ViewCal").
'</span>';
162 $linkback .=
'</li>';
163 $linkback .=
'<li class="noborder litext">';
164 $linkback .=
'<a href="'.DOL_URL_ROOT.
'/comm/action/index.php?mode=show_week&year='.
dol_print_date($object->datep,
'%Y').
'&month='.
dol_print_date($object->datep,
'%m').
'&day='.
dol_print_date($object->datep,
'%d').
'">';
165 $linkback .=
img_picto($langs->trans(
"ViewWeek"),
'object_calendarweek',
'class="pictoactionview pictofixedwidth"');
166 $linkback .=
'<span class="hideonsmartphone">'.$langs->trans(
"ViewWeek").
'</span>';
168 $linkback .=
'</li>';
169 $linkback .=
'<li class="noborder litext">';
170 $linkback .=
'<a href="'.DOL_URL_ROOT.
'/comm/action/index.php?mode=show_day&year='.
dol_print_date($object->datep,
'%Y').
'&month='.
dol_print_date($object->datep,
'%m').
'&day='.
dol_print_date($object->datep,
'%d').
'">';
171 $linkback .=
img_picto($langs->trans(
"ViewDay"),
'object_calendarday',
'class="pictoactionview pictofixedwidth"');
172 $linkback .=
'<span class="hideonsmartphone">'.$langs->trans(
"ViewDay").
'</span>';
174 $linkback .=
'</li>';
175 $linkback .=
'<li class="noborder litext">';
176 $linkback .=
'<a href="'.DOL_URL_ROOT.
'/comm/action/peruser.php?mode=show_peruser&year='.
dol_print_date($object->datep,
'%Y').
'&month='.
dol_print_date($object->datep,
'%m').
'&day='.
dol_print_date($object->datep,
'%d').
'">';
177 $linkback .=
img_picto($langs->trans(
"ViewPerUser"),
'object_calendarperuser',
'class="pictoactionview pictofixedwidth"');
178 $linkback .=
'<span class="hideonsmartphone">'.$langs->trans(
"ViewPerUser").
'</span>';
182 $parameters = array();
183 $reshook = $hookmanager->executeHooks(
'addCalendarView', $parameters, $object, $action);
184 if (empty($reshook)) {
185 $linkback .= $hookmanager->resPrint;
186 } elseif ($reshook > 1) {
187 $linkback = $hookmanager->resPrint;
190 $morehtmlref =
'<div class="refidno">';
194 if (isModEnabled(
'project')) {
195 $langs->load(
"projects");
198 $morehtmlref .=
img_picto($langs->trans(
"Project"),
'project',
'class="pictofixedwidth"');
199 if ($action !=
'classify') {
200 $morehtmlref .=
'<a class="editfielda" href="'.$_SERVER[
'PHP_SELF'].
'?action=classify&token='.newToken().
'&id='.$object->id.
'">'.
img_edit($langs->transnoentitiesnoconv(
'SetProject')).
'</a> ';
202 $morehtmlref .= $form->form_project($_SERVER[
'PHP_SELF'].
'?id='.$object->id, $object->socid, $object->fk_project, ($action ==
'classify' ?
'projectid' :
'none'), 0, 0, 0, 1,
'',
'maxwidth300');
204 if (!empty($object->fk_project)) {
206 $proj->fetch($object->fk_project);
207 $morehtmlref .= $proj->getNomUrl(1);
209 $morehtmlref .=
'<span class="opacitymedium"> - '.dol_escape_htmltag($proj->title).
'</span>';
214 $morehtmlref .=
'</div>';
216 dol_banner_tab($object,
'id', $linkback, ($user->socid ? 0 : 1),
'id',
'ref', $morehtmlref);
218 print
'<div class="fichecenter">';
220 print
'<div class="underbanner clearboth"></div>';
223 print
'<table class="border tableforfield centpercent">';
227 print
'<tr><td class="titlefield">'.$langs->trans(
"Type").
'</td><td colspan="3">';
228 print $object->getTypePicto();
229 print $langs->trans(
"Action".$object->type_code);
234 print
'<tr><td class="titlefield">'.$langs->trans(
"EventOnFullDay").
'</td><td colspan="3">'.
yn($object->fulldayevent ? 1 : 0, 3).
'</td></tr>';
237 print
'<tr><td>'.$langs->trans(
"DateActionStart").
'</td><td colspan="3">';
238 if (empty($object->fulldayevent)) {
242 print
dol_print_date($object->datep,
'day', ($tzforfullday ? $tzforfullday :
'tzuser'));
244 if ($object->percentage == 0 && $object->datep && $object->datep < ($now - $delay_warning)) {
251 print
'<tr><td>'.$langs->trans(
"DateActionEnd").
'</td><td colspan="3">';
252 if (empty($object->fulldayevent)) {
256 print
dol_print_date($object->datef,
'day', ($tzforfullday ? $tzforfullday :
'tzuser'));
258 if ($object->percentage > 0 && $object->percentage < 100 && $object->datef && $object->datef < ($now - $delay_warning)) {
265 print
'<tr><td>'.$langs->trans(
"Location").
'</td><td colspan="3">'.$object->location.
'</td></tr>';
269 print
'<tr><td class="nowrap">'.$langs->trans(
"ActionAffectedTo").
'</td><td colspan="3">';
270 $listofuserid = array();
271 if (empty($donotclearsession)) {
272 if ($object->userownerid > 0) {
273 $listofuserid[$object->userownerid] = array(
'id'=>$object->userownerid,
'transparency'=>$object->transparency);
275 if (!empty($object->userassigned)) {
277 $tmplist1 = $object->userassigned;
278 foreach ($tmplist1 as $key => $val) {
279 if ($val[
'id'] && $val[
'id'] != $object->userownerid) {
280 $listofuserid[$val[
'id']] = $val;
284 $_SESSION[
'assignedtouser'] = json_encode($listofuserid);
286 if (!empty($_SESSION[
'assignedtouser'])) {
287 $listofuserid = json_decode($_SESSION[
'assignedtouser'],
true);
290 $listofcontactid = array();
291 $listofotherid = array();
292 print
'<div class="assignedtouser">';
293 print $form->select_dolusers_forevent(
'view',
'assignedtouser', 1,
'', 0,
'',
'', 0, 0, 0,
'', ($object->datep != $object->datef) ? 1 : 0, $listofuserid, $listofcontactid, $listofotherid);
305 print
'<table class="border tableforfield centpercent">';
308 $filearray =
dol_dir_list($upload_dir,
"files", 0,
'',
'(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) ==
'desc' ? SORT_DESC : SORT_ASC), 1);
310 foreach ($filearray as $key => $file) {
311 $totalsize += $file[
'size'];
315 print
'<tr><td class="titlefield" class="nowrap">'.$langs->trans(
"NbOfAttachedFiles").
'</td><td colspan="3">'.count($filearray).
'</td></tr>';
316 print
'<tr><td>'.$langs->trans(
"TotalSizeOfAttachedFiles").
'</td><td colspan="3">'.$totalsize.
' '.$langs->trans(
"bytes").
'</td></tr>';
325 $modulepart =
'actions';
326 $permissiontoadd = $user->hasRight(
'agenda',
'myactions',
'create') || $user->hasRight(
'agenda',
'allactions',
'create');
327 $param =
'&id='.$object->id;
328 include DOL_DOCUMENT_ROOT.
'/core/tpl/document_actions_post_headers.tpl.php';
330 print $langs->trans(
"ErrorUnknown");
actions_prepare_head($object)
Prepare array with list of tabs.
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
Class to manage agenda events (actions)
Class to manage projects.
Class to manage Dolibarr users.
dol_dir_list($path, $types="all", $recursive=0, $filter="", $excludefilter=null, $sortcriteria="name", $sortorder=SORT_ASC, $mode=0, $nohook=0, $relativename="", $donotfollowsymlinks=0, $nbsecondsold=0)
Scan a directory and return a list of files/directories.
dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='rowid', $fieldref='ref', $morehtmlref='', $moreparam='', $nodbprefix=0, $morehtmlleft='', $morehtmlstatus='', $onlybanner=0, $morehtmlright='')
Show tab footer of a card.
img_warning($titlealt='default', $moreatt='', $morecss='pictowarning')
Show warning logo.
yn($yesno, $case=1, $color=0)
Return yes or no in current language.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0)
Show tabs of a record.
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
dol_get_fiche_end($notab=0)
Return tab footer of a card.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
dol_now($mode='auto')
Return date for now.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
img_edit($titlealt='default', $float=0, $other='')
Show logo editer/modifier fiche.
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.