示例#1
0
         //CURRENT STOCK (ALREADY RETRIEVED ABOVE)
         $current_stock = intval($products_stock[$stock_id]);
         //CURRENT OPEN ORDERS
         $already_ordered = $class_do->refillOpenOrdersQuantity($segment_id, $pid, $aid);
         //Check if we have too much refill
         $over_refill = $current_stock + $already_ordered - $target_after_levelling;
         $logger->write("- article {$pid}-{$aid}, Total orders = {$row['total_qty']}" . ", Over refill = {$over_refill}");
         if ($over_refill > 0) {
             //cancel orders
             $order_ids = explode(',', $row['order_ids']);
             $order_status = explode(',', $row['order_status']);
             $canceled_qty = 0;
             foreach ($order_ids as $key => $order_id) {
                 //AR is always 1 qty, so cancel all orders
                 //1 by 1 until total over_refill is reached
                 $new_status = $class_do->doCancelOrders($order_id, $order_status[$key], 'auto-set');
                 if (statusIsCancelConfirmed($new_status)) {
                     $canceled_qty++;
                     $canceled_qty_total++;
                     $logger->write("  > cancel {$canceled_qty}, ID: {$order_id}");
                     if ($canceled_qty >= $over_refill) {
                         break;
                     }
                 } else {
                     $logger->write("  > cancel failed, ID: {$order_id}");
                 }
             }
         }
     }
     $logger->write("Total canceled Qty = {$canceled_qty_total}");
 }
     if (count($item) == 0) {
         $result = "<br /><strong>DP-{$items_id}</strong> is not found";
     } else {
         $result = '<br />' . oiErrorStatus($items_id, $item['status'], $class_do->statusName());
     }
     echo utf8_encode($result);
     exit;
 } elseif ($_POST['me_action'] == 'UPDATEOISTATUS') {
     $items_id = tep_db_prepare_input($_POST['oi_id']);
     $old_status = tep_db_prepare_input($_POST['old_status']);
     $new_status = tep_db_prepare_input($_POST['new_status']);
     $item = $class_do->retrieveDetail($items_id);
     if ($item['status'] == $old_status) {
         $status_to_alert_success = array('3', '4');
         if ($new_status == 10) {
             $class_do->doCancelOrders($items_id, $old_status, $session_userinfo['username']);
         } else {
             $class_do->updateStatus($items_id, $new_status, $session_userinfo['username']);
         }
         list($new_status, $sub_status) = explode('-', $new_status);
         $status_name = $sub_status != '' ? subStatusNameShort($new_status, $sub_status) : $class_do->statusNameShort();
         if ($sub_status == '') {
             $status_name = $status_name[$new_status];
         }
         $result = array();
         $result['oi_id'] = $items_id;
         $result['old_status'] = $old_status;
         $result['new_status'] = $new_status;
         $result['msg_success'] = !in_array($old_status, $status_to_alert_success) ? '' : 'DP-' . $items_id . ' &raquo; set to ' . $status_name;
         $result['msg_errors'] = '';
     } else {
示例#3
0
 function doCancelOrders($opid, $old_status, $username, $cancel_by = 'J', $cancel_depot = true)
 {
     $item = $this->retrieveProductDetail($opid);
     $new_status = '10';
     if (count($item) > 0 && $item['status'] == $old_status) {
         //RESET STATUS
         $this->updateProductStatus($opid, $new_status, $username, $cancel_by);
         $this->updateProductStockStatus($opid, '0');
         $this->updateOrderItemMode($oid, '0');
         $this->recalcProductsCounter($item['orders_id']);
         cancelOrderStockHandler('JG', $opid, $item['stock_status'], $item['status'], $item['print_count'], $item['print_confirmed'], $item['products_id'], $item['products_articles_id'], $item['products_quantity']);
         if ($cancel_depot) {
             //RESET DEPOT ORDERS IF ALREADY CREATED FOR THIS ORDER
             use_class('depot_orders');
             $class_do = new depot_orders();
             $do = $class_do->retrieveDetailTransmigran('JG', $opid);
             if (!is_null($do) && $do['status'] < 4 && $do['status'] != 12) {
                 $class_do->doCancelOrders($do['depot_orders_id'], $do['status'], $username);
             }
         }
         //SEND EMAIL TO ADMIN
         $arr_status = $this->productStatusNameShort();
         $o = $this->retrieveDetail($item['orders_id']);
         $is_sp = false;
         $email_data = array();
         $email_data = $item;
         $email_data['orders_date'] = $o['date_purchased'];
         $email_data['customers_name'] = $o['customers_name'];
         $email_data['status'] = $arr_status[$email_data['status']];
         $languages[2]['path'] = 'german';
         include DIR_WS_EMAILS . $languages[2]['path'] . '/cancel-order-notification.php';
         $from_email_name = FROM_EMAIL_NAME;
         $from_email_address = FROM_EMAIL_ADDRESS;
         $to_name = EMAIL_NAME_ADMIN1;
         $to_email_address = EMAIL_ADDRESS_ADMIN1;
         tep_mail($to_name, $to_email_address, $email_subject, $email_text, $from_email_name, $from_email_address);
     } else {
         $new_status = $item['status'];
     }
     return $new_status;
 }
     } elseif ($oi['stock_status'] == 'P') {
         //ADD BACK FG STOCK AUTOMATICALLY
         $stock_id = $oi['products_id'] . $oi['products_articles_id'];
         $order_qty = $oi['order_quantity'];
         $class_pm->stockAdd($whid_prod, $oi['products_id'], $oi['products_articles_id'], $order_qty, 'ADD-FG ' . $order_type . '-' . $oiid);
         $products_stock_bali[$stock_id] += $order_qty;
     }
 }
 $oi_trans = null;
 //PRODUCT IS ALREADY MOVED TO IN HH TAB (MMO) - Retrieve MMO details as $oi_trans
 if ($oi['status'] == $new_status) {
     $oi_trans = $class_do->retrieveDetailTransmigran($order_type, $oiid);
 }
 //CANCEL MMO IF NOT YET IN PRODUCTION
 if (!is_null($oi_trans) && $oi_trans['status'] < 4) {
     $class_do->doCancelOrders($oi_trans['depot_orders_id'], $oi_trans['status'], 'auto-set');
 }
 //REQUEST DEPOT REFILL IF ORDER WAS NOT YET IN PRODUCTION
 if (is_null($oi_trans) && $oi['status'] < 4 || !is_null($oi_trans) && $oi_trans['status'] < 4) {
     $refill_type = depot_orders::AUTO_REFILL_ID_DSO;
     $refill_qty_request = $order_qty;
 }
 //Orders with DS Prioritized should keep their "mode"
 if ($oi['ds_prioritized'] == '1') {
     if ($oi['mode'] == modeKey('MMO')) {
         $items_mmo[] = $oiid;
     } elseif ($oi['mode'] == modeKey('MTO')) {
         $items_mto[] = $oiid;
     }
 } else {
     if (is_null($oi_trans) || $oi_trans['status'] < 7) {
示例#5
0
 function doCancelOrders($oid, $old_status, $username, $cancel_by = 'J', $cancel_depot = true)
 {
     global $session_userinfo;
     $item = $this->retrieveItemDetail($oid);
     $new_status = '10';
     if (count($item) > 0 && $item['status'] == $old_status) {
         //RESET STATUS
         $this->updateItemStatus($oid, $new_status, $username, $cancel_by);
         $this->updateItemStockStatus($oid, '0');
         $this->updateOrderItemMode($oid, '0');
         $this->recalculateOrderItemCount($item['jng_sp_orders_id']);
         cancelOrderStockHandler('SP', $oid, $item['stock_status'], $item['status'], $item['print_count'], $item['print_confirmed'], $item['products_id'], $item['products_articles_id'], $item['order_quantity'], $item['is_promotion_order']);
         if ($cancel_depot) {
             //RESET DEPOT ORDERS IF ALREADY CREATED FOR THIS ORDER
             use_class('depot_orders');
             $class_do = new depot_orders();
             $do = $class_do->retrieveDetailTransmigran('SP', $oid);
             if (!is_null($do) && $do['status'] < 4 && $do['status'] != 12) {
                 $class_do->doCancelOrders($do['depot_orders_id'], $do['status'], $username);
             }
         }
         use_class("jng_sp");
         $class_sp = new jng_sp();
         $arr_status = $this->statusNameShort();
         $o = $this->retrieveDetail($item['jng_sp_orders_id']);
         $sp = $class_sp->retrieveDetail($o['jng_sp_id']);
         $is_sp = true;
         if ($sp['jng_sp_id'] == 5) {
             //SEND EMAIL TO J&G EMAIL SERVICE
             $email_data = array();
             $email_data = $item;
             $email_data['orders_date'] = $o['order_date'];
             $email_data['customers_name'] = $o['customer_billing_firstname'] . ' ' . $o['customer_billing_lastname'];
             $email_data['status'] = $arr_status[$email_data['status']];
             $email_data['orders_id'] = $o['order_id'];
             $email_data['sp_code'] = $sp['package_prefix'];
             $languages[2]['path'] = 'german';
             include DIR_FS_MINIERP . DIR_WS_EMAILS . $languages[2]['path'] . '/cancel-order-notification.php';
             $from_email_name = FROM_EMAIL_NAME;
             $from_email_address = FROM_EMAIL_ADDRESS;
             $to_name = EMAIL_NAME_SERVICE;
             $to_email_address = EMAIL_ADDRESS_SERVICE;
             $email_subject = 'Cancelled Amazon Orders';
             tep_mail($to_name, $to_email_address, $email_subject, $email_text, $from_email_name, $from_email_address);
         }
         //SEND EMAIL TO ADMIN
         $email_data = array();
         $email_data = $item;
         $email_data['orders_date'] = $o['order_date'];
         $email_data['customers_name'] = $o['customer_billing_firstname'] . ' ' . $o['customer_billing_lastname'];
         $email_data['status'] = $arr_status[$email_data['status']];
         $email_data['orders_id'] = $item['jng_sp_orders_id'];
         $email_data['sp_code'] = $sp['package_prefix'];
         $languages[2]['path'] = 'german';
         include DIR_FS_MINIERP . DIR_WS_EMAILS . $languages[2]['path'] . '/cancel-order-notification.php';
         $from_email_name = FROM_EMAIL_NAME;
         $from_email_address = FROM_EMAIL_ADDRESS;
         $to_name = EMAIL_NAME_ADMIN1;
         $to_email_address = EMAIL_ADDRESS_ADMIN1;
         tep_mail($to_name, $to_email_address, $email_subject, $email_text, $from_email_name, $from_email_address);
     } else {
         $new_status = $item['status'];
     }
     return $new_status;
 }