function processReturn($bin_type, $sp_type, $order_product_id, $updater, $reason = '0', $return_date = '')
{
    global $class_jo, $class_o;
    use_class('payone');
    use_class('products_minierp');
    use_class('products_ean');
    use_class("bins");
    use_class("sendback");
    $class_payone = new payone();
    $class_pm = new products_minierp();
    $class_pean = new products_ean();
    $class_bins = new bins();
    $class_sendback = new sendback();
    $return_allowed_status = array('9', '11', '16', '20');
    $is_best_product = '';
    $product_barcode = '';
    $returnable = 0;
    $status = $bin_type == 'bin_bali' ? 'MCSHOWBINBALI' : 'MCSHOWBININ';
    if ($bin_type == 'missing_product') {
        $status = 'MCSHOWMISSINGPRODUCT';
    }
    $return_created = false;
    if (strtolower($sp_type) == 's') {
        //if($reason=='') {
        //    $order_product_id = $items_id;
        //    $status = 'MCSCANREASON';
        //    $reasons = $class_jo->returnReasonList();
        //    $reasons_list = array();
        //    foreach($reasons as $reason_id=>$val){
        //        $reasons_list[] = $reason_id."-".$val;
        //    }
        //    $result['reasons'] = $reasons_list;
        //}else{
        $item = $class_jo->retrieveItemDetail($order_product_id);
        $order_id = $item['jng_sp_orders_id'];
        $products_id = $item['products_id'];
        $products_articles_id = $item['products_articles_id'];
        $returnable = $item['order_quantity'];
        $return_data = $class_jo->retrieveReturnItem($order_product_id);
        //echo "<pre>";var_dump($return_data);
        if (!is_null($return_data)) {
            foreach ($return_data as $rd) {
                $returnable -= $rd['return_quantity'];
            }
        }
        if ($returnable > 0) {
            $product_barcode = "SP-{$order_product_id}";
            //CREATE RETURN
            if ($return_date == '') {
                $return_date = date('Y-m-d H:i:s');
            }
            $return_qty = 1;
            $comment_customer = 'Returned via MC';
            $comment_jng = '';
            $shipping_paid = tep_db_prepare_input($_POST['shipping_paid']);
            $return_id = $class_jo->returnItem($order_product_id, $return_date, $return_qty, $reason, $comment_customer, $comment_jng, $shipping_paid);
            //CREATE PAYONE RETURN
            //$return_id = '123';
            if ($return_id != '') {
                $return_created = true;
                $class_payone->createReturnContainerSP($return_id, $return_qty, $order_product_id);
                $new_status = putToBin($order_product_id, $sp_type, $bin_type, $updater);
                //PREPARE SENDBACK DATA ONLY FOR status = '16'
                if ($new_status == '16') {
                    $sendback = array();
                    //-------TODO: WE MUST CHANGE THIS HARDCODE segment_id VALUE TO DYNAMIC REQUESTED FROM MC-----
                    $segment_id = 1;
                    $sendback['bin_segments_id'] = $segment_id;
                    $bin_segment = $class_bins->retrieveSegmentDetail($segment_id);
                    //---------------------------------------------------------------------------------
                    $sendback['type'] = 'R';
                    $sendback['products_id'] = $products_id;
                    $sendback['products_articles_id'] = $products_articles_id;
                    $sendback['products_ean'] = $class_pean->getEAN($products_id, $products_articles_id);
                    $sendback['quantity_stock'] = $return_qty;
                    $sendback['quantity_actual'] = 0;
                    $class_sendback->create($sendback);
                }
                $items_q = tep_db_query("SELECT SUM(order_quantity) AS total FROM jng_sp_orders_items WHERE jng_sp_orders_id={$order_id} AND status NOT IN (10, 12)");
                $items = tep_db_fetch_array($items_q);
                $items_total = $items['total'];
                $returns_total = getTotalReturnOrderSP($order_id);
                $returnable = $items_total - $returns_total;
            }
        }
        //} //BLOCK reason status
    } elseif (strtolower($sp_type) == 'j') {
        $item = $class_o->retrieveProductDetail($order_product_id);
        $order_id = $item['orders_id'];
        $products_id = $item['products_id'];
        $products_articles_id = $item['products_articles_id'];
        $existing_return = $class_o->productReturnTotalQty($order_product_id);
        if ($existing_return < $item['products_quantity']) {
            $product_barcode = "JG-{$order_product_id}";
            //CREATE RETURN
            $return_date = date('Y-m-d H:i:s');
            $return_qty = 1;
            $return_type = 'C';
            $return_status = '0';
            $return_comment = 'Returned via MC';
            $product_received = 1;
            $return_id = $class_o->addReturnProduct($order_product_id, $return_date, $return_qty, $return_type, $return_status, $return_comment, $product_received, $reason);
            //CREATE PAYONE RETURN
            //$return_id = '123';
            if ($return_id != '') {
                $return_created = true;
                $class_payone->createReturnContainer($return_id, $return_qty, $order_product_id);
                $new_status = putToBin($order_product_id, $sp_type, $bin_type, $updater);
                //PREPARE SENDBACK DATA ONLY FOR status = '16'
                if ($new_status == '16') {
                    $sendback = array();
                    //-------TODO: WE MUST CHANGE THIS HARDCODE segment_id VALUE TO DYNAMIC REQUESTED FROM MC-----
                    $segment_id = 1;
                    $sendback['bin_segments_id'] = $segment_id;
                    $bin_segment = $class_bins->retrieveSegmentDetail($segment_id);
                    //---------------------------------------------------------------------------------
                    $sendback['type'] = 'R';
                    $sendback['products_id'] = $products_id;
                    $sendback['products_articles_id'] = $products_articles_id;
                    $sendback['products_ean'] = $class_pean->getEAN($products_id, $products_articles_id);
                    $sendback['quantity_stock'] = $return_qty;
                    $sendback['quantity_actual'] = 0;
                    $class_sendback->create($sendback);
                }
                $items_q = tep_db_query("SELECT SUM(products_quantity) AS total FROM orders_products WHERE orders_id={$order_id}  AND status NOT IN (10, 12)");
                $items = tep_db_fetch_array($items_q);
                $items_total = $items['total'];
                $returns_total = getTotalReturnOrderJG($order_id);
                $returnable = $items_total - $returns_total;
            }
        }
    }
    $result['product_barcode'] = $product_barcode;
    $result['order_product_id'] = $order_product_id;
    $result['returnable'] = $returnable;
    $result['status'] = $return_created ? $status : 'CREATERETURNFAIL';
    return $result;
}
Ejemplo n.º 2
0
         }
     }
     //PREPARE SENDBACK DATA
     $sendback = array();
     $clear_success = array();
     $total_product_clear = 0;
     while ($row = tep_db_fetch_array($dbq)) {
         if ($segment['used_for'] == 'P') {
             $sendback['bin_segments_id'] = $segment_id;
             $sendback['type'] = 'D';
             $sendback['products_id'] = $row['products_id'];
             $sendback['products_articles_id'] = $row['articles_id'];
             $sendback['products_ean'] = $class_pean->getEAN($row['products_id'], $row['articles_id']);
             $sendback['quantity_stock'] = intval($row['stock']);
             $sendback['quantity_actual'] = isset($qty_changes[$row['bins_id']]['qty_actual']) && $qty_changes[$row['bins_id']]['qty_actual'] != $row['stock'] ? $qty_changes[$row['bins_id']]['qty_actual'] : $row['stock'];
             $sendback_id = $class_sendback->create($sendback);
             //CLEAR CONNECTION ON BOX
             $class_bins->removeProductFromBox($row['bins_id']);
             $clear_success[$sendback_id] = "{$row['products_id']}-{$row['articles_id']}";
         } elseif ($segment['used_for'] == 'E') {
         }
         $total_product_clear += $sendback['quantity_actual'];
     }
     $msg = 'Success clearing ' . $total_product_clear . ' product(s) from ' . count($clear_success) . ' box(es)';
     echo utf8_encode($msg);
 } else {
     $total_clear = tep_db_num_rows($dbq);
     $clean_lists = '<fieldset id="clearance-lists" style="background:#fff;padding:20px 30px 30px 30px; width:600px;" class="ui-corner-all">';
     $clean_lists .= '<legend style="font-size:16px;font-weight:bold;">Results of "' . ($clearance_period == 30 ? 'Monthly' : ($clearance_period == 60 ? 'Monthly' : ($clearance_period == 90 ? 'Trimonthly' : 'Weekly'))) . ' Sold = 0" Clearance (' . $total_clear . ' articles)</legend>';
     $clean_lists .= '<h2 class="blue">Please do clearance on box and confirm actual stock below !</h2>';
     $clean_lists .= '<div style="margin:10px 0 10px 0;float:left;">';