/**
  * Load orders
  *
  * @return void
  */
 function loadRefOrders()
 {
     // Verifies wether there are pending orders for this stock
     $where = array();
     $where['date_ordered'] = 'IS NOT NULL';
     $where[] = 'deleted IS NULL OR deleted = 0';
     $orderby = 'date_ordered ASC';
     $order = new CProductOrder();
     /** @var CProductOrder[] $list_orders */
     $list_orders = $order->loadList($where, $orderby);
     $this->_orders = array();
     foreach ($list_orders as $order) {
         if (!$order->_received && !$order->cancelled) {
             $done = false;
             foreach ($order->_ref_order_items as $item) {
                 $item->loadRefsFwd();
                 $item->_ref_reference->loadRefsFwd();
                 $item->_ref_order->loadRefsFwd();
                 if ($item->_ref_reference->_ref_product && $this->_ref_product && $item->_ref_reference->_ref_product->_id == $this->_ref_product->_id) {
                     $this->_ordered_count += $item->quantity;
                     $this->_ordered_last = max(array($item->_ref_order->date_ordered, $this->_ordered_last));
                     if (!$done) {
                         $this->_orders[] = $order;
                         $done = true;
                     }
                 }
             }
         }
     }
     $future_quantity = $this->quantity + $this->_ordered_count;
     if ($future_quantity <= $this->order_threshold_critical) {
         $this->_zone_future = 0;
     } elseif ($future_quantity <= $this->order_threshold_min) {
         $this->_zone_future = 1;
     } elseif ($future_quantity <= $this->order_threshold_optimum) {
         $this->_zone_future = 2;
     } else {
         $this->_zone_future = 3;
     }
 }
<?php

/**
 * $Id$
 *
 * @package    Mediboard
 * @subpackage Stock
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision$
 */
