/** * Refresh Stock Booking for unpaid prepayment orders of selected SP * @return Array */ function zadeRefreshPrepaymentBooking() { use_class('stock_booking'); use_class('products_minierp'); $booking = new stock_booking(ZALANDO_PREPAYMENT_BOOKING_ID); $class_pm = new products_minierp(); //CLEAR BOOKING ITEMS $booking->removeItem('*'); $spid_list = '8, 10'; //GET ZADE PREPAYMENT ORDERS THAT STILL NOT YET PAID $q = "SELECT joi.products_id, joi.products_articles_id, joi.order_quantity" . " FROM jng_sp_orders jo" . " INNER JOIN jng_sp_orders_items joi" . " ON joi.jng_sp_orders_id = jo.jng_sp_orders_id AND joi.status = 1" . " WHERE jo.jng_sp_id IN ({$spid_list})" . " AND jo.payment_method = '" . PAYMENT_METHOD_PREPAYMENT . "'" . " AND jo.payment_status = 0"; $dbq = tep_db_query($q); $items_added = array(); while ($r = tep_db_fetch_array($dbq)) { $pid = $r['products_id']; $aid = $r['products_articles_id']; $quantity = $r['order_quantity']; $ps = $class_pm->stockRetrieveDetail(WAREHOUSE_ID_PRODUCTS_HAMBURG, $pid, $aid); $products_stock_id = $ps['products_stock_id']; if ($products_stock_id > 0) { $booking->addItem($products_stock_id, $quantity); $items_added[$products_stock_id] = $quantity; } else { //WHAT SHOULD WE DO WHEN ARTICLES NOT EXIST ON DEPOT : // - CREATE MDO ? // - SEND EMAIL TO KEY ACCOUNT ? } } return $items_added; }
} elseif ($_POST['me_action'] == 'SETBIN') { $bins_id = tep_db_prepare_input($_POST['bins_id']); $bin = $class_bin->retrieveBinDetail($bins_id); $ean = tep_db_prepare_input($_POST['ean']); $qty = tep_db_prepare_input($_POST['qty']); use_class('products_ean'); $class_ean = new products_ean(); $article = $class_ean->getProductArticle($ean); if ($article['products_id'] == '0') { $messagebox->add("<strong>Manual Bin In Failed: UNKNOWN EAN</strong><br />Please check if correct EAN Label is used"); } else { $segment = $class_bin->retrieveSegmentDetail($bin['bin_segments_id']); $jng_warehouses_id = $segment['warehouses_id']; $products_id = $article['products_id']; $articles_id = $article['products_articles_id']; $stock = $class_pm->stockRetrieveDetail($jng_warehouses_id, $products_id, $articles_id); $bin_current = $class_bin->getBinProductStock($stock['products_stock_id']); if (is_null($bin_current)) { $class_pm->stockAdd($jng_warehouses_id, $products_id, $articles_id, $qty, "MANUAL BIN-IN by {$session_userinfo['username']}"); $class_bin->bookBinForProduct($bins_id, $stock['products_stock_id']); header("Location: ?open=products-stock-detail&id={$stock['products_stock_id']}" . ($hidemenuscript != '' ? '&hidemenu=true' : '')); exit; } else { $messagebox->add("<strong>Manual Bin In Failed: EXISTING ARTICLE</strong><br />This article has booked another bin: " . $bin_current['code_clean']); } } } elseif ($_POST['me_action'] == 'GETPRODUCTSTOCKHISTORY') { $psid = tep_db_prepare_input($_POST['psid']); $period = tep_db_prepare_input($_POST['period']); $daily_summary = tep_db_prepare_input($_POST['daily_summary']); $ps = $class_pm->stockRetrieveDetailByPSID($psid);
public function setAsConfirmed() { //WE DISABLE THE ELEMENTS SOURCING INTEGRATION HERE AND WILL BE IMPLEMENT IN A NEW MODULE TO DIRECTLY CREATE A PO global $session_userinfo; use_class('stock_booking'); use_class('depot_orders'); use_class('products_minierp'); use_class('elements_preorder'); $class_pm = new products_minierp(); $class_do = new depot_orders(); $depot_orders_id = array(); $booking = new stock_booking(); $booking->create('Preorder: ' . $this->name); foreach ($this->items as $i) { $stock = $class_pm->stockRetrieveDetail(WAREHOUSE_ID_PRODUCTS_HAMBURG, $i['products_id'], $i['articles_id']); $booking->addItem($stock['products_stock_id'], $i['qty_booked']); for ($q = 1; $q <= $i['qty_preproduce']; $q++) { $depot_orders_id[] = $class_do->newOrder(SEGMENT_ID_HAMBURG, $i['products_id'], $i['articles_id'], $i['products_ean'], 1); } } $elements_sourcing = $this->getElementsNeededForOnDemand(); // foreach($elements_sourcing as $eid=>$qty) { // $epo = new elements_preorder($eid); // $epo->addOrder($qty, null, 'Preorder '.$this->id); // } $this->updateConnection($booking->id, $depot_orders_id, $elements_sourcing); $this->updateStatus($this->status, 2, $session_userinfo['username']); }
function getBinByProduct($segment_id, $products_id, $articles_id) { use_class('products_minierp'); $class_pm = new products_minierp(); $segment = $this->retrieveSegmentDetail($segment_id); $ps = $class_pm->stockRetrieveDetail($segment['warehouses_id'], $products_id, $articles_id); $bin = $this->getBinProductStock($ps['products_stock_id']); return $bin; }
$pos = tep_db_prepare_input($_POST['pos']); use_class('products_minierp'); use_class('products_articles'); $class_pm = new products_minierp(); $class_pa = new products_articles(); $booking = new stock_booking($booking_id); $product = $class_pm->retrieveDetail($pid, 'p,pnc'); $articles = $class_pa->retrieveList($pid, "active_status='1'"); $alist = array(); $alist[0] = $product['p']['products_ean'] . ($product['pnc']['products_length'] > 0 ? ' ⋅ ' . textLength($product['pnc']['products_length']) : ''); foreach ($articles as $a) { $alist[$a['products_articles_id']] = $a['products_ean'] . ' ⋅ ' . textLength($a['length']); } $stocks = array(); foreach ($alist as $aid => $length) { $stocks[$aid] = $class_pm->stockRetrieveDetail(WAREHOUSE_ID_PRODUCTS_HAMBURG, $pid, $aid); } $result = '<tr id="temp-' . $pid . '">'; foreach ($product_table_header as $k => $v) { $result .= '<td class="' . $k . '">'; switch ($v) { case $hn_product: //$value = webImage($product['p']['products_image'], IMAGE_SIZE_THUMBNAIL_1, IMAGE_SIZE_THUMBNAIL_1, 'Product '.$pid); $value = webImageWithDetailLinkStars($product['p']['products_image'], IMAGE_SIZE_THUMBNAIL_1, IMAGE_SIZE_THUMBNAIL_1, 'Product ' . $pid, '', 'View larger image', IMAGE_SIZE_BIG_1, IMAGE_SIZE_BIG_1, $product['p']['stars']); $value .= '<div>' . $pid . '</div>'; break; case $hn_article: $value = implode('<br />', $alist); break; case $hn_custock: $tempvalue = array();
$is_outsourced = $class_do->isOutsourceOrder($item['trans_type'], $item['trans_id']); //invalidation confirmation, check if NOT Outsourcing orders and if status is not "in HH" if (!$is_outsourced || $item['status'] != '8') { //invalid confirmed, cancel process unset($item); } else { //invalid unconfirmed, allow process using this order $ean = $item['products_ean']; $products_id = $item['products_id']; $articles_id = $item['articles_id']; $quantity = $item['quantity']; } } } else { $p = $class_ean->getProductArticle($ean); $products_id = $p['products_id']; $articles_id = $p['products_articles_id']; } if ($products_id != 0) { $segment = $class_bin->retrieveSegmentDetail($segments_id); $jng_warehouses_id = $segment['warehouses_id']; $stock = $class_pm->stockRetrieveDetail($jng_warehouses_id, $products_id, $articles_id); if (!is_null($stock)) { $bin = $class_bin->getBinProductStock($stock['products_stock_id']); if (!is_null($bin)) { $result['status'] = 'FOUND'; $result['result_ean'] = $ean; $result['bin'] = $bin['code_clean']; } } }