/** * @see parent::store() */ function store() { if ($this->_id && $this->_duplicate_to_service_id) { $this->completeField("name"); $dup = new self(); $dup->service_id = $this->_duplicate_to_service_id; $dup->name = $this->name; if ($msg = $dup->store()) { return $msg; } $items = $this->loadRefsEndowmentItems(); foreach ($items as $_item) { if ($_item->cancelled) { continue; } $_dup_item = new CProductEndowmentItem(); $_dup_item->product_id = $_item->product_id; $_dup_item->quantity = $_item->quantity; $_dup_item->endowment_id = $dup->_id; $_dup_item->store(); } $this->_duplicate_to_service_id = null; return null; } return parent::store(); }
/** * $Id$ * * @package Mediboard * @subpackage Stock * @author SARL OpenXtrem <*****@*****.**> * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html * @version $Revision$ */ CCanDo::checkEdit(); $product_id = CValue::getOrSession('product_id'); // Loads the required Product and its References $product = new CProduct(); if ($product->load($product_id)) { $product->loadRefsBack(); $endowment_item = new CProductEndowmentItem(); $ljoin = array('product_endowment' => "product_endowment.endowment_id = product_endowment_item.endowment_id"); foreach ($product->_ref_stocks_service as $_stock) { $where = array("product_endowment.service_id" => "= '{$_stock->object_id}'", "product_endowment_item.product_id" => "= '{$product->_id}'"); $_stock->_ref_endowment_items = $endowment_item->loadList($where, null, null, null, $ljoin); } foreach ($product->_ref_references as $_reference) { $_reference->loadRefProduct(); $_reference->loadRefSociete(); } $product->loadRefStock(); $where = array("stock_class" => " = 'CProductStockGroup'", "stock_id" => " = '{$product->_ref_stock_group->stock_id}'"); $delivery = new CProductDelivery(); $product->_ref_deliveries = $delivery->loadList($where, "date_dispensation DESC, date_delivery DESC", 50); foreach ($product->_ref_deliveries as $_delivery) { $_delivery->loadRefsBack();
if ($endowment_id) { /** @var CProductEndowmentItem[] $endowment_items */ // Toute la liste if (!$endowment_item_id) { $endowment_item = new CProductEndowmentItem(); $where["product_endowment_item.endowment_id"] = "= '{$endowment_id}'"; $where["product_endowment_item.cancelled"] = "= '0'"; $ljoin = array('product' => 'product.product_id = product_endowment_item.product_id'); if ($keywords) { $where['product.name'] = $endowment_item->_spec->ds->prepareLike("%{$keywords}%"); } $endowment_items = $endowment_item->seek($keywords, $where, $limit, true, $ljoin, 'product.name'); $count_stocks = $endowment_item->_totalSeek; } else { $single_line = true; $endowment_item = new CProductEndowmentItem(); $endowment_item->load($endowment_item_id); $endowment_items = array($endowment_item->_id => $endowment_item); $count_stocks = 1; } $stocks = array(); foreach ($endowment_items as $_item) { $_item->loadRefsFwd(); $stock_service = CProductStockService::getFromProduct($_item->_ref_product, $service); $stock = new CProductStockGroup(); $stock->product_id = $_item->_ref_product->_id; $stock->group_id = $group_id; $stock->loadMatchingObject(); $stock->updateFormFields(); $stock->_ref_stock_service = $stock_service; $stock->quantity = $_item->quantity;