$patients = array(); if (count($deliveries)) { foreach ($deliveries as $_delivery) { $_delivery->loadRefsFwd(); $_delivery->loadRefsBack(); $_delivery->_ref_stock->loadRefsFwd(); $_delivery->loadRefPatient(); $_delivery->loadRefSejour(); $_delivery->loadRefService(); $_delivery->getInitialQuantity(); $_delivery->loadRefPreparateur(); /*if($_delivery->patient_id){ $_delivery->loadRefPatient(); $deliveries_nominatif[$_delivery->_id] = $_delivery; } else { $_delivery->loadRefService(); $deliveries_global[$_delivery->_id] = $_delivery; }*/ $stocks_service[$_delivery->_id] = CProductStockService::getFromCode($_delivery->_ref_stock->_ref_product->code, $service_id); } } $smarty = new CSmartyDP(); $smarty->assign('deliveries', $deliveries); $smarty->assign('deliveries_count', $deliveries_count); $smarty->assign('service_id', $service_id); $smarty->assign('start', $start); if (!$mode) { $smarty->display('inc_stock_reception.tpl'); } else { $smarty->display('print_stock_reception.tpl'); }
<?php /** * $Id$ * * @package Mediboard * @subpackage Stock * @author SARL OpenXtrem <*****@*****.**> * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html * @version $Revision$ */ // If it is a return to the group stock if (isset($_POST['_return']) && isset($_POST['_code'])) { $stock_service = CProductStockService::getFromCode($_POST['_code']); $stock_group = CProductStockGroup::getFromCode($_POST['_code']); $_POST['quantity'] = -abs($_POST['quantity']); $_POST['_code'] = null; $_POST['_return'] = null; if ($stock_service && $stock_group) { $delivery = new CProductDelivery(); $where = array('stock_id' => "= '{$stock_group->_id}'", 'stock_class' => "= 'CProductStockGroup'", 'service_id' => "= '{$stock_service->service_id}'", 'quantity' => "< 0"); if (!$delivery->loadObject($where)) { $delivery->stock_id = $stock_group->_id; $delivery->stock_class = $stock_group->_class; $delivery->service_id = $stock_service->service_id; } $delivery->quantity += $_POST['quantity']; $delivery->date_dispensation = CMbDT::dateTime(); if ($msg = $delivery->store()) { CAppUI::setMsg($msg, UI_MSG_ERROR); }
$medicaments[$code_cip] =& $line->_ref_produit; } } // Calcul du nombre de boites correspondant aux administrations foreach ($destockages as $code_cip => $_destockage) { $medicament = $medicaments[$code_cip]; //$presentation = $destockages[$code_cip]["quantite"]/$medicament->nb_unite_presentation/$medicament->nb_presentation; $presentation = $destockages[$code_cip]["quantite"]; if (!isset($destockages[$code_cip]["nb_produit"])) { $destockages[$code_cip]["nb_produit"] = 0; } $destockages[$code_cip]["nb_produit"] = $presentation; if (strstr($destockages[$code_cip]["nb_produit"], '.')) { $destockages[$code_cip]["nb_produit"] = ceil($destockages[$code_cip]["nb_produit"]); } $destockages[$code_cip]["stock"] = CProductStockService::getFromCode($code_cip, $service_id); if ($destockages[$code_cip]["stock"]) { $destockages[$code_cip]["stock"]->quantity -= $destockages[$code_cip]["nb_produit"]; $stock = $destockages[$code_cip]["stock"]; $log = new CUserLog(); $where = array(); $order = "date DESC"; $where["object_id"] = " = '{$stock->_id}'"; $where["object_class"] = " = '{$stock->_class}'"; $where["date"] = " BETWEEN '{$date_min}' AND '{$date_max}'"; $where["fields"] = " LIKE '%quantity%'"; $destockages[$code_cip]["stock"]->_ref_logs = $log->loadList($where, $order); foreach ($destockages[$code_cip]["stock"]->_ref_logs as $log) { $log->loadRefsFwd(); } } else {