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'));
 
  138$orderid = 
GETPOST(
'orderid', 
'int');
 
  140  $socid = $user->socid;
 
  142$result = 
restrictedArea($user, 
'fournisseur', $orderid, 
'', 
'commande');
 
  144$diroutputmassaction = $conf->fournisseur->commande->dir_output.
'/temp/massgeneration/'.$user->id;
 
  146$limit = 
GETPOST(
'limit', 
'int') ?
GETPOST(
'limit', 
'int') : $conf->liste_limit;
 
  147$sortfield = 
GETPOST(
'sortfield', 
'aZ09comma');
 
  148$sortorder = 
GETPOST(
'sortorder', 
'aZ09comma');
 
  149$page = GETPOSTISSET(
'pageplusone') ? (
GETPOST(
'pageplusone') - 1) : 
GETPOST(
"page", 
'int');
 
  150if (empty($page) || $page == -1 || !empty($search_btn) || !empty($search_remove_btn) || (empty($toselect) && $massaction === 
'0')) {
 
  153$offset = $limit * $page;
 
  154$pageprev = $page - 1;
 
  155$pagenext = $page + 1;
 
  157  $sortfield = 
'cf.ref';
 
  165$hookmanager->initHooks(array(
'supplierorderlist'));
 
  169$extrafields->fetch_name_optionals_label($object->table_element);
 
  171$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, 
'', 
'search_');
 
  174$fieldstosearchall = array();
 
  175foreach ($object->fields as $key => $val) {
 
  176  if (!empty($val[
'searchall'])) {
 
  177    $fieldstosearchall[
'cf.'.$key] = $val[
'label'];
 
  180$fieldstosearchall[
'pd.description'] = 
'Description';
 
  181$fieldstosearchall[
's.nom'] = 
"ThirdParty";
 
  182$fieldstosearchall[
's.name_alias'] = 
"AliasNameShort";
 
  183$fieldstosearchall[
's.zip'] = 
"Zip";
 
  184$fieldstosearchall[
's.town'] = 
"Town";
 
  185if (empty($user->socid)) {
 
  186  $fieldstosearchall[
"cf.note_private"] = 
"NotePrivate";
 
  189$checkedtypetiers = 0;
 
  193  'u.login'=>array(
'label'=>
"AuthorRequest", 
'enabled'=>1, 
'position'=>41),
 
  194  's.name_alias'=>array(
'label'=>
"AliasNameShort", 
'position'=>51, 
'checked'=>0),
 
  195  's.town'=>array(
'label'=>
"Town", 
'enabled'=>1, 
'position'=>55, 
'checked'=>1),
 
  196  's.zip'=>array(
'label'=>
"Zip", 
'enabled'=>1, 
'position'=>56, 
'checked'=>1),
 
  197  'state.nom'=>array(
'label'=>
"StateShort", 
'enabled'=>1, 
'position'=>57),
 
  198  'country.code_iso'=>array(
'label'=>
"Country", 
'enabled'=>1, 
'position'=>58),
 
  199  'typent.code'=>array(
'label'=>
"ThirdPartyType", 
'enabled'=>$checkedtypetiers, 
'position'=>59),
 
  200  'cf.total_localtax1'=>array(
'label'=>$langs->transcountry(
"AmountLT1", $mysoc->country_code), 
'checked'=>0, 
'enabled'=>($mysoc->localtax1_assuj == 
"1"), 
'position'=>140),
 
  201  'cf.total_localtax2'=>array(
'label'=>$langs->transcountry(
"AmountLT2", $mysoc->country_code), 
'checked'=>0, 
'enabled'=>($mysoc->localtax2_assuj == 
"1"), 
'position'=>145),
 
  202  'cf.note_public'=>array(
'label'=>
'NotePublic', 
'checked'=>0, 
'enabled'=>(!
getDolGlobalInt(
'MAIN_LIST_HIDE_PUBLIC_NOTES')), 
'position'=>750),
 
  203  'cf.note_private'=>array(
'label'=>
'NotePrivate', 
'checked'=>0, 
'enabled'=>(!
getDolGlobalInt(
'MAIN_LIST_HIDE_PRIVATE_NOTES')), 
'position'=>760),
 
  205foreach ($object->fields as $key => $val) {
 
  207  if (!empty($val[
'visible'])) {
 
  208    $visible = (int) 
dol_eval($val[
'visible'], 1);
 
  209    $arrayfields[
'cf.'.$key] = array(
 
  210      'label'=>$val[
'label'],
 
  211      'checked'=>(($visible < 0) ? 0 : 1),
 
  212      'enabled'=>(abs($visible) != 3 && 
dol_eval($val[
'enabled'], 1)),
 
  213      'position'=>$val[
'position'],
 
  214      'help'=> isset($val[
'help']) ? $val[
'help'] : 
'' 
  219include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_array_fields.tpl.php';
 
  226$permissiontoread = ($user->hasRight(
"fournisseur", 
"commande", 
"lire") || $user->hasRight(
"supplier_order", 
"lire"));
 
  227$permissiontoadd = ($user->hasRight(
"fournisseur", 
"commande", 
"creer") || $user->hasRight(
"supplier_order", 
"creer"));
 
  228$permissiontodelete = ($user->hasRight(
"fournisseur", 
"commande", 
"supprimer") || $user->hasRight(
"supplier_order", 
"supprimer"));
 
  229$permissiontovalidate = $permissiontoadd;
 
  230$permissiontoapprove = ($user->hasRight(
"fournisseur", 
"commande", 
"approuver") || $user->hasRight(
"supplier_order", 
"approuver"));
 
  237if (
GETPOST(
'cancel', 
'alpha')) {
 
  238  $action = 
'list'; $massaction = 
'';
 
  240if (!
GETPOST(
'confirmmassaction', 
'alpha') && $massaction != 
'presend' && $massaction != 
'confirm_presend' && $massaction != 
'confirm_createsupplierbills') {
 
  244$parameters = array(
'socid'=>$socid);
 
  245$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action); 
 
  250if (empty($reshook)) {
 
  252  include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
 
  255  if (
GETPOST(
'button_removefilter_x', 
'alpha') || 
GETPOST(
'button_removefilter.x', 
'alpha') || 
GETPOST(
'button_removefilter', 
'alpha')) { 
 
  259    $search_product_category = 
'';
 
  261    $search_refsupp = 
'';
 
  262    $search_company = 
'';
 
  263    $search_company_alias = 
'';
 
  268    $search_country = 
'';
 
  269    $search_type_thirdparty = 
'';
 
  270    $search_request_author = 
'';
 
  271    $search_total_ht = 
'';
 
  272    $search_total_tva = 
'';
 
  273    $search_total_ttc = 
'';
 
  274    $search_multicurrency_code = 
'';
 
  275    $search_multicurrency_tx = 
'';
 
  276    $search_multicurrency_montant_ht = 
'';
 
  277    $search_multicurrency_montant_tva = 
'';
 
  278    $search_multicurrency_montant_ttc = 
'';
 
  279    $search_project_ref = 
'';
 
  281    $search_date_order_startday = 
'';
 
  282    $search_date_order_startmonth = 
'';
 
  283    $search_date_order_startyear = 
'';
 
  284    $search_date_order_endday = 
'';
 
  285    $search_date_order_endmonth = 
'';
 
  286    $search_date_order_endyear = 
'';
 
  287    $search_date_order_start = 
'';
 
  288    $search_date_order_end = 
'';
 
  289    $search_date_delivery_startday = 
'';
 
  290    $search_date_delivery_startmonth = 
'';
 
  291    $search_date_delivery_startyear = 
'';
 
  292    $search_date_delivery_endday = 
'';
 
  293    $search_date_delivery_endmonth = 
'';
 
  294    $search_date_delivery_endyear = 
'';
 
  295    $search_date_delivery_start = 
'';
 
  296    $search_date_delivery_end = 
'';
 
  297    $search_date_valid_startday = 
'';
 
  298    $search_date_valid_startmonth = 
'';
 
  299    $search_date_valid_startyear = 
'';
 
  300    $search_date_valid_endday = 
'';
 
  301    $search_date_valid_endmonth = 
'';
 
  302    $search_date_valid_endyear = 
'';
 
  303    $search_date_valid_start = 
'';
 
  304    $search_date_valid_end = 
'';
 
  305    $search_date_approve_startday = 
'';
 
  306    $search_date_approve_startmonth = 
'';
 
  307    $search_date_approve_startyear = 
'';
 
  308    $search_date_approve_endday = 
'';
 
  309    $search_date_approve_endmonth = 
'';
 
  310    $search_date_approve_endyear = 
'';
 
  311    $search_date_approve_start = 
'';
 
  312    $search_date_approve_end = 
'';
 
  316    $search_array_options = array();
 
  318  if (
GETPOST(
'button_removefilter_x', 
'alpha') || 
GETPOST(
'button_removefilter.x', 
'alpha') || 
GETPOST(
'button_removefilter', 
'alpha')
 
  319    || 
GETPOST(
'button_search_x', 
'alpha') || 
GETPOST(
'button_search.x', 
'alpha') || 
GETPOST(
'button_search', 
'alpha')) {
 
  324  $objectclass = 
'CommandeFournisseur';
 
  325  $objectlabel = 
'SupplierOrders';
 
  326  $uploaddir = $conf->fournisseur->commande->dir_output;
 
  327  include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
 
  329  if ($action == 
'validate' && $permissiontovalidate) {
 
  330    if (
GETPOST(
'confirm') == 
'yes') {
 
  335      foreach ($toselect as $checked) {
 
  336        if ($objecttmp->fetch($checked)) {
 
  337          if ($objecttmp->statut == 0) {
 
  338            $objecttmp->date_commande = 
dol_now();
 
  339            $result = $objecttmp->valid($user);
 
  342              if (empty($conf->global->SUPPLIER_ORDER_NO_DIRECT_APPROVE) && $permissiontoapprove && !(!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) && $objecttmp->hasProductsOrServices(1))) {
 
  343                $result = $objecttmp->approve($user);
 
  344                setEventMessages($langs->trans(
"SupplierOrderValidatedAndApproved"), array($objecttmp->ref));
 
  346                setEventMessages($langs->trans(
"SupplierOrderValidated"), array($objecttmp->ref));
 
  356      if (!$error) $db->commit();
 
  357      else $db->rollback();
 
  362  if ($massaction == 
'confirm_createsupplierbills') {
 
  363    $orders = 
GETPOST(
'toselect', 
'array');
 
  364    $createbills_onebythird = 
GETPOST(
'createbills_onebythird', 
'int');
 
  365    $validate_invoices = 
GETPOST(
'validate_invoices', 
'int');
 
  369    $TFactThird = array();
 
  371    $nb_bills_created = 0;
 
  379    foreach ($orders as $id_order) {
 
  381      if ($cmd->fetch($id_order) <= 0) {
 
  386      if (!empty($createbills_onebythird) && !empty($TFactThird[$cmd->socid])) {
 
  387        $objecttmp = $TFactThird[$cmd->socid]; 
 
  390        if (!empty($cmd->socid) > 0) {
 
  392          $societe->fetch($cmd->socid);
 
  393          $objecttmp->vat_reverse_charge = $societe->vat_reverse_charge;
 
  394          $objecttmp->thirdparty = $societe;
 
  396        $objecttmp->socid = $cmd->socid;
 
  397        $objecttmp->type = $objecttmp::TYPE_STANDARD;
 
  398        $objecttmp->cond_reglement_id = $cmd->cond_reglement_id;
 
  399        $objecttmp->mode_reglement_id = $cmd->mode_reglement_id;
 
  400        $objecttmp->fk_project = $cmd->fk_project;
 
  401        $objecttmp->multicurrency_code = $cmd->multicurrency_code;
 
  402        $objecttmp->ref_supplier = !empty($cmd->ref_supplier) ? $cmd->ref_supplier : $default_ref_supplier;
 
  403        $default_ref_supplier+=1;
 
  406        if (empty($datefacture)) {
 
  410        $objecttmp->date = $datefacture;
 
  411        $objecttmp->origin    = 
'order_supplier';
 
  412        $objecttmp->origin_id = $id_order;
 
  414        $res = $objecttmp->create($user);
 
  418          $lastref = $objecttmp->ref;
 
  419          $lastid = $objecttmp->id;
 
  423      if ($objecttmp->id > 0) {
 
  424        $sql = 
"INSERT INTO ".MAIN_DB_PREFIX.
"element_element (";
 
  426        $sql .= 
", sourcetype";
 
  427        $sql .= 
", fk_target";
 
  428        $sql .= 
", targettype";
 
  429        $sql .= 
") VALUES (";
 
  431        $sql .= 
", '".$db->escape($objecttmp->origin).
"'";
 
  432        $sql .= 
", ".((int) $objecttmp->id);
 
  433        $sql .= 
", '".$db->escape($objecttmp->element).
"'";
 
  436        if (!$db->query($sql)) {
 
  441          $lines = $cmd->lines;
 
  442          if (empty($lines) && method_exists($cmd, 
'fetch_lines')) {
 
  444            $lines = $cmd->lines;
 
  448          $num = count($lines);
 
  450          for ($i = 0; $i < $num; $i++) {
 
  451            $desc = ($lines[$i]->desc ? $lines[$i]->desc : $lines[$i]->libelle);
 
  452            if ($lines[$i]->subprice < 0) {
 
  455              $discount->fk_soc = $objecttmp->socid;
 
  456              $discount->amount_ht = abs($lines[$i]->total_ht);
 
  457              $discount->amount_tva = abs($lines[$i]->total_tva);
 
  458              $discount->amount_ttc = abs($lines[$i]->total_ttc);
 
  459              $discount->tva_tx = $lines[$i]->tva_tx;
 
  460              $discount->fk_user = $user->id;
 
  461              $discount->description = $desc;
 
  462              $discountid = $discount->create($user);
 
  463              if ($discountid > 0) {
 
  464                $result = $objecttmp->insert_discount($discountid);
 
  473              $product_type = ($lines[$i]->product_type ? $lines[$i]->product_type : 0);
 
  476              if ($lines[$i]->date_debut_prevue) {
 
  477                $date_start = $lines[$i]->date_debut_prevue;
 
  479              if ($lines[$i]->date_debut_reel) {
 
  480                $date_start = $lines[$i]->date_debut_reel;
 
  482              if ($lines[$i]->date_start) {
 
  483                $date_start = $lines[$i]->date_start;
 
  487              if ($lines[$i]->date_fin_prevue) {
 
  488                $date_end = $lines[$i]->date_fin_prevue;
 
  490              if ($lines[$i]->date_fin_reel) {
 
  491                $date_end = $lines[$i]->date_fin_reel;
 
  493              if ($lines[$i]->date_end) {
 
  494                $date_end = $lines[$i]->date_end;
 
  497              if (($lines[$i]->product_type != 9 && empty($lines[$i]->fk_parent_line)) || $lines[$i]->product_type == 9) {
 
  501              $tva_tx = $lines[$i]->tva_tx;
 
  502              if (!empty($lines[$i]->vat_src_code) && !preg_match(
'/\(/', $tva_tx)) {
 
  503                $tva_tx .= 
' ('.$lines[$i]->vat_src_code.
')';
 
  506              $result = $objecttmp->addline(
 
  508                $lines[$i]->subprice,
 
  510                $lines[$i]->localtax1_tx,
 
  511                $lines[$i]->localtax2_tx,
 
  513                $lines[$i]->fk_product,
 
  514                $lines[$i]->remise_percent,
 
  518                $lines[$i]->info_bits,
 
  524                $lines[$i]->array_options,
 
  527                $lines[$i]->fk_commande,
 
  529                $lines[$i]->ref_supplier,
 
  530                $lines[$i]->special_code,
 
  541              if ($result > 0 && $lines[$i]->product_type == 9) {
 
  542                $fk_parent_line = $result;
 
  549      $cmd->classifyBilled($user); 
 
  551      if (!empty($createbills_onebythird) && empty($TFactThird[$cmd->socid])) {
 
  552        $TFactThird[$cmd->socid] = $objecttmp;
 
  554        $TFact[$objecttmp->id] = $objecttmp;
 
  559    $TAllFact = empty($createbills_onebythird) ? $TFact : $TFactThird;
 
  562    if (!$error && $validate_invoices) {
 
  563      $massaction = $action = 
'builddoc';
 
  565      foreach ($TAllFact as &$objecttmp) {
 
  566        $objecttmp->validate($user);
 
  573        $id = $objecttmp->id; 
 
  577        $upload_dir = $conf->fournisseur->facture->dir_output;
 
  578        $permissiontoadd = ($user->hasRight(
"fournisseur", 
"facture", 
"creer") || $user->hasRight(
"supplier_invoice", 
"creer"));
 
  582      $massaction = $action = 
'confirm_createsupplierbills';
 
  588      if ($nb_bills_created == 1) {
 
  589        $texttoshow = $langs->trans(
'BillXCreated', 
'{s1}');
 
  590        $texttoshow = str_replace(
'{s1}', 
'<a href="'.DOL_URL_ROOT.
'/fourn/facture/card.php?id='.urlencode($lastid).
'">'.$lastref.
'</a>', $texttoshow);
 
  593        setEventMessages($langs->trans(
'BillCreated', $nb_bills_created), 
null, 
'mesgs');
 
  599        $param .= 
'&mode='.urlencode($mode);
 
  601      if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
 
  602        $param .= 
'&contextpage='.urlencode($contextpage);
 
  604      if ($limit > 0 && $limit != $conf->liste_limit) {
 
  605        $param .= 
'&limit='.((int) $limit);
 
  608        $param .= 
'&sall='.urlencode($sall);
 
  611        $param .= 
'&socid='.urlencode($socid);
 
  613      if ($search_status != 
'') {
 
  614        $param .= 
'&search_status='.urlencode($search_status);
 
  616      if ($search_date_order_startday) {
 
  617        $param .= 
'&search_date_order_startday='.urlencode($search_date_order_startday);
 
  619      if ($search_date_order_startmonth) {
 
  620        $param .= 
'&search_date_order_startmonth='.urlencode($search_date_order_startmonth);
 
  622      if ($search_date_order_startyear) {
 
  623        $param .= 
'&search_date_order_startyear='.urlencode($search_date_order_startyear);
 
  625      if ($search_date_order_endday) {
 
  626        $param .= 
'&search_date_order_endday='.urlencode($search_date_order_endday);
 
  628      if ($search_date_order_endmonth) {
 
  629        $param .= 
'&search_date_order_endmonth='.urlencode($search_date_order_endmonth);
 
  631      if ($search_date_order_endyear) {
 
  632        $param .= 
'&search_date_order_endyear='.urlencode($search_date_order_endyear);
 
  634      if ($search_date_delivery_startday) {
 
  635        $param .= 
'&search_date_delivery_startday='.urlencode($search_date_delivery_startday);
 
  637      if ($search_date_delivery_startmonth) {
 
  638        $param .= 
'&search_date_delivery_startmonth='.urlencode($search_date_delivery_startmonth);
 
  640      if ($search_date_delivery_startyear) {
 
  641        $param .= 
'&search_date_delivery_startyear='.urlencode($search_date_delivery_startyear);
 
  643      if ($search_date_delivery_endday) {
 
  644        $param .= 
'&search_date_delivery_endday='.urlencode($search_date_delivery_endday);
 
  646      if ($search_date_delivery_endmonth) {
 
  647        $param .= 
'&search_date_delivery_endmonth='.urlencode($search_date_delivery_endmonth);
 
  649      if ($search_date_delivery_endyear) {
 
  650        $param .= 
'&search_date_delivery_endyear='.urlencode($search_date_delivery_endyear);
 
  652      if ($search_date_valid_startday) {
 
  653        $param .= 
'&search_date_valid_startday='.urlencode($search_date_valid_startday);
 
  655      if ($search_date_valid_startmonth) {
 
  656        $param .= 
'&search_date_valid_startmonth='.urlencode($search_date_valid_startmonth);
 
  658      if ($search_date_valid_startyear) {
 
  659        $param .= 
'&search_date_valid_startyear='.urlencode($search_date_valid_startyear);
 
  661      if ($search_date_valid_endday) {
 
  662        $param .= 
'&search_date_valid_endday='.urlencode($search_date_valid_endday);
 
  664      if ($search_date_valid_endmonth) {
 
  665        $param .= 
'&search_date_valid_endmonth='.urlencode($search_date_valid_endmonth);
 
  667      if ($search_date_valid_endyear) {
 
  668        $param .= 
'&search_date_valid_endyear='.urlencode($search_date_valid_endyear);
 
  670      if ($search_date_approve_startday) {
 
  671        $param .= 
'&search_date_approve_startday='.urlencode($search_date_approve_startday);
 
  673      if ($search_date_approve_startmonth) {
 
  674        $param .= 
'&search_date_approve_startmonth='.urlencode($search_date_approve_startmonth);
 
  676      if ($search_date_approve_startyear) {
 
  677        $param .= 
'&search_date_approve_startyear='.urlencode($search_date_approve_startyear);
 
  679      if ($search_date_approve_endday) {
 
  680        $param .= 
'&search_date_approve_endday='.urlencode($search_date_approve_endday);
 
  682      if ($search_date_approve_endmonth) {
 
  683        $param .= 
'&search_date_approve_endmonth='.urlencode($search_date_approve_endmonth);
 
  685      if ($search_date_approve_endyear) {
 
  686        $param .= 
'&search_date_approve_endyear='.urlencode($search_date_approve_endyear);
 
  689        $param .= 
'&search_ref='.urlencode($search_ref);
 
  691      if ($search_company) {
 
  692        $param .= 
'&search_company='.urlencode($search_company);
 
  694      if ($search_company_alias) {
 
  695        $param .= 
'&search_company_alias='.urlencode($search_company_alias);
 
  698      if ($search_user > 0) {
 
  699        $param .= 
'&search_user='.urlencode($search_user);
 
  701      if ($search_sale > 0) {
 
  702        $param .= 
'&search_sale='.urlencode($search_sale);
 
  704      if ($search_total_ht != 
'') {
 
  705        $param .= 
'&search_total_ht='.urlencode($search_total_ht);
 
  707      if ($search_total_tva != 
'') {
 
  708        $param .= 
'&search_total_tva='.urlencode($search_total_tva);
 
  710      if ($search_total_ttc != 
'') {
 
  711        $param .= 
'&search_total_ttc='.urlencode($search_total_ttc);
 
  713      if ($search_project_ref >= 0) {
 
  714        $param .= 
"&search_project_ref=".urlencode($search_project_ref);
 
  717        $param .= 
'&show_files='.urlencode($show_files);
 
  719      if ($optioncss != 
'') {
 
  720        $param .= 
'&optioncss='.urlencode($optioncss);
 
  723        $param .= 
'&billed='.urlencode($billed);
 
  726      header(
"Location: ".$_SERVER[
'PHP_SELF'].
'?'.$param);
 
  731      $_GET[
"origin"] = $_POST[
"origin"];
 
  732      $_GET[
"originid"] = $_POST[
"originid"];
 
  746$form = 
new Form($db);
 
  754$title = $langs->trans(
"SuppliersOrders");
 
  757  $fourn->fetch($socid);
 
  758  $title .= 
' - '.$fourn->name;
 
  769if ($search_billed > 0) {
 
  770  $title .= 
' - '.$langs->trans(
"Billed");
 
  776$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
 
  777$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage); 
 
  781  $sql = 
'SELECT DISTINCT';
 
  783$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,';
 
  784$sql .= 
" typent.code as typent_code,";
 
  785$sql .= 
" state.code_departement as state_code, state.nom as state_name,";
 
  786$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 date_livraison,cf.date_valid, cf.date_approve,";
 
  787$sql .= 
' cf.localtax1 as total_localtax1, cf.localtax2 as total_localtax2,';
 
  788$sql .= 
' cf.fk_multicurrency, cf.multicurrency_code, cf.multicurrency_tx, cf.multicurrency_total_ht, cf.multicurrency_total_tva, cf.multicurrency_total_ttc,';
 
  789$sql .= 
' cf.date_creation as date_creation, cf.tms as date_update,';
 
  790$sql .= 
' cf.note_public, cf.note_private,';
 
  791$sql .= 
" p.rowid as project_id, p.ref as project_ref, p.title as project_title,";
 
  792$sql .= 
" u.firstname, u.lastname, u.photo, u.login, u.email as user_email, u.statut as user_status";
 
  794if (!empty($extrafields->attributes[$object->table_element][
'label'])) {
 
  795  foreach ($extrafields->attributes[$object->table_element][
'label'] as $key => $val) {
 
  796    $sql .= ($extrafields->attributes[$object->table_element][
'type'][$key] != 
'separate' ? 
", ef.".$key.
" as options_".$key : 
'');
 
  800$parameters = array();
 
  801$reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters, $object); 
 
  802$sql .= $hookmanager->resPrint;
 
  806$sql .= 
" FROM ".MAIN_DB_PREFIX.
"societe as s";
 
  807$sql .= 
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_country as country on (country.rowid = s.fk_pays)";
 
  808$sql .= 
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_typent as typent on (typent.id = s.fk_typent)";
 
  809$sql .= 
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_departements as state on (state.rowid = s.fk_departement)";
 
  810$sql .= 
", ".MAIN_DB_PREFIX.
"commande_fournisseur as cf";
 
  811if (!empty($extrafields->attributes[$object->table_element][
'label']) && is_array($extrafields->attributes[$object->table_element][
'label']) && count($extrafields->attributes[$object->table_element][
'label'])) {
 
  812  $sql .= 
" LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element.
"_extrafields as ef on (cf.rowid = ef.fk_object)";
 
  815  $sql .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'commande_fournisseurdet as pd ON cf.rowid=pd.fk_commande';
 
  817$sql .= 
" LEFT JOIN ".MAIN_DB_PREFIX.
"user as u ON cf.fk_user_author = u.rowid";
 
  818$sql .= 
" LEFT JOIN ".MAIN_DB_PREFIX.
"projet as p ON p.rowid = cf.fk_projet";
 
  820if ($search_sale > 0 || (!$user->hasRight(
"societe", 
"client", 
"voir") && !$socid)) {
 
  821  $sql .= 
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
 
  823$parameters = array();
 
  824$reshook = $hookmanager->executeHooks(
'printFieldListFrom', $parameters, $object); 
 
  825$sql .= $hookmanager->resPrint;
 
  826$sql .= 
' WHERE cf.fk_soc = s.rowid';
 
  827$sql .= 
' AND cf.entity IN ('.getEntity(
'supplier_order').
')';
 
  829  $sql .= 
" AND s.rowid = ".((int) $socid);
 
  831if (!$user->hasRight(
"societe", 
"client", 
"voir") && !$socid) {
 
  832  $sql .= 
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id);
 
  837if ($search_refsupp) {
 
  843if (empty($arrayfields[
's.name_alias'][
'checked']) && $search_company) {
 
  844  $sql .= 
natural_search(array(
"s.nom", 
"s.name_alias"), $search_company);
 
  846  if ($search_company) {
 
  849  if ($search_company_alias) {
 
  853if ($search_request_author) {
 
  854  $sql .= 
natural_search(array(
'u.lastname', 
'u.firstname', 
'u.login'), $search_request_author);
 
  856if ($search_billed != 
'' && $search_billed >= 0) {
 
  857  $sql .= 
" AND cf.billed = ".((int) $search_billed);
 
  860if (
GETPOST(
'statut', 
'intcomma') !== 
'') {
 
  861  $sql .= 
" AND cf.fk_statut IN (".$db->sanitize($db->escape($db->escape(
GETPOST(
'statut', 
'intcomma')))).
")";
 
  863if ($search_status != 
'' && $search_status != 
'-1') {
 
  864  $sql .= 
" AND cf.fk_statut IN (".$db->sanitize($db->escape($search_status)).
")";
 
  866if ($search_date_order_start) {
 
  867  $sql .= 
" AND cf.date_commande >= '".$db->idate($search_date_order_start).
"'";
 
  869if ($search_date_order_end) {
 
  870  $sql .= 
" AND cf.date_commande <= '".$db->idate($search_date_order_end).
"'";
 
  872if ($search_date_delivery_start) {
 
  873  $sql .= 
" AND cf.date_livraison >= '".$db->idate($search_date_delivery_start).
"'";
 
  875if ($search_date_delivery_end) {
 
  876  $sql .= 
" AND cf.date_livraison <= '".$db->idate($search_date_delivery_end).
"'";
 
  878if ($search_date_valid_start) {
 
  879  $sql .= 
" AND cf.date_valid >= '".$db->idate($search_date_valid_start).
"'";
 
  881if ($search_date_valid_end) {
 
  882  $sql .= 
" AND cf.date_valid <= '".$db->idate($search_date_valid_end).
"'";
 
  884if ($search_date_approve_start) {
 
  885  $sql .= 
" AND cf.date_livraison >= '".$db->idate($search_date_approve_start).
"'";
 
  887if ($search_date_approve_end) {
 
  888  $sql .= 
" AND cf.date_livraison <= '".$db->idate($search_date_approve_end).
"'";
 
  899if ($search_country) {
 
  900  $sql .= 
" AND s.fk_pays IN (".$db->sanitize($db->escape($search_country)).
')';
 
  902if ($search_type_thirdparty != 
'' && $search_type_thirdparty > 0) {
 
  903  $sql .= 
" AND s.fk_typent IN (".$db->sanitize($db->escape($search_type_thirdparty)).
')';
 
  905if ($search_sale > 0) {
 
  906  $sql .= 
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $search_sale);
 
  908if ($search_user > 0) {
 
  909  $sql .= 
" AND EXISTS (";
 
  910  $sql .= 
" SELECT ec.rowid ";
 
  911  $sql .= 
" FROM " . MAIN_DB_PREFIX . 
"element_contact as ec";
 
  912  $sql .= 
" INNER JOIN " . MAIN_DB_PREFIX . 
"c_type_contact as tc ON tc.rowid = ec.fk_c_type_contact";
 
  913  $sql .= 
" WHERE ec.element_id = cf.rowid AND ec.fk_socpeople = " . ((int) $search_user);
 
  914  $sql .= 
" AND tc.element = 'order_supplier' AND tc.source = 'internal'";
 
  917if ($search_total_ht != 
'') {
 
  920if ($search_total_tva != 
'') {
 
  923if ($search_total_ttc != 
'') {
 
  926if ($search_multicurrency_code != 
'') {
 
  927  $sql .= 
" AND cf.multicurrency_code = '".$db->escape($search_multicurrency_code).
"'";
 
  929if ($search_multicurrency_tx != 
'') {
 
  930  $sql .= 
natural_search(
'cf.multicurrency_tx', $search_multicurrency_tx, 1);
 
  932if ($search_multicurrency_montant_ht != 
'') {
 
  933  $sql .= 
natural_search(
'cf.multicurrency_total_ht', $search_multicurrency_montant_ht, 1);
 
  935if ($search_multicurrency_montant_tva != 
'') {
 
  936  $sql .= 
natural_search(
'cf.multicurrency_total_tva', $search_multicurrency_montant_tva, 1);
 
  938if ($search_multicurrency_montant_ttc != 
'') {
 
  939  $sql .= 
natural_search(
'cf.multicurrency_total_ttc', $search_multicurrency_montant_ttc, 1);
 
  941if ($search_project_ref != 
'') {
 
  945$searchCategoryProductOperator = -1;
 
  946$searchCategoryProductList = array($search_product_category);
 
  947if (!empty($searchCategoryProductList)) {
 
  948  $searchCategoryProductSqlList = array();
 
  949  $listofcategoryid = 
'';
 
  950  foreach ($searchCategoryProductList as $searchCategoryProduct) {
 
  951    if (intval($searchCategoryProduct) == -2) {
 
  952      $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)";
 
  953    } elseif (intval($searchCategoryProduct) > 0) {
 
  954      if ($searchCategoryProductOperator == 0) {
 
  955        $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).
")";
 
  957        $listofcategoryid .= ($listofcategoryid ? 
', ' : 
'') .((
int) $searchCategoryProduct);
 
  961  if ($listofcategoryid) {
 
  962    $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).
"))";
 
  964  if ($searchCategoryProductOperator == 1) {
 
  965    if (!empty($searchCategoryProductSqlList)) {
 
  966      $sql .= 
" AND (".implode(
' OR ', $searchCategoryProductSqlList).
")";
 
  969    if (!empty($searchCategoryProductSqlList)) {
 
  970      $sql .= 
" AND (".implode(
' AND ', $searchCategoryProductSqlList).
")";
 
  975include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_sql.tpl.php';
 
  977$parameters = array();
 
  978$reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters, $object); 
 
  979$sql .= $hookmanager->resPrint;
 
  982$nbtotalofrecords = 
'';
 
  985  $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields, 
'/').
'/', 
'SELECT COUNT(*) as nbtotalofrecords', $sql);
 
  986  $sqlforcount = preg_replace(
'/GROUP BY .*$/', 
'', $sqlforcount);
 
  987  $resql = $db->query($sqlforcount);
 
  989    $objforcount = $db->fetch_object($resql);
 
  990    $nbtotalofrecords = $objforcount->nbtotalofrecords;
 
  995  if (($page * $limit) > $nbtotalofrecords) { 
 
 1002$sql .= $db->order($sortfield, $sortorder);
 
 1004  $sql .= $db->plimit($limit + 1, $offset);
 
 1008$resql = $db->query($sql);
 
 1010  $num = $db->num_rows($resql);
 
 1012  $arrayofselected = is_array($toselect) ? $toselect : array();
 
 1014  if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $sall) {
 
 1015    $obj = $db->fetch_object($resql);
 
 1017    header(
"Location: ".DOL_URL_ROOT.
'/fourn/commande/card.php?id='.$id);
 
 1024  if (!empty($mode)) {
 
 1025    $param .= 
'&mode='.urlencode($mode);
 
 1027  if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
 
 1028    $param .= 
'&contextpage='.urlencode($contextpage);
 
 1030  if ($limit > 0 && $limit != $conf->liste_limit) {
 
 1031    $param .= 
'&limit='.((int) $limit);
 
 1034    $param .= 
'&sall='.urlencode($sall);
 
 1037    $param .= 
'&socid='.urlencode($socid);
 
 1040    $param .= 
"&search_all=".urlencode($sall);
 
 1042  if ($search_date_order_startday) {
 
 1043    $param .= 
'&search_date_order_startday='.urlencode($search_date_order_startday);
 
 1045  if ($search_date_order_startmonth) {
 
 1046    $param .= 
'&search_date_order_startmonth='.urlencode($search_date_order_startmonth);
 
 1048  if ($search_date_order_startyear) {
 
 1049    $param .= 
'&search_date_order_startyear='.urlencode($search_date_order_startyear);
 
 1051  if ($search_date_order_endday) {
 
 1052    $param .= 
'&search_date_order_endday='.urlencode($search_date_order_endday);
 
 1054  if ($search_date_order_endmonth) {
 
 1055    $param .= 
'&search_date_order_endmonth='.urlencode($search_date_order_endmonth);
 
 1057  if ($search_date_order_endyear) {
 
 1058    $param .= 
'&search_date_order_endyear='.urlencode($search_date_order_endyear);
 
 1060  if ($search_date_delivery_startday) {
 
 1061    $param .= 
'&search_date_delivery_startday='.urlencode($search_date_delivery_startday);
 
 1063  if ($search_date_delivery_startmonth) {
 
 1064    $param .= 
'&search_date_delivery_startmonth='.urlencode($search_date_delivery_startmonth);
 
 1066  if ($search_date_delivery_startyear) {
 
 1067    $param .= 
'&search_date_delivery_startyear='.urlencode($search_date_delivery_startyear);
 
 1069  if ($search_date_delivery_endday) {
 
 1070    $param .= 
'&search_date_delivery_endday='.urlencode($search_date_delivery_endday);
 
 1072  if ($search_date_delivery_endmonth) {
 
 1073    $param .= 
'&search_date_delivery_endmonth='.urlencode($search_date_delivery_endmonth);
 
 1075  if ($search_date_delivery_endyear) {
 
 1076    $param .= 
'&search_date_delivery_endyear='.urlencode($search_date_delivery_endyear);
 
 1078  if ($search_date_valid_startday) {
 
 1079    $param .= 
'&search_date_valid_startday='.urlencode($search_date_valid_startday);
 
 1081  if ($search_date_valid_startmonth) {
 
 1082    $param .= 
'&search_date_valid_startmonth='.urlencode($search_date_valid_startmonth);
 
 1084  if ($search_date_valid_startyear) {
 
 1085    $param .= 
'&search_date_valid_startyear='.urlencode($search_date_valid_startyear);
 
 1087  if ($search_date_valid_endday) {
 
 1088    $param .= 
'&search_date_valid_endday='.urlencode($search_date_valid_endday);
 
 1090  if ($search_date_valid_endmonth) {
 
 1091    $param .= 
'&search_date_valid_endmonth='.urlencode($search_date_valid_endmonth);
 
 1093  if ($search_date_valid_endyear) {
 
 1094    $param .= 
'&search_date_valid_endyear='.urlencode($search_date_valid_endyear);
 
 1096  if ($search_date_approve_startday) {
 
 1097    $param .= 
'&search_date_approve_startday='.urlencode($search_date_approve_startday);
 
 1099  if ($search_date_approve_startmonth) {
 
 1100    $param .= 
'&search_date_approve_startmonth='.urlencode($search_date_approve_startmonth);
 
 1102  if ($search_date_approve_startyear) {
 
 1103    $param .= 
'&search_date_approve_startyear='.urlencode($search_date_approve_startyear);
 
 1105  if ($search_date_approve_endday) {
 
 1106    $param .= 
'&search_date_approve_endday='.urlencode($search_date_approve_endday);
 
 1108  if ($search_date_approve_endmonth) {
 
 1109    $param .= 
'&search_date_approve_endmonth='.urlencode($search_date_approve_endmonth);
 
 1111  if ($search_date_approve_endyear) {
 
 1112    $param .= 
'&search_date_approve_endyear='.urlencode($search_date_approve_endyear);
 
 1115    $param .= 
'&search_ref='.urlencode($search_ref);
 
 1117  if ($search_company) {
 
 1118    $param .= 
'&search_company='.urlencode($search_company);
 
 1120  if ($search_company_alias) {
 
 1121    $param .= 
'&search_company_alias='.urlencode($search_company_alias);
 
 1123  if ($search_user > 0) {
 
 1124    $param .= 
'&search_user='.urlencode($search_user);
 
 1126  if ($search_request_author) {
 
 1127    $param .= 
'&search_request_author='.urlencode($search_request_author);
 
 1129  if ($search_sale > 0) {
 
 1130    $param .= 
'&search_sale='.urlencode($search_sale);
 
 1132  if ($search_total_ht != 
'') {
 
 1133    $param .= 
'&search_total_ht='.urlencode($search_total_ht);
 
 1135  if ($search_total_ttc != 
'') {
 
 1136    $param .= 
"&search_total_ttc=".urlencode($search_total_ttc);
 
 1138  if ($search_multicurrency_code != 
'') {
 
 1139    $param .= 
'&search_multicurrency_code='.urlencode($search_multicurrency_code);
 
 1141  if ($search_multicurrency_tx != 
'') {
 
 1142    $param .= 
'&search_multicurrency_tx='.urlencode($search_multicurrency_tx);
 
 1144  if ($search_multicurrency_montant_ht != 
'') {
 
 1145    $param .= 
'&search_multicurrency_montant_ht='.urlencode($search_multicurrency_montant_ht);
 
 1147  if ($search_multicurrency_montant_tva != 
'') {
 
 1148    $param .= 
'&search_multicurrency_montant_tva='.urlencode($search_multicurrency_montant_tva);
 
 1150  if ($search_multicurrency_montant_ttc != 
'') {
 
 1151    $param .= 
'&search_multicurrency_montant_ttc='.urlencode($search_multicurrency_montant_ttc);
 
 1153  if ($search_refsupp) {
 
 1154    $param .= 
"&search_refsupp=".urlencode($search_refsupp);
 
 1156  if ($search_status != 
'' && $search_status != 
'-1') {
 
 1157    $param .= 
"&search_status=".urlencode($search_status);
 
 1159  if ($search_project_ref >= 0) {
 
 1160    $param .= 
"&search_project_ref=".urlencode($search_project_ref);
 
 1162  if ($search_billed != 
'') {
 
 1163    $param .= 
"&search_billed=".urlencode($search_billed);
 
 1166    $param .= 
'&show_files='.urlencode($show_files);
 
 1168  if ($optioncss != 
'') {
 
 1169    $param .= 
'&optioncss='.urlencode($optioncss);
 
 1171  if ($search_type_thirdparty != 
'' && $search_type_thirdparty > 0) {
 
 1172    $param .= 
'&search_type_thirdparty='.urlencode($search_type_thirdparty);
 
 1176  include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_param.tpl.php';
 
 1178  $parameters = array();
 
 1179  $reshook = $hookmanager->executeHooks(
'printFieldListSearchParam', $parameters, $object); 
 
 1180  $param .= $hookmanager->resPrint;
 
 1183  $arrayofmassactions = array(
 
 1184    'generate_doc'=>
img_picto(
'', 
'pdf', 
'class="pictofixedwidth"').$langs->trans(
"ReGeneratePDF"),
 
 1185    'builddoc'=>
img_picto(
'', 
'pdf', 
'class="pictofixedwidth"').$langs->trans(
"PDFMerge"),
 
 1186    'presend'=>
img_picto(
'', 
'email', 
'class="pictofixedwidth"').$langs->trans(
"SendByMail"),
 
 1189  if ($permissiontovalidate) {
 
 1190    if ($permissiontoapprove && empty($conf->global->SUPPLIER_ORDER_NO_DIRECT_APPROVE)) {
 
 1191      $arrayofmassactions[
'prevalidate'] = 
img_picto(
'', 
'check', 
'class="pictofixedwidth"').$langs->trans(
"ValidateAndApprove");
 
 1193      $arrayofmassactions[
'prevalidate'] = 
img_picto(
'', 
'check', 
'class="pictofixedwidth"').$langs->trans(
"Validate");
 
 1197  if ($user->hasRight(
'fournisseur', 
'facture', 
'creer') || $user->hasRight(
"supplier_invoice", 
"creer")) {
 
 1198    $arrayofmassactions[
'createbills'] = 
img_picto(
'', 
'bill', 
'class="pictofixedwidth"').$langs->trans(
"CreateInvoiceForThisSupplier");
 
 1200  if ($permissiontodelete) {
 
 1201    $arrayofmassactions[
'predelete'] = 
img_picto(
'', 
'delete', 
'class="pictofixedwidth"').$langs->trans(
"Delete");
 
 1203  if (in_array($massaction, array(
'presend', 
'predelete', 
'createbills'))) {
 
 1204    $arrayofmassactions = array();
 
 1206  $massactionbutton = $form->selectMassAction(
'', $arrayofmassactions);
 
 1208  $url = DOL_URL_ROOT.
'/fourn/commande/card.php?action=create';
 
 1210    $url .= 
'&socid='.((int) $socid);
 
 1211    $url .= 
'&backtopage='.urlencode(DOL_URL_ROOT.
'/fourn/commande/list.php?socid='.((
int) $socid));
 
 1213  $newcardbutton = 
'';
 
 1214  $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'));
 
 1215  $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'));
 
 1216  $newcardbutton .= 
dolGetButtonTitle($langs->trans(
'NewSupplierOrderShort'), 
'', 
'fa fa-plus-circle', $url, 
'', $permissiontoadd);
 
 1219  print 
'<form method="POST" id="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">';
 
 1220  if ($optioncss != 
'') {
 
 1221    print 
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
 
 1223  print 
'<input type="hidden" name="token" value="'.newToken().
'">';
 
 1224  print 
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
 
 1225  print 
'<input type="hidden" name="action" value="list">';
 
 1226  print 
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
 
 1227  print 
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
 
 1228  print 
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
 
 1229  print 
'<input type="hidden" name="socid" value="'.$socid.
'">';
 
 1230  print 
'<input type="hidden" name="mode" value="'.$mode.
'">';
 
 1232  print_barre_liste($title, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 
'supplier_order', 0, $newcardbutton, 
'', $limit, 0, 0, 1);
 
 1234  $topicmail = 
"SendOrderRef";
 
 1235  $modelmail = 
"order_supplier_send";
 
 1237  $trackid = 
'sord'.$object->id;
 
 1238  include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
 
 1240  if ($massaction == 
'prevalidate') {
 
 1241    print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassValidation"), $langs->trans(
"ConfirmMassValidationQuestion"), 
"validate", 
null, 
'', 0, 200, 500, 1);
 
 1244  if ($massaction == 
'createbills') {
 
 1246    print 
'<input type="hidden" name="massaction" value="confirm_createsupplierbills">';
 
 1248    print 
'<table class="noborder centpercent">';
 
 1250    print 
'<td class="titlefield">';
 
 1251    print $langs->trans(
'DateInvoice');
 
 1254    print $form->selectDate(
'', 
'', 
'', 
'', 
'', 
'', 1, 1);
 
 1259    print $langs->trans(
'CreateOneBillByThird');
 
 1262    print $form->selectyesno(
'createbills_onebythird', 
'', 1);
 
 1267    print $langs->trans(
'ValidateInvoices');
 
 1270    print $form->selectyesno(
'validate_invoices', 1, 1);
 
 1275    print 
'<div class="center">';
 
 1276    print 
'<input type="submit" class="button" id="createbills" name="createbills" value="'.$langs->trans(
'CreateInvoiceForThisCustomer').
'">  ';
 
 1277    print 
'<input type="submit" class="button button-cancel" id="cancel" name="cancel" value="'.$langs->trans(
"Cancel").
'">';
 
 1284    foreach ($fieldstosearchall as $key => $val) {
 
 1285      $fieldstosearchall[$key] = $langs->trans($val);
 
 1287    print 
'<div class="divsearchfieldfilter">'.$langs->trans(
"FilterOnInto", $sall).join(
', ', $fieldstosearchall).
'</div>';
 
 1290  $moreforfilter = 
'';
 
 1293  if ($user->hasRight(
"user", 
"user", 
"lire")) {
 
 1294    $langs->load(
"commercial");
 
 1295    $moreforfilter .= 
'<div class="divsearchfield">';
 
 1296    $tmptitle = $langs->trans(
'ThirdPartiesOfSaleRepresentative');
 
 1297    $moreforfilter .= 
img_picto($tmptitle, 
'user', 
'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale, 
'search_sale', $user, 0, $tmptitle, 
'maxwidth250 widthcentpercentminusx');
 
 1298    $moreforfilter .= 
'</div>';
 
 1301  if ($user->hasRight(
"user", 
"user", 
"lire")) {
 
 1302    $moreforfilter .= 
'<div class="divsearchfield">';
 
 1303    $tmptitle = $langs->trans(
'LinkedToSpecificUsers');
 
 1304    $moreforfilter .= 
img_picto($tmptitle, 
'user', 
'class="pictofixedwidth"').$form->select_dolusers($search_user, 
'search_user', $tmptitle, 
'', 0, 
'', 
'', 0, 0, 0, 
'', 0, 
'', 
'maxwidth250 widthcentpercentminusx');
 
 1305    $moreforfilter .= 
'</div>';
 
 1308  if (isModEnabled(
'categorie') && $user->hasRight(
'categorie', 
'lire') && ($user->hasRight(
'produit', 
'lire') || $user->hasRight(
'service', 
'lire'))) {
 
 1309    include_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
 
 1310    $moreforfilter .= 
'<div class="divsearchfield">';
 
 1311    $tmptitle = $langs->trans(
'IncludingProductWithTag');
 
 1312    $cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, 
null, 
'parent', 
null, 
null, 1);
 
 1313    $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);
 
 1314    $moreforfilter .= 
'</div>';
 
 1316  $parameters = array();
 
 1317  $reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters); 
 
 1318  if (empty($reshook)) {
 
 1319    $moreforfilter .= $hookmanager->resPrint;
 
 1321    $moreforfilter = $hookmanager->resPrint;
 
 1324  if (!empty($moreforfilter)) {
 
 1325    print 
'<div class="liste_titre liste_titre_bydiv centpercent">';
 
 1326    print $moreforfilter;
 
 1330  $varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
 
 1331  $selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage, 
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN')); 
 
 1332  $selectedfields .= $form->showCheckAddButtons(
'checkforselect', 1);
 
 1334  if (
GETPOST(
'autoselectall', 
'int')) {
 
 1335    $selectedfields .= 
'<script>';
 
 1336    $selectedfields .= 
'   $(document).ready(function() {';
 
 1337    $selectedfields .= 
'        console.log("Autoclick on checkforselects");';
 
 1338    $selectedfields .= 
'      $("#checkforselects").click();';
 
 1339    $selectedfields .= 
'        $("#massaction").val("createbills").change();';
 
 1340    $selectedfields .= 
'   });';
 
 1341    $selectedfields .= 
'</script>';
 
 1344  print 
'<div class="div-table-responsive">';
 
 1345  print 
'<table class="tagtable nobottomiftotal liste'.($moreforfilter ? 
" listwithfilterbefore" : 
"").
'">'.
"\n";
 
 1347  print 
'<tr class="liste_titre_filter">';
 
 1350    print 
'<td class="liste_titre middle">';
 
 1351    $searchpicto = $form->showFilterButtons(
'left');
 
 1356  if (!empty($arrayfields[
'cf.ref'][
'checked'])) {
 
 1357    print 
'<td class="liste_titre"><input size="8" type="text" class="flat maxwidth75" name="search_ref" value="'.$search_ref.
'"></td>';
 
 1360  if (!empty($arrayfields[
'cf.ref_supplier'][
'checked'])) {
 
 1361    print 
'<td class="liste_titre"><input type="text" class="flat maxwidth75" name="search_refsupp" value="'.$search_refsupp.
'"></td>';
 
 1364  if (!empty($arrayfields[
'cf.fk_projet'][
'checked'])) {
 
 1365    print 
'<td class="liste_titre"><input type="text" class="flat maxwidth100" name="search_project_ref" value="'.$search_project_ref.
'"></td>';
 
 1368  if (!empty($arrayfields[
'u.login'][
'checked'])) {
 
 1369    print 
'<td class="liste_titre">';
 
 1370    print 
'<input type="text" class="flat" size="6" name="search_request_author" value="'.$search_request_author.
'">';
 
 1374  if (!empty($arrayfields[
'cf.fk_soc'][
'checked'])) {
 
 1375    print 
'<td class="liste_titre"><input type="text" size="6" class="flat" name="search_company" value="'.$search_company.
'"></td>';
 
 1378  if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
 
 1379    print 
'<td class="liste_titre"><input type="text" size="6" class="flat" name="search_company_alias" value="'.$search_company_alias.
'"></td>';
 
 1382  if (!empty($arrayfields[
's.town'][
'checked'])) {
 
 1383    print 
'<td class="liste_titre"><input class="flat maxwidth50" type="text" name="search_town" value="'.$search_town.
'"></td>';
 
 1386  if (!empty($arrayfields[
's.zip'][
'checked'])) {
 
 1387    print 
'<td class="liste_titre"><input class="flat maxwidth50" type="text" name="search_zip" value="'.$search_zip.
'"></td>';
 
 1390  if (!empty($arrayfields[
'state.nom'][
'checked'])) {
 
 1391    print 
'<td class="liste_titre">';
 
 1392    print 
'<input class="flat maxwidth50" type="text" name="search_state" value="'.dol_escape_htmltag($search_state).
'">';
 
 1396  if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
 
 1397    print 
'<td class="liste_titre center">';
 
 1398    print $form->select_country($search_country, 
'search_country', 
'', 0, 
'minwidth100imp maxwidth100');
 
 1402  if (!empty($arrayfields[
'typent.code'][
'checked'])) {
 
 1403    print 
'<td class="liste_titre maxwidthonsmartphone center">';
 
 1404    print $form->selectarray(
"search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 1, 0, 0, 
'', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT) ? 
'ASC' : $conf->global->SOCIETE_SORT_ON_TYPEENT), 
'', 1);
 
 1408  if (!empty($arrayfields[
'cf.date_commande'][
'checked'])) {
 
 1409    print 
'<td class="liste_titre center">';
 
 1410    print 
'<div class="nowrap">';
 
 1411    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'));
 
 1413    print 
'<div class="nowrap">';
 
 1414    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'));
 
 1419  if (!empty($arrayfields[
'cf.date_livraison'][
'checked'])) {
 
 1420    print 
'<td class="liste_titre center">';
 
 1421    print 
'<div class="nowrap">';
 
 1422    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'));
 
 1424    print 
'<div class="nowrap">';
 
 1425    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'));
 
 1429  if (!empty($arrayfields[
'cf.total_ht'][
'checked'])) {
 
 1431    print 
'<td class="liste_titre right">';
 
 1432    print 
'<input class="flat" type="text" size="5" name="search_total_ht" value="'.$search_total_ht.
'">';
 
 1435  if (!empty($arrayfields[
'cf.total_tva'][
'checked'])) {
 
 1437    print 
'<td class="liste_titre right">';
 
 1438    print 
'<input class="flat" type="text" size="5" name="search_total_tva" value="'.$search_total_tva.
'">';
 
 1441  if (!empty($arrayfields[
'cf.total_ttc'][
'checked'])) {
 
 1443    print 
'<td class="liste_titre right">';
 
 1444    print 
'<input class="flat" type="text" size="5" name="search_total_ttc" value="'.$search_total_ttc.
'">';
 
 1447  if (!empty($arrayfields[
'cf.multicurrency_code'][
'checked'])) {
 
 1449    print 
'<td class="liste_titre">';
 
 1450    print $form->selectMultiCurrency($search_multicurrency_code, 
'search_multicurrency_code', 1);
 
 1453  if (!empty($arrayfields[
'cf.multicurrency_tx'][
'checked'])) {
 
 1455    print 
'<td class="liste_titre">';
 
 1456    print 
'<input class="flat" type="text" size="4" name="search_multicurrency_tx" value="'.dol_escape_htmltag($search_multicurrency_tx).
'">';
 
 1459  if (!empty($arrayfields[
'cf.multicurrency_total_ht'][
'checked'])) {
 
 1461    print 
'<td class="liste_titre right">';
 
 1462    print 
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_ht" value="'.dol_escape_htmltag($search_multicurrency_montant_ht).
'">';
 
 1465  if (!empty($arrayfields[
'cf.multicurrency_total_tva'][
'checked'])) {
 
 1467    print 
'<td class="liste_titre right">';
 
 1468    print 
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_tva" value="'.dol_escape_htmltag($search_multicurrency_montant_tva).
'">';
 
 1471  if (!empty($arrayfields[
'cf.multicurrency_total_ttc'][
'checked'])) {
 
 1473    print 
'<td class="liste_titre right">';
 
 1474    print 
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_ttc" value="'.dol_escape_htmltag($search_multicurrency_montant_ttc).
'">';
 
 1478  include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_input.tpl.php';
 
 1481  $parameters = array(
'arrayfields'=>$arrayfields);
 
 1482  $reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters); 
 
 1483  print $hookmanager->resPrint;
 
 1485  if (!empty($arrayfields[
'cf.date_creation'][
'checked'])) {
 
 1486    print 
'<td class="liste_titre">';
 
 1490  if (!empty($arrayfields[
'cf.tms'][
'checked'])) {
 
 1491    print 
'<td class="liste_titre">';
 
 1495  if (!empty($arrayfields[
'cf.fk_statut'][
'checked'])) {
 
 1496    print 
'<td class="liste_titre right">';
 
 1497    $formorder->selectSupplierOrderStatus($search_status, 1, 
'search_status');
 
 1501  if (!empty($arrayfields[
'cf.billed'][
'checked'])) {
 
 1502    print 
'<td class="liste_titre center parentonrightofpage">';
 
 1503    print $form->selectyesno(
'search_billed', $search_billed, 1, 
false, 1, 1, 
'search_status width100 onrightofpage');
 
 1507  if (!empty($arrayfields[
'cf.date_valid'][
'checked'])) {
 
 1508    print 
'<td class="liste_titre center">';
 
 1509    print 
'<div class="nowrap">';
 
 1510    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'));
 
 1512    print 
'<div class="nowrap">';
 
 1513    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'));
 
 1518  if (!empty($arrayfields[
'cf.date_approve'][
'checked'])) {
 
 1519    print 
'<td class="liste_titre center">';
 
 1520    print 
'<div class="nowrap">';
 
 1521    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'));
 
 1523    print 
'<div class="nowrap">';
 
 1524    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'));
 
 1529  if (!empty($arrayfields[
'cf.note_public'][
'checked'])) {
 
 1530    print 
'<td class="liste_titre">';
 
 1534  if (!empty($arrayfields[
'cf.note_private'][
'checked'])) {
 
 1535    print 
'<td class="liste_titre">';
 
 1540    print 
'<td class="liste_titre middle">';
 
 1541    $searchpicto = $form->showFilterButtons();
 
 1548  $totalarray = array();
 
 1549  $totalarray[
'nbfield'] = 0;
 
 1552  print 
'<tr class="liste_titre">';
 
 1554    print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"], 
"", 
'', 
'', 
'', $sortfield, $sortorder, 
'center maxwidthsearch ');
 
 1555    $totalarray[
'nbfield']++;
 
 1557  if (!empty($arrayfields[
'cf.ref'][
'checked'])) {
 
 1558    print_liste_field_titre($arrayfields[
'cf.ref'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.ref", 
"", $param, 
'', $sortfield, $sortorder);
 
 1559    $totalarray[
'nbfield']++;
 
 1561  if (!empty($arrayfields[
'cf.ref_supplier'][
'checked'])) {
 
 1562    print_liste_field_titre($arrayfields[
'cf.ref_supplier'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.ref_supplier", 
"", $param, 
'', $sortfield, $sortorder, 
'tdoverflowmax100imp ');
 
 1563    $totalarray[
'nbfield']++;
 
 1565  if (!empty($arrayfields[
'cf.fk_projet'][
'checked'])) {
 
 1566    print_liste_field_titre($arrayfields[
'cf.fk_projet'][
'label'], $_SERVER[
"PHP_SELF"], 
"p.ref", 
"", $param, 
'', $sortfield, $sortorder);
 
 1567    $totalarray[
'nbfield']++;
 
 1569  if (!empty($arrayfields[
'u.login'][
'checked'])) {
 
 1570    print_liste_field_titre($arrayfields[
'u.login'][
'label'], $_SERVER[
"PHP_SELF"], 
"u.login", 
"", $param, 
'', $sortfield, $sortorder);
 
 1571    $totalarray[
'nbfield']++;
 
 1573  if (!empty($arrayfields[
'cf.fk_soc'][
'checked'])) {
 
 1574    print_liste_field_titre($arrayfields[
'cf.fk_soc'][
'label'], $_SERVER[
"PHP_SELF"], 
"s.nom", 
"", $param, 
'', $sortfield, $sortorder);
 
 1575    $totalarray[
'nbfield']++;
 
 1577  if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
 
 1578    print_liste_field_titre($arrayfields[
's.name_alias'][
'label'], $_SERVER[
"PHP_SELF"], 
"s.name_alias", 
"", $param, 
'', $sortfield, $sortorder);
 
 1579    $totalarray[
'nbfield']++;
 
 1581  if (!empty($arrayfields[
's.town'][
'checked'])) {
 
 1582    print_liste_field_titre($arrayfields[
's.town'][
'label'], $_SERVER[
"PHP_SELF"], 
's.town', 
'', $param, 
'', $sortfield, $sortorder);
 
 1583    $totalarray[
'nbfield']++;
 
 1585  if (!empty($arrayfields[
's.zip'][
'checked'])) {
 
 1586    print_liste_field_titre($arrayfields[
's.zip'][
'label'], $_SERVER[
"PHP_SELF"], 
's.zip', 
'', $param, 
'', $sortfield, $sortorder);
 
 1587    $totalarray[
'nbfield']++;
 
 1589  if (!empty($arrayfields[
'state.nom'][
'checked'])) {
 
 1590    print_liste_field_titre($arrayfields[
'state.nom'][
'label'], $_SERVER[
"PHP_SELF"], 
"state.nom", 
"", $param, 
'', $sortfield, $sortorder);
 
 1591    $totalarray[
'nbfield']++;
 
 1593  if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
 
 1594    print_liste_field_titre($arrayfields[
'country.code_iso'][
'label'], $_SERVER[
"PHP_SELF"], 
"country.code_iso", 
"", $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1595    $totalarray[
'nbfield']++;
 
 1597  if (!empty($arrayfields[
'typent.code'][
'checked'])) {
 
 1598    print_liste_field_titre($arrayfields[
'typent.code'][
'label'], $_SERVER[
"PHP_SELF"], 
"typent.code", 
"", $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1599    $totalarray[
'nbfield']++;
 
 1601  if (!empty($arrayfields[
'cf.fk_author'][
'checked'])) {
 
 1602    print_liste_field_titre($arrayfields[
'cf.fk_author'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.fk_author", 
"", $param, 
'', $sortfield, $sortorder);
 
 1603    $totalarray[
'nbfield']++;
 
 1605  if (!empty($arrayfields[
'cf.date_commande'][
'checked'])) {
 
 1606    print_liste_field_titre($arrayfields[
'cf.date_commande'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.date_commande", 
"", $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1607    $totalarray[
'nbfield']++;
 
 1609  if (!empty($arrayfields[
'cf.date_livraison'][
'checked'])) {
 
 1610    print_liste_field_titre($arrayfields[
'cf.date_livraison'][
'label'], $_SERVER[
"PHP_SELF"], 
'cf.date_livraison', 
'', $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1611    $totalarray[
'nbfield']++;
 
 1613  if (!empty($arrayfields[
'cf.total_ht'][
'checked'])) {
 
 1614    print_liste_field_titre($arrayfields[
'cf.total_ht'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.total_ht", 
"", $param, 
'', $sortfield, $sortorder, 
'right ');
 
 1615    $totalarray[
'nbfield']++;
 
 1617  if (!empty($arrayfields[
'cf.total_tva'][
'checked'])) {
 
 1618    print_liste_field_titre($arrayfields[
'cf.total_tva'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.total_tva", 
"", $param, 
'', $sortfield, $sortorder, 
'right ');
 
 1619    $totalarray[
'nbfield']++;
 
 1621  if (!empty($arrayfields[
'cf.total_ttc'][
'checked'])) {
 
 1622    print_liste_field_titre($arrayfields[
'cf.total_ttc'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.total_ttc", 
"", $param, 
'', $sortfield, $sortorder, 
'right ');
 
 1623    $totalarray[
'nbfield']++;
 
 1625  if (!empty($arrayfields[
'cf.multicurrency_code'][
'checked'])) {
 
 1626    print_liste_field_titre($arrayfields[
'cf.multicurrency_code'][
'label'], $_SERVER[
'PHP_SELF'], 
'cf.multicurrency_code', 
'', $param, 
'', $sortfield, $sortorder);
 
 1627    $totalarray[
'nbfield']++;
 
 1629  if (!empty($arrayfields[
'cf.multicurrency_tx'][
'checked'])) {
 
 1630    print_liste_field_titre($arrayfields[
'cf.multicurrency_tx'][
'label'], $_SERVER[
'PHP_SELF'], 
'cf.multicurrency_tx', 
'', $param, 
'', $sortfield, $sortorder);
 
 1631    $totalarray[
'nbfield']++;
 
 1633  if (!empty($arrayfields[
'cf.multicurrency_total_ht'][
'checked'])) {
 
 1634    print_liste_field_titre($arrayfields[
'cf.multicurrency_total_ht'][
'label'], $_SERVER[
'PHP_SELF'], 
'cf.multicurrency_total_ht', 
'', $param, 
'class="right"', $sortfield, $sortorder);
 
 1635    $totalarray[
'nbfield']++;
 
 1637  if (!empty($arrayfields[
'cf.multicurrency_total_tva'][
'checked'])) {
 
 1638    print_liste_field_titre($arrayfields[
'cf.multicurrency_total_tva'][
'label'], $_SERVER[
'PHP_SELF'], 
'cf.multicurrency_total_tva', 
'', $param, 
'class="right"', $sortfield, $sortorder);
 
 1639    $totalarray[
'nbfield']++;
 
 1641  if (!empty($arrayfields[
'cf.multicurrency_total_ttc'][
'checked'])) {
 
 1642    print_liste_field_titre($arrayfields[
'cf.multicurrency_total_ttc'][
'label'], $_SERVER[
'PHP_SELF'], 
'cf.multicurrency_total_ttc', 
'', $param, 
'class="right"', $sortfield, $sortorder);
 
 1643    $totalarray[
'nbfield']++;
 
 1646  include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_title.tpl.php';
 
 1648  $parameters = array(
'arrayfields'=>$arrayfields, 
'param'=>$param, 
'sortfield'=>$sortfield, 
'sortorder'=>$sortorder);
 
 1649  $reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters); 
 
 1650  print $hookmanager->resPrint;
 
 1651  if (!empty($arrayfields[
'cf.date_creation'][
'checked'])) {
 
 1652    print_liste_field_titre($arrayfields[
'cf.date_creation'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.date_creation", 
"", $param, 
'', $sortfield, $sortorder, 
'center nowrap ');
 
 1653    $totalarray[
'nbfield']++;
 
 1655  if (!empty($arrayfields[
'cf.tms'][
'checked'])) {
 
 1656    print_liste_field_titre($arrayfields[
'cf.tms'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.tms", 
"", $param, 
'', $sortfield, $sortorder, 
'center nowrap ');
 
 1657    $totalarray[
'nbfield']++;
 
 1659  if (!empty($arrayfields[
'cf.fk_statut'][
'checked'])) {
 
 1660    print_liste_field_titre($arrayfields[
'cf.fk_statut'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.fk_statut", 
"", $param, 
'', $sortfield, $sortorder, 
'right ');
 
 1661    $totalarray[
'nbfield']++;
 
 1663  if (!empty($arrayfields[
'cf.billed'][
'checked'])) {
 
 1664    print_liste_field_titre($arrayfields[
'cf.billed'][
'label'], $_SERVER[
"PHP_SELF"], 
'cf.billed', 
'', $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1665    $totalarray[
'nbfield']++;
 
 1667  if (!empty($arrayfields[
'cf.date_valid'][
'checked'])) {
 
 1668    print_liste_field_titre($arrayfields[
'cf.date_valid'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.date_valid", 
"", $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1669    $totalarray[
'nbfield']++;
 
 1671  if (!empty($arrayfields[
'cf.date_approve'][
'checked'])) {
 
 1672    print_liste_field_titre($arrayfields[
'cf.date_approve'][
'label'], $_SERVER[
"PHP_SELF"], 
'cf.date_approve', 
'', $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1673    $totalarray[
'nbfield']++;
 
 1675  if (!empty($arrayfields[
'cf.note_public'][
'checked'])) {
 
 1676    print_liste_field_titre($arrayfields[
'cf.note_public'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.note_public", 
"", $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1677    $totalarray[
'nbfield']++;
 
 1679  if (!empty($arrayfields[
'cf.note_private'][
'checked'])) {
 
 1680    print_liste_field_titre($arrayfields[
'cf.note_private'][
'label'], $_SERVER[
"PHP_SELF"], 
"cf.note_private", 
"", $param, 
'', $sortfield, $sortorder, 
'center ');
 
 1681    $totalarray[
'nbfield']++;
 
 1684    print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"], 
"", 
'', 
'', 
'', $sortfield, $sortorder, 
'center maxwidthsearch ');
 
 1685    $totalarray[
'nbfield']++;
 
 1691  $productstat_cache = array();
 
 1693  $userstatic = 
new User($db);
 
 1695  $projectstatic = 
new Project($db);
 
 1698  $savnbfield = $totalarray[
'nbfield'];
 
 1699  $totalarray = array(
'nbfield' => 0, 
'val' => array(), 
'pos' => array());
 
 1700  $totalarray[
'val'][
'cf.total_ht'] = 0;
 
 1701  $totalarray[
'val'][
'cf.total_ttc'] = 0;
 
 1702  $totalarray[
'val'][
'cf.total_tva'] = 0;
 
 1704  $imaxinloop = ($limit ? min($num, $limit) : $num);
 
 1705  while ($i < $imaxinloop) {
 
 1706    $obj = $db->fetch_object($resql);
 
 1714    $objectstatic->id = $obj->rowid;
 
 1715    $objectstatic->ref = $obj->ref;
 
 1716    $objectstatic->socid = $obj->socid;
 
 1717    $objectstatic->ref_supplier = $obj->ref_supplier;
 
 1718    $objectstatic->socid = $obj->socid;
 
 1719    $objectstatic->total_ht = $obj->total_ht;
 
 1720    $objectstatic->total_tva = $obj->total_tva;
 
 1721    $objectstatic->total_ttc = $obj->total_ttc;
 
 1722    $objectstatic->date_commande = $db->jdate($obj->date_commande);
 
 1723    $objectstatic->delivery_date = $db->jdate($obj->date_livraison);
 
 1724    $objectstatic->note_public = $obj->note_public;
 
 1725    $objectstatic->note_private = $obj->note_private;
 
 1726    $objectstatic->statut = $obj->fk_statut;
 
 1728    if ($mode == 
'kanban') {
 
 1730        print 
'<tr class="trkanban"><td colspan="'.$savnbfield.
'">';
 
 1731        print 
'<div class="box-flex-container kanban">';
 
 1734      $thirdpartytmp->id = $obj->socid;
 
 1735      $thirdpartytmp->name = $obj->name;
 
 1736      $thirdpartytmp->email = $obj->email;
 
 1737      $thirdpartytmp->name_alias = $obj->alias;
 
 1738      $thirdpartytmp->client = $obj->client;
 
 1739      $thirdpartytmp->fournisseur = $obj->fournisseur;
 
 1740      $objectstatic->socid = $thirdpartytmp->getNomUrl(
'supplier', 0, 0, -1);
 
 1742      print $objectstatic->getKanbanView(
'', array(
'selected' => in_array($objectstatic->id, $arrayofselected)));
 
 1743      if ($i == ($imaxinloop - 1)) {
 
 1748      print 
'<tr class="oddeven">';
 
 1751        print 
'<td class="nowrap center">';
 
 1752        if ($massactionbutton || $massaction) {   
 
 1754          if (in_array($obj->rowid, $arrayofselected)) {
 
 1757          print 
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ? 
' checked="checked"' : 
'').
'>';
 
 1762      if (!empty($arrayfields[
'cf.ref'][
'checked'])) {
 
 1763        print 
'<td class="nowrap">';
 
 1766        print $objectstatic->getNomUrl(1, 
'', 0, -1, 1);
 
 1770        print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
 
 1774          $totalarray[
'nbfield']++;
 
 1778      if (!empty($arrayfields[
'cf.ref_supplier'][
'checked'])) {
 
 1779        print 
'<td class="tdoverflowmax150" title="'.dol_escape_htmltag($obj->ref_supplier).
'">'.
dol_escape_htmltag($obj->ref_supplier).
'</td>'.
"\n";
 
 1781          $totalarray[
'nbfield']++;
 
 1785      if (!empty($arrayfields[
'cf.fk_projet'][
'checked'])) {
 
 1786        $projectstatic->id = $obj->project_id;
 
 1787        $projectstatic->ref = $obj->project_ref;
 
 1788        $projectstatic->title = $obj->project_title;
 
 1790        if ($obj->project_id > 0) {
 
 1791          print $projectstatic->getNomUrl(1);
 
 1795          $totalarray[
'nbfield']++;
 
 1799      $userstatic->id = $obj->fk_user_author;
 
 1800      $userstatic->lastname = $obj->lastname;
 
 1801      $userstatic->firstname = $obj->firstname;
 
 1802      $userstatic->login = $obj->login;
 
 1803      $userstatic->photo = $obj->photo;
 
 1804      $userstatic->email = $obj->user_email;
 
 1805      $userstatic->statut = $obj->user_status;
 
 1806      if (!empty($arrayfields[
'u.login'][
'checked'])) {
 
 1807        print 
'<td class="tdoverflowmax150">';
 
 1808        if ($userstatic->id) {
 
 1809          print $userstatic->getNomUrl(1);
 
 1813          $totalarray[
'nbfield']++;
 
 1817      if (!empty($arrayfields[
'cf.fk_soc'][
'checked'])) {
 
 1818        print 
'<td class="tdoverflowmax150">';
 
 1819        $thirdpartytmp->id = $obj->socid;
 
 1820        $thirdpartytmp->name = $obj->name;
 
 1821        $thirdpartytmp->email = $obj->email;
 
 1822        $thirdpartytmp->name_alias = $obj->alias;
 
 1823        $thirdpartytmp->client = $obj->client;
 
 1824        $thirdpartytmp->fournisseur = $obj->fournisseur;
 
 1825        print $thirdpartytmp->getNomUrl(1, 
'supplier', 0, 0, -1, empty($arrayfields[
's.name_alias'][
'checked']) ? 0 : 1);
 
 1828          $totalarray[
'nbfield']++;
 
 1832      if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
 
 1833        print 
'<td class="tdoverflowmax150">';
 
 1837          $totalarray[
'nbfield']++;
 
 1841      if (!empty($arrayfields[
's.town'][
'checked'])) {
 
 1846          $totalarray[
'nbfield']++;
 
 1850      if (!empty($arrayfields[
's.zip'][
'checked'])) {
 
 1855          $totalarray[
'nbfield']++;
 
 1859      if (!empty($arrayfields[
'state.nom'][
'checked'])) {
 
 1860        print 
"<td>".$obj->state_name.
"</td>\n";
 
 1862          $totalarray[
'nbfield']++;
 
 1866      if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
 
 1867        print 
'<td class="center">';
 
 1868        $tmparray = 
getCountry($obj->fk_pays, 
'all');
 
 1869        print $tmparray[
'label'];
 
 1872          $totalarray[
'nbfield']++;
 
 1876      if (!empty($arrayfields[
'typent.code'][
'checked'])) {
 
 1877        print 
'<td class="center">';
 
 1878        if (empty($typenArray)) {
 
 1879          $typenArray = $formcompany->typent_array(1);
 
 1881        print $typenArray[$obj->typent_code];
 
 1884          $totalarray[
'nbfield']++;
 
 1889      if (!empty($arrayfields[
'cf.date_commande'][
'checked'])) {
 
 1890        print 
'<td class="center">';
 
 1892        if ($objectstatic->statut != $objectstatic::STATUS_ORDERSENT && $objectstatic->statut != $objectstatic::STATUS_RECEIVED_PARTIALLY) {
 
 1893          if ($objectstatic->hasDelay()) {
 
 1894            print 
' '.img_picto($langs->trans(
"Late").
' : '.$objectstatic->showDelay(), 
"warning");
 
 1899          $totalarray[
'nbfield']++;
 
 1903      if (!empty($arrayfields[
'cf.date_livraison'][
'checked'])) {
 
 1904        print 
'<td class="center">';
 
 1906        if ($objectstatic->statut == $objectstatic::STATUS_ORDERSENT || $objectstatic->statut == $objectstatic::STATUS_RECEIVED_PARTIALLY) {
 
 1907          if ($objectstatic->hasDelay()) {
 
 1908            print 
' '.img_picto($langs->trans(
"Late").
' : '.$objectstatic->showDelay(), 
"warning");
 
 1913          $totalarray[
'nbfield']++;
 
 1917      if (!empty($arrayfields[
'cf.total_ht'][
'checked'])) {
 
 1918        print 
'<td class="right"><span class="amount">'.price($obj->total_ht).
"</span></td>\n";
 
 1920          $totalarray[
'nbfield']++;
 
 1923          $totalarray[
'pos'][$totalarray[
'nbfield']] = 
'cf.total_ht';
 
 1925        $totalarray[
'val'][
'cf.total_ht'] += $obj->total_ht;
 
 1928      if (!empty($arrayfields[
'cf.total_tva'][
'checked'])) {
 
 1929        print 
'<td class="right"><span class="amount">'.price($obj->total_tva).
"</span></td>\n";
 
 1931          $totalarray[
'nbfield']++;
 
 1934          $totalarray[
'pos'][$totalarray[
'nbfield']] = 
'cf.total_tva';
 
 1936        $totalarray[
'val'][
'cf.total_tva'] += $obj->total_tva;
 
 1939      if (!empty($arrayfields[
'cf.total_ttc'][
'checked'])) {
 
 1940        print 
'<td class="right"><span class="amount">'.price($obj->total_ttc).
"</span></td>\n";
 
 1942          $totalarray[
'nbfield']++;
 
 1945          $totalarray[
'pos'][$totalarray[
'nbfield']] = 
'cf.total_ttc';
 
 1947        $totalarray[
'val'][
'cf.total_ttc'] += $obj->total_ttc;
 
 1951      if (!empty($arrayfields[
'cf.multicurrency_code'][
'checked'])) {
 
 1952        print 
'<td class="nowrap">'.$obj->multicurrency_code.
' - '.$langs->trans(
'Currency'.$obj->multicurrency_code).
"</td>\n";
 
 1954          $totalarray[
'nbfield']++;
 
 1959      if (!empty($arrayfields[
'cf.multicurrency_tx'][
'checked'])) {
 
 1960        print 
'<td class="nowrap">';
 
 1961        $form->form_multicurrency_rate($_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid, $obj->multicurrency_tx, 
'none', $obj->multicurrency_code);
 
 1964          $totalarray[
'nbfield']++;
 
 1968      if (!empty($arrayfields[
'cf.multicurrency_total_ht'][
'checked'])) {
 
 1969        print 
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ht).
"</span></td>\n";
 
 1971          $totalarray[
'nbfield']++;
 
 1975      if (!empty($arrayfields[
'cf.multicurrency_total_tva'][
'checked'])) {
 
 1976        print 
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_tva).
"</span></td>\n";
 
 1978          $totalarray[
'nbfield']++;
 
 1982      if (!empty($arrayfields[
'cf.multicurrency_total_ttc'][
'checked'])) {
 
 1983        print 
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ttc).
"</span></td>\n";
 
 1985          $totalarray[
'nbfield']++;
 
 1990      include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_print_fields.tpl.php';
 
 1992      $parameters = array(
'arrayfields'=>$arrayfields, 
'obj'=>$obj, 
'i'=>$i, 
'totalarray'=>&$totalarray);
 
 1993      $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters); 
 
 1994      print $hookmanager->resPrint;
 
 1996      if (!empty($arrayfields[
'cf.date_creation'][
'checked'])) {
 
 1997        print 
'<td class="center nowrap">';
 
 1998        print 
dol_print_date($db->jdate($obj->date_creation), 
'dayhour', 
'tzuser');
 
 2001          $totalarray[
'nbfield']++;
 
 2005      if (!empty($arrayfields[
'cf.tms'][
'checked'])) {
 
 2006        print 
'<td class="center nowrap">';
 
 2007        print 
dol_print_date($db->jdate($obj->date_update), 
'dayhour', 
'tzuser');
 
 2010          $totalarray[
'nbfield']++;
 
 2014      if (!empty($arrayfields[
'cf.fk_statut'][
'checked'])) {
 
 2015        print 
'<td class="right nowrap">'.$objectstatic->LibStatut($obj->fk_statut, 5, $obj->billed).
'</td>';
 
 2017          $totalarray[
'nbfield']++;
 
 2021      if (!empty($arrayfields[
'cf.billed'][
'checked'])) {
 
 2022        print 
'<td class="center">'.yn($obj->billed).
'</td>';
 
 2024          $totalarray[
'nbfield']++;
 
 2029      if (!empty($arrayfields[
'cf.date_valid'][
'checked'])) {
 
 2030        print 
'<td class="center">';
 
 2034          $totalarray[
'nbfield']++;
 
 2038      if (!empty($arrayfields[
'cf.date_approve'][
'checked'])) {
 
 2039        print 
'<td class="center">';
 
 2043          $totalarray[
'nbfield']++;
 
 2047      if (!empty($arrayfields[
'cf.note_public'][
'checked'])) {
 
 2048        print 
'<td class="center">';
 
 2052          $totalarray[
'nbfield']++;
 
 2057      if (!empty($arrayfields[
'cf.note_private'][
'checked'])) {
 
 2058        print 
'<td class="center">';
 
 2062          $totalarray[
'nbfield']++;
 
 2068        print 
'<td class="nowrap center">';
 
 2069        if ($massactionbutton || $massaction) {   
 
 2071          if (in_array($obj->rowid, $arrayofselected)) {
 
 2074          print 
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ? 
' checked="checked"' : 
'').
'>';
 
 2079        $totalarray[
'nbfield']++;
 
 2084      $total += $obj->total_ht;
 
 2085      $subtotal += $obj->total_ht;
 
 2091  include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
 
 2096    foreach ($arrayfields as $key => $val) {
 
 2097      if (!empty($val[
'checked'])) {
 
 2101    print 
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
 
 2106  $parameters = array(
'arrayfields'=>$arrayfields, 
'sql'=>$sql);
 
 2107  $reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters); 
 
 2108  print $hookmanager->resPrint;
 
 2110  print 
'</table>'.
"\n";
 
 2113  print 
'</form>'.
"\n";
 
 2115  $hidegeneratedfilelistifempty = 1;
 
 2116  if ($massaction == 
'builddoc' || $action == 
'remove_file' || $show_files) {
 
 2117    $hidegeneratedfilelistifempty = 0;
 
 2121  $urlsource = $_SERVER[
'PHP_SELF'].
'?sortfield='.$sortfield.
'&sortorder='.$sortorder;
 
 2122  $urlsource .= str_replace(
'&', 
'&', $param);
 
 2124  $filedir = $diroutputmassaction;
 
 2125  $genallowed = $permissiontoread;
 
 2126  $delallowed = $permissiontoadd;
 
 2128  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 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.
 
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.