$reception->loadRefsFwd();
    $reception->loadRefsBack();
}
$pdf = new CMbPdf();
$pdf->setFont("vera", '', "10");
// Définition des marges de la pages
//$pdf->SetMargins(15, 15);
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->SetAutoPageBreak(0);
// Creation d'une nouvelle page
$pdf->AddPage();
if ($reception->_id) {
    $lots = $reception->_ref_reception_items;
} else {
    $lot = new CProductOrderItemReception();
    $lot->load($lot_id);
    $lots = array($lot);
}
$data = array();
$j = 0;
foreach ($lots as &$item) {
    $item->loadRefsBack();
    $item->loadRefsFwd();
    $item->_ref_order_item->loadReference();
    $reference = $item->_ref_order_item->_ref_reference;
    $reference->loadRefsFwd();
    $reference->_ref_product->loadRefsFwd();
    if (!$item->barcode_printed || $force_print) {
        for ($i = 0; $i < $item->quantity / $reference->quantity; $i++) {
            $data[$j] = array();
$series = array(array("label" => utf8_encode("Entrées"), "color" => "#66CC00", "data" => array()), array("label" => utf8_encode("Sorties"), "color" => "#CB4B4B", "data" => array()), array("label" => utf8_encode("Périmés"), "color" => "#6600CC", "data" => array()));
$ticks = array();
$max = 1;
$now = CMbDT::date();
$date = CMbDT::date("-6 MONTHS");
$i = 0;
while ($date < $now) {
    //$to = CMbDT::date("+1 MONTH", $date);
    //$ticks[] = "Du ".CMbDT::dateToLocale($date)." au ".CMbDT::dateToLocale($to);
    $date = CMbDT::format($date, "%Y-%m-01");
    $to = CMbDT::date("+1 MONTH", $date);
    $ticks[] = array(count($ticks) * 2 - 0.4, utf8_encode(CMbDT::format($date, "%b")));
    // Input //////////////////
    $where = array("product.product_id" => "= '{$product->_id}'", "product_order_item_reception.date" => "BETWEEN '{$date}' AND '{$to}'");
    $ljoin = array("product_order_item" => "product_order_item.order_item_id = product_order_item_reception.order_item_id", "product_reference" => "product_reference.reference_id = product_order_item.reference_id", "product" => "product.product_id = product_reference.product_id");
    $lot = new CProductOrderItemReception();
    /** @var CProductOrderItemReception[] $lots */
    $lots = $lot->loadList($where, null, null, null, $ljoin);
    $total = 0;
    foreach ($lots as $_lot) {
        $total += $_lot->quantity;
    }
    $max = max($max, $total);
    $series[0]["data"][] = array(count($series[0]["data"]) * 2 - 0.6, $total);
    // Hack pour les etablissements qui ont un service "Périmés"
    $where_services = array("nom" => "= 'Périmés'");
    $services_expired = new CService();
    $services_expired_ids = $services_expired->loadIds($where_services);
    // Output //////////////////
    $where = array("product_delivery.stock_class" => "= 'CProductStockGroup'", "product_delivery.stock_id" => "= '{$product->_ref_stock_group->_id}'", "product_delivery_trace.date_delivery" => "BETWEEN '{$date}' AND '{$to}'");
    if (count($services_expired_ids)) {
示例#3
0
 *
 * @package    Mediboard
 * @subpackage Stock
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision: 19286 $
 */
CCanDo::checkRead();
$code = CValue::getOrSession('code');
$codes = array();
$products = array();
if (strlen($code) > 2) {
    $where = array('code' => "LIKE '%{$code}%'");
    $delivery = new CProductDeliveryTrace();
    $list_deliveries = $delivery->loadList($where, 'date_delivery');
    $reception = new CProductOrderItemReception();
    $list_order_reception = $reception->loadList($where, 'date');
    foreach ($list_order_reception as $trace) {
        if (!isset($codes[$trace->code])) {
            $codes[$trace->code] = array();
        }
        $trace->loadRefsFwd();
        if (!isset($products[$trace->code])) {
            $trace->loadRefOrderItem();
            $trace->_ref_order_item->loadReference();
            $trace->_ref_order_item->_ref_reference->loadRefsFwd();
            $products[$trace->code] = $trace->_ref_order_item->_ref_reference->_ref_product;
        }
        // date_reception
        if ($trace->date) {
            if (!isset($codes[$trace->code][$trace->date])) {
 /**
  * Load lots
  *
  * @return CProductOrderItemReception[]
  */
 function loadRefsLots()
 {
     $ljoin = array("product_order_item" => "product_order_item_reception.order_item_id = product_order_item.order_item_id", "product_reference" => "product_order_item.reference_id = product_reference.reference_id", "product" => "product_reference.product_id = product.product_id");
     $where = array("product.product_id" => " = '{$this->_id}'");
     $lot = new CProductOrderItemReception();
     return $this->_ref_lots = $lot->loadList($where, "date DESC", null, null, $ljoin);
 }
示例#5
0
 /**
  * Marks every order's items as received
  *
  * @return string|null
  */
 function receive()
 {
     $this->loadRefsOrderItems();
     // we mark all the items as received
     foreach ($this->_ref_order_items as $item) {
         if (!$item->isReceived()) {
             $reception = new CProductOrderItemReception();
             $reception->quantity = $item->quantity - $item->_quantity_received;
             $reception->order_item_id = $item->_id;
             $reception->date = CMbDT::dateTime();
             if ($msg = $reception->store()) {
                 return $msg;
             }
         }
     }
     return null;
 }
 /**
  * Receive the order item
  *
  * @param int  $quantity Quantity
  * @param null $code     Code
  *
  * @return null|string
  */
 function receive($quantity, $code = null)
 {
     if ($this->_id) {
         $reception = new CProductOrderItemReception();
         $reception->order_item_id = $this->_id;
         $reception->quantity = $quantity;
         $reception->date = CMbDT::dateTime();
         $reception->code = $code;
         return $reception->store();
     } else {
         return "{$this->_class}::receive failed : order_item must be stored before";
     }
 }
 * @version    $Revision$
 */
CCanDo::checkAdmin();
// TODO : supprimer
return;
CApp::setTimeLimit(1200);
function append_user_logs(&$all_logs, $logs)
{
    foreach ($logs as $_log) {
        $all_logs[$_log->date][$_log->_id] = $_log;
    }
}
//CSQLDataSource::$trace = true;
// ---------------------
CProductOrderItemReception::$_load_lite = true;
$oir = new CProductOrderItemReception();
$oir_where = array("product_order_item_reception.units_fixed" => "= '0'");
$oir_ljoin = array("product_order_item" => "product_order_item_reception.order_item_id = product_order_item.order_item_id", "product_reference" => "product_order_item.reference_id = product_reference.reference_id", "product" => "product_reference.product_id = product.product_id");
// ---------------------
CProductOrderItem::$_load_lite = true;
$oi = new CProductOrderItem();
$oi_where = array("product_order_item.units_fixed" => "= '0'");
$oi_ljoin = array("product_reference" => "product_order_item.reference_id = product_reference.reference_id", "product" => "product_reference.product_id = product.product_id", "user_log" => "product_order_item.order_item_id = user_log.object_id AND user_log.object_class = 'CProductOrderItem'");
// ---------------------
CProductReference::$_load_lite = true;
$ref = new CProductReference();
$ref_where = array("product_reference.units_fixed = '0'");
// ---------------------
$references = $ref->loadList($ref_where, null, 50);
CAppUI::stepAjax("Correction de " . count($references) . " références");
// Chargement des CProductReference