facturedet_cust_extrafields.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <?php
  2. /* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
  3. * Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
  4. * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
  5. * Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
  6. * Copyright (C) 2013 Jean-Francois FERRY <jfefe@aternatik.fr>
  7. * Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
  8. *
  9. * This program is free software; you can redistribute it and/or modify
  10. * it under the terms of the GNU General Public License as published by
  11. * the Free Software Foundation; either version 3 of the License, or
  12. * (at your option) any later version.
  13. *
  14. * This program is distributed in the hope that it will be useful,
  15. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. * GNU General Public License for more details.
  18. *
  19. * You should have received a copy of the GNU General Public License
  20. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  21. */
  22. /**
  23. * \file htdocs/compta/facture/admin/facture_cust_extrafields.php
  24. * \ingroup invoice
  25. * \brief Page to setup extra fields of customer invoice
  26. */
  27. require '../../../main.inc.php';
  28. require_once DOL_DOCUMENT_ROOT.'/core/lib/invoice.lib.php';
  29. require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
  30. $langs->load("companies");
  31. $langs->load("admin");
  32. $langs->load("bills");
  33. $extrafields = new ExtraFields($db);
  34. $form = new Form($db);
  35. // List of supported format
  36. $tmptype2label=getStaticMember(get_class($extrafields),'type2label');
  37. $type2label=array('');
  38. foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->trans($val);
  39. $action=GETPOST('action', 'alpha');
  40. $attrname=GETPOST('attrname', 'alpha');
  41. $elementtype='facturedet'; //Must be the $table_element of the class that manage extrafield
  42. if (!$user->admin) accessforbidden();
  43. /*
  44. * Actions
  45. */
  46. require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php';
  47. /*
  48. * View
  49. */
  50. $textobject=strtolower($langs->transnoentitiesnoconv("BillsCustomers"));
  51. llxHeader('',$langs->trans("BillsSetup"));
  52. $linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
  53. print_fiche_titre($langs->trans("BillsSetup"),$linkback,'setup');
  54. print '<br>';
  55. $head = invoice_admin_prepare_head(null);
  56. dol_fiche_head($head, 'attributeslines', $langs->trans("Invoices"), 0, 'invoice');
  57. print $langs->trans("DefineHereComplementaryAttributes",$textobject).'<br><br>'."\n";
  58. // Load attribute_label
  59. $extrafields->fetch_name_optionals_label($elementtype);
  60. print "<table summary=\"listofattributes\" class=\"noborder\" width=\"100%\">";
  61. print '<tr class="liste_titre">';
  62. print '<td align="center">'.$langs->trans("Position").'</td>';
  63. print '<td>'.$langs->trans("Label").'</td>';
  64. print '<td>'.$langs->trans("AttributeCode").'</td>';
  65. print '<td>'.$langs->trans("Type").'</td>';
  66. print '<td align="right">'.$langs->trans("Size").'</td>';
  67. print '<td align="center">'.$langs->trans("Unique").'</td>';
  68. print '<td align="center">'.$langs->trans("Required").'</td>';
  69. print '<td width="80">&nbsp;</td>';
  70. print "</tr>\n";
  71. $var=True;
  72. foreach($extrafields->attribute_type as $key => $value)
  73. {
  74. $var=!$var;
  75. print "<tr ".$bc[$var].">";
  76. print "<td>".$extrafields->attribute_pos[$key]."</td>\n";
  77. print "<td>".$extrafields->attribute_label[$key]."</td>\n";
  78. print "<td>".$key."</td>\n";
  79. print "<td>".$type2label[$extrafields->attribute_type[$key]]."</td>\n";
  80. print '<td align="right">'.$extrafields->attribute_size[$key]."</td>\n";
  81. print '<td align="center">'.yn($extrafields->attribute_unique[$key])."</td>\n";
  82. print '<td align="center">'.yn($extrafields->attribute_required[$key])."</td>\n";
  83. print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=edit&attrname='.$key.'">'.img_edit().'</a>';
  84. print "&nbsp; <a href=\"".$_SERVER["PHP_SELF"]."?action=delete&attrname=$key\">".img_delete()."</a></td>\n";
  85. print "</tr>";
  86. // $i++;
  87. }
  88. print "</table>";
  89. dol_fiche_end();
  90. // Buttons
  91. if ($action != 'create' && $action != 'edit')
  92. {
  93. print '<div class="tabsAction">';
  94. print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
  95. print "</div>";
  96. }
  97. /* ************************************************************************** */
  98. /* */
  99. /* Creation d'un champ optionnel
  100. /* */
  101. /* ************************************************************************** */
  102. if ($action == 'create')
  103. {
  104. print "<br>";
  105. print_titre($langs->trans('NewAttribute'));
  106. require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
  107. }
  108. /* ************************************************************************** */
  109. /* */
  110. /* Edition d'un champ optionnel */
  111. /* */
  112. /* ************************************************************************** */
  113. if ($action == 'edit' && ! empty($attrname))
  114. {
  115. print "<br>";
  116. print_titre($langs->trans("FieldEdition", $attrname));
  117. require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
  118. }
  119. llxFooter();
  120. $db->close();