CCanDo::checkRead();
$order_id = CValue::get('order_id');
// Loads the expected Order
$order = new CProductOrder();
$order->load($order_id);
$order->loadRefsBack();
$order->loadRefsFwd();
$order->updateCounts();
$order->loadView();
if ($order->date_ordered) {
    foreach ($order->_ref_order_items as $_id => $_item) {
        if (!$_item->renewal) {
            unset($order->_ref_order_items[$_id]);
        }
    }
}
foreach ($order->_ref_order_items as $_item) {
    $_item->loadRefsReceptions();
    foreach ($_item->_ref_receptions as $_reception) {
        $_reception->loadRefReception();
<?php

/**
 * $Id: vw_idx_order_manager.php 19286 2013-05-26 16:59:04Z phenxdesign $
 *
 * @package    Mediboard
 * @subpackage Stock
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision: 19286 $
 */
CCanDo::checkEdit();
$order_id = CValue::getOrSession('order_id');
$category_id = CValue::getOrSession('category_id');
// Loads the expected Order
$order = new CProductOrder();
if ($order_id) {
    $order->load($order_id);
    $order->updateFormFields();
}
$category = new CProductCategory();
$list_categories = $category->loadList(null, 'name');
// Smarty template
$smarty = new CSmartyDP();
$smarty->assign('order', $order);
$smarty->assign('category_id', $category_id);
$smarty->assign('list_categories', $list_categories);
$smarty->display('vw_idx_order_manager.tpl');
Example #4
0
 /**
  * Fills a new order with the same articles
  *
  * @return void
  */
 function redo()
 {
     $this->load();
     $order = new CProductOrder();
     $order->societe_id = $this->societe_id;
     $order->group_id = $this->group_id;
     $order->locked = 0;
     $order->cancelled = 0;
     $order->order_number = uniqid(rand());
     $order->store();
     $order->order_number = $order->getUniqueNumber();
     $order->store();
     $this->loadRefsOrderItems();
     foreach ($this->_ref_order_items as $item) {
         $item->loadRefs();
         $new_item = new CProductOrderItem();
         $new_item->reference_id = $item->reference_id;
         $new_item->order_id = $order->order_id;
         $new_item->quantity = $item->quantity;
         $new_item->unit_price = $item->_ref_reference->price;
         $new_item->store();
     }
 }
Example #5
0
<?php

/**
 * $Id: vw_order_form.php 19286 2013-05-26 16:59:04Z phenxdesign $
 *
 * @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();
$order_id = CValue::getOrSession('order_id');
// Loads the expected Order
$order = new CProductOrder();
if ($order_id) {
    $order->load($order_id);
    $order->updateFormFields();
    $order->loadRefsFwd();
    $order->loadRefAddress();
    $order->updateCounts();
    if ($order->object_class) {
        $order->_ref_object->updateFormFields();
        $order->_ref_object->loadRefsFwd();
    }
    foreach ($order->_ref_order_items as $_item) {
        if ($_item->septic) {
            $order->_septic = true;
        }
        if ($_item->lot_id) {
            $_item->loadRefLot();
 /**
  * Load order
  *
  * @return CProductOrder
  */
 function loadRefOrder()
 {
     $order_id = explode("-", $this->reference);
     $order_number = $order_id[0];
     if (count($order_id) > 2) {
         $longeur = strlen($this->reference) - strlen(end($order_id)) - 1;
         $order_number = substr($this->reference, 0, $longeur);
     }
     $where = array();
     $where["order_number"] = " = '{$order_number}'";
     $order = new CProductOrder();
     $order->loadObject($where);
     return $this->_ref_order = $order;
 }
CCanDo::checkRead();
$type = CValue::get('type');
$keywords = CValue::get('keywords');
$category_id = CValue::get('category_id');
$invoiced = CValue::get('invoiced');
$start = CValue::get('start', array());
$page = CValue::read($start, $type, 0);
$where = array();
if ($category_id) {
    $where["product.category_id"] = "= '{$category_id}'";
}
if ($type == "received" && !$invoiced) {
    $where["bill_number"] = "IS NULL";
}
// @todo faire de la pagination
$order = new CProductOrder();
$orders = $order->search($type, $keywords, "{$page}, 25", $where);
$count = $order->_search_count;
foreach ($orders as $_order) {
    //$_order->updateCounts();
    $_order->countRenewedItems();
    if ($_order->object_id) {
        $_order->loadTargetObject();
        $_order->_ref_object->loadRefsFwd();
    }
}
// Smarty template
$smarty = new CSmartyDP();
$smarty->assign('orders', $orders);
$smarty->assign('count', $count);
$smarty->assign('type', $type);
 * @subpackage Stock
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision$
 */
CCanDo::checkEdit();
$category_id = CValue::getOrSession('category_id');
$societe_id = CValue::getOrSession('societe_id');
$letter = CValue::getOrSession('letter');
$_autofill = CValue::get('_autofill');
// Categories list
$category = new CProductCategory();
$list_categories = $category->loadList(null, 'name');
// Suppliers list
$list_societes = CSociete::getSuppliers(false);
$order = new CProductOrder();
$list_orders = $order->search("waiting", null, 30);
foreach ($list_orders as $_order) {
    $_order->countBackRefs("order_items");
    $_order->loadRefsOrderItems();
}
// Smarty template
$smarty = new CSmartyDP();
$smarty->assign('_autofill', $_autofill);
$smarty->assign('list_categories', $list_categories);
$smarty->assign('category_id', $category_id);
$smarty->assign('list_societes', $list_societes);
$smarty->assign('societe_id', $societe_id);
$smarty->assign('letter', $letter);
$smarty->assign('list_orders', $list_orders);
$smarty->display('vw_aed_order.tpl');
Example #9
0
 * @package    Mediboard
 * @subpackage Stock
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision$
 */
CCanDo::checkRead();
$invoiced = CValue::get("invoiced");
$not_invoiced = CValue::get("not-invoiced");
$date_min = CValue::get("date_min");
$date_max = CValue::get("date_max");
$where = array("DATE(date_ordered) BETWEEN '{$date_min}' AND '{$date_max}'");
if ($invoiced xor $not_invoiced) {
    $where["bill_number"] = $invoiced ? "IS NOT NULL" : "IS NULL";
}
$order = new CProductOrder();
$orders = $order->search("received", null, null, $where);
$count = $order->_search_count;
$total = 0;
$total_ttc = 0;
foreach ($orders as $_order) {
    $_order->countRenewedItems();
    foreach ($_order->_ref_order_items as $item) {
        $item->loadRefsReceptions();
        $rec = reset($item->_ref_receptions);
        $_order->_date_received = $rec ? $rec->date : null;
    }
    if ($_order->object_id) {
        $_object = $_order->loadTargetObject();
        $_object->loadRefSejour()->loadNDA();
        $_object->loadRefsFwd();
Example #10
0
<?php

/**
 * $Id$
 *
 * @package    Mediboard
 * @subpackage Stock
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision$
 */
$do = new CDoObjectAddEdit('CProductOrder');
// New order
if (CValue::post('order_id') == 0) {
    $order = new CProductOrder();
    $order->group_id = CProductStockGroup::getHostGroup();
    $order->societe_id = CValue::post('societe_id');
    $order->order_number = CValue::post('order_number');
    $order->locked = 0;
    $order->cancelled = 0;
    if ($msg = $order->store()) {
        CAppUI::setMsg($msg);
    } else {
        if (CValue::post('_autofill') == 1) {
            $order->autofill();
        }
        CAppUI::setMsg($do->createMsg);
        CAppUI::redirect('m=dPstock&a=vw_aed_order&dialog=1&order_id=' . $order->order_id);
    }
}
$do->doIt();
<?php

/**
 * $Id$
 *
 * @package    Mediboard
 * @subpackage Stock
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision$
 */
CCanDo::checkRead();
$type = CValue::post("type", "pending");
$keywords = CValue::post("keywords");
$order = new CProductOrder();
$orders_list = $order->search($type, $keywords, 30);
foreach ($orders_list as $_order) {
    $_order->countBackRefs("order_items");
    $_order->updateCounts();
}
// Smarty template
$smarty = new CSmartyDP();
$smarty->assign("orders", $orders_list);
$smarty->display("inc_orders_autocomplete.tpl");
Example #12
0
 // If a context is provided
 if ($context_guid = CValue::post("_context_guid")) {
     list($object_class, $object_id) = explode("-", $context_guid);
     $where["product_order.object_class"] = "= '{$object_class}'";
     $where["product_order.object_id"] = "= '{$object_id}'";
     if ($septic = CValue::post("septic")) {
         unset($_POST["context_guid"]);
         $where["product_order_item.septic"] = "= '{$septic}'";
     } else {
         $where["product_order_item.septic"] = "= '0'";
     }
 } elseif ($comments = CValue::read($_POST, "_comments")) {
     $where["product_order.comments"] = "LIKE '{$comments}%'";
 }
 $where["product_order.group_id"] = "= '" . CProductStockGroup::getHostGroup() . "'";
 $order = new CProductOrder();
 $orders = $order->search("waiting", null, 1, $where);
 if (($context_guid || $comments == CProductOrder::$_return_form_label) && count($orders) == 0) {
     $orders = $order->search("locked", null, 1, $where);
 }
 // If no order found
 if (count($orders) == 0) {
     if ($context_guid) {
         $context = CMbObject::loadFromGuid($context_guid);
         $order->setObject($context);
         $order->locked = 1;
     }
     $comments = CValue::read($_POST, "_comments");
     $order->societe_id = $reference->societe_id;
     $order->group_id = CProductStockGroup::getHostGroup();
     $order->comments = $comments;