From 1d85529eda86b03f206ea627ca917551041a6c18 Mon Sep 17 00:00:00 2001 From: Francis Appels Date: Wed, 1 Jul 2015 23:24:54 +0200 Subject: [PATCH] Fix delete not used empty stock record When removing all stock from warehouse are move all stock to other warehouse, there is still an 0 stock record in in the stock table for the source warehouse, not visible in Dolibarr. --- .../stock/class/mouvementstock.class.php | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/htdocs/product/stock/class/mouvementstock.class.php b/htdocs/product/stock/class/mouvementstock.class.php index b37384932cf..9c1e555ba3b 100644 --- a/htdocs/product/stock/class/mouvementstock.class.php +++ b/htdocs/product/stock/class/mouvementstock.class.php @@ -3,6 +3,7 @@ * Copyright (C) 2005-2013 Laurent Destailleur * Copyright (C) 2011 Jean Heimburger * Copyright (C) 2014 Cedric GROSS + * Copyright (C) 2015 Francis Appels * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -232,7 +233,37 @@ class MouvementStock extends CommonObject { $fk_product_stock = $this->db->last_insert_id(MAIN_DB_PREFIX."product_stock"); } - + + // delete empty stock record + $sql = "SELECT reel FROM ".MAIN_DB_PREFIX."product_stock"; + $sql.= " WHERE rowid = ".$fk_product_stock; + + $resql=$this->db->query($sql); + if ($resql) + { + $obj = $this->db->fetch_object($resql); + if ($obj) + { + if ($obj->reel == 0) + { + dol_syslog(get_class($this)."::_create delete 0 stock record", LOG_DEBUG); + $sql = "DELETE FROM ".MAIN_DB_PREFIX."product_stock"; + $sql.= " WHERE rowid = ".$fk_product_stock; + $delsql=$this->db->query($sql); + if (! $delsql) + { + $this->errors[]=$this->db->lasterror(); + $error = -8; + } + } + } + $this->db->free($resql); + } + else + { + $this->errors[]=$this->db->lasterror(); + $error = -7; + } } // Update detail stock for sell-by date