$class_jo = new jng_sp_orders();
             foreach ($pack as $p) {
                 $items = $class_jp->sendPackage($p['packages_id']);
                 foreach ($items as $items_id) {
                     $class_jo->updateItemStatus($items_id, '7', $session_userinfo['username']);
                 }
             }
         } elseif ($type == 'J') {
             use_class('minierp_packages');
             $class_mp = new minierp_packages();
             use_class('orders');
             $class_o = new orders();
             foreach ($pack as $p) {
                 $items = $class_mp->sendPackage($p['packages_id']);
                 foreach ($items as $items_id) {
                     $class_o->updateProductStatus($items_id, '7', $session_userinfo['username']);
                 }
             }
         } else {
             use_class('depot_orders');
             $class_do = new depot_orders();
             foreach ($pack as $p) {
                 $class_do->packageSetSent($p['packages_id'], $session_userinfo['username']);
             }
         }
     }
     echo utf8_encode($logistic_id);
 } elseif ($_POST['me_action'] == 'SAVELOG') {
     use_class('products_minierp');
     $class_pm = new products_minierp();
     $bgst = $class_pm->retrieveBestGoodSettings();
         $logger->write('sent first reminder ' . $logger_oid);
     }
 } elseif ($o['sent_count'] == '1') {
     //Cancel Notification (orders are not canceled yet at this step)
     if ($need_resend) {
         $order->sendPrepaymentAutoCancelNotification();
         $logger->write('sent cancel notification ' . $logger_oid);
     }
 } elseif ($o['sent_count'] == '2') {
     //Cancel order and invoice
     if ($last_sent_date_timestamp < strtotime('-' . $tolerance_before_really_cancelling_orders)) {
         //default cancel status
         if ($o['order_type'] == Order::ORDER_TYPE_JULIE_GRACE) {
             $status = '12';
             foreach ($items_id as $item_id) {
                 $class_o->updateProductStatus($item_id, $status, 'auto-set');
             }
         } elseif ($o['order_type'] == Order::ORDER_TYPE_SALES_PARTNER) {
             $status = '10';
             foreach ($items_id as $item_id) {
                 $class_jo->updateItemStatus($item_id, $status, 'auto-set');
             }
         }
         $logger->write('canceled ' . $logger_oid);
         if (count($invoice->detail) > 0) {
             //status 3 = INVOICE CANCELED
             $invoice->updateCompleteStatus('3');
             $logger->write('canceled invoice ' . $invoice->detail['invoice_id']);
         }
     }
 }
         //Handle update special production sub status like :
         //4-P   (Pullrack),
         //4-S7  (Solder Setting Line 7),
         //4-A   (Ampol & QC),
         //4-L   (Laboratory)
         $status_new_tmp = explode('-', $status_new);
         $sub_status = $status_new_tmp[1];
         if ($status_current != '4' && $status_current != '3') {
             $result['status'] = 'BADSTATUS';
             $result['result_msg'] = oiErrorStatus($status_current);
         } elseif ($item['prod_status'] == $sub_status) {
             $result['status'] = 'BADSTATUS';
             $result['result_msg'] = oiErrorStatus($item['prod_status']);
         } else {
             $result['status'] = 'UPDATED';
             $class_o->updateProductStatus($item_id, $status_new, $user_name);
         }
     } else {
         //Handle update status
         $result['status'] = 'UPDATED';
         $class_o->updateProductStatus($item_id, $status_new, $user_name);
         if ($status_current == '4' && $status_new == '5' && $item['prod_status'] != '') {
             tep_db_perform('orders_products', array('prod_status' => ''), 'update', "orders_products_id='{$item_id}'");
         }
         if ($status_current == '4' && $status_new == '5' && $at_machine > 0) {
             //IF PRODUCT IS FINISH, ALSO SET ANTITARNISH USAGE FOR NON OXIDIZED PRODUCTS
             $silver_usage = $class_o->calcSilverUsage($item_id);
             antitarnishUsageAdd($at_machine, $silver_usage);
         }
     }
 }
         $items_mmo[] = $oiid;
     } elseif ($oi['mode'] == modeKey('MTO')) {
         $items_mto[] = $oiid;
     }
 } elseif ($oi['is_outsourced']) {
     //Handle orders for outsourced products with no stock
     if ($oi['status'] == '8' && $oi['shipping_window_is_opened']) {
         //no stock and shipping windows is already opened
         if ($oi['order_item_total'] == 1) {
             //SET AS MTO IF SINGLE PRODUCT ORDER
             //stop waiting and move products back to New to become MTO
             $items_mto[] = $oiid;
             if ($order_type == 'SP') {
                 $class_jo->updateItemStatus($oiid, '1', 'auto-set');
             } elseif ($order_type == 'JG') {
                 $class_o->updateProductStatus($oiid, '1', 'auto-set');
             }
         } else {
             $items_mmo[] = $oiid;
             $item_do = $class_do->transferFromRealOrder(SEGMENT_ID_HAMBURG, $order_type, $oiid);
         }
     } else {
         //keep waiting if shipping window is not yet opened
         //check if product is not yet moved to Depot/Mixed
         if ($oi['status'] != '8') {
             //set order as DSO and move items to Depot/Mixed
             $items_dso[] = $oiid;
             if ($order_type == 'SP') {
                 $class_jo->updateItemStatus($oiid, '8', 'auto-set');
             } elseif ($order_type == 'JG') {
                 $class_o->updateProductStatus($oiid, '8', 'auto-set');
$idcr = explode('|', $_POST['idcode_ret']);
$update_counter = array();
foreach ($reference as $i => $ref) {
    $shipment_id = $ref;
    $shipment_date = $date[$i];
    $cancel_status = $cancel[$i];
    $idcode_ship = $idcs[$i];
    $idcode_ret = $idcr[$i];
    if ($shipment_id != '') {
        if (substr($ref, 0, 2) == 'JG') {
            $order_id = substr($ref, 2);
            $idcounter = 'JG' . $order_id;
            $items = $class_o->retrieveProducts($order_id);
            foreach ($items as $item) {
                if ($item['status'] == $REQUIRED_STATUS) {
                    $class_o->updateProductStatus($item['orders_products_id'], $UPDATED_STATUS, $username);
                }
                if ($item['status'] == $REQUIRED_STATUS || $item['status'] == $UPDATED_STATUS) {
                    $update_counter[] = $idcounter;
                }
            }
        } else {
            $items = $class_jo->retrieveItems($shipment_id, true);
            $idcounter = 'SP' . $shipment_id;
            foreach ($items as $item) {
                if ($item['status'] == $REQUIRED_STATUS) {
                    $osda = array('shipment_date' => $shipment_date, 'idcode_ship' => $idcode_ship, 'idcode_ret' => $idcode_ret);
                    tep_db_perform('jng_sp_orders', $osda, 'update', "shipment_id='{$shipment_id}'");
                    $class_jo->updateItemStatus($item['jng_sp_orders_items_id'], $UPDATED_STATUS, $username);
                }
                if ($item['status'] == $REQUIRED_STATUS || $item['status'] == $UPDATED_STATUS) {
Example #6
0
             $any_deletion_failed = false;
             foreach ($products as $key => $p) {
                 $opid = $p['orders_products_id'];
                 $deleted = $class_dti->deleteCommissionCancel($opid);
                 if (!$deleted) {
                     unset($products[$key]);
                     $any_deletion_failed = true;
                 }
             }
         }
         if (count($products) == 0) {
             $result = '<h3 class="red">REVIVE FAILED!</h3><div>ALL Commissions cancellation are already reported to Partner</div>';
         } else {
             foreach ($products as $p) {
                 $opid = $p['orders_products_id'];
                 $class_o->updateProductStatus($opid, '1', $session_userinfo['username']);
             }
             $comment = 'Order is revived due to late payment';
             $class_o->updateOrderStatus($order_id, '1', $comment);
             $result = '<h3 class="green">REVIVE Successfully!</h3><div><a href="">Click here to refresh Order detail and view changes</a></div>';
             if ($any_deletion_failed) {
                 $result .= '<div class="red">However, some Commissions cancellation are already reported to Partner, this products is not reviveable.</div>';
             }
         }
     }
     echo utf8_encode($result);
     exit;
 } elseif ($_POST['me_action'] == 'UPDATECUSTOMERSPECIALLIST') {
     $customers_id = tep_db_prepare_input($_POST['customers_id']);
     $status = tep_db_prepare_input($_POST['status']);
     $class_csl->addCustomer($status, $customers_id);
Example #7
0
         $items[$key]['products_ean'] = $class_ean->getEAN($i['products_id'], $i['products_articles_id']);
     }
 }
 if ($item['order_item_total'] == '1' || count($items) == 1) {
     //If order only consist of 1 product
     $packages = $class_mp->getUsablePackages();
     if (count($packages) == 0) {
         //If no usable package found for JNG, create 1
         $package_id = $class_mp->createNew();
     } else {
         //If usable package found fo JNG, use it
         $package_id = $packages[0]['packages_id'];
     }
     //Add product to package and update product status
     $class_mp->addItem($package_id, $id);
     $class_o->updateProductStatus($id, $new_status, $session_userinfo['username']);
     $result .= printPackageTip('P', $box_date, '', $sp_name, $sp_class);
     saveIDforPrintingOrderLabel($id_raw);
     $result .= '<input type="hidden" id="print_order_id" value="' . $id_raw . '" />';
 } else {
     //If order has more than 1 product, check if all products status are finish
     $orders_ready = true;
     $cancelids = array();
     foreach ($items as $i) {
         if ($i['status'] != $old_status) {
             $orders_ready = false;
         }
     }
     if ($orders_ready) {
         //If all products status are finish, request barcode entry of other products
         $inwb = array();
     //        $thumbid = tep_db_prepare_input($_POST['thumbid']);
     //        list($pid, $article_id) = split('-', $thumbid);
     //        $tooltip_data = getTooltipThumbData($pid, $article_id);
     //        $tooltip = displayTooltipThumb($tooltip_data);
     //        $result = array();
     //        $result['tooltip'] = $tooltip;
     //        ajaxReturn($result);
     //        exit;
 } elseif ($_POST['me_action'] == 'UPDATEOPSTATUS') {
     $opid = tep_db_prepare_input($_POST['op_id']);
     $old_status = tep_db_prepare_input($_POST['old_status']);
     $new_status = tep_db_prepare_input($_POST['new_status']);
     $product = $class_o->retrieveProductDetail($opid);
     if ($product['status'] == $old_status) {
         $status_to_alert_success = array('3', '4');
         $class_o->updateProductStatus($opid, $new_status, $session_userinfo['username']);
         if ($new_status == '5' || $new_status == '10' || $new_status == '1' && $old_status == '10') {
             //set order waxing as new/finish/cancel following order product status
             use_class('orders_waxing');
             $class_ow = new orders_waxing();
             $ow_data = $class_ow->retrieveByOrderProducts($opid);
             $ow_status = $new_status == '10' ? '6' : $new_status;
             if (count($ow_data) > 0) {
                 foreach ($ow_data as $ow) {
                     $waxing_id = $ow['orders_waxing_id'];
                     $class_ow->updateStatus($waxing_id, $ow_status, $session_userinfo['username']);
                 }
             }
         }
         list($new_status, $sub_status) = explode('-', $new_status);
         $status_name = $sub_status != '' ? subStatusNameShort($new_status, $sub_status) : $class_o->productStatusNameShort();
        echo implode(",", $success);
    }
}
if (isset($_GET['type']) && isset($_GET['orders_id']) && isset($_GET['old_status']) && isset($_GET['new_status'])) {
    $type = strtoupper($_GET['type']);
    $orders_id = tep_db_prepare_input($_GET['orders_id']);
    $old_status = tep_db_prepare_input($_GET['old_status']);
    $new_status = tep_db_prepare_input($_GET['new_status']);
    $updater = 'manual';
    if ($type == 'JG') {
        use_class('orders');
        $class_o = new orders();
        $items = $class_o->retrieveProducts($orders_id);
        foreach ($items as $i) {
            if ($i['status'] == $old_status) {
                $class_o->updateProductStatus($i['orders_products_id'], $new_status, $updater);
            }
        }
        echo '<pre>';
        var_dump($_GET);
        echo '</pre>';
        echo '<br />';
        echo '<br />';
        echo 'UPDATED!';
    } elseif ($type == 'SP') {
        $allowed_sp_id = array('6');
        use_class('jng_sp_orders');
        $class_jo = new jng_sp_orders();
        $order = $class_jo->retrieveDetail($orders_id);
        if (in_array($order['jng_sp_id'], $allowed_sp_id)) {
            $items = $class_jo->retrieveItems($orders_id);
 $result['IDCODE_SHIP'] = $idcode_ship;
 $result['IDCODE_RET'] = $idcode_ret;
 if ($SIMULATION) {
     $result['STATUS'] = 'SIM';
 } else {
     $updated = false;
     if (substr($shipment_id, 0, 2) == 'JG') {
         $order_id = substr($shipment_id, 2);
         $items = $class_o->retrieveProducts($order_id);
         if (count($items) > 0) {
             $updated = true;
             $osda = array('idcode_ship' => $idcode_ship, 'idcode_ret' => $idcode_ret);
             tep_db_perform('orders', $osda, 'update', "orders_id='{$order_id}'");
             foreach ($items as $item) {
                 if (in_array($item['status'], $REQUIRED_STATUS)) {
                     $class_o->updateProductStatus($item['orders_products_id'], $UPDATED_STATUS, 'auto-set');
                 }
             }
         }
     } else {
         $items = $class_jo->retrieveItems($shipment_id, true);
         if (count($items) > 0) {
             $updated = true;
             $osda = array('shipment_date' => $shipment_date, 'idcode_ship' => $idcode_ship, 'idcode_ret' => $idcode_ret);
             tep_db_perform('jng_sp_orders', $osda, 'update', "shipment_id='{$shipment_id}'");
             foreach ($items as $item) {
                 if (in_array($item['status'], $REQUIRED_STATUS)) {
                     $class_jo->updateItemStatus($item['jng_sp_orders_items_id'], $UPDATED_STATUS, 'auto-set');
                 }
             }
         }
} else {
    $logger->write("There are {$items_total} items need to be confirmed");
    //Group Items per Order
    $orders_cancelled = array();
    foreach ($items as $i) {
        if (!isset($orders_cancelled[$i['orders_id']])) {
            $orders_cancelled[$i['orders_id']] = array();
        }
        $orders_cancelled[$i['orders_id']][] = $i['orders_products_id'];
    }
    $orders_total = count($orders_cancelled);
    $logger->write("Total orders are {$orders_total}, processing per order:");
    foreach ($orders_cancelled as $oid => $opid_array) {
        $logger->write("> Order ID {$oid}");
        foreach ($opid_array as $opid) {
            $class_o->updateProductStatus($opid, $cancel_status_confirmed, 'auto-set');
            $logger->write("  JG-{$opid} updated to {$cancel_status_name}");
        }
        $order = new Order(Order::ORDER_TYPE_JULIE_GRACE, $oid);
        $sent = $order->sendCancelNotification();
        if ($sent) {
            $logger->write('  Notification sent');
        }
    }
}
//SP CONFIRM ORDERS DELIVERY AND CANCELLATION
$logger->write('- Confirm delivery & cancel status to SP');
$data = array();
foreach ($sp_data as $jng_sp_id => $sp) {
    $data[$jng_sp_id] = $class_jo->getUnconfirmedDelivery($jng_sp_id);
}
 function removeFromPackage($logistic_id, $logistic_partner, $barcode_id, $new_status, $updated_by = '')
 {
     global $session_userinfo;
     if ($updated_by == '') {
         $updated_by = $session_userinfo['username'];
     }
     $tmp_bcid = explode('-', $barcode_id);
     $type = strtoupper($tmp_bcid[0]);
     $oiid = $tmp_bcid[1];
     $table_name = '';
     if ($type == 'SP') {
         $table_name = 'jng_sp_packages_items';
         $field = 'jng_sp_orders_items_id';
     } elseif ($type == 'JG') {
         $table_name = 'minierp_packages_products';
         $field = 'orders_products_id';
     } elseif ($type == 'DP') {
         $table_name = 'depot_packages_contents';
         $field = 'depot_orders_id';
     }
     $result = '<span>Order <strong>"' . $barcode_id . '"</strong> not found on any packages!</span>';
     if ($table_name != '') {
         $q_check = tep_db_query("SELECT * FROM {$table_name} WHERE {$field} = '{$oiid}'");
         if (tep_db_num_rows($q_check) > 0) {
             tep_db_query("DELETE FROM {$table_name} WHERE {$field} = '{$oiid}'");
             //SAVE AS HISTORY
             $dt_hist = array();
             $dt_hist['type'] = $type;
             $dt_hist['order_items_id'] = $oiid;
             $dt_hist['removed_by'] = $updated_by;
             $dt_hist['updated_to_status'] = $new_status;
             tep_db_perform('minierp_packages_orders_excluded', $dt_hist);
             if ($type == 'SP') {
                 use_class('jng_sp_orders');
                 $class_jo = new jng_sp_orders();
                 $class_jo->updateItemStatus($oiid, $new_status, $updated_by, 'J', false);
             } elseif ($type == 'JG') {
                 use_class('orders');
                 $class_o = new orders();
                 $class_o->updateProductStatus($oiid, $new_status, $updated_by, 'J', false);
             } elseif ($type == 'DP') {
                 use_class('depot_orders');
                 $class_do = new depot_orders();
                 $class_do->updateStatus($oiid, $new_status, $updated_by, false);
             }
             //REGENERATE LIST OF CONTENTS ON CERTAIN LOGISTIC PACKAGE
             $this->generateContents($logistic_id, $logistic_partner);
             $result = '<span class="green">Order <strong>"' . $barcode_id . '"</strong> successfully removed from package and set its status as complete!';
             $result .= '<br/><br/><strong>PLEASE REPRINT updated Commercial Invoice for logistic process!</span></strong>';
         }
     }
     return $result;
 }