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; }
} } //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;">';