Skip to content
Permalink
Browse files

Fix check if order line is not in a shipment line before deleting

  • Loading branch information
Lionel VESSILLER
Lionel VESSILLER committed May 23, 2019
1 parent cc971f4 commit 1c1b3c376eadff9bdc245716a7ad941d432d0499
Showing with 27 additions and 0 deletions.
  1. +27 −0 htdocs/commande/class/commande.class.php
@@ -4051,6 +4051,33 @@ public function delete(User $user, $notrigger = 0)

$error=0;

// check if order line is not in a shipment line before deleting
$sqlCheckShipmentLine = "SELECT";
$sqlCheckShipmentLine .= " ed.rowid";
$sqlCheckShipmentLine .= " FROM " . MAIN_DB_PREFIX . "expeditiondet ed";
$sqlCheckShipmentLine .= " WHERE ed.fk_origin_line = " . $this->rowid;

$resqlCheckShipmentLine = $this->db->query($sqlCheckShipmentLine);
if (!$resqlCheckShipmentLine) {
$error++;
$this->error = $this->db->lasterror();
$this->errors[] = $this->error;
} else {
$langs->load('errors');
$num = $this->db->num_rows($resqlCheckShipmentLine);
if ($num > 0) {
$error++;
$objCheckShipmentLine = $this->db->fetch_object($resqlCheckShipmentLine);
$this->error = $langs->trans('ErrorRecordAlreadyExists') . ' : ' . $langs->trans('ShipmentLine') . ' ' . $objCheckShipmentLine->rowid;
$this->errors[] = $this->error;
}
$this->db->free($resqlCheckShipmentLine);
}
if ($error) {
dol_syslog(__METHOD__ . 'Error ; ' . $this->error, LOG_ERR);
return -1;
}

$this->db->begin();

$sql = 'DELETE FROM '.MAIN_DB_PREFIX."commandedet WHERE rowid=".$this->rowid;

0 comments on commit 1c1b3c3

Please sign in to comment.
You can’t perform that action at this time.