36require 
'../../main.inc.php';
 
   37require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
 
   38require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formorder.class.php';
 
   39require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
 
   40require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formcompany.class.php';
 
   41require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
 
   42require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
 
   43require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.class.php';
 
   44require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.commande.class.php';
 
   45require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
 
   46require_once DOL_DOCUMENT_ROOT.
'/product/class/product.class.php';
 
   47require_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
 
   50$langs->loadLangs(array(
"orders", 
"sendings", 
'deliveries', 
'companies', 
'compta', 
'bills', 
'projects', 
'suppliers', 
'products'));
 
   53$action = 
GETPOST(
'action', 
'aZ09');
 
   54$massaction = 
GETPOST(
'massaction', 
'alpha');
 
   55$show_files = 
GETPOST(
'show_files', 
'int');
 
   56$confirm = 
GETPOST(
'confirm', 
'alpha');
 
   57$toselect = 
GETPOST(
'toselect', 
'array');
 
   58$contextpage = 
GETPOST(
'contextpage', 
'aZ') ? 
GETPOST(
'contextpage', 
'aZ') : 
'supplierorderlist';
 
   59$mode = 
GETPOST(
'mode', 
'alpha');
 
   62$search_date_order_startday = 
GETPOST(
'search_date_order_startday', 
'int');
 
   63$search_date_order_startmonth = 
GETPOST(
'search_date_order_startmonth', 
'int');
 
   64$search_date_order_startyear = 
GETPOST(
'search_date_order_startyear', 
'int');
 
   65$search_date_order_endday = 
GETPOST(
'search_date_order_endday', 
'int');
 
   66$search_date_order_endmonth = 
GETPOST(
'search_date_order_endmonth', 
'int');
 
   67$search_date_order_endyear = 
GETPOST(
'search_date_order_endyear', 
'int');
 
   68$search_date_order_start = 
dol_mktime(0, 0, 0, $search_date_order_startmonth, $search_date_order_startday, $search_date_order_startyear); 
 
   69$search_date_order_end = 
dol_mktime(23, 59, 59, $search_date_order_endmonth, $search_date_order_endday, $search_date_order_endyear);
 
   71$search_date_delivery_startday = 
GETPOST(
'search_date_delivery_startday', 
'int');
 
   72$search_date_delivery_startmonth = 
GETPOST(
'search_date_delivery_startmonth', 
'int');
 
   73$search_date_delivery_startyear = 
GETPOST(
'search_date_delivery_startyear', 
'int');
 
   74$search_date_delivery_endday = 
GETPOST(
'search_date_delivery_endday', 
'int');
 
   75$search_date_delivery_endmonth = 
GETPOST(
'search_date_delivery_endmonth', 
'int');
 
   76$search_date_delivery_endyear = 
GETPOST(
'search_date_delivery_endyear', 
'int');
 
   77$search_date_delivery_start = 
dol_mktime(0, 0, 0, $search_date_delivery_startmonth, $search_date_delivery_startday, $search_date_delivery_startyear); 
 
   78$search_date_delivery_end = 
dol_mktime(23, 59, 59, $search_date_delivery_endmonth, $search_date_delivery_endday, $search_date_delivery_endyear);
 
   80$search_date_valid_startday = 
GETPOST(
'search_date_valid_startday', 
'int');
 
   81$search_date_valid_startmonth = 
GETPOST(
'search_date_valid_startmonth', 
'int');
 
   82$search_date_valid_startyear = 
GETPOST(
'search_date_valid_startyear', 
'int');
 
   83$search_date_valid_endday = 
GETPOST(
'search_date_valid_endday', 
'int');
 
   84$search_date_valid_endmonth = 
GETPOST(
'search_date_valid_endmonth', 
'int');
 
   85$search_date_valid_endyear = 
GETPOST(
'search_date_valid_endyear', 
'int');
 
   86$search_date_valid_start = 
dol_mktime(0, 0, 0, $search_date_valid_startmonth, $search_date_valid_startday, $search_date_valid_startyear); 
 
   87$search_date_valid_end = 
dol_mktime(23, 59, 59, $search_date_valid_endmonth, $search_date_valid_endday, $search_date_valid_endyear);
 
   89$search_date_approve_startday = 
GETPOST(
'search_date_approve_startday', 
'int');
 
   90$search_date_approve_startmonth = 
GETPOST(
'search_date_approve_startmonth', 
'int');
 
   91$search_date_approve_startyear = 
GETPOST(
'search_date_approve_startyear', 
'int');
 
   92$search_date_approve_endday = 
GETPOST(
'search_date_approve_endday', 
'int');
 
   93$search_date_approve_endmonth = 
GETPOST(
'search_date_approve_endmonth', 
'int');
 
   94$search_date_approve_endyear = 
GETPOST(
'search_date_approve_endyear', 
'int');
 
   95$search_date_approve_start = 
dol_mktime(0, 0, 0, $search_date_approve_startmonth, $search_date_approve_startday, $search_date_approve_startyear); 
 
   96$search_date_approve_end = 
dol_mktime(23, 59, 59, $search_date_approve_endmonth, $search_date_approve_endday, $search_date_approve_endyear);
 
   98$sall = trim((
GETPOST(
'search_all', 
'alphanohtml') != 
'') ? 
GETPOST(
'search_all', 
'alphanohtml') : 
GETPOST(
'sall', 
'alphanohtml'));
 
  100$search_product_category = 
GETPOST(
'search_product_category', 
'int');
 
  101$search_ref = 
GETPOST(
'search_ref', 
'alpha');
 
  102$search_refsupp = 
GETPOST(
'search_refsupp', 
'alpha');
 
  103$search_company = 
GETPOST(
'search_company', 
'alpha');
 
  104$search_company_alias = 
GETPOST(
'search_company_alias', 
'alpha');
 
  105$search_town = 
GETPOST(
'search_town', 
'alpha');
 
  106$search_zip = 
GETPOST(
'search_zip', 
'alpha');
 
  107$search_state = 
GETPOST(
"search_state", 
'alpha');
 
  108$search_country = 
GETPOST(
"search_country", 
'int');
 
  109$search_type_thirdparty = 
GETPOST(
"search_type_thirdparty", 
'int');
 
  110$search_user = 
GETPOST(
'search_user', 
'int');
 
  111$search_request_author = 
GETPOST(
'search_request_author', 
'alpha');
 
  112$search_ht = 
GETPOST(
'search_ht', 
'alpha');
 
  113$search_ttc = 
GETPOST(
'search_ttc', 
'alpha');
 
  114$optioncss = 
GETPOST(
'optioncss', 
'alpha');
 
  115$socid = 
GETPOST(
'socid', 
'int');
 
  116$search_sale = 
GETPOST(
'search_sale', 
'int');
 
  117$search_total_ht = 
GETPOST(
'search_total_ht', 
'alpha');
 
  118$search_total_tva = 
GETPOST(
'search_total_tva', 
'alpha');
 
  119$search_total_ttc = 
GETPOST(
'search_total_ttc', 
'alpha');
 
  120$search_multicurrency_code = 
GETPOST(
'search_multicurrency_code', 
'alpha');
 
  121$search_multicurrency_tx = 
GETPOST(
'search_multicurrency_tx', 
'alpha');
 
  122$search_multicurrency_montant_ht = 
GETPOST(
'search_multicurrency_montant_ht', 
'alpha');
 
  123$search_multicurrency_montant_tva = 
GETPOST(
'search_multicurrency_montant_tva', 
'alpha');
 
  124$search_multicurrency_montant_ttc = 
GETPOST(
'search_multicurrency_montant_ttc', 
'alpha');
 
  125$optioncss = 
GETPOST(
'optioncss', 
'alpha');
 
  126$search_billed = 
GETPOST(
'search_billed', 
'int');
 
  127$search_project_ref = 
GETPOST(
'search_project_ref', 
'alpha');
 
  128$search_btn = 
GETPOST(
'button_search', 
'alpha');
 
  129$search_remove_btn = 
GETPOST(
'button_removefilter', 
'alpha');
 
  132  $search_status = join(
',', 
GETPOST(
'search_status', 
'array:intcomma'));
 
  134  $search_status = (
GETPOST(
'search_status', 
'intcomma') != 
'' ? 
GETPOST(
'search_status', 
'intcomma') : 
GETPOST(
'statut', 
'intcomma'));
 
  137$diroutputmassaction = $conf->fournisseur->commande->dir_output.
'/temp/massgeneration/'.$user->id;
 
  139$limit = 
GETPOST(
'limit', 
'int') ? 
GETPOST(
'limit', 
'int') : $conf->liste_limit;
 
  140$sortfield = 
GETPOST(
'sortfield', 
'aZ09comma');
 
  141$sortorder = 
