36require
'../main.inc.php';
45require_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
46require_once DOL_DOCUMENT_ROOT.
'/core/lib/categories.lib.php';
47require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
50$langs->loadLangs(array(
"categories",
"compta",
"mrp",
"stocks"));
52$action =
GETPOST(
'action',
'aZ09') ?
GETPOST(
'action',
'aZ09') :
'view';
53$massaction =
GETPOST(
'massaction',
'alpha');
55$confirm =
GETPOST(
'confirm',
'alpha');
56$cancel =
GETPOST(
'cancel',
'alpha');
57$toselect =
GETPOST(
'toselect',
'array:int');
58$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'categorylist';
59$backtopage =
GETPOST(
'backtopage',
'alpha');
60$optioncss =
GETPOST(
'optioncss',
'aZ');
63$label =
GETPOST(
'label',
'alpha');
67if (
GETPOST(
'addintocategory')) {
68 $action =
'addintocategory';
74$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
75$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
77if (empty($page) || $page == -1 ||
GETPOST(
'button_search',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha') || (empty($toselect) && $massaction ===
'0')) {
80$offset = $limit * $page;
84if ($id ==
"" && $label ==
"") {
90$hookmanager->initHooks(array(
'categorycard',
'globalcard'));
93$result =
$object->fetch($id, $label);
103if (is_numeric($type)) {
104 $type = array_search($type,
$object->MAP_ID);
107$extrafields->fetch_name_optionals_label(
$object->table_element);
113if ($confirm ==
'no') {
115 header(
"Location: ".$backtopage);
119$parameters = array(
'type' => $type,
'id' => $id,
'label' => $label);
120$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
122if ($id > 0 && $removeelem > 0 && $action ==
'unlink') {
125 if ($type == Categorie::TYPE_PRODUCT && ($user->hasRight(
'produit',
'creer') || $user->hasRight(
'service',
'creer'))) {
126 require_once DOL_DOCUMENT_ROOT.
'/product/class/product.class.php';
128 $result = $tmpobject->fetch($removeelem);
129 $elementtype =
'product';
130 } elseif ($type == Categorie::TYPE_SUPPLIER && $user->hasRight(
'societe',
'creer')) {
132 $result = $tmpobject->fetch($removeelem);
133 $elementtype =
'supplier';
134 } elseif ($type == Categorie::TYPE_CUSTOMER && $user->hasRight(
'societe',
'creer')) {
136 $result = $tmpobject->fetch($removeelem);
137 $elementtype =
'customer';
138 } elseif ($type == Categorie::TYPE_MEMBER && $user->hasRight(
'adherent',
'creer')) {
139 require_once DOL_DOCUMENT_ROOT.
'/adherents/class/adherent.class.php';
141 $result = $tmpobject->fetch($removeelem);
142 $elementtype =
'member';
143 } elseif ($type == Categorie::TYPE_CONTACT && $user->hasRight(
'societe',
'creer')) {
144 require_once DOL_DOCUMENT_ROOT.
'/contact/class/contact.class.php';
146 $result = $tmpobject->fetch($removeelem);
147 $elementtype =
'contact';
148 } elseif ($type == Categorie::TYPE_ACCOUNT && $user->hasRight(
'banque',
'configurer')) {
149 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
151 $result = $tmpobject->fetch($removeelem);
152 $elementtype =
'account';
153 } elseif ($type == Categorie::TYPE_PROJECT && $user->hasRight(
'projet',
'creer')) {
154 require_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
156 $result = $tmpobject->fetch($removeelem);
157 $elementtype =
'project';
158 } elseif ($type == Categorie::TYPE_USER && $user->hasRight(
'user',
'user',
'creer')) {
159 require_once DOL_DOCUMENT_ROOT.
'/user/class/user.class.php';
161 $result = $tmpobject->fetch($removeelem);
162 $elementtype =
'user';
163 } elseif ($type == Categorie::TYPE_TICKET && $user->hasRight(
'ticket',
'write')) {
164 require_once DOL_DOCUMENT_ROOT.
'/ticket/class/ticket.class.php';
166 $result = $tmpobject->fetch($removeelem);
167 $elementtype =
'ticket';
168 } elseif ($type == Categorie::TYPE_FICHINTER && $user->hasRight(
'ficheinter',
'write')) {
169 require_once DOL_DOCUMENT_ROOT.
'/fichinter/class/fichinter.class.php';
171 $result = $tmpobject->fetch($removeelem);
172 $elementtype =
'fichinter';
173 } elseif ($type == Categorie::TYPE_ORDER && $user->hasRight(
'commande',
'creer')) {
174 require_once DOL_DOCUMENT_ROOT.
'/commande/class/commande.class.php';
176 $result = $tmpobject->fetch($removeelem);
177 $elementtype =
'order';
178 } elseif ($type == Categorie::TYPE_MO && $user->hasRight(
'mrp',
'write')) {
179 require_once DOL_DOCUMENT_ROOT.
'/mrp/class/mo.class.php';
180 $tmpobject =
new Mo(
$db);
181 $result = $tmpobject->fetch($removeelem);
183 } elseif ($type == Categorie::TYPE_INVOICE && $user->hasRight(
'facture',
'creer')) {
184 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
186 $result = $tmpobject->fetch($removeelem);
187 $elementtype =
'invoice';
188 } elseif ($type == Categorie::TYPE_SUPPLIER_ORDER && $user->hasRight(
'fournisseur',
'commande',
'creer')) {
189 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.commande.class.php';
191 $result = $tmpobject->fetch($removeelem);
192 $elementtype =
'supplier_order';
198 if ($tmpobject !==
null) {
200 $result =
$object->del_type($tmpobject, $elementtype);
207if ($user->hasRight(
'categorie',
'supprimer') && $action ==
'confirm_delete' && $confirm ==
'yes') {
208 if (
$object->delete($user) >= 0) {
210 header(
"Location: ".$backtopage);
213 header(
"Location: ".
dolBuildUrl(DOL_URL_ROOT.
'/categories/categorie_list.php', [
'type' => $type]));
221if ($elemid && $action ==
'addintocategory') {
224 if ($type == Categorie::TYPE_PRODUCT && ($user->hasRight(
'produit',
'creer') || $user->hasRight(
'service',
'creer'))) {
225 require_once DOL_DOCUMENT_ROOT.
'/product/class/product.class.php';
227 $elementtype =
'product';
228 } elseif ($type == Categorie::TYPE_CUSTOMER && $user->hasRight(
'societe',
'creer')) {
229 require_once DOL_DOCUMENT_ROOT.
'/societe/class/societe.class.php';
231 $elementtype =
'customer';
232 } elseif ($type == Categorie::TYPE_SUPPLIER && $user->hasRight(
'societe',
'creer')) {
233 require_once DOL_DOCUMENT_ROOT.
'/societe/class/societe.class.php';
235 $elementtype =
'supplier';
236 } elseif ($type == Categorie::TYPE_TICKET && $user->hasRight(
'ticket',
'write')) {
237 require_once DOL_DOCUMENT_ROOT.
'/ticket/class/ticket.class.php';
239 $elementtype =
'ticket';
240 } elseif ($type == Categorie::TYPE_FICHINTER && $user->hasRight(
'ficheinter',
'write')) {
241 require_once DOL_DOCUMENT_ROOT.
'/fichinter/class/fichinter.class.php';
243 $elementtype =
'fichinter';
244 } elseif ($type == Categorie::TYPE_PROJECT && $user->hasRight(
'projet',
'creer')) {
245 require_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
247 $elementtype =
'project';
248 } elseif ($type == Categorie::TYPE_MEMBER && $user->hasRight(
'adherent',
'creer')) {
249 require_once DOL_DOCUMENT_ROOT.
'/adherents/class/adherent.class.php';
251 $elementtype =
'member';
252 } elseif ($type == Categorie::TYPE_CONTACT && $user->hasRight(
'societe',
'creer')) {
253 require_once DOL_DOCUMENT_ROOT.
'/contact/class/contact.class.php';
255 $elementtype =
'contact';
256 } elseif ($type == Categorie::TYPE_USER && $user->hasRight(
'user',
'user',
'creer')) {
257 require_once DOL_DOCUMENT_ROOT.
'/user/class/user.class.php';
259 $elementtype =
'user';
260 } elseif ($type == Categorie::TYPE_ACCOUNT && $user->hasRight(
'banque',
'configurer')) {
261 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
263 $elementtype =
'bank_account';
264 } elseif ($type == Categorie::TYPE_ORDER && $user->hasRight(
'commande',
'creer')) {
265 require_once DOL_DOCUMENT_ROOT.
'/commande/class/commande.class.php';
267 $elementtype =
'order';
268 } elseif ($type == Categorie::TYPE_MO && $user->hasRight(
'mrp',
'write')) {
269 require_once DOL_DOCUMENT_ROOT.
'/mrp/class/mo.class.php';
270 $newobject =
new Mo(
$db);
272 } elseif ($type == Categorie::TYPE_INVOICE && $user->hasRight(
'facture',
'creer')) {
273 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
275 $elementtype =
'invoice';
276 } elseif ($type == Categorie::TYPE_SUPPLIER_ORDER && $user->hasRight(
'fournisseur',
'commande',
'creer')) {
277 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.commande.class.php';
279 $elementtype =
'supplier_order';
280 } elseif ($type == Categorie::TYPE_SUPPLIER_INVOICE && $user->hasRight(
'fournisseur',
'facture',
'creer')) {
281 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
283 $elementtype =
'supplier_invoice';
287 if ($newobject !==
null) {
288 $result = $newobject->fetch($elemid);
291 if ($result >= 0 && $newobject !==
null) {
293 $result =
$object->add_type($newobject, $elementtype);
296 setEventMessages($langs->trans(
"WasAddedSuccessfully", $newobject->ref),
null,
'mesgs');
298 if (
$object->error ==
'DB_ERROR_RECORD_ALREADY_EXISTS') {
299 setEventMessages($langs->trans(
"ObjectAlreadyLinkedToCategory"),
null,
'warnings');
315 '/public/includes/jquery/plugins/jquerytreeview/jquery.treeview.js',
316 '/public/includes/jquery/plugins/jquerytreeview/lib/jquery.cookie.js'
318$arrayofcss = array(
'/public/includes/jquery/plugins/jquerytreeview/jquery.treeview.css');
322llxHeader(
"", $langs->trans(
"Categories"), $help_url,
'', 0, 0, $arrayofjs, $arrayofcss);
324$title = $langs->trans(
"Categories");
325$title .=
' ('.$langs->trans(empty(Categorie::$MAP_TYPE_TITLE_AREA[$type]) ? ucfirst($type) :
Categorie::$MAP_TYPE_TITLE_AREA[$type]).
')';
330$backtolist = (
GETPOST(
'backtolist') ?
GETPOST(
'backtolist') : DOL_URL_ROOT.
'/categories/categorie_list.php?leftmenu=cat&type='.urlencode($type));
331$linkback =
'<a href="'.dol_sanitizeUrl($backtolist).
'">'.$langs->trans(
"BackToList").
'</a>';
334$morehtmlref =
'<br><div class="refidno"><a href="'.DOL_URL_ROOT.
'/categories/categorie_list.php?leftmenu=cat&type='.urlencode($type).
'">'.$langs->trans(
"Root").
'</a>';
335$morehtmlref .=
' > ';
336$ways =
$object->print_all_ways(
"auto",
'', 1, 0, 1);
337foreach ($ways as $way) {
338 $morehtmlref .= $way.
"<br>\n";
340$morehtmlref .=
'</div>';
342dol_banner_tab($object,
'label', $linkback, ($user->socid ? 0 : 1),
'label',
'label', $morehtmlref,
'&type='.urlencode($type), 0,
'',
'', 1);
346if ($action ==
'delete') {
348 print $form->formconfirm($_SERVER[
"PHP_SELF"].
'?id='.
$object->id.
'&type='.urlencode($type).
'&backtopage='.urlencode($backtopage), $langs->trans(
'DeleteCategory'), $langs->trans(
'ConfirmDeleteCategory'),
'confirm_delete',
'',
'', 2);
350 print $form->formconfirm($_SERVER[
"PHP_SELF"].
'?id='.
$object->id.
'&type='.urlencode($type), $langs->trans(
'DeleteCategory'), $langs->trans(
'ConfirmDeleteCategory'),
'confirm_delete',
'',
'', 1);
356print
'<div class="fichecenter">';
357print
'<div class="underbanner clearboth"></div>';
358print
'<table class="border centpercent tableforfield">';
361print
'<tr><td class="titlefield notopnoleft tdtop">';
362print $langs->trans(
"Description").
'</td><td>';
367print
'<tr><td class="notopnoleft">';
368print $langs->trans(
"Color").
'</td><td>';
369print $formother->showColor(
$object->color);
373print
'<tr><td class="titlefield notopnoleft">';
374print $langs->trans(
"Position").
'</td><td>';
379include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_view.tpl.php';
391print
"<div class='tabsAction'>\n";
392$reshook = $hookmanager->executeHooks(
'addMoreActionsButtons', $parameters, $object, $action);
396if (empty($reshook)) {
397 if ($user->hasRight(
'categorie',
'creer')) {
399 print
'<a class="butAction" href="'.dolBuildUrl(DOL_URL_ROOT.
'/categories/edit.php', [
'id' =>
$object->id,
'socid' => $socid,
'type' => $type]).
'">'.$langs->trans(
"Modify").
'</a>';
402 if ($user->hasRight(
'categorie',
'supprimer')) {
403 print
'<a class="butActionDelete" href="'.dolBuildUrl($_SERVER[
"PHP_SELF"], [
'action' =>
'delete',
'id' =>
$object->id,
'type' => $type,
'backtolist' => $backtolist],
true).
'">'.$langs->trans(
"Delete").
'</a>';
410if ($user->hasRight(
'categorie',
'creer')) {
411 $link =
dolBuildUrl(DOL_URL_ROOT.
'/categories/card.php', [
'action'=>
'create',
'type' => $type,
'catorigin' =>
$object->id,
'backtopage' =>
dolBuildUrl($_SERVER[
"PHP_SELF"], [
'type' => $type,
'id' => $id])]);
413 $newcardbutton =
'<div class="right">';
414 $newcardbutton .= dolGetButtonTitle($langs->trans(
'NewCategory'),
'',
'fa fa-plus-circle', $link);
415 $newcardbutton .=
'</div>';
423print
'<div class="fichecenter">';
425print
load_fiche_titre($langs->trans(
"SubCats"), $newcardbutton,
'object_category');
429print
'<table class="liste nohover noborder centpercent borderbottom">';
431print
'<tr class="liste_titre">';
432print
'<td>'.$langs->trans(
"SubCats").
'</td>';
434print
'<td class="right">';
436if (is_array($cats) && count($cats) > 1 && !empty(
$conf->use_javascript_ajax)) {
437 print
'<div id="iddivjstreecontrol">';
438 print
'<a class="notasortlink" href="#">'.img_picto(
'',
'folder').
' '.$langs->trans(
"UndoExpandAll").
'</a>';
440 print
'<a class="notasortlink" href="#">'.img_picto(
'',
'folder-open').
' '.$langs->trans(
"ExpandAll").
'</a>';
447if (is_numeric($cats) && $cats < 0) {
449} elseif (count($cats) < 1) {
450 print
'<tr class="oddeven nobottom nohover">';
451 print
'<td colspan="3"><span class="opacitymedium">'.$langs->trans(
"NoSubCat").
'</span></td>';
456 $fulltree = $categstatic->get_full_arbo($type,
$object->id, 1);
460 if ($type == Categorie::TYPE_MEMBER) {
461 require_once DOL_DOCUMENT_ROOT.
'/adherents/class/adherent.class.php';
463 if ($type == Categorie::TYPE_ACCOUNT) {
464 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
466 if ($type == Categorie::TYPE_PROJECT) {
467 require_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
469 if ($type == Categorie::TYPE_USER) {
470 require_once DOL_DOCUMENT_ROOT.
'/user/class/user.class.php';
476 $data[] = array(
'rowid' => 0,
'fk_menu' => -1,
'title' =>
'racine',
'mainmenu' =>
'',
'leftmenu' =>
'',
'fk_mainmenu' =>
'',
'fk_leftmenu' =>
'');
477 foreach ($fulltree as $key => $val) {
478 $categstatic->id = $val[
'id'];
479 $categstatic->ref = $val[
'label'];
480 $categstatic->color = $val[
'color'];
481 $categstatic->type = $type;
487 $elements = $categstatic->getObjectsInCateg($type, 1);
489 $counter =
"<td class='left' width='40px;'>".(is_array($elements) ? count($elements) :
'0').
"</td>";
492 if ($categstatic->color) {
493 $stylecolor =
' style="background: #'.sprintf(
"%06s", $categstatic->color).
';"';
495 $stylecolor =
' style="background: #bbb;"';
497 $li = $categstatic->getNomUrl(1,
'', 60,
'&backtolist='.urlencode($_SERVER[
"PHP_SELF"].
'?id='.((
int) $id).
'&type='.urlencode($type)), 0);
499 $entry =
'<table class="nobordernopadding centpercent">';
503 $entry .=
'<span class="noborderoncategories" '.$stylecolor.
'>'.$li.
'</span>';
508 $entry .=
'<td class="right" width="20px;">';
509 $entry .=
'<a href="'.DOL_URL_ROOT.
'/categories/viewcat.php?id='.$val[
'id'].
'&type='.urlencode($type).
'&backtolist='.urlencode($_SERVER[
"PHP_SELF"].
'?id='.
$id.
'&type='.urlencode($type)).
'">'.
img_view().
'</a>';
511 $entry .=
'<td class="right" width="20px;">';
512 $entry .=
'<a class="editfielda" href="'.DOL_URL_ROOT.
'/categories/edit.php?id='.$val[
'id'].
'&type='.urlencode($type).
'&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?id='.
$id.
'&type='.urlencode($type)).
'">'.
img_edit().
'</a>';
514 $entry .=
'<td class="right" width="20px;">';
515 $entry .=
'<a class="deletefilelink" href="'.DOL_URL_ROOT.
'/categories/viewcat.php?action=delete&token='.newToken().
'&id='.$val[
'id'].
'&type='.urlencode($type).
'&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?id='.
$id.
'&type='.urlencode($type)).
'&backtolist='.urlencode($_SERVER[
"PHP_SELF"].
'?id='.
$id.
'&type='.urlencode($type)).
'">'.
img_delete().
'</a>';
519 $entry .=
'</table>';
521 $data[] = array(
'rowid' => $val[
'rowid'],
'fk_menu' => $val[
'fk_parent'],
'entry' => $entry);
524 $nbofentries = (count($data) - 1);
525 if ($nbofentries > 0) {
526 require_once DOL_DOCUMENT_ROOT.
'/core/lib/treeview.lib.php';
527 print
'<tr class="pair">';
528 print
'<td colspan="3">';
536 print
'<tr class="pair">';
537 print
'<td colspan="3">';
538 print
'<table class="nobordernopadding">';
540 print
'<tr class="nobordernopadding">';
541 print
'<td>'.img_picto_common(
'',
'treemenu/branchbottom.gif').
'</td>';
542 print
'<td class="valignmiddle"><span class="opacitymedium">'.$langs->trans(
"NoCategoryYet").
'</span></td>';
543 print
'<td> </td>';
556$arrayofmassactions = array(
562$massactionbutton = $form->selectMassAction(
'', $arrayofmassactions);
568if ($type == Categorie::TYPE_PRODUCT) {
569 if ($user->hasRight(
"product",
"read") || $user->hasRight(
"service",
"read")) {
570 $permission = ($user->hasRight(
'produit',
'creer') || $user->hasRight(
'service',
'creer'));
571 $showclassifyform = ($user->hasRight(
'produit',
'creer') || $user->hasRight(
'service',
'creer'));
573 $prods =
$object->getObjectsInCateg($type, 0, $limit, $offset,
'ref');
578 '@phan-var-force Product[] $prods';
580 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
581 print
'<input type="hidden" name="token" value="'.newToken().
'">';
582 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
583 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
584 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
585 print
'<input type="hidden" name="page_y" value="">';
586 print
'<input type="hidden" name="action" value="list">';
589 $param =
'&limit='.$limit.
'&id='.
$id.
'&type='.$type;
590 $num = count($prods);
591 $nbtotalofrecords =
'';
592 $newcardbutton = dolGetButtonTitle($langs->trans(
"AddProduct"),
'',
'fa fa-plus-circle', DOL_URL_ROOT.
'/product/card.php?action=create&categories[]='.
$object->id.
'&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?id='.
$object->id),
'', $user->hasRight(
'societe',
'creer'));
595 print_barre_liste($langs->trans(
"ProductsAndServices"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'products', 0, $newcardbutton,
'', $limit);
597 if ($showclassifyform) {
598 print
'<table class="noborder centpercent">';
599 print
'<tr class="liste_titre"><td>';
600 print $langs->trans(
"AddProductServiceIntoCategory").
' ';
601 $form->select_produits(0,
'elemid',
'', 0, 0, -1, 2,
'', 1, array(), 0, 1, 0,
'', 0,
'',
null);
602 print
'<input type="submit" class="button buttongen" name="addintocategory" value="'.$langs->trans(
"ClassifyInCategory").
'"></td>';
607 print
'<table class="noborder centpercent">'.
"\n";
608 print
'<tr class="liste_titre"><td colspan="4">'.$langs->trans(
"Ref").
'</td></tr>'.
"\n";
610 if (count($prods) > 0) {
612 foreach ($prods as
$prod) {
618 print
'<tr class="oddeven">'.
"\n";
619 print
'<td class="nowrap tdtop">';
620 print
$prod->getNomUrl(1);
623 $product_thumbnail_html =
'';
624 if (!empty(
$prod->entity)) {
625 $product_thumbnail =
$prod->show_photos(
'product',
$conf->product->multidir_output[(
int)
$prod->entity], 1, 1, 0, 0, 0, 80);
626 if (
$prod->nbphoto > 0) {
627 $product_thumbnail_html = $product_thumbnail;
630 print
'<td class="left">' . $product_thumbnail_html .
'</td>';
631 $product_stock_info =
"";
632 if (
isModEnabled(
"stock") && ($user->hasRight(
"stock",
"read"))) {
633 $product_stock_info =
"<br>" . $langs->trans(
"Stock") .
": " .
$prod->stock_reel;
639 print
'<td class="right">';
641 print
'<a class="reposition" href= "'.$_SERVER[
'PHP_SELF'].
"?".(empty($socid) ?
'id' :
'socid').
"=".((
int)
$object->id).
"&type=".urlencode($typeid).
"&action=unlink&token=".newToken().
"&removeelem=".((int)
$prod->id).($limit ?
'&limit='.$limit :
'').
'">';
643 print
img_picto($langs->trans(
"DeleteFromCat"),
'unlink',
'', 0, 0, 0,
'',
'paddingleft');
650 print
'<tr class="oddeven"><td colspan="2"><span class="opacitymedium">'.$langs->trans(
"ThisCategoryHasNoItems").
'</span></td></tr>';
657 print_barre_liste($langs->trans(
"ProductsAndServices"),
null, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', 0,
'',
'products');
663if ($type == Categorie::TYPE_CUSTOMER) {
664 if ($user->hasRight(
"societe",
"read")) {
665 $permission = $user->hasRight(
'societe',
'creer');
666 $showclassifyform = $user->hasRight(
'societe',
'creer');
668 $socs =
$object->getObjectsInCateg($type, 0, $limit, $offset,
'nom');
673 '@phan-var-force Societe[] $socs';
675 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
676 print
'<input type="hidden" name="token" value="'.newToken().
'">';
677 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
678 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
679 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
680 print
'<input type="hidden" name="action" value="list">';
681 print
'<input type="hidden" name="page_y" value="">';
684 $param =
'&limit='.$limit.
'&id='.
$id.
'&type='.$type;
686 $nbtotalofrecords =
'';
687 $newcardbutton = dolGetButtonTitle($langs->trans(
"AddThirdParty"),
'',
'fa fa-plus-circle', DOL_URL_ROOT.
'/societe/card.php?action=create&customer=3&custcats[]='.
$object->id.
'&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?id='.
$object->id),
'', $user->hasRight(
'societe',
'creer'));
690 print_barre_liste($langs->trans(
"Customers"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'companies', 0, $newcardbutton,
'', $limit);
692 if ($showclassifyform) {
693 print
'<table class="noborder centpercent">';
694 print
'<tr class="liste_titre"><td>';
695 print $langs->trans(
"AddCustomerIntoCategory").
' ';
696 $filter =
'(s.client:IN:1,2,3)';
697 print $form->select_company(
'',
'elemid', $filter);
698 print
'<input type="submit" class="reposition button buttongen" name="addintocategory" value="'.$langs->trans(
"ClassifyInCategory").
'"></td>';
703 print
'<table class="noborder centpercent">'.
"\n";
704 print
'<tr class="liste_titre"><td colspan="2">'.$langs->trans(
"Name").
'</td></tr>'.
"\n";
706 if (count($socs) > 0) {
708 foreach ($socs as $key => $soc) {
714 print
"\t".
'<tr class="oddeven">'.
"\n";
715 print
'<td class="nowrap tdtop tdoverflowmax250">';
716 print $soc->getNomUrl(1);
719 print
'<td class="right">';
721 print
"<a href= '".$_SERVER[
'PHP_SELF'].
"?".(empty($socid) ?
'id' :
'socid').
"=".
$object->id.
"&type=".urlencode($typeid).
"&action=unlink&token=".newToken().
"&removeelem=".((int) $soc->id).($limit ?
'&limit='.$limit :
'').
"'>";
723 print
img_picto($langs->trans(
"DeleteFromCat"),
'unlink',
'', 0, 0, 0,
'',
'paddingleft');
730 print
'<tr class="oddeven"><td colspan="2"><span class="opacitymedium">'.$langs->trans(
"ThisCategoryHasNoItems").
'</span></td></tr>';
737 print_barre_liste($langs->trans(
"Customers"),
null, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', 0,
'',
'companies');
743if ($type == Categorie::TYPE_SUPPLIER) {
744 if ($user->hasRight(
"fournisseur",
"read")) {
745 $permission = $user->hasRight(
'societe',
'creer');
746 $showclassifyform = $user->hasRight(
'societe',
'creer');
748 $socs =
$object->getObjectsInCateg($type, 0, $limit, $offset,
'nom');
754 '@phan-var-force Fournisseur[] $socs';
756 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
757 print
'<input type="hidden" name="token" value="'.newToken().
'">';
758 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
759 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
760 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
761 print
'<input type="hidden" name="page_y" value="">';
762 print
'<input type="hidden" name="action" value="list">';
765 $param =
'&limit='.$limit.
'&id='.
$id.
'&type='.$type;
767 $nbtotalofrecords =
'';
768 $newcardbutton = dolGetButtonTitle($langs->trans(
"AddSupplier"),
'',
'fa fa-plus-circle', DOL_URL_ROOT.
'/societe/card.php?action=create&fournisseur=1&suppcats[]='.
$object->id.
'&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?id='.
$object->id),
'', $user->hasRight(
'societe',
'creer'));
771 print_barre_liste($langs->trans(
"Suppliers"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'companies', 0, $newcardbutton,
'', $limit);
773 if ($showclassifyform) {
774 print
'<table class="noborder centpercent">';
775 print
'<tr class="liste_titre"><td>';
776 print $langs->trans(
"AddSupplierIntoCategory").
' ';
777 $filter =
'(s.fournisseur:=:1)';
778 print $form->select_company(
'',
'elemid', $filter);
779 print
'<input type="submit" class="button buttongen" name="addintocategory" value="'.$langs->trans(
"ClassifyInCategory").
'"></td>';
784 print
'<table class="noborder centpercent">'.
"\n";
785 print
'<tr class="liste_titre"><td colspan="2">'.$langs->trans(
"Name").
"</td></tr>\n";
787 if (count($socs) > 0) {
789 foreach ($socs as $soc) {
795 print
"\t".
'<tr class="oddeven">'.
"\n";
796 print
'<td class="nowrap tdtop">';
797 print $soc->getNomUrl(1);
800 print
'<td class="right">';
802 print
'<a class="reposition" href="'.$_SERVER[
'PHP_SELF'].
"?".(empty($socid) ?
'id' :
'socid').
"=".
$object->id.
"&type=".urlencode($typeid).
"&action=unlink&token=".newToken().
"&removeelem=".((int) $soc->id).($limit ?
'&limit='.$limit :
'').
'">';
804 print
img_picto($langs->trans(
"DeleteFromCat"),
'unlink',
'', 0, 0, 0,
'',
'paddingleft');
812 print
'<tr class="oddeven"><td colspan="2"><span class="opacitymedium">'.$langs->trans(
"ThisCategoryHasNoItems").
'</span></td></tr>';
819 print_barre_liste($langs->trans(
"Suppliers"),
null, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', 0,
'',
'companies');
825if ($type == Categorie::TYPE_MEMBER) {
826 if ($user->hasRight(
"adherent",
"read")) {
827 require_once DOL_DOCUMENT_ROOT.
'/adherents/class/adherent.class.php';
829 $permission = $user->hasRight(
'adherent',
'creer');
830 $showclassifyform = $user->hasRight(
'adherent',
'creer');
832 $members =
$object->getObjectsInCateg($type, 0, $limit, $offset,
'lastname');
837 '@phan-var-force Adherent[] $members';
839 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
840 print
'<input type="hidden" name="token" value="'.newToken().
'">';
841 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
842 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
843 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
844 print
'<input type="hidden" name="page_y" value="">';
845 print
'<input type="hidden" name="action" value="list">';
848 $param =
'&limit='.$limit.
'&id='.
$id.
'&type='.$type;
849 $num = count($members);
850 $nbtotalofrecords =
'';
851 $newcardbutton = dolGetButtonTitle($langs->trans(
"AddMember"),
'',
'fa fa-plus-circle', DOL_URL_ROOT.
'/adherents/card.php?action=create&memcats[]='.
$object->id.
'&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?id='.
$object->id),
'', $user->hasRight(
'adherent',
'creer'));
854 print_barre_liste($langs->trans(
"Member"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'members', 0, $newcardbutton,
'', $limit);
856 if ($showclassifyform) {
857 print
'<table class="noborder centpercent">';
858 print
'<tr class="liste_titre"><td>';
859 print $langs->trans(
"AssignCategoryTo").
' ';
860 print $form->selectMembers(
'',
'elemid');
861 print
'<input type="submit" class="button buttongen" value="'.$langs->trans(
"Save").
'"></td>';
866 print
'<table class="noborder centpercent">'.
"\n";
867 print
'<tr class="liste_titre"><td colspan="4">'.$langs->trans(
"Name").
'</td></tr>'.
"\n";
869 if (count($members) > 0) {
871 foreach ($members as $key => $member) {
877 print
"\t".
'<tr class="oddeven">'.
"\n";
878 print
'<td class="nowrap tdtop">';
879 $member->ref = $member->login;
880 print $member->getNomUrl(1, 0);
882 print
'<td class="tdtop">'.$member->lastname.
"</td>\n";
883 print
'<td class="tdtop">'.$member->firstname.
"</td>\n";
885 print
'<td class="right">';
887 print
"<a href= '".$_SERVER[
'PHP_SELF'].
"?".(empty($socid) ?
'id' :
'socid').
"=".
$object->id.
"&type=".urlencode($typeid).
"&action=unlink&token=".newToken().
"&removeelem=".((int) $member->id).($limit ?
'&limit='.$limit :
'').
"'>";
889 print
img_picto($langs->trans(
"DeleteFromCat"),
'unlink',
'', 0, 0, 0,
'',
'paddingleft');
896 print
'<tr class="oddeven"><td colspan="4"><span class="opacitymedium">'.$langs->trans(
"ThisCategoryHasNoItems").
'</span></td></tr>';
903 print_barre_liste($langs->trans(
"Member"),
null, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', 0,
'',
'members');
909if ($type == Categorie::TYPE_CONTACT) {
910 if ($user->hasRight(
"societe",
"read")) {
911 $permission = $user->hasRight(
'societe',
'creer');
912 $showclassifyform = $user->hasRight(
'societe',
'creer');
914 $contacts =
$object->getObjectsInCateg($type, 0, $limit, $offset,
'lastname');
915 if (is_numeric($contacts) && $contacts < 0) {
919 '@phan-var-force Contact[] $contacts';
921 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
922 print
'<input type="hidden" name="token" value="'.newToken().
'">';
923 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
924 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
925 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
926 print
'<input type="hidden" name="page_y" value="">';
927 print
'<input type="hidden" name="action" value="list">';
930 $param =
'&limit='.$limit.
'&id='.
$id.
'&type='.$type;
931 $num = count($contacts);
932 $nbtotalofrecords =
'';
933 $newcardbutton = dolGetButtonTitle($langs->trans(
"AddContact"),
'',
'fa fa-plus-circle', DOL_URL_ROOT.
'/contact/card.php?action=create&contcats[]='.
$object->id.
'&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?id='.
$object->id),
'', $user->hasRight(
'societe',
'creer'));
938 print_barre_liste($langs->trans(
"Contact"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'contact', 0, $newcardbutton,
'', $limit);
940 if ($showclassifyform) {
941 print
'<table class="noborder centpercent">';
942 print
'<tr class="liste_titre"><td>';
943 print $langs->trans(
"AssignCategoryTo").
' ';
944 print $form->select_contact(0,
'',
'elemid',
'',
'',
'', 0,
'maxwidth300 widthcentpercentminusx');
945 print
'<input type="submit" class="button buttongen" name="addintocategory" value="'.$langs->trans(
"ClassifyInCategory").
'"></td>';
950 print
'<table class="noborder centpercent">'.
"\n";
951 print
'<tr class="liste_titre"><td colspan="2">'.$langs->trans(
"Ref").
'</td></tr>'.
"\n";
953 if (is_array($contacts) && count($contacts) > 0) {
955 foreach ($contacts as $key => $contact) {
961 print
"\t".
'<tr class="oddeven">'.
"\n";
962 print
'<td class="nowrap tdtop">';
963 print $contact->getNomUrl(1,
'category');
964 if ($contact->socid > 0) {
965 $objsoc->fetch($contact->socid);
967 print $objsoc->getNomUrl(1,
'contact');
971 print
'<td class="right">';
973 print
"<a href= '".$_SERVER[
'PHP_SELF'].
"?".(empty($socid) ?
'id' :
'socid').
"=".
$object->id.
"&type=".urlencode($typeid).
"&action=unlink&token=".newToken().
"&removeelem=".((int) $contact->id).($limit ?
'&limit='.$limit :
'').
"'>";
975 print
img_picto($langs->trans(
"DeleteFromCat"),
'unlink',
'', 0, 0, 0,
'',
'paddingleft');
982 print
'<tr class="oddeven"><td colspan="2"><span class="opacitymedium">'.$langs->trans(
"ThisCategoryHasNoItems").
'</span></td></tr>';
989 print_barre_liste($langs->trans(
"Contact"),
null, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', 0,
'',
'contact');
995if ($type == Categorie::TYPE_ACCOUNT) {
996 if ($user->hasRight(
"banque",
"read")) {
997 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
999 $permission = $user->hasRight(
'banque',
'creer');
1000 $showclassifyform = $user->hasRight(
'banque',
'creer');
1002 $accounts =
$object->getObjectsInCateg($type, 0, $limit, $offset);
1003 if ($accounts < 0) {
1007 '@phan-var-force Account[] $accounts';
1009 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
1010 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1011 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
1012 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
1013 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
1014 print
'<input type="hidden" name="page_y" value="">';
1015 print
'<input type="hidden" name="action" value="list">';
1018 $param =
'&limit='.$limit.
'&id='.
$id.
'&type='.$type;
1019 $num = count($accounts);
1020 $nbtotalofrecords =
'';
1021 $newcardbutton =
'';
1024 print_barre_liste($langs->trans(
"Account"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'bank_account', 0, $newcardbutton,
'', $limit);
1026 if ($showclassifyform) {
1027 print
'<table class="noborder centpercent">';
1028 print
'<tr class="liste_titre"><td>';
1029 print $langs->trans(
"AddObjectIntoCategory").
' ';
1030 print $form->select_comptes(
'',
'elemid', 0,
'', 0,
'', 0,
'', 1);
1031 print
'<input type="submit" class="button buttongen" name="addintocategory" value="'.$langs->trans(
"ClassifyInCategory").
'"></td>';
1036 print
'<table class="noborder centpercent">'.
"\n";
1037 print
'<tr class="liste_titre"><td colspan="4">'.$langs->trans(
"Ref").
'</td></tr>'.
"\n";
1039 if (count($accounts) > 0) {
1041 foreach ($accounts as $key => $account) {
1047 print
"\t".
'<tr class="oddeven">'.
"\n";
1048 print
'<td class="nowrap tdtop">';
1049 print $account->getNomUrl(1,
'0');
1051 print
'<td class="tdtop">'.$account->bank.
"</td>\n";
1052 print
'<td class="tdtop">'.$account->number.
"</td>\n";
1054 print
'<td class="right">';
1056 print
"<a href= '".$_SERVER[
'PHP_SELF'].
"?".(empty($socid) ?
'id' :
'socid').
"=".
$object->id.
"&type=".urlencode($typeid).
"&action=unlink&token=".newToken().
"&removeelem=".((int) $account->id).($limit ?
'&limit='.$limit :
'').
"'>";
1058 print
img_picto($langs->trans(
"DeleteFromCat"),
'unlink',
'', 0, 0, 0,
'',
'paddingleft');
1065 print
'<tr class="oddeven"><td colspan="4"><span class="opacitymedium">'.$langs->trans(
"ThisCategoryHasNoItems").
'</span></td></tr>';
1072 print_barre_liste($langs->trans(
"Banque"),
null, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', 0,
'',
'bank');
1078if ($type == Categorie::TYPE_PROJECT) {
1079 if ($user->hasRight(
"project",
"read")) {
1080 require_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
1082 $permission = $user->hasRight(
'projet',
'creer');
1083 $showclassifyform = $user->hasRight(
'projet',
'creer');
1085 $objects =
$object->getObjectsInCateg($type, 0, $limit, $offset);
1090 '@phan-var-force Project[] $objects';
1092 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
1093 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1094 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
1095 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
1096 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
1097 print
'<input type="hidden" name="page_y" value="">';
1098 print
'<input type="hidden" name="action" value="list">';
1101 $param =
'&limit='.$limit.
'&id='.
$id.
'&type='.$type;
1102 $num = count($objects);
1103 $nbtotalofrecords =
'';
1104 $newcardbutton =
'';
1107 print_barre_liste($langs->trans(
"Project"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'project', 0, $newcardbutton,
'', $limit);
1109 if ($showclassifyform) {
1110 print
'<table class="noborder centpercent">';
1111 print
'<tr class="liste_titre"><td>';
1112 print $langs->trans(
"AddObjectIntoCategory").
' ';
1113 $form->selectProjects(
'',
'elemid');
1114 print
'<input type="submit" class="button buttongen" name="addintocategory" value="'.$langs->trans(
"ClassifyInCategory").
'"></td>';
1119 print
'<table class="noborder centpercent">'.
"\n";
1120 print
'<tr class="liste_titre"><td colspan="4">'.$langs->trans(
"Ref").
'</td></tr>'.
"\n";
1122 if (count($objects) > 0) {
1124 foreach ($objects as $key => $project) {
1130 print
"\t".
'<tr class="oddeven">'.
"\n";
1131 print
'<td class="nowrap tdtop">';
1132 print $project->getNomUrl(1);
1134 print
'<td class="tdtop">'.$project->title.
"</td>\n";
1136 print
'<td class="right">';
1138 print
"<a href= '".$_SERVER[
'PHP_SELF'].
"?".(empty($socid) ?
'id' :
'socid').
"=".
$object->id.
"&type=".urlencode($typeid).
"&action=unlink&token=".newToken().
"&removeelem=".((int) $project->id).($limit ?
'&limit='.$limit :
'').
"'>";
1140 print
img_picto($langs->trans(
"DeleteFromCat"),
'unlink',
'', 0, 0, 0,
'',
'paddingleft');
1147 print
'<tr class="oddeven"><td colspan="4"><span class="opacitymedium">'.$langs->trans(
"ThisCategoryHasNoItems").
'</span></td></tr>';
1154 print_barre_liste($langs->trans(
"Project"),
null, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', 0,
'',
'project');
1160if ($type == Categorie::TYPE_USER) {
1161 if ($user->hasRight(
"user",
"user",
"read")) {
1162 require_once DOL_DOCUMENT_ROOT.
'/user/class/user.class.php';
1163 $showclassifyform = $user->hasRight(
"user",
"user",
"creer");
1165 $users =
$object->getObjectsInCateg($type, 0, 0, 0,
'lastname');
1170 '@phan-var-force User[] $users';
1173 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
1174 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1175 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
1176 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
1177 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
1178 print
'<input type="hidden" name="page_y" value="">';
1179 print
'<input type="hidden" name="action" value="list">';
1183 $param =
'&limit='.$limit.
'&id='.
$id.
'&type='.$type;
1184 $num = count($users);
1185 $nbtotalofrecords =
'';
1186 $newcardbutton =
'';
1189 print_barre_liste($langs->trans(
"Users"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'user', 0,
'',
'', $limit);
1191 if ($showclassifyform) {
1192 print
'<table class="noborder centpercent">';
1193 print
'<tr class="liste_titre"><td>';
1195 print
img_picto(
'', $type,
'class="pictofixedwidth"');
1196 print $form->select_dolusers(
'',
'elemid', 1,
null, 0,
'',
'', $force_entity);
1197 print
'<input type="submit" class="button buttongen" name="addintocategory" value="'.$langs->trans(
"ClassifyInCategory").
'"></td>';
1202 print
'<table class="noborder centpercent">'.
"\n";
1203 print
'<tr class="liste_titre"><td colspan="3">'.$langs->trans(
"Users").
' <span class="badge">'.$num.
'</span></td></tr>'.
"\n";
1205 if (count($users) > 0) {
1207 foreach ($users as $key => $userentry) {
1208 print
"\t".
'<tr class="oddeven">'.
"\n";
1209 print
'<td class="nowrap tdtop">';
1210 print $userentry->getNomUrl(-1);
1212 print
'<td class="tdtop">'.$userentry->job.
"</td>\n";
1215 print
'<td class="right">';
1216 if ($user->hasRight(
'user',
'user',
'creer')) {
1217 print
"<a href= '".$_SERVER[
'PHP_SELF'].
"?".(empty($socid) ?
'id' :
'socid').
"=".
$object->id.
"&type=".urlencode($typeid).
"&action=unlink&token=".newToken().
"&removeelem=".((int) $userentry->id).($limit ?
'&limit='.$limit :
'').
"'>";
1219 print
img_picto($langs->trans(
"DeleteFromCat"),
'unlink',
'', 0, 0, 0,
'',
'paddingleft');
1226 print
'<tr class="oddeven"><td colspan="3"><span class="opacitymedium">'.$langs->trans(
"ThisCategoryHasNoItems").
'</span></td></tr>';
1233 print_barre_liste($langs->trans(
"Users"),
null, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', 0,
'',
'user');
1239if ($type == Categorie::TYPE_WAREHOUSE) {
1240 if ($user->hasRight(
"stock",
"read")) {
1241 $permission = $user->hasRight(
'stock',
'creer');
1242 $showclassifyform = $user->hasRight(
'stock',
'creer');
1244 require_once DOL_DOCUMENT_ROOT.
'/product/stock/class/entrepot.class.php';
1246 $objects =
$object->getObjectsInCateg($type, 0, $limit, $offset);
1251 '@phan-var-force Entrepot[] $objects';
1252 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
1253 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1254 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
1255 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
1256 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
1257 print
'<input type="hidden" name="page_y" value="">';
1258 print
'<input type="hidden" name="action" value="list">';
1261 $param =
'&limit='.$limit.
'&id='.
$id.
'&type='.$type;
1262 $num = count($objects);
1263 $nbtotalofrecords =
'';
1264 $newcardbutton =
'';
1267 print_barre_liste($langs->trans(
"Warehouses"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'stock', 0, $newcardbutton,
'', $limit);
1269 if ($showclassifyform) {
1270 print
'<table class="noborder centpercent">';
1271 print
'<tr class="liste_titre"><td>';
1272 print $langs->trans(
"AddTicketIntoCategory").
' ';
1273 print $form->selectForForms(
'Entrepot:product/stock/class/entrepot.class.php',
'elemid', 0, 1,
'',
'',
'maxwidth500');
1274 print
'<input type="submit" class="button buttongen" name="addintocategory" value="'.$langs->trans(
"ClassifyInCategory").
'"></td>';
1279 print
'<table class="noborder centpercent">'.
"\n";
1280 print
'<tr class="liste_titre"><td colspan="4">'.$langs->trans(
"Ref").
'</td></tr>'.
"\n";
1282 if (count($objects) > 0) {
1284 foreach ($objects as $key => $warehouse) {
1290 print
"\t".
'<tr class="oddeven">'.
"\n";
1291 print
'<td class="nowrap tdtop">';
1292 print $warehouse->getNomUrl(1);
1294 print
'<td class="tdtop">'.$warehouse->ref.
"</td>\n";
1295 print
'<td class="tdtop">'.$warehouse->lieu.
"</td>\n";
1297 print
'<td class="right">';
1299 print
"<a href= '".$_SERVER[
'PHP_SELF'].
"?".(empty($socid) ?
'id' :
'socid').
"=".
$object->id.
"&type=".urlencode($typeid).
"&action=unlink&token=".newToken().
"&removeelem=".((int) $warehouse->id).($limit ?
'&limit='.$limit :
'').
"'>";
1301 print
img_picto($langs->trans(
"DeleteFromCat"),
'unlink',
'', 0, 0, 0,
'',
'paddingleft');
1308 print
'<tr class="oddeven"><td colspan="4"><span class="opacitymedium">'.$langs->trans(
"ThisCategoryHasNoItems").
'</span></td></tr>';
1315 print_barre_liste($langs->trans(
"Warehouse"),
null, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', 0,
'',
'stock');
1321if ($type == Categorie::TYPE_TICKET) {
1322 if ($user->hasRight(
"ticket",
"read")) {
1323 $permission = $user->hasRight(
'categorie',
'creer');
1324 $showclassifyform = $user->hasRight(
'categorie',
'creer');
1326 $tickets =
$object->getObjectsInCateg($type, 0, $limit, $offset);
1331 '@phan-var-force Ticket[] $tickets';
1333 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
1334 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1335 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
1336 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
1337 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
1338 print
'<input type="hidden" name="page_y" value="">';
1339 print
'<input type="hidden" name="action" value="list">';
1342 $param =
'&limit='.$limit.
'&id='.
$id.
'&type='.$type;
1343 $num = count($tickets);
1344 $nbtotalofrecords =
'';
1345 $newcardbutton =
'';
1348 print_barre_liste($langs->trans(
"Ticket"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'ticket', 0, $newcardbutton,
'', $limit);
1350 if ($showclassifyform) {
1351 print
'<table class="noborder centpercent">';
1352 print
'<tr class="liste_titre"><td>';
1353 print $langs->trans(
"AddTicketIntoCategory").
' ';
1354 $form->selectTickets(
'',
'elemid');
1355 print
'<input type="submit" class="button buttongen" name="addintocategory" value="'.$langs->trans(
"ClassifyInCategory").
'"></td>';
1360 print
'<table class="noborder centpercent">'.
"\n";
1361 print
'<tr class="liste_titre"><td colspan="3">'.$langs->trans(
"Ref").
'</td></tr>'.
"\n";
1363 if (count($tickets) > 0) {
1365 foreach ($tickets as $ticket) {
1371 print
"\t".
'<tr class="oddeven">'.
"\n";
1372 print
'<td class="nowrap tdtop">';
1373 print $ticket->getNomUrl(1);
1375 print
'<td class="tdtop">'.$ticket->track_id.
"</td>\n";
1377 print
'<td class="right">';
1379 print
"<a href= '".$_SERVER[
'PHP_SELF'].
"?".(empty($socid) ?
'id' :
'socid').
"=".
$object->id.
"&type=".urlencode($typeid).
"&action=unlink&token=".newToken().
"&removeelem=".((int) $ticket->id).($limit ?
'&limit='.$limit :
'').
"'>";
1381 print
img_picto($langs->trans(
"DeleteFromCat"),
'unlink',
'', 0, 0, 0,
'',
'paddingleft');
1388 print
'<tr class="oddeven"><td colspan="2"><span class="opacitymedium">'.$langs->trans(
"ThisCategoryHasNoItems").
'</span></td></tr>';
1395 print_barre_liste($langs->trans(
"Ticket"),
null, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', 0,
'',
'ticket');
1401if ($type == Categorie::TYPE_FICHINTER) {
1402 if ($user->hasRight(
"fichinter",
"lire")) {
1403 $permission = $user->hasRight(
'categorie',
'creer');
1404 $showclassifyform = $user->hasRight(
'categorie',
'creer');
1406 $fichinters =
$object->getObjectsInCateg($type, 0, $limit, $offset);
1407 if ($fichinters < 0) {
1411 '@phan-var-force Fichinter[] $fichinters';
1414 if ($showclassifyform) {
1416 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
1417 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1418 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
1419 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
1420 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
1421 print
'<input type="hidden" name="action" value="addintocategory">';
1422 print
'<table class="noborder centpercent">';
1423 print
'<tr class="liste_titre"><td>';
1424 print $langs->trans(
"AddFichinterIntoCategory").
' ';
1425 print $form->selectForForms(
'Fichinter:fichinter/class/fichinter.class.php',
'elemid', 0, 1,
'',
'',
'maxwidth500');
1426 print
'<input type="submit" class="button buttongen" value="'.$langs->trans(
"ClassifyInCategory").
'"></td>';
1432 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
1433 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1434 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
1435 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
1436 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
1437 print
'<input type="hidden" name="action" value="list">';
1440 $param =
'&limit='.$limit.
'&id='.
$id.
'&type='.$type;
1441 $num = count($fichinters);
1442 $nbtotalofrecords =
'';
1443 $newcardbutton =
'';
1445 $langs->load(
'interventions');
1447 print_barre_liste($langs->trans(
"Intervention"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'object_intervention', 0, $newcardbutton,
'', $limit);
1448 print
'<table class="noborder centpercent">'.
"\n";
1449 print
'<tr class="liste_titre"><td colspan="3">'.$langs->trans(
"Ref").
'</td></tr>'.
"\n";
1451 if (count($fichinters) > 0) {
1453 foreach ($fichinters as $fichinter) {
1459 print
"\t".
'<tr class="oddeven">'.
"\n";
1460 print
'<td class="nowrap tdtop">';
1461 print $fichinter->getNomUrl(1);
1463 print
'<td class="tdtop">'.$fichinter->description.
"</td>\n";
1465 print
'<td class="right">';
1467 print
"<a href= '".$_SERVER[
'PHP_SELF'].
"?".(empty($socid) ?
'id' :
'socid').
"=".((
int)
$object->id).
"&type=".urlencode($typeid).
"&action=unlink&token=".newToken().
"&removeelem=".((int) $fichinter->id).($limit ?
'&limit='.$limit :
'').
"'>";
1468 print $langs->trans(
"DeleteFromCat");
1469 print
img_picto($langs->trans(
"DeleteFromCat"),
'unlink',
'', 0, 0, 0,
'',
'paddingleft');
1476 print
'<tr class="oddeven"><td colspan="2"><span class="opacitymedium">'.$langs->trans(
"ThisCategoryHasNoItems").
'</span></td></tr>';
1482 print_barre_liste($langs->trans(
"Intervention"),
null, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', 0,
'',
'fichinter');
1488if ($type == Categorie::TYPE_ORDER) {
1489 require_once DOL_DOCUMENT_ROOT.
'/commande/class/commande.class.php';
1491 $permission = $user->hasRight(
'commande',
'creer');
1493 $objects =
$object->getObjectsInCateg($type, 0, $limit, $offset);
1498 '@phan-var-force Commande[] $objects';
1500 $showclassifyform = $user->hasRight(
'order',
'write');
1501 if ($showclassifyform) {
1503 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
1504 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1505 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
1506 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
1507 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
1508 print
'<input type="hidden" name="action" value="addintocategory">';
1509 print
'<table class="noborder centpercent">';
1510 print
'<tr class="liste_titre"><td>';
1511 print $langs->trans(
"AddOrderIntoCategory").
' ';
1512 print $form->selectForForms(
'Commande:commande/class/commande.class.php',
'elemid', 0, 1,
'',
'',
'maxwidth500');
1513 print
'<input type="submit" class="button buttongen" value="'.$langs->trans(
"ClassifyInCategory").
'"></td>';
1519 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
1520 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1521 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
1522 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
1523 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
1524 print
'<input type="hidden" name="action" value="list">';
1527 $param =
'&limit='.$limit.
'&id='.
$id.
'&type='.$type;
1528 $num = count($objects);
1529 $nbtotalofrecords =
'';
1530 $newcardbutton =
'';
1533 print_barre_liste($langs->trans(
"Orders"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'bill', 0, $newcardbutton,
'', $limit);
1535 print
"<table class='noborder centpercent'>\n";
1536 print
'<tr class="liste_titre"><td colspan="4">'.$langs->trans(
"Ref").
'</td></tr>'.
"\n";
1538 if (count($objects) > 0) {
1540 foreach ($objects as $key => $order) {
1546 print
"\t".
'<tr class="oddeven">'.
"\n";
1547 print
'<td class="nowrap tdtop">';
1548 print $order->getNomUrl(1);
1550 print
'<td class="tdtop">'.$order->ref.
"</td>\n";
1552 print
'<td class="right">';
1554 print
"<a href= '".$_SERVER[
'PHP_SELF'].
"?".(empty($socid) ?
'id' :
'socid').
"=".
$object->id.
"&type=".$typeid.
"&action=unlink&token=".newToken().
"&removeelem=".$order->id.
"'>";
1555 print
img_picto($langs->trans(
"DeleteFromCat"),
'unlink',
'', 0, 0, 0,
'',
'paddingleft');
1561 print
'<tr class="oddeven"><td colspan="3" class="opacitymedium">'.$langs->trans(
"ThisCategoryHasNoItems").
'</td></tr>';
1570if ($type == Categorie::TYPE_MO) {
1571 require_once DOL_DOCUMENT_ROOT.
'/mrp/class/mo.class.php';
1573 $permission = $user->hasRight(
'mrp',
'write');
1575 $objects =
$object->getObjectsInCateg($type, 0, $limit, $offset);
1580 '@phan-var-force Mo[] $objects';
1582 $showclassifyform = $user->hasRight(
'mrp',
'write');
1583 if ($showclassifyform) {
1585 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
1586 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1587 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
1588 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
1589 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
1590 print
'<input type="hidden" name="action" value="addintocategory">';
1591 print
'<table class="noborder centpercent">';
1592 print
'<tr class="liste_titre"><td>';
1593 print $langs->trans(
"AddMoIntoCategory").
' ';
1594 print $form->selectForForms(
'Mo:mrp/class/mo.class.php',
'elemid', 0, 1,
'',
'',
'maxwidth500');
1595 print
'<input type="submit" class="button buttongen" value="'.$langs->trans(
"ClassifyInCategory").
'"></td>';
1601 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
1602 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1603 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
1604 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
1605 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
1606 print
'<input type="hidden" name="action" value="list">';
1609 $param =
'&limit='.$limit.
'&id='.
$id.
'&type='.$type;
1610 $num = count($objects);
1611 $nbtotalofrecords =
'';
1612 $newcardbutton =
'';
1615 print_barre_liste($langs->trans(
"MOs"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'mrp', 0, $newcardbutton,
'', $limit);
1617 print
"<table class='noborder centpercent'>\n";
1618 print
'<tr class="liste_titre"><td colspan="4">'.$langs->trans(
"Ref").
'</td></tr>'.
"\n";
1620 if (count($objects) > 0) {
1622 foreach ($objects as $key => $mo) {
1628 print
"\t".
'<tr class="oddeven">'.
"\n";
1629 print
'<td class="nowrap tdtop">';
1630 print $mo->getNomUrl(1);
1632 print
'<td class="tdtop">'.$mo->ref.
"</td>\n";
1634 print
'<td class="right">';
1636 print
"<a href= '".$_SERVER[
'PHP_SELF'].
"?".(empty($socid) ?
'id' :
'socid').
"=".
$object->id.
"&type=".$typeid.
"&action=unlink&token=".newToken().
"&removeelem=".$mo->id.
"'>";
1637 print
img_picto($langs->trans(
"DeleteFromCat"),
'unlink',
'', 0, 0, 0,
'',
'paddingleft');
1643 print
'<tr class="oddeven"><td colspan="3" class="opacitymedium">'.$langs->trans(
"ThisCategoryHasNoItems").
'</td></tr>';
1652if ($type == Categorie::TYPE_INVOICE) {
1653 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
1655 $permission = $user->hasRight(
'facture',
'creer');
1657 $objects =
$object->getObjectsInCateg($type, 0, $limit, $offset);
1662 $showclassifyform = $user->hasRight(
'facture',
'write');
1663 if ($showclassifyform) {
1665 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
1666 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1667 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
1668 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
1669 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
1670 print
'<input type="hidden" name="action" value="addintocategory">';
1671 print
'<table class="noborder centpercent">';
1672 print
'<tr class="liste_titre"><td>';
1673 print $langs->trans(
"AddInvoiceIntoCategory").
' ';
1674 print $form->selectForForms(
'Facture:compta/facture/class/facture.class.php',
'elemid', 0, 1,
'',
'',
'maxwidth500');
1675 print
'<input type="submit" class="button buttongen" value="'.$langs->trans(
"ClassifyInCategory").
'"></td>';
1681 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
1682 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1683 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
1684 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
1685 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
1686 print
'<input type="hidden" name="action" value="list">';
1689 $param =
'&limit='.$limit.
'&id='.
$id.
'&type='.$type;
1690 $num = count($objects);
1691 $nbtotalofrecords =
'';
1692 $newcardbutton =
'';
1695 print_barre_liste($langs->trans(
"BillsCustomers"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'bill', 0, $newcardbutton,
'', $limit);
1697 print
"<table class='noborder centpercent'>\n";
1698 print
'<tr class="liste_titre"><td colspan="4">'.$langs->trans(
"Ref").
'</td></tr>'.
"\n";
1700 if (count($objects) > 0) {
1702 foreach ($objects as $key => $invoice) {
1708 print
"\t".
'<tr class="oddeven">'.
"\n";
1709 print
'<td class="nowrap tdtop">';
1710 print $invoice->getNomUrl(1);
1712 print
'<td class="tdtop">'.$invoice->ref.
"</td>\n";
1714 print
'<td class="right">';
1716 print
"<a href= '".$_SERVER[
'PHP_SELF'].
"?".(empty($socid) ?
'id' :
'socid').
"=".
$object->id.
"&type=".$typeid.
"&action=unlink&token=".newToken().
"&removeelem=".$invoice->id.
"'>";
1717 print $langs->trans(
"DeleteFromCat");
1718 print
img_picto($langs->trans(
"DeleteFromCat"),
'unlink',
'', 0, 0, 0,
'',
'paddingleft');
1724 print
'<tr class="oddeven"><td colspan="3" class="opacitymedium">'.$langs->trans(
"ThisCategoryHasNoItems").
'</td></tr>';
1733if ($type == Categorie::TYPE_SUPPLIER_ORDER) {
1734 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.commande.class.php';
1736 $permission = $user->hasRight(
'fournisseur',
'commande',
'creer');
1738 $objects =
$object->getObjectsInCateg($type, 0, $limit, $offset);
1743 $showclassifyform = $user->hasRight(
'fournisseur',
'commande',
'creer');
1745 if ($showclassifyform) {
1747 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
1748 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1749 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
1750 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
1751 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
1752 print
'<input type="hidden" name="action" value="addintocategory">';
1753 print
'<table class="noborder centpercent">';
1754 print
'<tr class="liste_titre"><td>';
1755 print $langs->trans(
"AddSupplierOrderIntoCategory").
' ';
1756 print $form->selectForForms(
'CommandeFournisseur:fourn/class/fournisseur.commande.class.php',
'elemid', 0, 1,
'',
'',
'maxwidth500');
1757 print
'<input type="submit" class="button buttongen" value="'.$langs->trans(
"ClassifyInCategory").
'"></td>';
1763 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
1764 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1765 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
1766 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
1767 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
1768 print
'<input type="hidden" name="action" value="list">';
1771 $param =
'&limit='.$limit.
'&id='.
$id.
'&type='.$type;
1772 $num = count($objects);
1773 $nbtotalofrecords =
'';
1774 $newcardbutton =
'';
1777 print_barre_liste($langs->trans(
"SuppliersOrders"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'supplier_order', 0, $newcardbutton,
'', $limit);
1779 print
"<table class='noborder centpercent'>\n";
1780 print
'<tr class="liste_titre"><td colspan="4">'.$langs->trans(
"Ref").
'</td></tr>'.
"\n";
1782 if (count($objects) > 0) {
1784 foreach ($objects as $key => $supplier_order) {
1790 print
"\t".
'<tr class="oddeven">'.
"\n";
1791 print
'<td class="nowrap tdtop">';
1792 print $supplier_order->getNomUrl(1);
1794 print
'<td class="tdtop">'.$supplier_order->ref.
"</td>\n";
1796 print
'<td class="right">';
1798 print
"<a href= '".$_SERVER[
'PHP_SELF'].
"?".(empty($socid) ?
'id' :
'socid').
"=".
$object->id.
"&type=".$typeid.
"&action=unlink&token=".newToken().
"&removeelem=".$supplier_order->id.
"'>";
1799 print $langs->trans(
"DeleteFromCat");
1800 print
img_picto($langs->trans(
"DeleteFromCat"),
'unlink',
'', 0, 0, 0,
'',
'paddingleft');
1806 print
'<tr class="oddeven"><td colspan="3" class="opacitymedium">'.$langs->trans(
"ThisCategoryHasNoItems").
'</td></tr>';
1815if ($type == Categorie::TYPE_SUPPLIER_INVOICE) {
1816 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
1818 $permission = $user->hasRight(
'fournisseur',
'facture',
'creer');
1820 $objects =
$object->getObjectsInCateg($type, 0, $limit, $offset);
1825 $showclassifyform = $user->hasRight(
'fournisseur',
'facture',
'creer');;
1826 if ($showclassifyform) {
1828 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
1829 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1830 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
1831 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
1832 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
1833 print
'<input type="hidden" name="action" value="addintocategory">';
1834 print
'<table class="noborder centpercent">';
1835 print
'<tr class="liste_titre"><td>';
1836 print $langs->trans(
"AddSupplierInvoiceIntoCategory").
' ';
1837 print $form->selectForForms(
'FactureFournisseur:fourn/class/fournisseur.facture.class.php',
'elemid', 0, 1,
'',
'',
'maxwidth500');
1838 print
'<input type="submit" class="button buttongen" value="'.$langs->trans(
"ClassifyInCategory").
'"></td>';
1844 print
'<form method="post" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
1845 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1846 print
'<input type="hidden" name="typeid" value="'.$typeid.
'">';
1847 print
'<input type="hidden" name="type" value="'.$typeid.
'">';
1848 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
1849 print
'<input type="hidden" name="action" value="list">';
1852 $param =
'&limit='.$limit.
'&id='.
$id.
'&type='.$type; $num = count($objects); $nbtotalofrecords =
''; $newcardbutton =
'';
1855 print_barre_liste($langs->trans(
"SuppliersOrders"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'supplier_order', 0, $newcardbutton,
'', $limit);
1857 print
"<table class='noborder centpercent'>\n";
1858 print
'<tr class="liste_titre"><td colspan="4">'.$langs->trans(
"Ref").
'</td></tr>'.
"\n";
1860 if (count($objects) > 0) {
1862 foreach ($objects as $key => $supplier_invoice) {
1868 print
"\t".
'<tr class="oddeven">'.
"\n";
1869 print
'<td class="nowrap tdtop">';
1870 print $supplier_invoice->getNomUrl(1);
1872 print
'<td class="tdtop">'.$supplier_invoice->ref.
"</td>\n";
1874 print
'<td class="right">';
1876 print
"<a href= '".$_SERVER[
'PHP_SELF'].
"?".(empty($socid) ?
'id' :
'socid').
"=".
$object->id.
"&type=".$typeid.
"&action=unlink&token=".newToken().
"&removeelem=".$supplier_invoice->id.
"'>";
1877 print $langs->trans(
"DeleteFromCat");
1878 print
img_picto($langs->trans(
"DeleteFromCat"),
'unlink',
'', 0, 0, 0,
'',
'paddingleft');
1884 print
'<tr class="oddeven"><td colspan="3" class="opacitymedium">'.$langs->trans(
"ThisCategoryHasNoItems").
'</td></tr>';
1893$parameters = array(
'type' => $type,
'id' => $id,
'label' => $label);
1894$reshook = $hookmanager->executeHooks(
'addMoreCategoriesList', $parameters, $object, $action);
$id
Support class for third parties, contacts, members, users or resources.
if(! $sortfield) if(! $sortorder) $object
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
categories_prepare_head(Categorie $object, $type)
Prepare array with list of tabs.
Class to manage bank accounts.
Class to manage members of a foundation.
Class to manage categories.
Class to manage predefined suppliers products.
Class to manage customers orders.
Class to manage suppliers invoices.
Class to manage invoices.
Class to manage products or services.
Class to manage projects.
Class to manage third parties objects (customers, suppliers, prospects...)
Class to manage Dolibarr users.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
print_barre_liste($title, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $selectlimitsuffix=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2, $allowothertags=array())
Show picto whatever it's its name (generic function)
img_delete($titlealt='default', $other='class="pictodelete"', $morecss='')
Show delete logo.
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dolPrintHTML($s, $allowiframe=0, $moreallowedtags=array())
Return a string (that can be on several lines) ready to be output on a HTML page.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0, $morecssdiv='')
Show tabs of a record.
dolBuildUrl($url, $params=[], $addtoken=false, $anchor='')
Return path of url.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
img_view($titlealt='default', $float=0, $other='class="valignmiddle"')
Show logo view card.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='', $morecssonpicto='widthpictotitle')
Load a title with picto.
dol_htmlentitiesbr($stringtoencode, $nl2brmode=0, $pagecodefrom='UTF-8', $removelasteolbr=1)
This function is called to encode a string into a HTML string but differs from htmlentities because a...
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
img_edit($titlealt='default', $float=0, $other='')
Show logo edit/modify fiche.
getEntity($element, $shared=1, $currentobject=null)
Get list of entity id to use.
Class to generate the form for creating a new ticket.
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.
tree_recur($tab, $pere, $rang, $iddivjstree='iddivjstree', $donoresetalreadyloaded=0, $showfk=0, $moreparam='')
Recursive function to output a tree.