dolibarr  9.0.0
index.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
3  * Copyright (C) 2004-2017 Laurent Destailleur <eldy@users.sourceforge.net>
4  * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
26 require '../../main.inc.php';
27 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
28 require_once DOL_DOCUMENT_ROOT .'/comm/propal/class/propal.class.php';
29 
30 // Load translation files required by the page
31 $langs->loadLangs(array('propal', 'companies'));
32 
33 // Security check
34 $socid=GETPOST('socid','int');
35 if (isset($user->societe_id) && $user->societe_id > 0)
36 {
37  $action = '';
38  $socid = $user->societe_id;
39 }
40 $result = restrictedArea($user, 'propal');
41 
42 
43 /*
44  * View
45  */
46 $now=dol_now();
47 $propalstatic=new Propal($db);
48 $companystatic=new Societe($db);
49 $form = new Form($db);
50 $formfile = new FormFile($db);
51 $help_url="EN:Module_Commercial_Proposals|FR:Module_Propositions_commerciales|ES:Módulo_Presupuestos";
52 
53 llxHeader("",$langs->trans("ProspectionArea"),$help_url);
54 
55 print load_fiche_titre($langs->trans("ProspectionArea"));
56 
57 //print '<table width="100%" class="notopnoleftnoright">';
58 //print '<tr><td valign="top" width="30%" class="notopnoleft">';
59 print '<div class="fichecenter"><div class="fichethirdleft">';
60 
61 
62 if (! empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) // This is useless due to the global search combo
63 {
64  print '<form method="post" action="'.DOL_URL_ROOT.'/comm/propal/list.php">';
65  print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
66  print '<table class="noborder nohover" width="100%">';
67  print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("Search").'</td></tr>';
68  print '<tr class="oddeven"><td>';
69  print $langs->trans("Proposal").':</td><td><input type="text" class="flat" name="sall" size=18></td><td><input type="submit" value="'.$langs->trans("Search").'" class="button"></td></tr>';
70  print "</table></form><br>\n";
71 }
72 
73 
74 /*
75  * Statistics
76  */
77 
78 $sql = "SELECT count(p.rowid), p.fk_statut";
79 $sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
80 $sql.= ", ".MAIN_DB_PREFIX."propal as p";
81 if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
82 $sql.= " WHERE p.fk_soc = s.rowid";
83 $sql.= " AND p.entity IN (".getEntity('propal').")";
84 if ($user->societe_id) $sql.=' AND p.fk_soc = '.$user->societe_id;
85 if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
86 $sql.= " AND p.fk_statut IN (0,1,2,3,4)";
87 $sql.= " GROUP BY p.fk_statut";
88 $resql = $db->query($sql);
89 if ($resql)
90 {
91  $num = $db->num_rows($resql);
92  $i = 0;
93 
94  $total=0;
95  $totalinprocess=0;
96  $dataseries=array();
97  $vals=array();
98  // -1=Canceled, 0=Draft, 1=Validated, (2=Accepted/On process not managed for customer orders), 3=Closed (Sent/Received, billed or not)
99  while ($i < $num)
100  {
101  $row = $db->fetch_row($resql);
102  if ($row)
103  {
104  //if ($row[1]!=-1 && ($row[1]!=3 || $row[2]!=1))
105  {
106  $vals[$row[1]]=$row[0];
107  $totalinprocess+=$row[0];
108  }
109  $total+=$row[0];
110  }
111  $i++;
112  }
113  $db->free($resql);
114 
115  print '<table class="noborder nohover" width="100%">';
116  print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("Statistics").' - '.$langs->trans("Proposals").'</td></tr>'."\n";
117  $listofstatus=array(0,1,2,3,4);
118  foreach ($listofstatus as $status)
119  {
120  $dataseries[]=array($propalstatic->LibStatut($status,1), (isset($vals[$status])?(int) $vals[$status]:0));
121  if (! $conf->use_javascript_ajax)
122  {
123 
124  print '<tr class="oddeven">';
125  print '<td>'.$propalstatic->LibStatut($status,0).'</td>';
126  print '<td align="right"><a href="list.php?statut='.$status.'">'.(isset($vals[$status])?$vals[$status]:0).'</a></td>';
127  print "</tr>\n";
128  }
129  }
130  if ($conf->use_javascript_ajax)
131  {
132  print '<tr><td align="center" colspan="2">';
133 
134  include_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php';
135  $dolgraph = new DolGraph();
136  $dolgraph->SetData($dataseries);
137  $dolgraph->setShowLegend(1);
138  $dolgraph->setShowPercent(1);
139  $dolgraph->SetType(array('pie'));
140  $dolgraph->setWidth('100%');
141  $dolgraph->draw('idgraphthirdparties');
142  print $dolgraph->show($total?0:1);
143 
144  print '</td></tr>';
145  }
146  //if ($totalinprocess != $total)
147  //print '<tr class="liste_total"><td>'.$langs->trans("Total").' ('.$langs->trans("CustomersOrdersRunning").')</td><td align="right">'.$totalinprocess.'</td></tr>';
148  print '<tr class="liste_total"><td>'.$langs->trans("Total").'</td><td align="right">'.$total.'</td></tr>';
149  print "</table><br>";
150 }
151 else
152 {
153  dol_print_error($db);
154 }
155 
156 
157 /*
158  * Draft proposals
159  */
160 if (! empty($conf->propal->enabled))
161 {
162  $sql = "SELECT c.rowid, c.ref, s.nom as socname, s.rowid as socid, s.canvas, s.client";
163  $sql.= " FROM ".MAIN_DB_PREFIX."propal as c";
164  $sql.= ", ".MAIN_DB_PREFIX."societe as s";
165  if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
166  $sql.= " WHERE c.fk_soc = s.rowid";
167  $sql.= " AND c.entity IN (".getEntity('propal').")";
168  $sql.= " AND c.fk_statut = 0";
169  if ($socid) $sql.= " AND c.fk_soc = ".$socid;
170  if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
171 
172  $resql=$db->query($sql);
173  if ($resql)
174  {
175  print '<div class="div-table-responsive-no-min">';
176  print '<table class="noborder" width="100%">';
177  print '<tr class="liste_titre">';
178  print '<td colspan="2">'.$langs->trans("DraftPropals").'</td></tr>';
179  $langs->load("propal");
180  $num = $db->num_rows($resql);
181  if ($num)
182  {
183  $i = 0;
184  while ($i < $num)
185  {
186  $obj = $db->fetch_object($resql);
187  print '<tr class="oddeven">';
188 
189  $propalstatic->id=$obj->rowid;
190  $propalstatic->ref=$obj->ref;
191  print '<td class="nowrap">'.$propalstatic->getNomUrl(1).'</td>';
192 
193  $companystatic->id=$obj->socid;
194  $companystatic->name=$obj->socname;
195  $companystatic->client=$obj->client;
196  $companystatic->canvas=$obj->canvas;
197  print '<td>'.$companystatic->getNomUrl(1,'customer',24).'</td>';
198 
199  print '</tr>';
200  $i++;
201  }
202  }
203  print "</table>";
204  print "</div><br>";
205  }
206 }
207 
208 
209 //print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
210 print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
211 
212 
213 $max=5;
214 
215 /*
216  * Last modified proposals
217  */
218 
219 $sql = "SELECT c.rowid, c.entity, c.ref, c.fk_statut, s.nom as socname, s.rowid as socid, s.canvas, s.client,";
220 $sql.= " date_cloture as datec";
221 $sql.= " FROM ".MAIN_DB_PREFIX."propal as c";
222 $sql.= ", ".MAIN_DB_PREFIX."societe as s";
223 if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
224 $sql.= " WHERE c.fk_soc = s.rowid";
225 $sql.= " AND c.entity IN (".getEntity('propal').")";
226 //$sql.= " AND c.fk_statut > 2";
227 if ($socid) $sql .= " AND c.fk_soc = ".$socid;
228 if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
229 $sql.= " ORDER BY c.tms DESC";
230 $sql.= $db->plimit($max, 0);
231 
232 $resql=$db->query($sql);
233 if ($resql)
234 {
235  print '<div class="div-table-responsive-no-min">';
236  print '<table class="noborder" width="100%">';
237  print '<tr class="liste_titre">';
238  print '<td colspan="4">'.$langs->trans("LastModifiedProposals",$max).'</td></tr>';
239 
240  $num = $db->num_rows($resql);
241  if ($num)
242  {
243  $i = 0;
244  while ($i < $num)
245  {
246  $obj = $db->fetch_object($resql);
247 
248  print '<tr class="oddeven">';
249  print '<td width="20%" class="nowrap">';
250 
251  $propalstatic->id=$obj->rowid;
252  $propalstatic->ref=$obj->ref;
253 
254  print '<table class="nobordernopadding"><tr class="nocellnopadd">';
255  print '<td width="96" class="nobordernopadding nowrap">';
256  print $propalstatic->getNomUrl(1);
257  print '</td>';
258 
259  print '<td width="16" class="nobordernopadding nowrap">';
260  print '&nbsp;';
261  print '</td>';
262 
263  print '<td width="16" align="right" class="nobordernopadding">';
264  $filename=dol_sanitizeFileName($obj->ref);
265  $filedir=$conf->propal->multidir_output[$obj->entity] . '/' . dol_sanitizeFileName($obj->ref);
266  $urlsource=$_SERVER['PHP_SELF'].'?id='.$obj->rowid;
267  print $formfile->getDocumentsLink($propalstatic->element, $filename, $filedir);
268  print '</td></tr></table>';
269 
270  print '</td>';
271 
272  $companystatic->id=$obj->socid;
273  $companystatic->name=$obj->socname;
274  $companystatic->client=$obj->client;
275  $companystatic->canvas=$obj->canvas;
276  print '<td>'.$companystatic->getNomUrl(1,'customer').'</td>';
277 
278  print '<td>'.dol_print_date($db->jdate($obj->datec),'day').'</td>';
279  print '<td align="right">'.$propalstatic->LibStatut($obj->fk_statut,5).'</td>';
280  print '</tr>';
281  $i++;
282  }
283  }
284  print "</table>";
285  print "</div><br>";
286 }
287 else dol_print_error($db);
288 
289 
290 /*
291  * Opened proposals
292  */
293 if (! empty($conf->propal->enabled) && $user->rights->propale->lire)
294 {
295  $langs->load("propal");
296 
297  $now=dol_now();
298 
299  $sql = "SELECT s.nom as socname, s.rowid as socid, s.canvas, s.client";
300  $sql.= ", p.rowid as propalid, p.entity, p.total as total_ttc, p.total_ht, p.ref, p.fk_statut, p.datep as dp, p.fin_validite as dfv";
301  $sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
302  $sql.= ", ".MAIN_DB_PREFIX."propal as p";
303  if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
304  $sql.= " WHERE p.fk_soc = s.rowid";
305  $sql.= " AND p.entity IN (".getEntity('propal').")";
306  $sql.= " AND p.fk_statut = 1";
307  if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
308  if ($socid) $sql.= " AND s.rowid = ".$socid;
309  $sql.= " ORDER BY p.rowid DESC";
310 
311  $result=$db->query($sql);
312  if ($result)
313  {
314  $total = 0;
315  $num = $db->num_rows($result);
316  $i = 0;
317  if ($num > 0)
318  {
319  print '<div class="div-table-responsive-no-min">';
320  print '<table class="noborder" width="100%">';
321  print '<tr class="liste_titre"><td colspan="5">'.$langs->trans("ProposalsOpened").' <a href="'.DOL_URL_ROOT.'/comm/propal/list.php?viewstatut=1"><span class="badge">'.$num.'</span></a></td></tr>';
322 
323  $nbofloop=min($num, (empty($conf->global->MAIN_MAXLIST_OVERLOAD)?500:$conf->global->MAIN_MAXLIST_OVERLOAD));
324  while ($i < $nbofloop)
325  {
326  $obj = $db->fetch_object($result);
327 
328  print '<tr class="oddeven">';
329 
330  // Ref
331  print '<td class="nowrap" width="140">';
332 
333  $propalstatic->id=$obj->propalid;
334  $propalstatic->ref=$obj->ref;
335 
336  print '<table class="nobordernopadding"><tr class="nocellnopadd">';
337  print '<td class="nobordernopadding nowrap">';
338  print $propalstatic->getNomUrl(1);
339  print '</td>';
340  print '<td width="18" class="nobordernopadding nowrap">';
341  if ($db->jdate($obj->dfv) < ($now - $conf->propal->cloture->warning_delay)) print img_warning($langs->trans("Late"));
342  print '</td>';
343  print '<td width="16" align="center" class="nobordernopadding">';
344  $filename=dol_sanitizeFileName($obj->ref);
345  $filedir=$conf->propal->multidir_output[$obj->entity] . '/' . dol_sanitizeFileName($obj->ref);
346  $urlsource=$_SERVER['PHP_SELF'].'?id='.$obj->propalid;
347  print $formfile->getDocumentsLink($propalstatic->element, $filename, $filedir);
348  print '</td></tr></table>';
349 
350  print "</td>";
351 
352  $companystatic->id=$obj->socid;
353  $companystatic->name=$obj->socname;
354  $companystatic->client=$obj->client;
355  $companystatic->canvas=$obj->canvas;
356  print '<td align="left">'.$companystatic->getNomUrl(1,'customer',44).'</td>'."\n";
357 
358  print '<td align="right">';
359  print dol_print_date($db->jdate($obj->dp),'day').'</td>'."\n";
360  print '<td align="right">'.price($obj->total_ttc).'</td>';
361  print '<td align="center" width="14">'.$propalstatic->LibStatut($obj->fk_statut,3).'</td>'."\n";
362  print '</tr>'."\n";
363  $i++;
364  $total += $obj->total_ttc;
365  }
366  if ($num > $nbofloop)
367  {
368  print '<tr class="liste_total"><td colspan="5">'.$langs->trans("XMoreLines", ($num - $nbofloop))."</td></tr>";
369  }
370  else if ($total>0)
371  {
372  print '<tr class="liste_total"><td colspan="3">'.$langs->trans("Total")."</td><td align=\"right\">".price($total)."</td><td>&nbsp;</td></tr>";
373  }
374  print "</table>";
375  print "</div><br>";
376  }
377  }
378  else
379  {
380  dol_print_error($db);
381  }
382 }
383 
384 /*
385  * Proposals to process
386  */
387 /*
388 if (! empty($conf->propal->enabled))
389 {
390  $sql = "SELECT c.rowid, c.ref, c.fk_statut, s.nom as name, s.rowid as socid";
391  $sql.=" FROM ".MAIN_DB_PREFIX."propal as c";
392  $sql.= ", ".MAIN_DB_PREFIX."societe as s";
393  if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
394  $sql.= " WHERE c.fk_soc = s.rowid";
395  $sql.= " AND c.entity = ".$conf->entity;
396  $sql.= " AND c.fk_statut = 1";
397  if ($socid) $sql.= " AND c.fk_soc = ".$socid;
398  if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
399  $sql.= " ORDER BY c.rowid DESC";
400 
401  $resql=$db->query($sql);
402  if ($resql)
403  {
404  $num = $db->num_rows($resql);
405 
406  print '<div class="div-table-responsive-no-min">';
407  print '<table class="noborder" width="100%">';
408  print '<tr class="liste_titre">';
409  print '<td colspan="3">'.$langs->trans("ProposalsToProcess").' <a href="'.DOL_URL_ROOT.'/commande/list.php?viewstatut=1"><span class="badge">'.$num.'</span></a></td></tr>';
410 
411  if ($num)
412  {
413  $i = 0;
414  while ($i < $num)
415  {
416 
417  $obj = $db->fetch_object($resql);
418  print '<tr class="oddeven">';
419  print '<td class="nowrap">';
420 
421  $propalstatic->id=$obj->rowid;
422  $propalstatic->ref=$obj->ref;
423 
424  print '<table class="nobordernopadding"><tr class="nocellnopadd">';
425  print '<td width="96" class="nobordernopadding nowrap">';
426  print $propalstatic->getNomUrl(1);
427  print '</td>';
428 
429  print '<td width="16" class="nobordernopadding nowrap">';
430  print '&nbsp;';
431  print '</td>';
432 
433  print '<td width="16" align="right" class="nobordernopadding">';
434  $filename=dol_sanitizeFileName($obj->ref);
435  $filedir=$conf->commande->dir_output . '/' . dol_sanitizeFileName($obj->ref);
436  $urlsource=$_SERVER['PHP_SELF'].'?id='.$obj->rowid;
437  print $formfile->getDocumentsLink($propalstatic->element, $filename, $filedir);
438  print '</td></tr></table>';
439 
440  print '</td>';
441 
442  print '<td><a href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$obj->socid.'">'.img_object($langs->trans("ShowCompany"),"company").' '.dol_trunc($obj->name,24).'</a></td>';
443 
444  print '<td align="right">'.$propalstatic->LibStatut($obj->fk_statut,$obj->facture,5).'</td>';
445 
446  print '</tr>';
447  $i++;
448  }
449  }
450 
451  print "</table>";
452  print "</div><br>";
453  }
454  else dol_print_error($db);
455 }
456 */
457 
458 /*
459  * Proposal that are in a shipping process
460  */
461 /*if (! empty($conf->propal->enabled))
462 {
463  $sql = "SELECT c.rowid, c.ref, c.fk_statut, c.facture, s.nom as name, s.rowid as socid";
464  $sql.= " FROM ".MAIN_DB_PREFIX."commande as c";
465  $sql.= ", ".MAIN_DB_PREFIX."societe as s";
466  if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
467  $sql.= " WHERE c.fk_soc = s.rowid";
468  $sql.= " AND c.entity = ".$conf->entity;
469  $sql.= " AND c.fk_statut = 2 ";
470  if ($socid) $sql.= " AND c.fk_soc = ".$socid;
471  if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
472  $sql.= " ORDER BY c.rowid DESC";
473 
474  $resql=$db->query($sql);
475  if ($resql)
476  {
477  $num = $db->num_rows($resql);
478 
479  print '<div class="div-table-responsive-no-min">';
480  print '<table class="noborder" width="100%">';
481  print '<tr class="liste_titre">';
482  print '<td colspan="3">'.$langs->trans("OnProcessOrders").' <a href="'.DOL_URL_ROOT.'/commande/list.php?viewstatut=2"><span class="badge">'.$num.'</span></a></td></tr>';
483 
484  if ($num)
485  {
486  $i = 0;
487  while ($i < $num)
488  {
489 
490  $obj = $db->fetch_object($resql);
491  print '<tr class="oddeven">';
492  print '<td width="20%" class="nowrap">';
493 
494  $propalstatic->id=$obj->rowid;
495  $propalstatic->ref=$obj->ref;
496 
497  print '<table class="nobordernopadding"><tr class="nocellnopadd">';
498  print '<td width="96" class="nobordernopadding nowrap">';
499  print $propalstatic->getNomUrl(1);
500  print '</td>';
501 
502  print '<td width="16" class="nobordernopadding nowrap">';
503  print '&nbsp;';
504  print '</td>';
505 
506  print '<td width="16" align="right" class="nobordernopadding">';
507  $filename=dol_sanitizeFileName($obj->ref);
508  $filedir=$conf->commande->dir_output . '/' . dol_sanitizeFileName($obj->ref);
509  $urlsource=$_SERVER['PHP_SELF'].'?id='.$obj->rowid;
510  print $formfile->getDocumentsLink($propalstatic->element, $filename, $filedir);
511  print '</td></tr></table>';
512 
513  print '</td>';
514 
515  print '<td><a href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$obj->socid.'">'.img_object($langs->trans("ShowCompany"),"company").' '.$obj->name.'</a></td>';
516 
517  print '<td align="right">'.$propalstatic->LibStatut($obj->fk_statut,$obj->facture,5).'</td>';
518 
519  print '</tr>';
520  $i++;
521  }
522  }
523  print "</table>";
524  print "</div><br>";
525  }
526  else dol_print_error($db);
527 }
528 */
529 
530 //print '</td></tr></table>';
531 print '</div></div></div>';
532 
533 // End of page
534 llxFooter();
535 $db->close();
llxFooter()
Footer empty.
Definition: index.php:44
img_warning($titlealt='default', $moreatt='')
Show warning logo.
load_fiche_titre($titre, $morehtmlright='', $picto='title_generic.png', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
GETPOST($paramname, $check='none', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
print
Draft customers invoices.
Definition: index.php:91
if(! empty($conf->facture->enabled) && $user->rights->facture->lire) if(! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture->lire) if(! empty($conf->don->enabled) && $user->rights->societe->lire) if(! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) if(! empty($conf->facture->enabled) &&! empty($conf->commande->enabled) && $user->rights->commande->lire &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) if(! empty($conf->facture->enabled) && $user->rights->facture->lire) if(! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture->lire) $resql
Social contributions to pay.
Definition: index.php:1053
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
dol_print_error($db='', $error='', $errors=null)
Affiche message erreur system avec toutes les informations pour faciliter le diagnostic et la remonte...
Class to manage generation of HTML components Only common components must be here.
Class to manage third parties objects (customers, suppliers, prospects...)
llxHeader()
Header empty.
Definition: index.php:36
dol_now($mode='gmt')
Return date for now.
Class to offer components to list and upload files.
price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
Function to format a value into an amount for visual output Function used into PDF and HTML pages...
dol_print_date($time, $format='', $tzoutput='tzserver', $outputlangs='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
Class to build graphs.
restrictedArea($user, $features, $objectid=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0)
Check permissions of a user to show a page and an object.
Class to manage proposals.