print "<td>".$langs->trans("Author")."</td><td>".$author->getFullName($langs)."</td>\n"; if ($commande->note) { print '<tr><td colspan="3">Note : '.nl2br($commande->note)."</td></tr>"; } print "</table>"; /* * Lignes de commandes * */ print '<br><table class="noborder" width="100%">'; $lines = $commande->fetch_lines(1); // Lecture des livraisons deja effectuees $commande->livraison_array(); $num = sizeof($commande->lines); $i = 0; if ($num) { print '<tr class="liste_titre">'; print '<td width="54%">'.$langs->trans("Description").'</td>'; print '<td align="center">Quan. commandee</td>'; print '<td align="center">Quan. livree</td>'; print '<td align="center">Quan. a livrer</td>'; if ($conf->stock->enabled)
/** * Create delivery receipt in database * * @param User $user Objet du user qui cree * @return int <0 si erreur, id livraison cree si ok */ function create($user) { global $conf; dol_syslog("Livraison::create"); if (empty($this->model_pdf)) { $this->model_pdf = $conf->global->LIVRAISON_ADDON_PDF; } $error = 0; $now = dol_now(); /* On positionne en mode brouillon le bon de livraison */ $this->brouillon = 1; $this->user = $user; $this->db->begin(); $sql = "INSERT INTO " . MAIN_DB_PREFIX . "livraison ("; $sql .= "ref"; $sql .= ", entity"; $sql .= ", fk_soc"; $sql .= ", ref_customer"; $sql .= ", date_creation"; $sql .= ", fk_user_author"; $sql .= ", date_delivery"; $sql .= ", fk_address"; $sql .= ", note_private"; $sql .= ", note_public"; $sql .= ", model_pdf"; $sql .= ") VALUES ("; $sql .= "'(PROV)'"; $sql .= ", " . $conf->entity; $sql .= ", " . $this->socid; $sql .= ", '" . $this->db->escape($this->ref_customer) . "'"; $sql .= ", '" . $this->db->idate($now) . "'"; $sql .= ", " . $user->id; $sql .= ", " . ($this->date_delivery ? "'" . $this->db->idate($this->date_delivery) . "'" : "null"); $sql .= ", " . ($this->fk_delivery_address > 0 ? $this->fk_delivery_address : "null"); $sql .= ", " . (!empty($this->note_private) ? "'" . $this->db->escape($this->note_private) . "'" : "null"); $sql .= ", " . (!empty($this->note_public) ? "'" . $this->db->escape($this->note_public) . "'" : "null"); $sql .= ", " . (!empty($this->model_pdf) ? "'" . $this->db->escape($this->model_pdf) . "'" : "null"); $sql .= ")"; dol_syslog("Livraison::create sql=" . $sql, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . "livraison"); $numref = "(PROV" . $this->id . ")"; $sql = "UPDATE " . MAIN_DB_PREFIX . "livraison "; $sql .= "SET ref = '" . $this->db->escape($numref) . "'"; $sql .= " WHERE rowid = " . $this->id; dol_syslog("Livraison::create sql=" . $sql, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { if (!$conf->expedition_bon->enabled) { $commande = new Commande($this->db); $commande->id = $this->commande_id; $commande->fetch_lines(); } /* * Insertion des produits dans la base */ $num = count($this->lines); for ($i = 0; $i < $num; $i++) { $origin_id = $this->lines[$i]->origin_line_id; if (!$origin_id) { $origin_id = $this->lines[$i]->commande_ligne_id; } // For backward compatibility if (!$this->create_line($origin_id, $this->lines[$i]->qty, $this->lines[$i]->fk_product, $this->lines[$i]->description)) { $error++; } } if (!$error && $this->id && $this->origin_id) { $ret = $this->add_object_linked(); if (!$ret) { $error++; } if (!$conf->expedition_bon->enabled) { // TODO uniformiser les statuts $ret = $this->setStatut(2, $this->origin_id, $this->origin); if (!$ret) { $error++; } } } if (!$error) { $this->db->commit(); return $this->id; } else { $error++; $this->error = $this->db->lasterror() . " - sql=" . $this->db->lastqueryerror; dol_syslog("Livraison::create Error -3 " . $this->error, LOG_ERR); $this->db->rollback(); return -3; } } else { $error++; $this->error = $this->db->lasterror() . " - sql=" . $this->db->lastqueryerror; dol_syslog("Livraison::create Error -2 " . $this->error, LOG_ERR); $this->db->rollback(); return -2; } } else { $error++; $this->error = $this->db->lasterror() . " - sql=" . $this->db->lastqueryerror; dol_syslog("Livraison::create Error -1 " . $this->error, LOG_ERR); $this->db->rollback(); return -1; } }