function _addCommandedetLine(&$PDOdb, &$TImport, &$commandefourn, $refproduit, $numserie, $imei, $firmware, $lot_number, $quantity, $quantity_unit, $dluo = null, $k = null, $entrepot = null) { global $db, $conf, $user; //var_dump($_POST['TLine']);exit; //Charge le produit associé à l'équipement $prodAsset = new Product($db); $prodAsset->fetch('', $refproduit); //TODO incompréhensible - Cette notion est dispo depuis la 3.9 mettre à jour //Récupération de l'indentifiant de la ligne d'expédition concerné par le produit foreach ($commandefourn->lines as $commandeline) { if ($commandeline->fk_product == $prodAsset->id) { $fk_line = $commandeline->id; } } if (!empty($_POST['TLine'][$k])) { if ($numserie != $_POST['TLine'][$k]['numserie']) { $line_update = true; } } //Sauvegarde (ajout/MAJ) des lignes de détail d'expédition $recepdetail = new TRecepDetail(); //pre($TImport,true); $fk_line_receipt = !empty($_POST['TLine'][$k]['commande_fournisseurdet_asset']) ? (int) $_POST['TLine'][$k]['commande_fournisseurdet_asset'] : 0; if ($fk_line_receipt > 0) { $recepdetail->load($PDOdb, $fk_line_receipt); $lineFound = true; } else { $lineFound = false; } $keys = array_keys($TImport); $rang = $keys[count($keys) - 1]; $recepdetail->fk_commandedet = $fk_line; $recepdetail->fk_product = $prodAsset->id; $recepdetail->rang = $rang + 1; $recepdetail->set_date('dluo', $dluo ? $dluo : date('Y-m-d H:i:s')); $recepdetail->lot_number = $lot_number; $recepdetail->weight_reel = $quantity; $recepdetail->weight = $quantity; $recepdetail->weight_unit = $quantity_unit; $recepdetail->weight_reel_unit = $quantity_unit; $recepdetail->serial_number = $numserie; $recepdetail->imei = $imei; $recepdetail->firmware = $firmware; $recepdetail->fk_warehouse = $entrepot; /*$recepdetail->weight = 1; $recepdetail->weight_reel = 1; $recepdetail->weight_unit = 0; $recepdetail->weight_reel_unit = 0;*/ $recepdetail->save($PDOdb); $currentLine = array('ref' => $prodAsset->ref, 'numserie' => $numserie, 'lot_number' => $lot_number, 'quantity' => $quantity, 'quantity_unit' => $quantity_unit, 'fk_product' => $prodAsset->id, 'fk_warehouse' => $entrepot, 'imei' => $imei, 'firmware' => $firmware, 'dluo' => $recepdetail->get_date('dluo', 'Y-m-d H:i:s'), 'commande_fournisseurdet_asset' => $recepdetail->getId()); //Rempli le tableau utilisé pour l'affichage des lignes $lineFound ? $TImport[$k] = $currentLine : ($TImport[] = $currentLine); return $TImport; }
<?php /* * Script créant et vérifiant que les champs requis s'ajoutent bien * */ if (!defined('INC_FROM_DOLIBARR')) { define('INC_FROM_CRON_SCRIPT', true); require '../config.php'; $PDOdb = new TPDOdb(); $PDOdb->debug = true; } else { $PDOdb = new TPDOdb(); } dol_include_once('/dispatch/class/dispatchdetail.class.php'); dol_include_once('/dispatch/class/dispatchasset.class.php'); dol_include_once('/asset/class/asset.class.php'); $o = new TDispatchDetail(); $o->init_db_by_vars($PDOdb); $o = new TRecepDetail(); $o->init_db_by_vars($PDOdb); $o = new TDispatch(); $o->init_db_by_vars($PDOdb); $o = new TDispatchAsset(); $o->init_db_by_vars($PDOdb);