dolibarr  18.0.6
month_report.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) 2007-2010 Laurent Destailleur <eldy@users.sourceforge.net>
3  * Copyright (C) 2011 François Legastelois <flegastelois@teclib.com>
4  * Copyright (C) 2018-2019 Frédéric France <frederic.france@netlogic.fr>
5  * Copyright (C) 2020 Tobias Sekan <tobias.sekan@startmail.com>
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <https://www.gnu.org/licenses/>.
19  */
20 
27 // Load Dolibarr environment
28 require '../main.inc.php';
29 require_once DOL_DOCUMENT_ROOT.'/holiday/class/holiday.class.php';
30 require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
31 require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
32 require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
33 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
34 
35 // Load translation files required by the page
36 $langs->loadLangs(array('holiday', 'hrm'));
37 
38 $action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view';
39 $massaction = GETPOST('massaction', 'alpha');
40 $contextpage = GETPOST('contextpage', 'aZ');
41 $optioncss = GETPOST('optioncss', 'aZ');
42 
43 $id = GETPOST('id', 'int');
44 
45 $search_ref = GETPOST('search_ref', 'alphanohtml');
46 $search_employee = GETPOST('search_employee', 'int');
47 $search_type = GETPOST('search_type', 'int');
48 $search_description = GETPOST('search_description', 'alphanohtml');
49 
50 $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
51 $sortfield = GETPOST('sortfield', 'aZ09comma');
52 $sortorder = GETPOST('sortorder', 'aZ09comma');
53 
54 if (!$sortfield) {
55  $sortfield = "cp.rowid";
56 }
57 if (!$sortorder) {
58  $sortorder = "ASC";
59 }
60 
61 $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
62 if (empty($page) || $page == -1) {
63  $page = 0;
64 }
65 
66 $hookmanager->initHooks(array('leavemovementlist'));
67 
68 $arrayfields = array();
69 $arrayofmassactions = array();
70 
71 // Security check
72 if ($user->socid > 0) { // Protection if external user
73  //$socid = $user->socid;
75 }
76 $result = restrictedArea($user, 'holiday', $id);
77 
78 if (!$user->hasRight('holiday', 'readall')) {
80 }
81 
82 
83 /*
84  * Actions
85  */
86 
87 if (GETPOST('cancel', 'alpha')) {
88  $action = 'list'; $massaction = '';
89 }
90 if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') {
91  $massaction = '';
92 }
93 
94 $parameters = array();
95 $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
96 if ($reshook < 0) {
97  setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
98 }
99 
100 if (empty($reshook)) {
101  // Selection of new fields
102  include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
103 
104  // Purge search criteria
105  if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers
106  $search_ref = '';
107  $search_employee = '';
108  $search_type = '';
109  $search_description = '';
110  $toselect = array();
111  $search_array_options = array();
112  }
113 
114  if (GETPOST('button_removefilter_x', 'alpha')
115  || GETPOST('button_removefilter.x', 'alpha')
116  || GETPOST('button_removefilter', 'alpha')
117  || GETPOST('button_search_x', 'alpha')
118  || GETPOST('button_search.x', 'alpha')
119  || GETPOST('button_search', 'alpha')) {
120  $massaction = '';
121  }
122 }
123 
124 $arrayfields = array(
125  'cp.ref'=>array('label' => 'Ref', 'checked'=>1, 'position'=>5),
126  'cp.fk_type'=>array('label' => 'Type', 'checked'=>1, 'position'=>10),
127  'cp.fk_user'=>array('label' => 'Employee', 'checked'=>1, 'position'=>20),
128  'cp.date_debut'=>array('label' => 'DateDebCP', 'checked'=>-1, 'position'=>30),
129  'cp.date_fin'=>array('label' => 'DateFinCP', 'checked'=>-1, 'position'=>32),
130  'used_days'=>array('label' => 'NbUseDaysCPShort', 'checked'=>-1, 'position'=>34),
131  'date_start_month'=>array('label' => 'DateStartInMonth', 'checked'=>1, 'position'=>50),
132  'date_end_month'=>array('label' => 'DateEndInMonth', 'checked'=>1, 'position'=>52),
133  'used_days_month'=>array('label' => 'NbUseDaysCPShortInMonth', 'checked'=>1, 'position'=>54),
134  'cp.description'=>array('label' => 'DescCP', 'checked'=>-1, 'position'=>800),
135 );
136 
137 
138 /*
139  * View
140  */
141 
142 $form = new Form($db);
143 $formother = new FormOther($db);
144 $holidaystatic = new Holiday($db);
145 
146 $listhalfday = array('morning'=>$langs->trans("Morning"), "afternoon"=>$langs->trans("Afternoon"));
147 
148 $title = $langs->trans('CPTitreMenu');
149 
150 llxHeader('', $title);
151 
152 $search_month = GETPOST("remonth", 'int') ?GETPOST("remonth", 'int') : date("m", time());
153 $search_year = GETPOST("reyear", 'int') ?GETPOST("reyear", 'int') : date("Y", time());
154 $year_month = sprintf("%04d", $search_year).'-'.sprintf("%02d", $search_month);
155 
156 $sql = "SELECT cp.rowid, cp.ref, cp.fk_user, cp.date_debut, cp.date_fin, cp.fk_type, cp.description, cp.halfday, cp.statut as status";
157 $sql .= " FROM ".MAIN_DB_PREFIX."holiday cp";
158 $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."user u ON cp.fk_user = u.rowid";
159 $sql .= " WHERE cp.rowid > 0";
160 $sql .= " AND cp.statut = ".Holiday::STATUS_APPROVED;
161 $sql .= " AND (";
162 $sql .= " (date_format(cp.date_debut, '%Y-%m') = '".$db->escape($year_month)."' OR date_format(cp.date_fin, '%Y-%m') = '".$db->escape($year_month)."')";
163 $sql .= " OR"; // For leave over several months
164 $sql .= " (date_format(cp.date_debut, '%Y-%m') < '".$db->escape($year_month)."' AND date_format(cp.date_fin, '%Y-%m') > '".$db->escape($year_month)."') ";
165 $sql .= " )";
166 if (!empty($search_ref)) {
167  $sql .= natural_search('cp.ref', $search_ref);
168 }
169 if (!empty($search_employee) && $search_employee > 0) {
170  $sql .= " AND cp.fk_user = ".((int) $search_employee);
171 }
172 if (!empty($search_type) && $search_type != '-1') {
173  $sql .= ' AND cp.fk_type IN ('.$db->sanitize($search_type).')';
174 }
175 if (!empty($search_description)) {
176  $sql .= natural_search('cp.description', $search_description);
177 }
178 
179 $sql .= $db->order($sortfield, $sortorder);
180 
181 $resql = $db->query($sql);
182 if (empty($resql)) {
183  dol_print_error($db);
184  exit;
185 }
186 
187 $num = $db->num_rows($resql);
188 
189 $param = '';
190 if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
191  $param .= '&contextpage='.urlencode($contextpage);
192 }
193 if ($limit > 0 && $limit != $conf->liste_limit) {
194  $param .= '&limit='.((int) $limit);
195 }
196 if (!empty($search_ref)) {
197  $param .= '&search_ref='.urlencode($search_ref);
198 }
199 if (!empty($search_employee)) {
200  $param .= '&search_employee='.urlencode($search_employee);
201 }
202 if (!empty($search_type)) {
203  $param .= '&search_type='.urlencode($search_type);
204 }
205 if (!empty($search_description)) {
206  $param .= '&search_description='.urlencode($search_description);
207 }
208 
209 print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
210 if ($optioncss != '') {
211  print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
212 }
213 print '<input type="hidden" name="token" value="'.newToken().'">';
214 print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
215 print '<input type="hidden" name="action" value="list">';
216 print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
217 print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
218 print '<input type="hidden" name="page" value="'.$page.'">';
219 print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
220 
221 print load_fiche_titre($langs->trans('MenuReportMonth'), '', 'title_hrm');
222 
223 // Selection filter
224 print '<div class="tabBar">';
225 print $formother->select_month($search_month, 'remonth', 0, 0, 'minwidth50 maxwidth75imp valignmiddle', true);
226 print $formother->selectyear($search_year, 'reyear', 0, 10, 5, 0, 0, '', 'valignmiddle width75', true);
227 print '<input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans("Search")).'" />';
228 print '</div>';
229 print '<br>';
230 
231 $moreforfilter = '';
232 
233 $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
234 $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')); // This also change content of $arrayfields
235 $selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : '');
236 
237 print '<div class="div-table-responsive">';
238 print '<table class="tagtable nobottomiftotal liste">';
239 
240 print '<tr class="liste_titre_filter">';
241 
242 // Action column
243 if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
244  print '<th class="wrapcolumntitle center maxwidthsearch liste_titre">';
245  $searchpicto = $form->showFilterButtons('left');
246  print $searchpicto;
247  print '</th>';
248 }
249 
250 // Filter: Ref
251 if (!empty($arrayfields['cp.ref']['checked'])) {
252  print '<th class="liste_titre">';
253  print '<input class="flat maxwidth100" type="text" name="search_ref" value="'.dol_escape_htmltag($search_ref).'">';
254  print '</th>';
255 }
256 
257 // Filter: Type
258 if (!empty($arrayfields['cp.fk_type']['checked'])) {
259  $typeleaves = $holidaystatic->getTypes(1, -1);
260  $arraytypeleaves = array();
261  foreach ($typeleaves as $key => $val) {
262  $labeltoshow = ($langs->trans($val['code']) != $val['code'] ? $langs->trans($val['code']) : $val['label']);
263  $arraytypeleaves[$val['rowid']] = $labeltoshow;
264  }
265 
266  print '<th class="liste_titre">';
267  print $form->selectarray('search_type', $arraytypeleaves, $search_type, 1, 0, 0, '', 0, 0, 0, '', 'maxwidth100', 1);
268  print '</th>';
269 }
270 
271 // Filter: Employee
272 if (!empty($arrayfields['cp.fk_user']['checked'])) {
273  print '<th class="liste_titre">';
274  print $form->select_dolusers($search_employee, "search_employee", 1, null, 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth100');
275  print '</th>';
276 }
277 
278 if (!empty($arrayfields['cp.date_debut']['checked'])) {
279  print '<th class="liste_titre"></th>';
280 }
281 if (!empty($arrayfields['cp.date_fin']['checked'])) {
282  print '<th class="liste_titre"></th>';
283 }
284 if (!empty($arrayfields['used_days']['checked'])) {
285  print '<th class="liste_titre"></th>';
286 }
287 if (!empty($arrayfields['date_start_month']['checked'])) {
288  print '<th class="liste_titre"></th>';
289 }
290 if (!empty($arrayfields['date_end_month']['checked'])) {
291  print '<th class="liste_titre"></th>';
292 }
293 if (!empty($arrayfields['used_days_month']['checked'])) {
294  print '<th class="liste_titre"></th>';
295 }
296 
297 // Filter: Description
298 if (!empty($arrayfields['cp.description']['checked'])) {
299  print '<th class="liste_titre">';
300  print '<input type="text" class="maxwidth100" name="search_description" value="'.$search_description.'">';
301  print '</th>';
302 }
303 // Action column
304 if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
305  print '<th class="liste_titre maxwidthsearch">';
306  $searchpicto = $form->showFilterButtons();
307  print $searchpicto;
308  print '</th>';
309 }
310 print '</tr>';
311 
312 print '<tr class="liste_titre">';
313 // Action column
314 if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
315  print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n";
316 }
317 if (!empty($arrayfields['cp.ref']['checked'])) {
318  print_liste_field_titre($arrayfields['cp.ref']['label'], $_SERVER["PHP_SELF"], 'cp.ref', '', '', '', $sortfield, $sortorder);
319 }
320 if (!empty($arrayfields['cp.fk_type']['checked'])) {
321  print_liste_field_titre($arrayfields['cp.fk_type']['label'], $_SERVER["PHP_SELF"], 'cp.fk_type', '', '', '', $sortfield, $sortorder);
322 }
323 if (!empty($arrayfields['cp.fk_user']['checked'])) {
324  print_liste_field_titre($arrayfields['cp.fk_user']['label'], $_SERVER["PHP_SELF"], 'cp.fk_user', '', '', '', $sortfield, $sortorder);
325 }
326 if (!empty($arrayfields['ct.label']['checked'])) {
327  print_liste_field_titre($arrayfields['ct.label']['label'], $_SERVER["PHP_SELF"], 'ct.label', '', '', '', $sortfield, $sortorder);
328 }
329 if (!empty($arrayfields['cp.date_debut']['checked'])) {
330  print_liste_field_titre($arrayfields['cp.date_debut']['label'], $_SERVER["PHP_SELF"], 'cp.date_debut', '', '', '', $sortfield, $sortorder, 'center ');
331 }
332 if (!empty($arrayfields['cp.date_fin']['checked'])) {
333  print_liste_field_titre($arrayfields['cp.date_fin']['label'], $_SERVER["PHP_SELF"], 'cp.date_fin', '', '', '', $sortfield, $sortorder, 'center ');
334 }
335 if (!empty($arrayfields['used_days']['checked'])) {
336  print_liste_field_titre($arrayfields['used_days']['label'], $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'maxwidth125 right ');
337 }
338 if (!empty($arrayfields['date_start_month']['checked'])) {
339  print_liste_field_titre($arrayfields['date_start_month']['label'], $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center ');
340 }
341 if (!empty($arrayfields['date_end_month']['checked'])) {
342  print_liste_field_titre($arrayfields['date_end_month']['label'], $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center ');
343 }
344 if (!empty($arrayfields['used_days_month']['checked'])) {
345  print_liste_field_titre($arrayfields['used_days_month']['label'], $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'maxwidth125 right ');
346 }
347 if (!empty($arrayfields['cp.description']['checked'])) {
348  print_liste_field_titre($arrayfields['cp.description']['label'], $_SERVER["PHP_SELF"], 'cp.description', '', '', '', $sortfield, $sortorder);
349 }
350 // Action column
351 if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
352  print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n";
353 }
354 print '</tr>';
355 
356 if ($num == 0) {
357  print '<tr><td colspan="11"><span class="opacitymedium">'.$langs->trans('None').'</span></td></tr>';
358 } else {
359  $tmpuser = new User($db);
360  while ($obj = $db->fetch_object($resql)) {
361  $tmpuser->fetch($obj->fk_user);
362 
363  $date_start = $db->jdate($obj->date_debut, true);
364  $date_end = $db->jdate($obj->date_fin, true);
365 
366  $tmpstart = dol_getdate($date_start);
367  $tmpend = dol_getdate($date_end);
368 
369  $starthalfday = ($obj->halfday == -1 || $obj->halfday == 2) ? 'afternoon' : 'morning';
370  $endhalfday = ($obj->halfday == 1 || $obj->halfday == 2) ? 'morning' : 'afternoon';
371 
372  $halfdayinmonth = $obj->halfday;
373  $starthalfdayinmonth = $starthalfday;
374  $endhalfdayinmonth = $endhalfday;
375 
376  //0:Full days, 2:Start afternoon end morning, -1:Start afternoon end afternoon, 1:Start morning end morning
377 
378  // Set date_start_gmt and date_end_gmt that are date to show for the selected month
379  $date_start_inmonth = $db->jdate($obj->date_debut, true);
380  $date_end_inmonth = $db->jdate($obj->date_fin, true);
381  if ($tmpstart['year'] < $search_year || $tmpstart['mon'] < $search_month) {
382  $date_start_inmonth = dol_get_first_day($search_year, $search_month, true);
383  $starthalfdayinmonth = 'morning';
384  if ($halfdayinmonth == 2) {
385  $halfdayinmonth = 1;
386  }
387  if ($halfdayinmonth == -1) {
388  $halfdayinmonth = 0;
389  }
390  }
391  if ($tmpend['year'] > $search_year || $tmpend['mon'] > $search_month) {
392  $date_end_inmonth = dol_get_last_day($search_year, $search_month, true) - ((24 * 3600) - 1);
393  $endhalfdayinmonth = 'afternoon';
394  if ($halfdayinmonth == 2) {
395  $halfdayinmonth = -1;
396  }
397  if ($halfdayinmonth == 1) {
398  $halfdayinmonth = 0;
399  }
400  }
401 
402  // Leave request
403  $holidaystatic->id = $obj->rowid;
404  $holidaystatic->ref = $obj->ref;
405  $holidaystatic->statut = $obj->status;
406  $holidaystatic->status = $obj->status;
407  $holidaystatic->fk_user = $obj->fk_user;
408  $holidaystatic->fk_type = $obj->fk_type;
409  $holidaystatic->description = $obj->description;
410  $holidaystatic->halfday = $obj->halfday;
411  $holidaystatic->date_debut = $db->jdate($obj->date_debut);
412  $holidaystatic->date_fin = $db->jdate($obj->date_fin);
413 
414 
415  print '<tr class="oddeven">';
416  // Action column
417  if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
418  print '<td></td>';
419  }
420 
421  if (!empty($arrayfields['cp.ref']['checked'])) {
422  print '<td class="nowraponall">'.$holidaystatic->getNomUrl(1, 1).'</td>';
423  }
424  if (!empty($arrayfields['cp.fk_type']['checked'])) {
425  print '<td>'.$arraytypeleaves[$obj->fk_type].'</td>';
426  }
427  if (!empty($arrayfields['cp.fk_user']['checked'])) {
428  print '<td class="tdoverflowmax150">'.$tmpuser->getNomUrl(-1).'</td>';
429  }
430 
431  if (!empty($arrayfields['cp.date_debut']['checked'])) {
432  print '<td class="center">'.dol_print_date($db->jdate($obj->date_debut), 'day');
433  print ' <span class="opacitymedium">('.$langs->trans($listhalfday[$starthalfday]).')</span>';
434  print '</td>';
435  }
436 
437  if (!empty($arrayfields['cp.date_fin']['checked'])) {
438  print '<td class="center">'.dol_print_date($db->jdate($obj->date_fin), 'day');
439  print ' <span class="opacitymedium">('.$langs->trans($listhalfday[$endhalfday]).')</span>';
440  print '</td>';
441  }
442 
443  if (!empty($arrayfields['used_days']['checked'])) {
444  print '<td class="right">'.num_open_day($date_start, $date_end, 0, 1, $obj->halfday).'</td>';
445  }
446 
447  if (!empty($arrayfields['date_start_month']['checked'])) {
448  print '<td class="center">'.dol_print_date($date_start_inmonth, 'day');
449  print ' <span class="opacitymedium">('.$langs->trans($listhalfday[$starthalfdayinmonth]).')</span>';
450  print '</td>';
451  }
452 
453  if (!empty($arrayfields['date_end_month']['checked'])) {
454  print '<td class="center">'.dol_print_date($date_end_inmonth, 'day');
455  print ' <span class="opacitymedium">('.$langs->trans($listhalfday[$endhalfdayinmonth]).')</span>';
456  print '</td>';
457  }
458 
459  if (!empty($arrayfields['used_days_month']['checked'])) {
460  print '<td class="right">'.num_open_day($date_start_inmonth, $date_end_inmonth, 0, 1, $halfdayinmonth).'</td>';
461  }
462  if (!empty($arrayfields['cp.description']['checked'])) {
463  print '<td class="maxwidth300 small">';
464  print '<div class="twolinesmax">';
465  print dolGetFirstLineOfText(dol_string_nohtmltag($obj->description, 1));
466  print '</div>';
467  print '</td>';
468  }
469  // Action column
470  if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
471  print '<td></td>';
472  }
473  print '</tr>';
474  }
475 }
476 print '</table>';
477 print '</div>';
478 print '</form>';
479 
480 // End of page
481 llxFooter();
482 $db->close();
if(!defined('NOREQUIRESOC')) if(!defined('NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined('NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined('NOREQUIREAJAX')) llxHeader()
Empty header.
Definition: wrapper.php:56
llxFooter()
Empty footer.
Definition: wrapper.php:70
Class to manage generation of HTML components Only common components must be here.
Classe permettant la generation de composants html autre Only common components are here.
Class of the module paid holiday.
Class to manage Dolibarr users.
Definition: user.class.php:48
if(isModEnabled('facture') && $user->hasRight('facture', 'lire')) if((isModEnabled('fournisseur') &&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->hasRight("fournisseur", "facture", "lire"))||(isModEnabled('supplier_invoice') && $user->hasRight("supplier_invoice", "lire"))) if(isModEnabled('don') && $user->hasRight('don', 'lire')) if(isModEnabled('tax') &&!empty($user->rights->tax->charges->lire)) if(isModEnabled('facture') &&isModEnabled('commande') && $user->hasRight("commande", "lire") &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) $sql
Social contributions to pay.
Definition: index.php:746
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
Definition: card.php:143
dol_get_first_day($year, $month=1, $gm=false)
Return GMT time for first day of a month or year.
Definition: date.lib.php:577
dol_get_last_day($year, $month=12, $gm=false)
Return GMT time for last day of a month or year.
Definition: date.lib.php:596
load_fiche_titre($titre, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
dolGetFirstLineOfText($text, $nboflines=1, $charset='UTF-8')
Return first line of text.
dol_string_nohtmltag($stringtoclean, $removelinefeed=1, $pagecodeto='UTF-8', $strip_tags=0, $removedoublespaces=1)
Clean a string from all HTML tags and entities.
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
natural_search($fields, $value, $mode=0, $nofirstand=0)
Generate natural SQL search string for a criteria (this criteria can be tested on one or several fiel...
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
getTitleFieldOfList($name, $thead=0, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $disablesortlink=0, $tooltip='', $forcenowrapcolumntitle=0)
Get title line of an array.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
dol_getdate($timestamp, $fast=false, $forcetimezone='')
Return an array with locale date info.
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.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.