GETPOST(
'sortorder', 
'aZ09comma');
 
  142$page = GETPOSTISSET(
'pageplusone') ? (
GETPOST(
'pageplusone') - 1) : 
GETPOST(
"page", 
'int');
 
  143if (empty($page) || $page == -1 || !empty($search_btn) || !empty($search_remove_btn) || (empty($toselect) && $massaction === 
'0')) {
 
  146$offset = $limit * $page;
 
  147$pageprev = $page - 1;
 
  148$pagenext = $page + 1;
 
  150  $sortfield = 
'cf.ref';
 
  158$hookmanager->initHooks(array(
'supplierorderlist'));
 
  162$extrafields->fetch_name_optionals_label($object->table_element);
 
  164$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, 
'', 
'search_');
 
  167$fieldstosearchall = array();
 
  168foreach ($object->fields as $key => $val) {
 
  169  if (!empty($val[
'searchall'])) {
 
  170    $fieldstosearchall[
'cf.'.$key] = $val[
'label'];
 
  173$fieldstosearchall[
'pd.description'] = 
'Description';
 
  174$fieldstosearchall[
's.nom'] = 
"ThirdParty";
 
  175$fieldstosearchall[
's.name_alias'] = 
"AliasNameShort";
 
  176$fieldstosearchall[
's.zip'] = 
"Zip";
 
  177$fieldstosearchall[
's.town'] = 
"Town";
 
  178if (empty($user->socid)) {
 
  179  $fieldstosearchall[
"cf.note_private"] = 
"NotePrivate";
 
  182$checkedtypetiers = 0;
 
  186  'u.login'=>array(
'label'=>
"AuthorRequest", 
'enabled'=>1, 
'position'=>41),
 
  187  's.name_alias'=>array(
'label'=>
"AliasNameShort", 
'position'=>51, 
'checked'=>0),
 
  188  's.town'=>array(
'label'=>
"Town", 
'enabled'=>1, 
'position'=>55, 
'checked'=>1),
 
  189  's.zip'=>array(
'label'=>
"Zip", 
'enabled'=>1, 
'position'=>56, 
'checked'=>1),
 
  190  'state.nom'=>array(
'label'=>
"StateShort", 
'enabled'=>1, 
'position'=>57),
 
  191  'country.code_iso'=>array(
'label'=>
"Country", 
'enabled'=>1, 
'position'=>58),
 
  192  'typent.code'=>array(
'label'=>
"ThirdPartyType", 
'enabled'=>$checkedtypetiers, 
'position'=>59),
 
  193  'cf.total_localtax1'=>array(
'label'=>$langs->transcountry(
"AmountLT1", $mysoc->country_code), 
'checked'=>0, 
'enabled'=>($mysoc->localtax1_assuj == 
"1"), 
'position'=>140),
 
  194  'cf.total_localtax2'=>array(
'label'=>$langs->transcountry(
"AmountLT2", $mysoc->country_code), 
'checked'=>0, 
'enabled'=>($mysoc->localtax2_assuj == 
"1"), 
'position'=>145),
 
  195  'cf.note_public'=>array(
'label'=>
'NotePublic', 
'checked'=>0, 
'enabled'=>(!
getDolGlobalInt(
'MAIN_LIST_HIDE_PUBLIC_NOTES')), 
'position'=>750),
 
  196  'cf.note_private'=>array(
'label'=>
'NotePrivate', 
'checked'=>0, 
'enabled'=>(!
getDolGlobalInt(
'MAIN_LIST_HIDE_PRIVATE_NOTES')), 
'position'=>760),
 
  198foreach ($object->fields as $key => $val) {
 
  200  if (!empty($val[
'visible'])) {
 
  201    $visible = (int) 
dol_eval($val[
'visible'], 1);
 
  202    $arrayfields[
'cf.'.$key] = array(
 
  203      'label'=>$val[
'label'],
 
  204      'checked'=>(($visible < 0) ? 0 : 1),
 
  205      'enabled'=>(abs($visible) != 3 && 
dol_eval($val[
'enabled'], 1)),
 
  206      'position'=>$val[
'position'],
 
  207      'help'=> isset($val[
'help']) ? $val[
'help'] : 
'' 
  212include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_array_fields.tpl.php';
 
  219if (!$user->hasRight(
'societe', 
'client', 
'voir')) {
 
  220  $search_sale = $user->id;
 
  224$orderid = 
GETPOST(
'orderid', 
'int');
 
  226  $socid = $user->socid;
 
  228$result = 
restrictedArea($user, 
'fournisseur', $orderid, 
'', 
'commande');
 
  230$permissiontoread = ($user->hasRight(
"fournisseur", 
"commande", 
"lire") || $user->hasRight(
"supplier_order", 
"lire"));
 
  231$permissiontoadd = ($user->hasRight(
"fournisseur", 
"commande", 
"creer") || $user->hasRight(
"supplier_order", 
"creer"));
 
  232$permissiontodelete = ($user->hasRight(
"fournisseur", 
"commande", 
"supprimer") || $user->hasRight(
"supplier_order", 
"supprimer"));
 
  233$permissiontovalidate = $permissiontoadd;
 
  234$permissiontoapprove = ($user->hasRight(
"fournisseur", 
"commande", 
"approuver") || $user->hasRight(
"supplier_order", 
"approuver"));
 
  241if (
GETPOST(
'cancel', 
'alpha')) {
 
  245if (!
GETPOST(
'confirmmassaction', 
'alpha') && $massaction != 
'presend' && $massaction != 
'confirm_presend' && $massaction != 
'confirm_createsupplierbills') {
 
  249$parameters = array(
'socid'=>$socid, 
'arrayfields'=>&$arrayfields);
 
  250$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action); 
 
  255if (empty($reshook)) {
 
  257  include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
 
  260  if (
GETPOST(
'button_removefilter_x', 
'alpha') || 
GETPOST(
'button_removefilter.x', 
'alpha') || 
GETPOST(
'button_removefilter', 
'alpha')) { 
 
  264    $search_product_category = 
'';
 
  266    $search_refsupp = 
'';
 
  267    $search_company = 
'';
 
  268    $search_company_alias = 
'';
 
  273    $search_country = 
'';
 
  274    $search_type_thirdparty = 
'';
 
  275    $search_request_author = 
'';
 
  276    $search_total_ht = 
'';
 
  277    $search_total_tva = 
'';
 
  278    $search_total_ttc = 
'';
 
  279    $search_multicurrency_code = 
'';
 
  280    $search_multicurrency_tx = 
'';
 
  281    $search_multicurrency_montant_ht = 
'';
 
  282    $search_multicurrency_montant_tva = 
'';
 
  283    $search_multicurrency_montant_ttc = 
'';
 
  284    $search_project_ref = 
'';
 
  286    $search_date_order_startday = 
'';
 
  287    $search_date_order_startmonth = 
'';
 
  288    $search_date_order_startyear = 
'';
 
  289    $search_date_order_endday = 
'';
 
  290    $search_date_order_endmonth = 
'';
 
  291    $search_date_order_endyear = 
'';
 
  292    $search_date_order_start = 
'';
 
  293    $search_date_order_end = 
'';
 
  294    $search_date_delivery_startday = 
'';
 
  295    $search_date_delivery_startmonth = 
'';
 
  296    $search_date_delivery_startyear = 
'';
 
  297    $search_date_delivery_endday = 
'';
 
  298    $search_date_delivery_endmonth = 
'';
 
  299    $search_date_delivery_endyear = 
'';
 
  300    $search_date_delivery_start = 
'';
 
  301    $search_date_delivery_end = 
'';
 
  302    $search_date_valid_startday = 
'';
 
  303    $search_date_valid_startmonth = 
'';
 
  304    $search_date_valid_startyear = 
'';
 
  305    $search_date_valid_endday = 
'';
 
  306    $search_date_valid_endmonth = 
'';
 
  307    $search_date_valid_endyear = 
'';
 
  308    $search_date_valid_start = 
'';
 
  309    $search_date_valid_end = 
'';
 
  310    $search_date_approve_startday = 
'';
 
  311    $search_date_approve_startmonth = 
'';
 
  312    $search_date_approve_startyear = 
'';
 
  313    $search_date_approve_endday = 
'';
 
  314    $search_date_approve_endmonth = 
'';
 
  315    $search_date_approve_endyear = 
'';
 
  316    $search_date_approve_start = 
'';
 
  317    $search_date_approve_end = 
'';
 
  321    $search_array_options = array();
 
  323  if (
GETPOST(
'button_removefilter_x', 
'alpha') || 
GETPOST(
'button_removefilter.x', 
'alpha') || 
GETPOST(
'button_removefilter', 
'alpha')
 
  324    || 
GETPOST(
'button_search_x', 
'alpha') || 
GETPOST(
'button_search.x', 
'alpha') || 
GETPOST(
'button_search', 
'alpha')) {
 
  329  $objectclass = 
'CommandeFournisseur';
 
  330  $objectlabel = 
'SupplierOrders';
 
  331  $uploaddir = $conf->fournisseur->commande->dir_output;
 
  332  include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
 
  334  if ($action == 
'validate' && $permissiontovalidate) {
 
  335    if (
GETPOST(
'confirm') == 
'yes') {
 
  340      foreach ($toselect as $checked) {
 
  341        if ($objecttmp->fetch($checked)) {
 
  342          if ($objecttmp->statut == 0) {
 
  343            $objecttmp->date_commande = 
dol_now();
 
  344            $result = $objecttmp->valid($user);
 
  347              if (!
getDolGlobalString(
'SUPPLIER_ORDER_NO_DIRECT_APPROVE') && $permissiontoapprove && !(
getDolGlobalString(
'STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER') && $objecttmp->hasProductsOrServices(1))) {
 
  348                $result = $objecttmp->approve($user);
 
  349                setEventMessages($langs->trans(
"SupplierOrderValidatedAndApproved"), array($objecttmp->ref));
 
  351                setEventMessages($langs->trans(
"SupplierOrderValidated"), array($objecttmp->ref));
 
  370  if ($massaction == 
'confirm_createsupplierbills') {
 
  371    $orders = 
GETPOST(
'toselect', 
'array');
 
  372    $createbills_onebythird = 
GETPOST(
'createbills_onebythird', 
'int');
 
  373    $validate_invoices = 
GETPOST(
'validate_invoices', 
'int');
 
  377    $TFactThird = array();
 
  379    $nb_bills_created = 0;
 
  387    foreach ($orders as $id_order) {
 
  389      if ($cmd->fetch($id_order) <= 0) {
 
  394      if (!empty($createbills_onebythird) && !empty($TFactThird[$cmd->socid])) {
 
  395        $objecttmp = $TFactThird[$cmd->socid]; 
 
  398        if (!empty($cmd->socid) > 0) {
 
  400          $societe->fetch($cmd->socid);
 
  401          $objecttmp->vat_reverse_charge = $societe->vat_reverse_charge;
 
  402          $objecttmp->thirdparty = $societe;
 
  404        $objecttmp->socid = $cmd->socid;
 
  405        $objecttmp->type = $objecttmp::TYPE_STANDARD;
 
  406        $objecttmp->cond_reglement_id = $cmd->cond_reglement_id;
 
  407        $objecttmp->mode_reglement_id = $cmd->mode_reglement_id;
 
  408        $objecttmp->fk_project = $cmd->fk_project;
 
  409        $objecttmp->multicurrency_code = $cmd->multicurrency_code;
 
  410        $objecttmp->ref_supplier = !empty($cmd->ref_supplier) ? $cmd->ref_supplier : $default_ref_supplier;
 
  411        $default_ref_supplier+=1;
 
  414        if (empty($datefacture)) {
 
  418        $objecttmp->date = $datefacture;
 
  419        $objecttmp->origin    = 
'order_supplier';
 
  420        $objecttmp->origin_id = $id_order;
 
  422        $res = $objecttmp->create($user);
 
  426          $lastref = $objecttmp->ref;
 
  427          $lastid = $objecttmp->id;
 
  431      if ($objecttmp->id > 0) {
 
  432        $sql = 
"INSERT INTO ".MAIN_DB_PREFIX.
"element_element (";
 
  434        $sql .= 
", sourcetype";
 
  435        $sql .= 
", fk_target";
 
  436        $sql .= 
", targettype";
 
  437        $sql .= 
") VALUES (";
 
  439        $sql .= 
", '".$db->escape($objecttmp->origin).
"'";
 
  440        $sql .= 
", ".((int) $objecttmp->id);
 
  441        $sql .= 
", '".$db->escape($objecttmp->element).
"'";
 
  444        if (!$db->query($sql)) {
 
  449          $lines = $cmd->lines;
 
  450          if (empty($lines) && method_exists($cmd, 
'fetch_lines')) {
 
  452            $lines = $cmd->lines;
 
  456          $num = count($lines);
 
  458          for ($i = 0; $i < $num; $i++) {
 
  459            $desc = ($lines[$i]->desc ? $lines[$i]->desc : $lines[$i]->libelle);
 
  460            if ($lines[$i]->subprice < 0) {
 
  463              $discount->fk_soc = $objecttmp->socid;
 
  464              $discount->amount_ht = abs($lines[$i]->total_ht);
 
  465              $discount->amount_tva = abs($lines[$i]->total_tva);
 
  466              $discount->amount_ttc = abs($lines[$i]->total_ttc);
 
  467              $discount->tva_tx = $lines[$i]->tva_tx;
 
  468              $discount->fk_user = $user->id;
 
  469              $discount->description = $desc;
 
  470              $discountid = $discount->create($user);
 
  471              if ($discountid > 0) {
 
  472                $result = $objecttmp->insert_discount($discountid);
 
  481              $product_type = ($lines[$i]->product_type ? $lines[$i]->product_type : 0);
 
  484              if ($lines[$i]->date_debut_prevue) {
 
  485                $date_start = $lines[$i]->date_debut_prevue;
 
  487              if ($lines[$i]->date_debut_reel) {
 
  488                $date_start = $lines[$i]->date_debut_reel;
 
  490              if ($lines[$i]->date_start) {
 
  491                $date_start = $lines[$i]->date_start;
 
  495              if ($lines[$i]->date_fin_prevue) {
 
  496                $date_end = $lines[$i]->date_fin_prevue;
 
  498              if ($lines[$i]->date_fin_reel) {
 
  499                $date_end = $lines[$i]->date_fin_reel;
 
  501              if ($lines[$i]->date_end) {
 
  502                $date_end = $lines[$i]->date_end;
 
  505              if (($lines[$i]->product_type != 9 && empty($lines[$i]->fk_parent_line)) || $lines[$i]->product_type == 9) {
 
  509              $tva_tx = $lines[$i]->tva_tx;
 
  510              if (!empty($lines[$i]->vat_src_code) && !preg_match(
'/\(/', $tva_tx)) {
 
  511                $tva_tx .= 
' ('.$lines[$i]->vat_src_code.
')';
 
  514              $result = $objecttmp->addline(
 
  516                $lines[$i]->subprice,
 
  518                $lines[$i]->localtax1_tx,
 
  519                $lines[$i]->localtax2_tx,
 
  521                $lines[$i]->fk_product,
 
  522                $lines[$i]->remise_percent,
 
  526                $lines[$i]->info_bits,
 
  532                $lines[$i]->array_options,
 
  535                $lines[$i]->fk_commande,
 
  537                $lines[$i]->ref_supplier,
 
  538                $lines[$i]->special_code,
 
  549              if ($result > 0 && $lines[$i]->product_type == 9) {
 
  550                $fk_parent_line = $result;
 
  557      $cmd->classifyBilled($user); 
 
  559      if (!empty($createbills_onebythird) && empty($TFactThird[$cmd->socid])) {
 
  560        $TFactThird[$cmd->socid] = $objecttmp;
 
  562        $TFact[$objecttmp->id] = $objecttmp;
 
  567    $TAllFact = empty($createbills_onebythird) ? $TFact : $TFactThird;
 
  570    if (!$error && $validate_invoices) {
 
  571      $massaction = $action = 
'builddoc';
 
  573      foreach ($TAllFact as &$objecttmp) {
 
  574        $objecttmp->validate($user);
 
  581        $id = $objecttmp->id; 
 
  585        $upload_dir = $conf->fournisseur->facture->dir_output;
 
  586        $permissiontoadd = ($user->hasRight(
"fournisseur", 
"facture", 
"creer") || $user->hasRight(
"supplier_invoice", 
"creer"));
 
  590      $massaction = $action = 
'confirm_createsupplierbills';
 
  596      if ($nb_bills_created == 1) {
 
  597        $texttoshow = $langs->trans(
'BillXCreated', 
'{s1}');
 
  598        $texttoshow = str_replace(
'{s1}', 
'<a href="'.DOL_URL_ROOT.
'/fourn/facture/card.php?id='.urlencode($lastid).
'">'.$lastref.
'</a>', $texttoshow);
 
  601        setEventMessages($langs->trans(
'BillCreated', $nb_bills_created), 
null, 
'mesgs');
 
  607        $param .= 
'&mode='.urlencode($mode);
 
  609      if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
 
  610        $param .= 
'&contextpage='.urlencode($contextpage);
 
  612      if ($limit > 0 && $limit != $conf->liste_limit) {
 
  613        $param .= 
'&limit='.((int) $limit);
 
  616        $param .= 
'&sall='.urlencode($sall);
 
  619        $param .= 
'&socid='.urlencode($socid);
 
  621      if ($search_status != 
'') {
 
  622        $param .= 
'&search_status='.urlencode($search_status);
 
  624      if ($search_date_order_startday) {
 
  625        $param .= 
'&search_date_order_startday='.urlencode($search_date_order_startday);
 
  627      if ($search_date_order_startmonth) {
 
  628        $param .= 
'&search_date_order_startmonth='.urlencode($search_date_order_startmonth);
 
  630      if ($search_date_order_startyear) {
 
  631        $param .= 
'&search_date_order_startyear='.urlencode($search_date_order_startyear);
 
  633      if ($search_date_order_endday) {
 
  634        $param .= 
'&search_date_order_endday='.urlencode($search_date_order_endday);
 
  636      if ($search_date_order_endmonth) {
 
  637        $param .= 
'&search_date_order_endmonth='.urlencode($search_date_order_endmonth);
 
  639      if ($search_date_order_endyear) {
 
  640        $param .= 
'&search_date_order_endyear='.urlencode($search_date_order_endyear);
 
  642      if ($search_date_delivery_startday) {
 
  643        $param .= 
'&search_date_delivery_startday='.urlencode($search_date_delivery_startday);
 
  645      if ($search_date_delivery_startmonth) {
 
  646        $param .= 
'&search_date_delivery_startmonth='.urlencode($search_date_delivery_startmonth);
 
  648      if ($search_date_delivery_startyear) {
 
  649        $param .= 
'&search_date_delivery_startyear='.urlencode($search_date_delivery_startyear);
 
  651      if ($search_date_delivery_endday) {
 
  652        $param .= 
'&search_date_delivery_endday='.urlencode($search_date_delivery_endday);
 
  654      if ($search_date_delivery_endmonth) {
 
  655        $param .= 
'&search_date_delivery_endmonth='.urlencode($search_date_delivery_endmonth);
 
  657      if ($search_date_delivery_endyear) {
 
  658        $param .= 
'&search_date_delivery_endyear='.urlencode($search_date_delivery_endyear);
 
  660      if ($search_date_valid_startday) {
 
  661        $param .= 
'&search_date_valid_startday='.urlencode($search_date_valid_startday);
 
  663      if ($search_date_valid_startmonth) {
 
  664        $param .= 
'&search_date_valid_startmonth='.urlencode($search_date_valid_startmonth);
 
  666      if ($search_date_valid_startyear) {
 
  667        $param .= 
'&search_date_valid_startyear='.urlencode($search_date_valid_startyear);
 
  669      if ($search_date_valid_endday) {
 
  670        $param .= 
'&search_date_valid_endday='.urlencode($search_date_valid_endday);
 
  672      if ($search_date_valid_endmonth) {
 
  673        $param .= 
'&search_date_valid_endmonth='.urlencode($search_date_valid_endmonth);
 
  675      if ($search_date_valid_endyear) {
 
  676        $param .= 
'&search_date_valid_endyear='.urlencode($search_date_valid_endyear);
 
  678      if ($search_date_approve_startday) {
 
  679        $param .= 
'&search_date_approve_startday='.urlencode($search_date_approve_startday);
 
  681      if ($search_date_approve_startmonth) {
 
  682        $param .= 
'&search_date_approve_startmonth='.urlencode($search_date_approve_startmonth);
 
  684      if ($search_date_approve_startyear) {
 
  685        $param .= 
'&search_date_approve_startyear='.urlencode($search_date_approve_startyear);
 
  687      if ($search_date_approve_endday) {
 
  688        $param .= 
'&search_date_approve_endday='.urlencode($search_date_approve_endday);
 
  690      if ($search_date_approve_endmonth) {
 
  691        $param .= 
'&search_date_approve_endmonth='.urlencode($search_date_approve_endmonth);
 
  693      if ($search_date_approve_endyear) {
 
  694        $param .= 
'&search_date_approve_endyear='.urlencode($search_date_approve_endyear);
 
  697        $param .= 
'&search_ref='.urlencode($search_ref);
 
  699      if ($search_company) {
 
  700        $param .= 
'&search_company='.urlencode($search_company);
 
  702      if ($search_company_alias) {
 
  703        $param .= 
'&search_company_alias='.urlencode($search_company_alias);
 
  706      if ($search_user > 0) {
 
  707        $param .= 
'&search_user='.urlencode($search_user);
 
  709      if ($search_sale > 0) {
 
  710        $param .= 
'&search_sale='.urlencode($search_sale);
 
  712      if ($search_total_ht != 
'') {
 
  713        $param .= 
'&search_total_ht='.urlencode($search_total_ht);
 
  715      if ($search_total_tva != 
'') {
 
  716        $param .= 
'&search_total_tva='.urlencode($search_total_tva);
 
  718      if ($search_total_ttc != 
'') {
 
  719        $param .= 
'&search_total_ttc='.urlencode($search_total_ttc);
 
  721      if ($search_project_ref >= 0) {
 
  722        $param .= 
"&search_project_ref=".urlencode($search_project_ref);
 
  725        $param .= 
'&show_files='.urlencode($show_files);
 
  727      if ($optioncss != 
'') {
 
  728        $param .= 
'&optioncss='.urlencode($optioncss);
 
  731        $param .= 
'&billed='.urlencode($billed);
 
  734      header(
"Location: ".$_SERVER[
'PHP_SELF'].
'?'.$param);
 
  739      $_GET[
"origin"] = $_POST[
"origin"];
 
  740      $_GET[
"originid"] = $_POST[
"originid"];
 
  754$form = 
new Form($db);
 
  762$title = $langs->trans(
"SuppliersOrders");
 
  765  $fourn->fetch($socid);
 
  766  $title .= 
' - '.$fourn->name;
 
  777if ($search_billed > 0) {
 
  778  $title .= 
' - '.$langs->trans(
"Billed");
 
  784$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
 
  785$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage); 
 
  789  $sql = 
'SELECT DISTINCT';
 
  791$sql .= 
' s.rowid as socid, s.nom as name, s.name_alias as alias, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client, s.email,';
 
  792$sql .= 
" typent.code as typent_code,";
 
  793$sql .= 
" state.code_departement as state_code, state.nom as state_name,";
 
  794$sql .= 
" cf.rowid, cf.ref, cf.ref_supplier, cf.fk_statut, cf.billed, cf.total_ht, cf.total_tva, cf.total_ttc, cf.fk_user_author, cf.date_commande as date_commande, cf.date_livraison as delivery_date, cf.date_valid, cf.date_approve,";
 
  795$sql .= 
' cf.localtax1 as total_localtax1, cf.localtax2 as total_localtax2,';
 
  796$sql .= 
' cf.fk_multicurrency, cf.multicurrency_code, cf.multicurrency_tx, cf.multicurrency_total_ht, cf.multicurrency_total_tva, cf.multicurrency_total_ttc,';
 
  797$sql .= 
' cf.date_creation as date_creation, cf.tms as date_update,';
 
  798$sql .= 
' cf.note_public, cf.note_private,';
 
  799$sql .= 
" p.rowid as project_id, p.ref as project_ref, p.title as project_title,";
 
  800$sql .= 
" u.firstname, u.lastname, u.photo, u.login, u.email as user_email, u.statut as user_status";
 
  802if (!empty($extrafields->attributes[$object->table_element][
'label'])) {
 
  803  foreach ($extrafields->attributes[$object->table_element][
'label'] as $key => $val) {
 
  804    $sql .= ($extrafields->attributes[$object->table_element][
'type'][$key] != 
'separate' ? 
", ef.".$key.
" as options_".$key : 
'');
 
  808$parameters = array();
 
  809$reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters, $object); 
 
  810$sql .= $hookmanager->resPrint;
 
  814$sql .= 
" FROM ".MAIN_DB_PREFIX.
"societe as s";
 
  815$sql .= 
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_country as country on (country.rowid = s.fk_pays)";
 
  816$sql .= 
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_typent as typent on (typent.id = s.fk_typent)";
 
  817$sql .= 
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_departements as state on (state.rowid = s.fk_departement)";
 
  818$sql .= 
", ".MAIN_DB_PREFIX.
"commande_fournisseur as cf";
 
  819if (!empty($extrafields->attributes[$object->table_element][
'label']) && is_array($extrafields->attributes[$object->table_element][
'label']) && count($extrafields->attributes[$object->table_element][
'label'])) {
 
  820  $sql .= 
" LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element.
"_extrafields as ef on (cf.rowid = ef.fk_object)";
 
  823  $sql .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'commande_fournisseurdet as pd ON cf.rowid=pd.fk_commande';
 
  825$sql .= 
" LEFT JOIN ".MAIN_DB_PREFIX.
"user as u ON cf.fk_user_author = u.rowid";
 
  826$sql .= 
" LEFT JOIN ".MAIN_DB_PREFIX.
"projet as p ON p.rowid = cf.fk_projet";
 
  827$parameters = array();
 
  828$reshook = $hookmanager->executeHooks(
'printFieldListFrom', $parameters, $object); 
 
  829$sql .= $hookmanager->resPrint;
 
  830$sql .= 
' WHERE cf.fk_soc = s.rowid';
 
  831$sql .= 
' AND cf.entity IN ('.getEntity(
'supplier_order').
')';
 
  833  $sql .= 
" AND s.rowid = ".((int) $socid);
 
  838if ($search_refsupp) {
 
  844if (empty($arrayfields[
's.name_alias'][
'checked']) && $search_company) {
 
  845  $sql .= 
natural_search(array(
"s.nom", 
"s.name_alias"), $search_company);
 
  847  if ($search_company) {
 
  850  if ($search_company_alias) {
 
  854if ($search_request_author) {
 
  855  $sql .= 
natural_search(array(
'u.lastname', 
'u.firstname', 
'u.login'), $search_request_author);
 
  857if ($search_billed != 
'' && $search_billed >= 0) {
 
  858  $sql .= 
" AND cf.billed = ".((int) $search_billed);
 
  861if (
GETPOST(
'statut', 
'intcomma') !== 
'') {
 
  862  $sql .= 
" AND cf.fk_statut IN (".$db->sanitize($db->escape($db->escape(
GETPOST(
'statut', 
'intcomma')))).
")";
 
  864if ($search_status != 
'' && $search_status != 
'-1') {
 
  865  $sql .= 
" AND cf.fk_statut IN (".$db->sanitize($db->escape($search_status)).
")";
 
  867if ($search_date_order_start) {
 
  868  $sql .= 
" AND cf.date_commande >= '".$db->idate($search_date_order_start).
"'";
 
  870if ($search_date_order_end) {
 
  871  $sql .= 
" AND cf.date_commande <= '".$db->idate($search_date_order_end).
"'";
 
  873if ($search_date_delivery_start) {
 
  874  $sql .= 
" AND cf.date_livraison >= '".$db->idate($search_date_delivery_start).
"'";
 
  876if ($search_date_delivery_end) {
 
  877  $sql .= 
" AND cf.date_livraison <= '".$db->idate($search_date_delivery_end).
"'";
 
  879if ($search_date_valid_start) {
 
  880  $sql .= 
" AND cf.date_valid >= '".$db->idate($search_date_valid_start).
"'";
 
  882if ($search_date_valid_end) {
 
  883  $sql .= 
" AND cf.date_valid <= '".$db->idate($search_date_valid_end).
"'";
 
  885if ($search_date_approve_start) {
 
  886  $sql .= 
" AND cf.date_livraison >= '".$db->idate($search_date_approve_start).
"'";
 
  888if ($search_date_approve_end) {
 
  889  $sql .= 
" AND cf.date_livraison <= '".$db->idate($search_date_approve_end).
"'";
 
  900if ($search_country) {
 
  901  $sql .= 
" AND s.fk_pays IN (".$db->sanitize($db->escape($search_country)).
')';
 
  903if ($search_type_thirdparty != 
'' && $search_type_thirdparty > 0) {
 
  904  $sql .= 
" AND s.fk_typent IN (".$db->sanitize($db->escape($search_type_thirdparty)).
')';
 
  909if ($search_user > 0) {
 
  910  $sql .= 
" AND EXISTS (";
 
  911  $sql .= 
" SELECT ec.rowid ";
 
  912  $sql .= 
" FROM " . MAIN_DB_PREFIX . 
"element_contact as ec";
 
  913  $sql .= 
" INNER JOIN " . MAIN_DB_PREFIX . 
"c_type_contact as tc ON tc.rowid = ec.fk_c_type_contact";
 
  914  $sql .= 
" WHERE ec.element_id = cf.rowid AND ec.fk_socpeople = " . ((int) $search_user);
 
  915  $sql .= 
" AND tc.element = 'order_supplier' AND tc.source = 'internal'";
 
  918if ($search_total_ht != 
'') {
 
  921if ($search_total_tva != 
'') {
 
  924if ($search_total_ttc != 
'') {
 
  927if ($search_multicurrency_code != 
'') {
 
  928  $sql .= 
" AND cf.multicurrency_code = '".$db->escape($search_multicurrency_code).
"'";
 
  930if ($search_multicurrency_tx != 
'') {
 
  931  $sql .= 
natural_search(
'cf.multicurrency_tx', $search_multicurrency_tx, 1);
 
  933if ($search_multicurrency_montant_ht != 
'') {
 
  934  $sql .= 
natural_search(
'cf.multicurrency_total_ht', $search_multicurrency_montant_ht, 1);
 
  936if ($search_multicurrency_montant_tva != 
'') {
 
  937  $sql .= 
natural_search(
'cf.multicurrency_total_tva', $search_multicurrency_montant_tva, 1);
 
  939if ($search_multicurrency_montant_ttc != 
'') {
 
  940  $sql .= 
natural_search(
'cf.multicurrency_total_ttc', $search_multicurrency_montant_ttc, 1);
 
  942if ($search_project_ref != 
'') {
 
  946if ($search_sale && $search_sale != 
'-1') {
 
  947  if ($search_sale == -2) {
 
  948    $sql .= 
" AND NOT EXISTS (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX.
"societe_commerciaux as sc WHERE sc.fk_soc = cf.fk_soc)";
 
  949  } elseif ($search_sale > 0) {
 
  950    $sql .= 
" AND EXISTS (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX.
"societe_commerciaux as sc WHERE sc.fk_soc = cf.fk_soc AND sc.fk_user = ".((int) $search_sale).
")";
 
  954$searchCategoryProductOperator = -1;
 
  955$searchCategoryProductList = array($search_product_category);
 
  956if (!empty($searchCategoryProductList)) {
 
  957  $searchCategoryProductSqlList = array();
 
  958  $listofcategoryid = 
'';
 
  959  foreach ($searchCategoryProductList as $searchCategoryProduct) {
 
  960    if (intval($searchCategoryProduct) == -2) {
 
  961      $searchCategoryProductSqlList[] = 
"NOT EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX.
"categorie_product as ck, ".MAIN_DB_PREFIX.
"commande_fournisseurdet as cd WHERE cd.fk_commande = cf.rowid AND cd.fk_product = ck.fk_product)";
 
  962    } elseif (intval($searchCategoryProduct) > 0) {
 
  963      if ($searchCategoryProductOperator == 0) {
 
  964        $searchCategoryProductSqlList[] = 
" EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX.
"categorie_product as ck, ".MAIN_DB_PREFIX.
"commande_fournisseurdet as cd WHERE cd.fk_commande = cf.rowid AND cd.fk_product = ck.fk_product AND ck.fk_categorie = ".((int) $searchCategoryProduct).
")";
 
  966        $listofcategoryid .= ($listofcategoryid ? 
', ' : 
'') .((
int) $searchCategoryProduct);
 
  970  if ($listofcategoryid) {
 
  971    $searchCategoryProductSqlList[] = 
" EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX.
"categorie_product as ck, ".MAIN_DB_PREFIX.
"commande_fournisseurdet as cd WHERE cd.fk_commande = cf.rowid AND cd.fk_product = ck.fk_product AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid).
"))";
 
  973  if ($searchCategoryProductOperator == 1) {
 
  974    if (!empty($searchCategoryProductSqlList)) {
 
  975      $sql .= 
" AND (".implode(
' OR ', $searchCategoryProductSqlList).
")";
 
  978    if (!empty($searchCategoryProductSqlList)) {
 
  979      $sql .= 
" AND (".implode(
' AND ', $searchCategoryProductSqlList).
")";
 
  984include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_sql.tpl.php';
 
  986$parameters = array();
 
  987$reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters, $object); 
 
  988$sql .= $hookmanager->resPrint;
 
  991$nbtotalofrecords = 
'';
 
  994  $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields, 
'/').
'/', 
'SELECT COUNT(*) as nbtotalofrecords', $sql);
 
  995  $sqlforcount = preg_replace(
'/GROUP BY .*$/', 
'', $sqlforcount);
 
  996  $resql = $db->query($sqlforcount);
 
  998    $objforcount = $db->fetch_object($resql);
 
  999    $nbtotalofrecords = $objforcount->nbtotalofrecords;
 
 1004  if (($page * $limit) > $nbtotalofrecords) { 
 
 1011$sql .= $db->order($sortfield, $sortorder);
 
 1013  $sql .= $db->plimit($limit + 1, $offset);
 
 1017$resql = $db->query($sql);
 
 1019  $num = $db->num_rows($resql);
 
 1021  $arrayofselected = is_array($toselect) ? $toselect : array();
 
 1023  if ($num == 1 && 
getDolGlobalString(
'MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE') && $sall) {
 
 1024    $obj = $db->fetch_object($resql);
 
 1026    header(
"Location: ".DOL_URL_ROOT.
'/fourn/commande/card.php?id='.$id);
 
 1033  if (!empty($mode)) {
 
 1034    $param .= 
'&mode='.urlencode($mode);
 
 1036  if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
 
 1037    $param .= 
'&contextpage='.urlencode($contextpage);
 
 1039  if ($limit > 0 && $limit != $conf->liste_limit) {
 
 1040    $param .= 
'&limit='.((int) $limit);
 
 1043    $param .= 
'&sall='.urlencode($sall);
 
 1046    $param .= 
'&socid='.urlencode($socid);
 
 1049    $param .= 
"&search_all=".urlencode($sall);
 
 1051  if ($search_date_order_startday) {
 
 1052    $param .= 
'&search_date_order_startday='.urlencode($search_date_order_startday);
 
 1054  if ($search_date_order_startmonth) {
 
 1055    $param .= 
'&search_date_order_startmonth='.urlencode($search_date_order_startmonth);
 
 1057  if ($search_date_order_startyear) {
 
 1058    $param .= 
'&search_date_order_startyear='.urlencode($search_date_order_startyear);
 
 1060  if ($search_date_order_endday) {
 
 1061    $param .= 
'&search_date_order_endday='.urlencode($search_date_order_endday);
 
 1063  if ($search_date_order_endmonth) {
 
 1064    $param .= 
'&search_date_order_endmonth='.urlencode($search_date_order_endmonth);
 
 1066  if ($search_date_order_endyear) {
 
 1067    $param .= 
'&search_date_order_endyear='.urlencode($search_date_order_endyear);
 
 1069  if ($search_date_delivery_startday) {
 
 1070    $param .= 
'&search_date_delivery_startday='.urlencode($search_date_delivery_startday);
 
 1072  if ($search_date_delivery_startmonth) {
 
 1073    $param .= 
'&search_date_delivery_startmonth='.urlencode($search_date_delivery_startmonth);
 
 1075  if ($search_date_delivery_startyear) {
 
 1076    $param .= 
'&search_date_delivery_startyear='.urlencode($search_date_delivery_startyear);
 
 1078  if ($search_date_delivery_endday) {
 
 1079    $param .= 
'&search_date_delivery_endday='.urlencode($search_date_delivery_endday);
 
 1081  if ($search_date_delivery_endmonth) {
 
 1082    $param .= 
'&search_date_delivery_endmonth='.urlencode($search_date_delivery_endmonth);
 
 1084  if ($search_date_delivery_endyear) {
 
 1085    $param .= 
'&search_date_delivery_endyear='.urlencode($search_date_delivery_endyear);
 
 1087  if ($search_date_valid_startday) {
 
 1088    $param .= 
'&search_date_valid_startday='.urlencode($search_date_valid_startday);
 
 1090  if ($search_date_valid_startmonth) {
 
 1091    $param .= 
'&search_date_valid_startmonth='.urlencode($search_date_valid_startmonth);
 
 1093  if ($search_date_valid_startyear) {
 
 1094    $param .= 
'&search_date_valid_startyear='.urlencode($search_date_valid_startyear);
 
 1096  if ($search_date_valid_endday) {
 
 1097    $param .= 
'&search_date_valid_endday='.urlencode($search_date_valid_endday);
 
 1099  if ($search_date_valid_endmonth) {
 
 1100    $param .= 
'&search_date_valid_endmonth='.urlencode($search_date_valid_endmonth);
 
 1102  if ($search_date_valid_endyear) {
 
 1103    $param .= 
'&search_date_valid_endyear='.urlencode($search_date_valid_endyear);
 
 1105  if ($search_date_approve_startday) {
 
 1106    $param .= 
'&search_date_approve_startday='.urlencode($search_date_approve_startday);
 
 1108  if ($search_date_approve_startmonth) {
 
 1109    $param .= 
'&search_date_approve_startmonth='.urlencode($search_date_approve_startmonth);
 
 1111  if ($search_date_approve_startyear) {
 
 1112    $param .= 
'&search_date_approve_startyear='.urlencode($search_date_approve_startyear);
 
 1114  if ($search_date_approve_endday) {
 
 1115    $param .= 
'&search_date_approve_endday='.urlencode($search_date_approve_endday);
 
 1117  if ($search_date_approve_endmonth) {
 
 1118    $param .= 
'&search_date_approve_endmonth='.urlencode($search_date_approve_endmonth);
 
 1120  if ($search_date_approve_endyear) {
 
 1121    $param .= 
'&search_date_approve_endyear='.urlencode($search_date_approve_endyear);
 
 1124    $param .= 
'&search_ref='.urlencode($search_ref);
 
 1126  if ($search_company) {
 
 1127    $param .= 
'&search_company='.urlencode($search_company);
 
 1129  if ($search_company_alias) {
 
 1130    $param .= 
'&search_company_alias='.urlencode($search_company_alias);
 
 1132  if ($search_user > 0) {
 
 1133    $param .= 
'&search_user='.urlencode($search_user);
 
 1135  if ($search_request_author) {
 
 1136    $param .= 
'&search_request_author='.urlencode($search_request_author);
 
 1138  if ($search_sale > 0) {
 
 1139    $param .= 
'&search_sale='.urlencode($search_sale);
 
 1141  if ($search_total_ht != 
'') {
 
 1142    $param .= 
'&search_total_ht='.urlencode($search_total_ht);
 
 1144  if ($search_total_ttc != 
'') {
 
 1145    $param .= 
"&search_total_ttc=".urlencode($search_total_ttc);
 
 1147  if ($search_multicurrency_code != 
'') {
 
 1148    $param .= 
'&search_multicurrency_code='.urlencode($search_multicurrency_code);
 
 1150  if ($search_multicurrency_tx != 
'') {
 
 1151    $param .= 
'&search_multicurrency_tx='.urlencode($search_multicurrency_tx);
 
 1153  if ($search_multicurrency_montant_ht != 
'') {
 
 1154    $param .= 
'&search_multicurrency_montant_ht='.urlencode($search_multicurrency_montant_ht);
 
 1156  if ($search_multicurrency_montant_tva != 
'') {
 
 1157    $param .= 
'&search_multicurrency_montant_tva='.urlencode($search_multicurrency_montant_tva);
 
 1159  if ($search_multicurrency_montant_ttc != 
'') {
 
 1160    $param .= 
'&search_multicurrency_montant_ttc='.urlencode($search_multicurrency_montant_ttc);
 
 1162  if ($search_refsupp) {
 
 1163    $param .= 
"&search_refsupp=".urlencode($search_refsupp);
 
 1165  if ($search_status != 
'' && $search_status != 
'-1') {
 
 1166    $param .= 
"&search_status=".urlencode($search_status);
 
 1168  if ($search_project_ref >= 0) {
 
 1169    $param .= 
"&search_project_ref=".urlencode($search_project_ref);
 
 1171  if ($search_billed != 
'') {
 
 1172    $param .= 
"&search_billed=".urlencode($search_billed);
 
 1175    $param .= 
'&show_files='.urlencode($show_files);
 
 1177  if ($optioncss != 
'') {
 
 1178    $param .= 
'&optioncss='.urlencode($optioncss);
 
 1180  if ($search_type_thirdparty != 
'' && $search_type_thirdparty > 0) {
 
 1181    $param .= 
'&search_type_thirdparty='.urlencode($search_type_thirdparty);
 
 1185  include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_param.tpl.php';
 
 1187  $parameters = array(
'param' => &$param);
 
 1188  $reshook = $hookmanager->executeHooks(
'printFieldListSearchParam', $parameters, $object); 
 
 1189  $param .= $hookmanager->resPrint;
 
 1192  $arrayofmassactions = array(
 
 1193    'generate_doc'=>
img_picto(
'', 
'pdf', 
'class="pictofixedwidth"').$langs->trans(
"ReGeneratePDF"),
 
 1194    'builddoc'=>
img_picto(
'', 
'pdf', 
'class="pictofixedwidth"').$langs->trans(
"PDFMerge"),
 
 1195    'presend'=>
img_picto(
'', 
'email', 
'class="pictofixedwidth"').$langs->trans(
"SendByMail"),
 
 1198  if ($permissiontovalidate) {
 
 1199    if ($permissiontoapprove && !
getDolGlobalString(
'SUPPLIER_ORDER_NO_DIRECT_APPROVE')) {
 
 1200      $arrayofmassactions[
'prevalidate'] = 
img_picto(
'', 
'check', 
'class="pictofixedwidth"').$langs->trans(
"ValidateAndApprove");
 
 1202      $arrayofmassactions[
'prevalidate'] = 
img_picto(
'', 
'check', 
'class="pictofixedwidth"').$langs->trans(
"Validate");
 
 1206  if ($user->hasRight(
'fournisseur', 
'facture', 
'creer') || $user->hasRight(
"supplier_invoice", 
"creer")) {
 
 1207    $arrayofmassactions[
'createbills'] = 
img_picto(
'', 
'bill', 
'class="pictofixedwidth"').$langs->trans(
"CreateInvoiceForThisSupplier");
 
 1209  if ($permissiontodelete) {
 
 1210    $arrayofmassactions[
'predelete'] = 
img_picto(
'', 
'delete', 
'class="pictofixedwidth"').$langs->trans(
"Delete");
 
 1212  if (in_array($massaction, array(
'presend', 
'predelete', 
'createbills'))) {
 
 1213    $arrayofmassactions = array();
 
 1215  $massactionbutton = $form->selectMassAction(
'', $arrayofmassactions);
 
 1217  $url = DOL_URL_ROOT.
'/fourn/commande/card.php?action=create';
 
 1219    $url .= 
'&socid='.((int) $socid);
 
 1220    $url .= 
'&backtopage='.urlencode(DOL_URL_ROOT.
'/fourn/commande/list.php?socid='.((
int) $socid));
 
 1222  $newcardbutton = 
'';
 
 1223  $newcardbutton .= 
dolGetButtonTitle($langs->trans(
'ViewList'), 
'', 
'fa fa-bars imgforviewmode', $_SERVER[
"PHP_SELF"].
'?mode=common'.preg_replace(
'/(&|\?)*mode=[^&]+/', 
'', $param), 
'', ((empty($mode) || $mode == 
'common') ? 2 : 1), array(
'morecss'=>
'reposition'));
 
 1224  $newcardbutton .= 
dolGetButtonTitle($langs->trans(
'ViewKanban'), 
'', 
'fa fa-th-list imgforviewmode', $_SERVER[
"PHP_SELF"].
'?mode=kanban'.preg_replace(
'/(&|\?)*mode=[^&]+/', 
'', $param), 
'', ($mode == 
'kanban' ? 2 : 1), array(
'morecss'=>
'reposition'));
 
 1226  $newcardbutton .= 
dolGetButtonTitle($langs->trans(
'NewSupplierOrderShort'), 
'', 
'fa fa-plus-circle', $url, 
'', $permissiontoadd);
 
 1229  print 
'<form method="POST" id="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">';
 
 1230  if ($optioncss != 
'') {
 
 1231    print 
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
 
 1233  print 
'<input type="hidden" name="token" value="'.newToken().
'">';
 
 1234  print 
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
 
 1235  print 
'<input type="hidden" name="action" value="list">';
 
 1236  print 
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
 
 1237  print 
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
 
 1238  print 
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
 
 1239  print 
'<input type="hidden" name="socid" value="'.$socid.
'">';
 
 1240  print 
'<input type="hidden" name="mode" value="'.$mode.
'">';
 
 1242  print_barre_liste($title, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 
'supplier_order', 0, $newcardbutton, 
'', $limit, 0, 0, 1);
 
 1244  $topicmail = 
"SendOrderRef";
 
 1245  $modelmail = 
"order_supplier_send";
 
 1247  $trackid = 
'sord'.$object->id;
 
 1248  include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
 
 1250  if ($massaction == 
'prevalidate') {
 
 1251    print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassValidation"), $langs->trans(
"ConfirmMassValidationQuestion"), 
"validate", 
null, 
'', 0, 200, 500, 1);
 
 1254  if ($massaction == 
'createbills') {
 
 1256    print 
'<input type="hidden" name="massaction" value="confirm_createsupplierbills">';
 
 1258    print 
'<table class="noborder centpercent">';
 
 1260    print 
'<td class="titlefield">';
 
 1261    print $langs->trans(
'DateInvoice');
 
 1264    print $form->selectDate(
'', 
'', 
'', 
'', 
'', 
'', 1, 1);
 
 1269    print $langs->trans(
'CreateOneBillByThird');
 
 1272    print $form->selectyesno(
'createbills_onebythird', 
'', 1);
 
 1277    print $langs->trans(
'ValidateInvoices');
 
 1280    print $form->selectyesno(
'validate_invoices', 1, 1);
 
 1285    print 
'<div class="center">';
 
 1286    print 
'<input type="submit" class="button" id="createbills" name="createbills" value="'.$langs->trans(
'CreateInvoiceForThisCustomer').
'">  ';
 
 1287    print 
'<input type="submit" class="button button-cancel" id="cancel" name="cancel" value="'.$langs->trans(
"Cancel").
'">';
 
 1294    foreach ($fieldstosearchall as $key => $val) {
 
 1295      $fieldstosearchall[$key] = $langs->trans($val);
 
 1297    print 
'<div class="divsearchfieldfilter">'.$langs->trans(
"FilterOnInto", $sall).join(
', ', $fieldstosearchall).
'</div>';
 
 1300  $moreforfilter = 
'';
 
 1303  if ($user->hasRight(
"user", 
"user", 
"lire")) {
 
 1304    $langs->load(
"commercial");
 
 1305    $moreforfilter .= 
'<div class="divsearchfield">';
 
 1306    $tmptitle = $langs->trans(
'ThirdPartiesOfSaleRepresentative');
 
 1307    $moreforfilter .= 
img_picto($tmptitle, 
'user', 
'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale, 
'search_sale', $user, 0, $tmptitle, 
'maxwidth250 widthcentpercentminusx');
 
 1308    $moreforfilter .= 
'</div>';
 
 1311  if ($user->hasRight(
"user", 
"user", 
"lire")) {
 
 1312    $moreforfilter .= 
'<div class="divsearchfield">';
 
 1313    $tmptitle = $langs->trans(
'LinkedToSpecificUsers');
 
 1314    $moreforfilter .= 
img_picto($tmptitle, 
'user', 
'class="pictofixedwidth"').$form->select_dolusers($search_user, 
'search_user', $tmptitle, 
'', 0, 
'', 
'', 0, 0, 0, 
'', 0, 
'', 
'maxwidth250 widthcentpercentminusx');
 
 1315    $moreforfilter .= 
'</div>';
 
 1318  if (isModEnabled(
'categorie') && $user->hasRight(
'categorie', 
'lire') && ($user->hasRight(
'produit', 
'lire') || $user->hasRight(
'service', 
'lire'))) {
 
 1319    include_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
 
 1320    $moreforfilter .= 
'<div class="divsearchfield">';
 
 1321    $tmptitle = $langs->trans(
'IncludingProductWithTag');
 
 1322    $cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, 
null, 
'parent', 
null, 
null, 1);
 
 1323    $moreforfilter .= 
img_picto($tmptitle, 
'category', 
'class="pictofixedwidth"').$form->selectarray(
'search_product_category', $cate_arbo, $search_product_category, $tmptitle, 0, 0, 
'', 0, 0, 0, 0, 
'maxwidth300 widthcentpercentminusx', 1);
 
 1324    $moreforfilter .= 
'</div>';
 
 1326  $parameters = array();
 
 1327  $reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters); 
 
 1328  if (empty($reshook)) {
 
 1329    $moreforfilter .= $hookmanager->resPrint;
 
 1331    $moreforfilter = $hookmanager->resPrint;
 
 1334  if (!empty($moreforfilter)) {
 
 1335    print 
'<div class="liste_titre liste_titre_bydiv centpercent">';
 
 1336    print $moreforfilter;
 
 1340  $varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
 
 1341  $selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage, 
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN')); 
 
 1342  $selectedfields .= $form->showCheckAddButtons(
'checkforselect', 1);
 
 1344  if (
GETPOST(
'autoselectall', 
'int')) {
 
 1345    $selectedfields .= 
'<script>';
 
 1346    $selectedfields .= 
'   $(document).ready(function() {';
 
 1347    $selectedfields .= 
'        console.log("Autoclick on checkforselects");';
 
 1348    $selectedfields .= 
'      $("#checkforselects").click();';
 
 1349    $selectedfields .= 
'        $("#massaction").val("createbills").change();';
 
 1350    $selectedfields .= 
'   });';
 
 1351    $selectedfields .= 
'</script>';
 
 1354  print 
'<div class="div-table-responsive">';
 
 1355  print 
'<table class="tagtable nobottomiftotal liste'.($moreforfilter ? 
" listwithfilterbefore" : 
"").
'">'.
"\n";
 
 1357  print 
'<tr class="liste_titre_filter">';
 
 1360    print 
'<td class="liste_titre middle">';
 
 1361    $searchpicto = $form->showFilterButtons(
'left');
 
 1366  if (!empty($arrayfields[
'cf.ref'][
'checked'])) {
 
 1367    print 
'<td class="liste_titre"><input size="8" type="text" class="flat maxwidth75" name="search_ref" value="'.$search_ref.
'"></td>';
 
 1370  if (!empty($arrayfields[
'cf.ref_supplier'][
'checked'])) {
 
 1371    print 
'<td class="liste_titre"><input type="text" class="flat maxwidth75" name="search_refsupp" value="'.$search_refsupp.
'"></td>';
 
 1374  if (!empty($arrayfields[
'cf.fk_projet'][
'checked'])) {
 
 1375    print 
'<td class="liste_titre"><input type="text" class="flat maxwidth100" name="search_project_ref" value="'.$search_project_ref.
'"></td>';
 
 1378  if (!empty($arrayfields[
'u.login'][
'checked'])) {
 
 1379    print 
'<td class="liste_titre">';
 
 1380    print 
'<input type="text" class="flat" size="6" name="search_request_author" value="'.$search_request_author.
'">';
 
 1384  if (!empty($arrayfields[
'cf.fk_soc'][
'checked'])) {
 
 1385    print 
'<td class="liste_titre"><input type="text" size="6" class="flat" name="search_company" value="'.$search_company.
'"></td>';
 
 1388  if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
 
 1389    print 
'<td class="liste_titre"><input type="text" size="6" class="flat" name="search_company_alias" value="'.$search_company_alias.
'"></td>';
 
 1392  if (!empty($arrayfields[
's.town'][
'checked'])) {
 
 1393    print 
'<td class="liste_titre"><input class="flat maxwidth50" type="text" name="search_town" value="'.$search_town.
'"></td>';
 
 1396  if (!empty($arrayfields[
's.zip'][
'checked'])) {
 
 1397    print 
'<td class="liste_titre"><input class="flat maxwidth50" type="text" name="search_zip" value="'.$search_zip.
'"></td>';
 
 1400  if (!empty($arrayfields[
'state.nom'][
'checked'])) {
 
 1401    print 
'<td class="liste_titre">';
 
 1402    print 
'<input class="flat maxwidth50" type="text" name="search_state" value="'.dol_escape_htmltag($search_state).
'">';
 
 1406  if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
 
 1407    print 
'<td class="liste_titre center">';
 
 1408    print $form->select_country($search_country, 
'search_country', 
'', 0, 
'minwidth100imp maxwidth100');
 
 1412  if (!empty($arrayfields[
'typent.code'][
'checked'])) {
 
 1413    print 
'<td class="liste_titre maxwidthonsmartphone center">';
 
 1414    print $form->selectarray(
"search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 1, 0, 0, 
'', 0, 0, 0, (!
getDolGlobalString(
'SOCIETE_SORT_ON_TYPEENT') ? 
'ASC' : $conf->global->SOCIETE_SORT_ON_TYPEENT), 
'', 1);
 
 1418  if (!empty($arrayfields[
'cf.date_commande'][
'checked'])) {
 
 1419    print 
'<td class="liste_titre center">';
 
 1420    print 
'<div class="nowrapfordate">';
 
 1421    print $form->selectDate($search_date_order_start ? $search_date_order_start : -1, 
'search_date_order_start', 0, 0, 1, 
'', 1, 0, 0, 
'', 
'', 
'', 
'', 1, 
'', $langs->trans(
'From'));
 
 1423    print 
'<div class="nowrapfordate">';
 
 1424    print $form->selectDate($search_date_order_end ? $search_date_order_end : -1, 
'search_date_order_end', 0, 0, 1, 
'', 1, 0, 0, 
'', 
'', 
'', 
'', 1, 
'', $langs->trans(
'to'));
 
 1429  if (!empty($arrayfields[
'cf.date_livraison'][
'checked'])) {
 
 1430    print 
'<td class="liste_titre center">';
 
 1431    print 
'<div class="nowrapfordate">';
 
 1432    print $form->selectDate($search_date_delivery_start ? $search_date_delivery_start : -1, 
'search_date_delivery_start', 0, 0, 1, 
'', 1, 0, 0, 
'', 
'', 
'', 
'', 1, 
'', $langs->trans(
'From'));
 
 1434    print 
'<div class="nowrapfordate">';
 
 1435    print $form->selectDate($search_date_delivery_end ? $search_date_delivery_end : -1, 
'search_date_delivery_end', 0, 0, 1, 
'', 1, 0, 0, 
'', 
'', 
'', 
'', 1, 
'', $langs->trans(
'to'));
 
 1439  if (!empty($arrayfields[
'cf.total_ht'][
'checked'])) {
 
 1441    print 
'<td class="liste_titre right">';
 
 1442    print 
'<input class="flat" type="text" size="5" name="search_total_ht" value="'.$search_total_ht.
'">';
 
 1445  if (!empty($arrayfields[
'cf.total_tva'][
'checked'])) {
 
 1447    print 
'<td class="liste_titre right">';
 
 1448    print 
'<input class="flat" type="text" size="5" name="search_total_tva" value="'.$search_total_tva.
'">';
 
 1451  if (!empty($arrayfields[
'cf.total_ttc'][
'checked'])) {
 
 1453    print 
'<td class="liste_titre right">';
 
 1454    print 
'<input class="flat" type="text" size="5" name="search_total_ttc" value="'.$search_total_ttc.
'">';
 
 1457  if (!empty($arrayfields[
'cf.multicurrency_code'][
'checked'])) {
 
 1459    print 
'<td class="liste_titre">';
 
 1460    print $form->selectMultiCurrency($search_multicurrency_code, 
'search_multicurrency_code', 1);
 
 1463  if (!empty($arrayfields[
'cf.multicurrency_tx'][
'checked'])) {
 
 1465    print 
'<td class="liste_titre">';
 
 1466    print 
'<input class="flat" type="text" size="4" name="search_multicurrency_tx" value="'.dol_escape_htmltag($search_multicurrency_tx).
'">';
 
 1469  if (!empty($arrayfields[
'cf.multicurrency_total_ht'][
'checked'])) {
 
 1471    print 
'<td class="liste_titre right">';
 
 1472    print 
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_ht" value="'.dol_escape_htmltag($search_multicurrency_montant_ht).
'">';
 
 1475  if (!empty($arrayfields[
'cf.multicurrency_total_tva'][
'checked'])) {
 
 1477    print 
'<td class="liste_titre right">';
 
 1478    print 
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_tva" value="'.dol_escape_htmltag($search_multicurrency_montant_tva).
'">';
 
 1481  if (!empty($arrayfields[
'cf.multicurrency_total_ttc'][
'checked'])) {
 
 1483    print 
'<td class="liste_titre right">';
 
 1484    print 
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_ttc" value="'.dol_escape_htmltag($search_multicurrency_montant_ttc).
'">';
 
 1488  include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_input.tpl.php';
 
 1491  $parameters = array(
'arrayfields'=>$arrayfields);
 
 1492  $reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters); 
 
 1493  print $hookmanager->resPrint;
 
 1495  if (!empty($arrayfields[
'cf.date_creation'][
'checked'])) {
 
 1496    print 
'<td class="liste_titre">';
 
 1500  if (!empty($arrayfields[
'cf.tms'][
'checked'])) {
 
 1501    print 
'<td class="liste_titre">';
 
 1505  if (!empty($arrayfields[
'cf.billed'][
'checked'])) {
 
 1506    print 
'<td class="liste_titre center parentonrightofpage">';
 
 1507    print $form->selectyesno(
'search_billed', $search_billed, 1, 
false, 1, 1, 
'search_status width100 onrightofpage');
 
 1511  if (!empty($arrayfields[
'cf.fk_statut'][
'checked'])) {
 
 1512    print 
'<td class="liste_titre center parentonrightofpage">';
 
 1513    $formorder->selectSupplierOrderStatus($search_status, 1, 
'search_status', 
'search_status width100 onrightofpage');
 
 1517  if (!empty($arrayfields[
'cf.date_valid'][
'checked'])) {
 
 1518    print 
'<td class="liste_titre center">';
 
 1519    print 
'<div class="nowrapfordate">';
 
 1520    print $form->selectDate($search_date_valid_start ? $search_date_valid_start : -1, 
'search_date_valid_start', 0, 0, 1, 
'', 1, 0, 0, 
'', 
'', 
'', 
'', 1, 
'', $langs->trans(
'From'));
 
 1522    print 
'<div class="nowrapfordate">';
 
 1523    print $form->selectDate($search_date_valid_end ? $search_date_valid_end : -1, 
'search_date_valid_end', 0, 0, 1, 
'', 1, 0, 0, 
'', 
'', 
'', 
'', 1, 
'', $langs->trans(
'to'));
 
 1528  if (!empty($arrayfields[
'cf.date_approve'][
'checked'])) {
 
 1529    print 
'<td class="liste_titre center">';
 
 1530    print 
'<div class="nowrapfordate">';
 
 1531    print $form->selectDate($search_date_approve_start ? $search_date_approve_start : -1, 
'search_date_approve_start', 0, 0, 1, 
'', 1, 0, 0, 
'', 
'', 
'', 
'', 1, 
'', $langs->trans(
'From'));
 
 1533    print 
'<div class="nowrapfordate">';
 
 1534    print $form->selectDate($search_date_approve_end ? $search_date_approve_end : -1, 
'search_date_approve_end', 0, 0, 1, 
'', 1, 0, 0, 
'', 
'', 
'', 
'', 1, 
'', $langs->trans(
'to'));
 
 1539  if (!empty($arrayfields[
'cf.note_public'][
'checked'])) {
 
 1540    print 
'<td class="liste_titre">';
 
 1544  if (!empty($arrayfields[
'cf.note_private'][
'checked'])) {
 
 1545    print 
'<td class="liste_titre">';
 
 1550    print 
'<td class="liste_titre center">';
 
 1551    $searchpicto = $form->showFilterButtons();
 
 1558  $totalarray = array();
 
 1559  $totalarray[
'nbfield'] = 0;
 
 1562  print 
'<tr class="liste_titre">';
 
 1564    print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"], 
"", 
'', 
'', 
'', $sortfield, $sortorder, 
'center maxwidthsearch ');
 
 1565    $totalarray[
'nbfield']++;
 
 1567  if (!empty($arrayfields[
'cf.ref'][
'checked'])) {
 
 1568    print_liste_field_titre($arrayfields[
'cf.ref'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.ref", 
"", $param, 
'', $sortfield, $sortorder);
 
 1569    $totalarray[
'nbfield']++;
 
 1571  if (!empty($arrayfields[
'cf.ref_supplier'][
'checked'])) {
 
 1572    print_liste_field_titre($arrayfields[
'cf.ref_supplier'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.ref_supplier", 
"", $param, 
'', $sortfield, $sortorder, 
'tdoverflowmax100imp ');
 
 1573    $totalarray[
'nbfield']++;
 
 1575  if (!empty($arrayfields[
'cf.fk_projet'][
'checked'])) {
 
 1576    print_liste_field_titre($arrayfields[
'cf.fk_projet'][
'label'], $_SERVER[
"PHP_SELF"], 
"p.ref", 
"", $param, 
'', $sortfield, $sortorder);
 
 1577    $totalarray[
'nbfield']++;
 
 1579  if (!empty($arrayfields[
'u.login'][
'checked'])) {
 
 1580    print_liste_field_titre($arrayfields[
'u.login'][
'label'], $_SERVER[
"PHP_SELF"], 
"u.login", 
"", $param, 
'', $sortfield, $sortorder);
 
 1581    $totalarray[
'nbfield']++;
 
 1583  if (!empty($arrayfields[
'cf.fk_soc'][
'checked'])) {
 
 1584    print_liste_field_titre($arrayfields[
'cf.fk_soc'][
'label'], $_SERVER[
"PHP_SELF"], 
"s.nom", 
"", $param, 
'', $sortfield, $sortorder);
 
 1585    $totalarray[
'nbfield']++;
 
 1587  if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
 
 1588    print_liste_field_titre($arrayfields[
's.name_alias'][
'label'], $_SERVER[
"PHP_SELF"], 
"s.name_alias", 
"", $param, 
'', $sortfield, $sortorder);
 
 1589    $totalarray[
'nbfield']++;
 
 1591  if (!empty($arrayfields[
's.town'][
'checked'])) {
 
 1592    print_liste_field_titre($arrayfields[
's.town'][
'label'], $_SERVER[
"PHP_SELF"], 
's.town', 
'', $param, 
'', $sortfield, $sortorder);
 
 1593    $totalarray[
'nbfield']++;
 
 1595  if (!empty($arrayfields[
's.zip'][
'checked'])) {
 
 1596    print_liste_field_titre($arrayfields[
's.zip'][
'label'], $_SERVER[
"PHP_SELF"], 
's.zip', 
'', $param, 
'', $sortfield, $sortorder);
 
 1597    $totalarray[
'nbfield']++;
 
 1599  if (!empty($arrayfields[
'state.nom'][
'checked'])) {
 
 1600    print_liste_field_titre($arrayfields[
'state.nom'][
'label'], $_SERVER[
"PHP_SELF"], 
"state.nom", 
"", $param, 
'', $sortfield, $sortorder);
 
 1601    $totalarray[
'nbfield']++;
 
 1603  if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
 
 1604    print_liste_field_titre($arrayfields[
'country.code_iso'][
'label'], $_SERVER[
"PHP_SELF"], 
"country.code_iso", 
"", $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1605    $totalarray[
'nbfield']++;
 
 1607  if (!empty($arrayfields[
'typent.code'][
'checked'])) {
 
 1608    print_liste_field_titre($arrayfields[
'typent.code'][
'label'], $_SERVER[
"PHP_SELF"], 
"typent.code", 
"", $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1609    $totalarray[
'nbfield']++;
 
 1611  if (!empty($arrayfields[
'cf.fk_author'][
'checked'])) {
 
 1612    print_liste_field_titre($arrayfields[
'cf.fk_author'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.fk_author", 
"", $param, 
'', $sortfield, $sortorder);
 
 1613    $totalarray[
'nbfield']++;
 
 1615  if (!empty($arrayfields[
'cf.date_commande'][
'checked'])) {
 
 1616    print_liste_field_titre($arrayfields[
'cf.date_commande'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.date_commande", 
"", $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1617    $totalarray[
'nbfield']++;
 
 1619  if (!empty($arrayfields[
'cf.date_livraison'][
'checked'])) {
 
 1620    print_liste_field_titre($arrayfields[
'cf.date_livraison'][
'label'], $_SERVER[
"PHP_SELF"], 
'cf.date_livraison', 
'', $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1621    $totalarray[
'nbfield']++;
 
 1623  if (!empty($arrayfields[
'cf.total_ht'][
'checked'])) {
 
 1624    print_liste_field_titre($arrayfields[
'cf.total_ht'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.total_ht", 
"", $param, 
'', $sortfield, $sortorder, 
'right ');
 
 1625    $totalarray[
'nbfield']++;
 
 1627  if (!empty($arrayfields[
'cf.total_tva'][
'checked'])) {
 
 1628    print_liste_field_titre($arrayfields[
'cf.total_tva'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.total_tva", 
"", $param, 
'', $sortfield, $sortorder, 
'right ');
 
 1629    $totalarray[
'nbfield']++;
 
 1631  if (!empty($arrayfields[
'cf.total_ttc'][
'checked'])) {
 
 1632    print_liste_field_titre($arrayfields[
'cf.total_ttc'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.total_ttc", 
"", $param, 
'', $sortfield, $sortorder, 
'right ');
 
 1633    $totalarray[
'nbfield']++;
 
 1635  if (!empty($arrayfields[
'cf.multicurrency_code'][
'checked'])) {
 
 1636    print_liste_field_titre($arrayfields[
'cf.multicurrency_code'][
'label'], $_SERVER[
'PHP_SELF'], 
'cf.multicurrency_code', 
'', $param, 
'', $sortfield, $sortorder);
 
 1637    $totalarray[
'nbfield']++;
 
 1639  if (!empty($arrayfields[
'cf.multicurrency_tx'][
'checked'])) {
 
 1640    print_liste_field_titre($arrayfields[
'cf.multicurrency_tx'][
'label'], $_SERVER[
'PHP_SELF'], 
'cf.multicurrency_tx', 
'', $param, 
'', $sortfield, $sortorder);
 
 1641    $totalarray[
'nbfield']++;
 
 1643  if (!empty($arrayfields[
'cf.multicurrency_total_ht'][
'checked'])) {
 
 1644    print_liste_field_titre($arrayfields[
'cf.multicurrency_total_ht'][
'label'], $_SERVER[
'PHP_SELF'], 
'cf.multicurrency_total_ht', 
'', $param, 
'class="right"', $sortfield, $sortorder);
 
 1645    $totalarray[
'nbfield']++;
 
 1647  if (!empty($arrayfields[
'cf.multicurrency_total_tva'][
'checked'])) {
 
 1648    print_liste_field_titre($arrayfields[
'cf.multicurrency_total_tva'][
'label'], $_SERVER[
'PHP_SELF'], 
'cf.multicurrency_total_tva', 
'', $param, 
'class="right"', $sortfield, $sortorder);
 
 1649    $totalarray[
'nbfield']++;
 
 1651  if (!empty($arrayfields[
'cf.multicurrency_total_ttc'][
'checked'])) {
 
 1652    print_liste_field_titre($arrayfields[
'cf.multicurrency_total_ttc'][
'label'], $_SERVER[
'PHP_SELF'], 
'cf.multicurrency_total_ttc', 
'', $param, 
'class="right"', $sortfield, $sortorder);
 
 1653    $totalarray[
'nbfield']++;
 
 1656  include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_title.tpl.php';
 
 1658  $parameters = array(
'arrayfields'=>$arrayfields, 
'param'=>$param, 
'sortfield'=>$sortfield, 
'sortorder'=>$sortorder);
 
 1659  $reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters); 
 
 1660  print $hookmanager->resPrint;
 
 1661  if (!empty($arrayfields[
'cf.date_creation'][
'checked'])) {
 
 1662    print_liste_field_titre($arrayfields[
'cf.date_creation'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.date_creation", 
"", $param, 
'', $sortfield, $sortorder, 
'center nowraponall ');
 
 1663    $totalarray[
'nbfield']++;
 
 1665  if (!empty($arrayfields[
'cf.tms'][
'checked'])) {
 
 1666    print_liste_field_titre($arrayfields[
'cf.tms'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.tms", 
"", $param, 
'', $sortfield, $sortorder, 
'center nowraponall ');
 
 1667    $totalarray[
'nbfield']++;
 
 1669  if (!empty($arrayfields[
'cf.billed'][
'checked'])) {
 
 1670    print_liste_field_titre($arrayfields[
'cf.billed'][
'label'], $_SERVER[
"PHP_SELF"], 
'cf.billed', 
'', $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1671    $totalarray[
'nbfield']++;
 
 1673  if (!empty($arrayfields[
'cf.fk_statut'][
'checked'])) {
 
 1674    print_liste_field_titre($arrayfields[
'cf.fk_statut'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.fk_statut", 
"", $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1675    $totalarray[
'nbfield']++;
 
 1677  if (!empty($arrayfields[
'cf.date_valid'][
'checked'])) {
 
 1678    print_liste_field_titre($arrayfields[
'cf.date_valid'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.date_valid", 
"", $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1679    $totalarray[
'nbfield']++;
 
 1681  if (!empty($arrayfields[
'cf.date_approve'][
'checked'])) {
 
 1682    print_liste_field_titre($arrayfields[
'cf.date_approve'][
'label'], $_SERVER[
"PHP_SELF"], 
'cf.date_approve', 
'', $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1683    $totalarray[
'nbfield']++;
 
 1685  if (!empty($arrayfields[
'cf.note_public'][
'checked'])) {
 
 1686    print_liste_field_titre($arrayfields[
'cf.note_public'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.note_public", 
"", $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1687    $totalarray[
'nbfield']++;
 
 1689  if (!empty($arrayfields[
'cf.note_private'][
'checked'])) {
 
 1690    print_liste_field_titre($arrayfields[
'cf.note_private'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.note_private", 
"", $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1691    $totalarray[
'nbfield']++;
 
 1694    print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"], 
"", 
'', 
'', 
'', $sortfield, $sortorder, 
'center maxwidthsearch ');
 
 1695    $totalarray[
'nbfield']++;
 
 1701  $productstat_cache = array();
 
 1703  $userstatic = 
new User($db);
 
 1705  $projectstatic = 
new Project($db);
 
 1708  $savnbfield = $totalarray[
'nbfield'];
 
 1709  $totalarray = array(
'nbfield' => 0, 
'val' => array(), 
'pos' => array());
 
 1710  $totalarray[
'val'][
'cf.total_ht'] = 0;
 
 1711  $totalarray[
'val'][
'cf.total_ttc'] = 0;
 
 1712  $totalarray[
'val'][
'cf.total_tva'] = 0;
 
 1714  $imaxinloop = ($limit ? min($num, $limit) : $num);
 
 1715  while ($i < $imaxinloop) {
 
 1716    $obj = $db->fetch_object($resql);
 
 1724    $objectstatic->id = $obj->rowid;
 
 1725    $objectstatic->ref = $obj->ref;
 
 1726    $objectstatic->ref_supplier = $obj->ref_supplier;
 
 1727    $objectstatic->socid = $obj->socid;
 
 1728    $objectstatic->total_ht = $obj->total_ht;
 
 1729    $objectstatic->total_tva = $obj->total_tva;
 
 1730    $objectstatic->total_ttc = $obj->total_ttc;
 
 1731    $objectstatic->date_commande = $db->jdate($obj->date_commande);
 
 1732    $objectstatic->delivery_date = $db->jdate($obj->delivery_date);
 
 1733    $objectstatic->note_public = $obj->note_public;
 
 1734    $objectstatic->note_private = $obj->note_private;
 
 1735    $objectstatic->statut = $obj->fk_statut;
 
 1737    if ($mode == 
'kanban') {
 
 1739        print 
'<tr class="trkanban"><td colspan="'.$savnbfield.
'">';
 
 1740        print 
'<div class="box-flex-container kanban">';
 
 1743      $thirdpartytmp->id = $obj->socid;
 
 1744      $thirdpartytmp->name = $obj->name;
 
 1745      $thirdpartytmp->email = $obj->email;
 
 1746      $thirdpartytmp->name_alias = $obj->alias;
 
 1747      $thirdpartytmp->client = $obj->client;
 
 1748      $thirdpartytmp->fournisseur = $obj->fournisseur;
 
 1750      print $objectstatic->getKanbanView(
'', array(
'thirdparty'=>$thirdpartytmp->getNomUrl(
'supplier', 0, 0, -1), 
'selected' => in_array($objectstatic->id, $arrayofselected)));
 
 1751      if ($i == ($imaxinloop - 1)) {
 
 1756      print 
'<tr class="oddeven">';
 
 1759        print 
'<td class="nowrap center">';
 
 1760        if ($massactionbutton || $massaction) {   
 
 1762          if (in_array($obj->rowid, $arrayofselected)) {
 
 1765          print 
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ? 
' checked="checked"' : 
'').
'>';
 
 1770      if (!empty($arrayfields[
'cf.ref'][
'checked'])) {
 
 1771        print 
'<td class="nowrap">';
 
 1774        print $objectstatic->getNomUrl(1, 
'', 0, -1, 1);
 
 1778        print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
 
 1782          $totalarray[
'nbfield']++;
 
 1786      if (!empty($arrayfields[
'cf.ref_supplier'][
'checked'])) {
 
 1787        print 
'<td class="tdoverflowmax150" title="'.dol_escape_htmltag($obj->ref_supplier).
'">'.
dol_escape_htmltag($obj->ref_supplier).
'</td>'.
"\n";
 
 1789          $totalarray[
'nbfield']++;
 
 1793      if (!empty($arrayfields[
'cf.fk_projet'][
'checked'])) {
 
 1794        $projectstatic->id = $obj->project_id;
 
 1795        $projectstatic->ref = $obj->project_ref;
 
 1796        $projectstatic->title = $obj->project_title;
 
 1798        if ($obj->project_id > 0) {
 
 1799          print $projectstatic->getNomUrl(1);
 
 1803          $totalarray[
'nbfield']++;
 
 1807      $userstatic->id = $obj->fk_user_author;
 
 1808      $userstatic->lastname = $obj->lastname;
 
 1809      $userstatic->firstname = $obj->firstname;
 
 1810      $userstatic->login = $obj->login;
 
 1811      $userstatic->photo = $obj->photo;
 
 1812      $userstatic->email = $obj->user_email;
 
 1813      $userstatic->statut = $obj->user_status;
 
 1814      if (!empty($arrayfields[
'u.login'][
'checked'])) {
 
 1815        print 
'<td class="tdoverflowmax150">';
 
 1816        if ($userstatic->id) {
 
 1817          print $userstatic->getNomUrl(1);
 
 1821          $totalarray[
'nbfield']++;
 
 1825      if (!empty($arrayfields[
'cf.fk_soc'][
'checked'])) {
 
 1826        print 
'<td class="tdoverflowmax150">';
 
 1827        $thirdpartytmp->id = $obj->socid;
 
 1828        $thirdpartytmp->name = $obj->name;
 
 1829        $thirdpartytmp->email = $obj->email;
 
 1830        $thirdpartytmp->name_alias = $obj->alias;
 
 1831        $thirdpartytmp->client = $obj->client;
 
 1832        $thirdpartytmp->fournisseur = $obj->fournisseur;
 
 1833        print $thirdpartytmp->getNomUrl(1, 
'supplier', 0, 0, -1, empty($arrayfields[
's.name_alias'][
'checked']) ? 0 : 1);
 
 1836          $totalarray[
'nbfield']++;
 
 1840      if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
 
 1841        print 
'<td class="tdoverflowmax150" title="'.dol_escape_htmltag($obj->alias).
'">';
 
 1845          $totalarray[
'nbfield']++;
 
 1849      if (!empty($arrayfields[
's.town'][
'checked'])) {
 
 1850        print 
'<td class="tdoverflowmax100" title="'.dol_escape_htmltag($obj->town).
'">';
 
 1854          $totalarray[
'nbfield']++;
 
 1858      if (!empty($arrayfields[
's.zip'][
'checked'])) {
 
 1859        print 
'<td class="tdoverflowmax100" title="'.dol_escape_htmltag($obj->zip).
'">';
 
 1863          $totalarray[
'nbfield']++;
 
 1867      if (!empty($arrayfields[
'state.nom'][
'checked'])) {
 
 1868        print 
'<td class="tdoverflowmax100" title="'.dol_escape_htmltag($obj->state_name).
'">'.
dol_escape_htmltag($obj->state_name).
"</td>\n";
 
 1870          $totalarray[
'nbfield']++;
 
 1874      if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
 
 1875        print 
'<td class="center">';
 
 1876        $tmparray = 
getCountry($obj->fk_pays, 
'all');
 
 1877        print $tmparray[
'label'];
 
 1880          $totalarray[
'nbfield']++;
 
 1884      if (!empty($arrayfields[
'typent.code'][
'checked'])) {
 
 1885        print 
'<td class="center">';
 
 1886        if (empty($typenArray)) {
 
 1887          $typenArray = $formcompany->typent_array(1);
 
 1889        print $typenArray[$obj->typent_code];
 
 1892          $totalarray[
'nbfield']++;
 
 1897      if (!empty($arrayfields[
'cf.date_commande'][
'checked'])) {
 
 1898        print 
'<td class="center">';
 
 1900        if ($objectstatic->statut != $objectstatic::STATUS_ORDERSENT && $objectstatic->statut != $objectstatic::STATUS_RECEIVED_PARTIALLY) {
 
 1901          if ($objectstatic->hasDelay()) {
 
 1902            print 
' '.img_picto($langs->trans(
"Late").
' : '.$objectstatic->showDelay(), 
"warning");
 
 1907          $totalarray[
'nbfield']++;
 
 1911      if (!empty($arrayfields[
'cf.date_livraison'][
'checked'])) {
 
 1912        print 
'<td class="center">';
 
 1914        if ($objectstatic->statut == $objectstatic::STATUS_ORDERSENT || $objectstatic->statut == $objectstatic::STATUS_RECEIVED_PARTIALLY) {
 
 1915          if ($objectstatic->hasDelay()) {
 
 1916            print 
' '.img_picto($langs->trans(
"Late").
' : '.$objectstatic->showDelay(), 
"warning");
 
 1921          $totalarray[
'nbfield']++;
 
 1925      if (!empty($arrayfields[
'cf.total_ht'][
'checked'])) {
 
 1926        print 
'<td class="right"><span class="amount">'.price($obj->total_ht).
"</span></td>\n";
 
 1928          $totalarray[
'nbfield']++;
 
 1931          $totalarray[
'pos'][$totalarray[
'nbfield']] = 
'cf.total_ht';
 
 1933        $totalarray[
'val'][
'cf.total_ht'] += $obj->total_ht;
 
 1936      if (!empty($arrayfields[
'cf.total_tva'][
'checked'])) {
 
 1937        print 
'<td class="right"><span class="amount">'.price($obj->total_tva).
"</span></td>\n";
 
 1939          $totalarray[
'nbfield']++;
 
 1942          $totalarray[
'pos'][$totalarray[
'nbfield']] = 
'cf.total_tva';
 
 1944        $totalarray[
'val'][
'cf.total_tva'] += $obj->total_tva;
 
 1947      if (!empty($arrayfields[
'cf.total_ttc'][
'checked'])) {
 
 1948        print 
'<td class="right"><span class="amount">'.price($obj->total_ttc).
"</span></td>\n";
 
 1950          $totalarray[
'nbfield']++;
 
 1953          $totalarray[
'pos'][$totalarray[
'nbfield']] = 
'cf.total_ttc';
 
 1955        $totalarray[
'val'][
'cf.total_ttc'] += $obj->total_ttc;
 
 1959      if (!empty($arrayfields[
'cf.multicurrency_code'][
'checked'])) {
 
 1960        print 
'<td class="nowrap">'.$obj->multicurrency_code.
' - '.$langs->trans(
'Currency'.$obj->multicurrency_code).
"</td>\n";
 
 1962          $totalarray[
'nbfield']++;
 
 1967      if (!empty($arrayfields[
'cf.multicurrency_tx'][
'checked'])) {
 
 1968        print 
'<td class="nowrap">';
 
 1969        $form->form_multicurrency_rate($_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid, $obj->multicurrency_tx, 
'none', $obj->multicurrency_code);
 
 1972          $totalarray[
'nbfield']++;
 
 1976      if (!empty($arrayfields[
'cf.multicurrency_total_ht'][
'checked'])) {
 
 1977        print 
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ht).
"</span></td>\n";
 
 1979          $totalarray[
'nbfield']++;
 
 1983      if (!empty($arrayfields[
'cf.multicurrency_total_tva'][
'checked'])) {
 
 1984        print 
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_tva).
"</span></td>\n";
 
 1986          $totalarray[
'nbfield']++;
 
 1990      if (!empty($arrayfields[
'cf.multicurrency_total_ttc'][
'checked'])) {
 
 1991        print 
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ttc).
"</span></td>\n";
 
 1993          $totalarray[
'nbfield']++;
 
 1998      include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_print_fields.tpl.php';
 
 2000      $parameters = array(
'arrayfields'=>$arrayfields, 
'obj'=>$obj, 
'i'=>$i, 
'totalarray'=>&$totalarray);
 
 2001      $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters); 
 
 2002      print $hookmanager->resPrint;
 
 2004      if (!empty($arrayfields[
'cf.date_creation'][
'checked'])) {
 
 2005        print 
'<td class="center nowraponall">';
 
 2006        print 
dol_print_date($db->jdate($obj->date_creation), 
'dayhour', 
'tzuser');
 
 2009          $totalarray[
'nbfield']++;
 
 2013      if (!empty($arrayfields[
'cf.tms'][
'checked'])) {
 
 2014        print 
'<td class="center nowraponall">';
 
 2015        print 
dol_print_date($db->jdate($obj->date_update), 
'dayhour', 
'tzuser');
 
 2018          $totalarray[
'nbfield']++;
 
 2022      if (!empty($arrayfields[
'cf.billed'][
'checked'])) {
 
 2023        print 
'<td class="center">'.yn($obj->billed).
'</td>';
 
 2025          $totalarray[
'nbfield']++;
 
 2029      if (!empty($arrayfields[
'cf.fk_statut'][
'checked'])) {
 
 2030        print 
'<td class="center nowrap">'.$objectstatic->LibStatut($obj->fk_statut, 5, $obj->billed).
'</td>';
 
 2032          $totalarray[
'nbfield']++;
 
 2037      if (!empty($arrayfields[
'cf.date_valid'][
'checked'])) {
 
 2038        print 
'<td class="center">';
 
 2042          $totalarray[
'nbfield']++;
 
 2046      if (!empty($arrayfields[
'cf.date_approve'][
'checked'])) {
 
 2047        print 
'<td class="center">';
 
 2051          $totalarray[
'nbfield']++;
 
 2055      if (!empty($arrayfields[
'cf.note_public'][
'checked'])) {
 
 2056        print 
'<td class="center">';
 
 2060          $totalarray[
'nbfield']++;
 
 2065      if (!empty($arrayfields[
'cf.note_private'][
'checked'])) {
 
 2066        print 
'<td class="center">';
 
 2070          $totalarray[
'nbfield']++;
 
 2076        print 
'<td class="nowrap center">';
 
 2077        if ($massactionbutton || $massaction) {   
 
 2079          if (in_array($obj->rowid, $arrayofselected)) {
 
 2082          print 
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ? 
' checked="checked"' : 
'').
'>';
 
 2087        $totalarray[
'nbfield']++;
 
 2092      $total += $obj->total_ht;
 
 2093      $subtotal += $obj->total_ht;
 
 2099  include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
 
 2104    foreach ($arrayfields as $key => $val) {
 
 2105      if (!empty($val[
'checked'])) {
 
 2109    print 
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
 
 2114  $parameters = array(
'arrayfields'=>$arrayfields, 
'sql'=>$sql);
 
 2115  $reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters); 
 
 2116  print $hookmanager->resPrint;
 
 2118  print 
'</table>'.
"\n";
 
 2121  print 
'</form>'.
"\n";
 
 2123  $hidegeneratedfilelistifempty = 1;
 
 2124  if ($massaction == 
'builddoc' || $action == 
'remove_file' || $show_files) {
 
 2125    $hidegeneratedfilelistifempty = 0;
 
 2129  $urlsource = $_SERVER[
'PHP_SELF'].
'?sortfield='.$sortfield.
'&sortorder='.$sortorder;
 
 2130  $urlsource .= str_replace(
'&', 
'&', $param);
 
 2132  $filedir = $diroutputmassaction;
 
 2133  $genallowed = $permissiontoread;
 
 2134  $delallowed = $permissiontoadd;
 
 2136  print $formfile->showdocuments(
'massfilesarea_supplier_order', 
'', $filedir, $urlsource, 0, $delallowed, 
'', 1, 1, 0, 48, 1, $param, $title, 
'', 
'', 
'', 
null, $hidegeneratedfilelistifempty);
 
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
 
Class to manage predefined suppliers products.
 
Class to manage absolute discounts.
 
Class to manage suppliers invoices.
 
Class to manage suppliers.
 
Class to manage projects.
 
Class to manage third parties objects (customers, suppliers, prospects...)
 
Class to manage Dolibarr users.
 
getCountry($searchkey, $withcode='', $dbtouse=0, $outputlangs='', $entconv=1, $searchlabel='')
Return country label, code or id from an id, code or label.
 
dol_mktime($hour, $minute, $second, $month, $day, $year, $gm='auto', $check=1)
Return a timestamp date built from detailed informations (by default a local PHP server timestamp) Re...
 
dol_string_nohtmltag($stringtoclean, $removelinefeed=1, $pagecodeto='UTF-8', $strip_tags=0, $removedoublespaces=1)
Clean a string from all HTML tags and entities.
 
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
 
dolGetButtonTitle($label, $helpText='', $iconClass='fa fa-file', $url='', $id='', $status=1, $params=array())
Function dolGetButtonTitle : this kind of buttons are used in title in list.
 
natural_search($fields, $value, $mode=0, $nofirstand=0)
Generate natural SQL search string for a criteria (this criteria can be tested on one or several fiel...
 
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
 
GETPOSTISARRAY($paramname, $method=0)
Return true if the parameter $paramname is submit from a POST OR GET as an array.
 
dol_now($mode='auto')
Return date for now.
 
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
 
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
 
dol_sort_array(&$array, $index, $order='asc', $natsort=0, $case_sensitive=0, $keepindex=0)
Advanced sort array by second index function, which produces ascending (default) or descending output...
 
dol_eval($s, $returnvalue=0, $hideerrors=1, $onlysimplestring='1')
Replace eval function to add more security.
 
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
 
dolGetButtonTitleSeparator($moreClass="")
Add space between dolGetButtonTitle.
 
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
 
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
 
print_barre_liste($titre, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $hideselectlimit=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
 
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
 
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
 
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
 
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.