$sda_return['return_quantity'] = tep_db_prepare_input($_POST['return_qty']);
    $sda_return['return_comment_customer'] = tep_db_prepare_input(utf8_decode($_POST['comment_c']));
    $sda_return['return_comment_jng'] = tep_db_prepare_input(utf8_decode($_POST['comment_j']));
    $sda_return['shipping_paid'] = tep_db_prepare_input($_POST['shipping_paid']);
    $class_jo->returnItemUpdate($return_id, $sda_return);
    echo '<div class="green">Return detail is successfully saved</div>';
    exit;
}
//START TEMPLATE
$return_id = isset($_GET['id']) ? tep_db_prepare_input($_GET['id']) : '';
if ($return_id == '') {
    exit;
}
$return = $class_jo->retrieveReturnDetail($return_id);
$item = $class_jo->retrieveItemDetail($return['jng_sp_orders_items_id']);
$order = $class_jo->retrieveDetail($item['jng_sp_orders_id']);
$pimg = webImageSource($item['products_image'], '500');
if ($pimg != '') {
    $pimg = webImage($item['products_image'], '120', '120', '', 'img-border img-padding');
}
$content .= '<div style="float:left;">' . $pimg . '</div>';
$content .= '<div style="margin-left:150px;">';
$content .= '<table border="0" cellpadding="0" cellspacing="0">';
$order_id = $order['order_id'] == '' ? 'J&G ID: ' . $order['jng_sp_orders_id'] : $order['order_id'];
if ($return['confirm_return'] == '1') {
    $return_reason = $class_jo->returnReasonText($return['return_reason']);
    $return_qty = $return['return_quantity'];
    $comment_c = nl2br($return['return_comment_customer']);
    $comment_j = nl2br($return['return_comment_jng']);
    $shipping_status = $return['shipping_paid'] == '1' ? 'Paid' : 'Unpaid';
} else {
/**
 * Get vip status of customer from an order
 * @param String $type
 * @param Int $orders_id
 * @return Boolean
 */
function checkCustomerIsVIP($type, $orders_id)
{
    $type = strtoupper($type);
    $is_vip = false;
    if ($type == 'SP') {
        use_class('jng_sp_orders');
        use_class('jng_sp_customers');
        use_class('jng_sp_customers_special');
        $class_jo = new jng_sp_orders();
        $class_jc = new jng_sp_customers();
        $class_jcs = new jng_sp_customers_special();
        $o = $class_jo->retrieveDetail($orders_id);
        //GET CUSTOMER DETAIL VIP OR NOT
        $cust_data = $class_jc->retrieveDetail(null, $o['jng_sp_id'], $o['customer_billing_id']);
        if (is_array($cust_data) && $cust_data['jng_sp_customers_id'] > 0) {
            $cust_detail = $class_jcs->getCustomerDetail($cust_data['jng_sp_customers_id']);
        }
        $is_vip = $cust_detail['list_type'] == 'V';
    } elseif ($type == 'JG') {
        use_class('orders');
        use_class('customers_special_list');
        $class_o = new orders();
        $class_csl = new customers_special_list();
        $o = $class_o->retrieveDetail($orders_id);
        //GET CUSTOMER DETAIL VIP OR NOT
        $cust_detail = $class_csl->getCustomerDetail($o['customers_id']);
        $is_vip = $cust_detail['list_type'] == 'V';
    } elseif ($type == 'DP') {
        use_class('depot_orders');
        $class_do = new depot_orders();
        $do = $class_do->retrieveDetail($orders_id);
        if ($do['trans_type'] == 'SP' || $do['trans_type'] == 'JG') {
            if ($do['trans_type'] == 'SP') {
                use_class('jng_sp_orders');
                $class_jo = new jng_sp_orders();
                $it = $class_jo->retrieveItemDetail($do['trans_id']);
                $orders_id = $it['jng_sp_orders_id'];
            } elseif ($do['trans_type'] == 'JG') {
                use_class('orders');
                $class_o = new orders();
                $it = $class_o->retrieveProductDetail($do['trans_id']);
                $orders_id = $it['orders_id'];
            }
            $is_vip = checkCustomerIsVIP($do['trans_type'], $orders_id);
        }
    }
    return $is_vip;
}
         $oi['price_received'] = !isset($i->TRANSFER_PRICE) || $i->TRANSFER_PRICE == 0 || $i->TRANSFER_PRICE == $i->ITEM_PRICE ? getPurchasePrice($i->ITEM_PRICE, $jng_sp_id) : $i->TRANSFER_PRICE;
         $oi['price'] = $i->ITEM_PRICE;
         $oi['order_item_count'] = $n_item;
         $oi['order_item_total'] = $n_items;
         foreach ($oi as $k => $v) {
             $oi[$k] = utf8_decode($v);
         }
         $oi_id = $class_jo->addItem($orders_id, $oi);
         logThis("  = ORDER ITEM ID {$oi_id} created");
         $items_ids[] = $oi_id;
         $items_created++;
     }
     $class_jo->leadtimeSetStart($leadtime_start_date, '', $orders_id);
 } else {
     //FAILED TO CREATE NEW ORDER
     $existing_order = $class_jo->retrieveDetail(null, $o['order_id']);
     $orders_id = $existing_order['jng_sp_orders_id'];
     if ($orders_id > 0) {
         //ORDER ALREADY EXIST
         logThis("  = Existing order found {$orders_id}");
         $items = $class_jo->retrieveItems($orders_id);
         foreach ($items as $i) {
             $items_ids[] = $i['jng_sp_orders_items_id'];
         }
         if ($is_approved) {
             //SET AS PAID FOR PREPAYMENT ORDER THAT CONFIRMED PAID BY TB
             logThis("  = Update prepayment status as paid");
             if ($existing_order['payment_status'] == 0) {
                 $class_jo->updatePaymentStatus($orders_id, 1, 'auto-set');
                 $class_jo->leadtimeSetStart($leadtime_start_date, '', $orders_id);
                 $orders_prepayment_paid[] = $orders_id;
$pdf->label_per_width = 1;
$pdf->label_width = ($pdf->page_width - 2 * $pdf->left_margin) / $pdf->label_per_width;
$pdf->label_per_height = 5;
$pdf->label_height = ($pdf->page_height - 2 * $pdf->top_margin) / $pdf->label_per_height;
$pdf->label_per_page = $pdf->label_per_width * $pdf->label_per_height;
$order_counter = 0;
//$labelpad = 4;
$labelxpad = 55;
$labelypad = 4;
$labelxpos = 1;
$labelypos = 1;
foreach ($orders_array as $order_id) {
    $order = array();
    if ($type == 'sp') {
        //RETRIEVED DATA SP
        $order_data = $class_jo->retrieveDetail($order_id);
        $items = $class_jo->retrieveItems($order_id);
        $order['customer'] = "{$order_data['customer_shipping_firstname']} {$order_data['customer_shipping_lastname']} ";
        $order['id'] = $order_data['order_id'];
        $order['shipment_id'] = $order_data['shipment_id'];
        $order['prefix_code'] = $sp_prefix[$order_data['jng_sp_id']];
    } else {
        //RETRIEVED DATA JNG
        $order_data = $class_o->retrieveDetail($order_id);
        $items = $class_o->retrieveProducts($order_id);
        $order['id'] = $order_data['orders_no'];
        $order['customer'] = $order_data['delivery_name'];
        $order['prefix_code'] = '';
    }
    if ($order_counter % $pdf->label_per_page == 0) {
        $pdf->AddPage();
function getOrderDetail($barcode = '', $idcode_ret = '')
{
    //die("$barcode | $idcode_ret");
    $result = array();
    $result['status'] = 'MCORDERNOTFOUND';
    use_class('jng_sp');
    use_class('jng_sp_orders');
    if ($barcode != '') {
        list($type, $order_product_id) = split('-', strtoupper($barcode));
        //GET order_id
        $order_id = '';
        if ($type == 'SP' || $type == 'JR') {
            $status = 'MCSCANPRODUCT';
            use_class('jng_sp_customers');
            $class_sp = new jng_sp();
            $class_jo = new jng_sp_orders();
            $class_jc = new jng_sp_customers();
            $item = $class_jo->retrieveItemDetail($order_product_id);
            $order_id = $item['jng_sp_orders_id'];
            $order = $class_jo->retrieveDetail($order_id);
            if (count($order) > 0) {
                $sp = $class_sp->retrieveDetail($order['jng_sp_id']);
                $customer = $class_jc->retrieveDetail(null, $order['jng_sp_id'], $order['customer_billing_id']);
                $customer_name = $order['customer_billing_firstname'] . ' ' . $order['customer_billing_lastname'];
                $customers_street_address = $order['customer_billing_address'] . ' ' . $order['customer_billing_address2'];
                $order_type = $sp['name'] . ' Order ' . $order['order_id'];
                $result = setOrderResult($status, 'S', $order_id, $order_type, $customer['jng_sp_customers_id'], $customer_name, $order['customer_billing_email'], $order['customer_billing_phone'], $customers_street_address, $order['customer_billing_postcode'], $order['customer_billing_city'], $order['customer_billing_country']);
            }
        } elseif ($type == 'JG') {
            $status = 'MCSCANPRODUCT';
            use_class('orders');
            $class_o = new orders();
            $item = $class_o->retrieveProductDetail($order_product_id);
            $order_id = $item['orders_id'];
            $order = $class_o->retrieveDetail($order_id);
            if (count($order) > 0) {
                $order_type = 'J&G Order ' . $order['orders_no'];
                $result = setOrderResult($status, 'J', $order_id, $order_type, $order['customers_id'], $order['customers_name'], $order['customers_email_address'], $order['customers_telephone'], $order['customers_street_address'], $order['customers_postcode'], $order['customers_city'], $order['customers_country']);
            }
        }
    } elseif ($idcode_ret != '') {
        //1 idcode_ret utk 1 order
        $qsp = "SELECT j.name AS sp_name, jo.* FROM jng_sp_orders jo INNER JOIN jng_sp j ON j.jng_sp_id = jo.jng_sp_id";
        $qsp .= " WHERE idcode_ret = '{$idcode_ret}' ORDER BY jo.order_date DESC LIMIT 1";
        $rsp = tep_db_query($qsp);
        $dsp = tep_db_num_rows($rsp) > 0 ? tep_db_fetch_array($rsp) : null;
        if (is_null($dsp)) {
            /* 12.05.2015: 
             * If not found, try to search using order number.
             * So far at this time, returns from LZ.ID, ZR.ID, ZR.BR used order number barcode
             */
            $qsp = "SELECT j.name AS sp_name, jo.* FROM jng_sp_orders jo INNER JOIN jng_sp j ON j.jng_sp_id = jo.jng_sp_id";
            $qsp .= " WHERE jo.order_id = '{$idcode_ret}' ORDER BY jo.order_date DESC LIMIT 1";
            $rsp = tep_db_query($qsp);
            $dsp = tep_db_num_rows($rsp) > 0 ? tep_db_fetch_array($rsp) : null;
        }
        $qjg = "SELECT * FROM orders WHERE idcode_ret='{$idcode_ret}' ORDER BY date_purchased DESC  LIMIT 1";
        $rjg = tep_db_query($qjg);
        $djg = tep_db_num_rows($rjg) > 0 ? tep_db_fetch_array($rjg) : null;
        if (!is_null($dsp) || !is_null($djg)) {
            $status = 'MCSCANPRODUCT';
            if (!is_null($dsp) && !is_null($djg)) {
                $dsp_time = strtotime($dsp['order_date']);
                $djg_time = strtotime($djg['date_purchased']);
                $use_data = $dsp_time >= $djg_time ? 'sp' : 'jg';
            } else {
                $use_data = !is_null($dsp) ? 'sp' : 'jg';
            }
            if ($use_data == 'sp') {
                $order_id = $dsp['jng_sp_orders_id'];
                use_class('jng_sp_customers');
                $class_jc = new jng_sp_customers();
                $customer = $class_jc->retrieveDetail(null, $dsp['jng_sp_id'], $dsp['customer_billing_id']);
                $customer_name = $dsp['customer_billing_firstname'] . ' ' . $dsp['customer_billing_lastname'];
                $customers_street_address = $dsp['customer_billing_address'] . ' ' . $dsp['customer_billing_address2'];
                $order_type = $dsp['sp_name'] . ' Order ' . $dsp['order_id'];
                $result = setOrderResult($status, 'S', $order_id, $order_type, $customer['jng_sp_customers_id'], $customer_name, $dsp['customer_billing_email'], $dsp['customer_billing_phone'], $customers_street_address, $dsp['customer_billing_postcode'], $dsp['customer_billing_city'], $dsp['customer_billing_country']);
            } else {
                $order_id = $djg['orders_id'];
                $order_type = 'J&G Order ' . $djg['orders_no'];
                $result = setOrderResult($status, 'J', $order_id, $order_type, $djg['customers_id'], $djg['customers_name'], $djg['customers_email_address'], $djg['customers_telephone'], $djg['customers_street_address'], $djg['customers_postcode'], $djg['customers_city'], $djg['customers_country']);
            }
        }
    }
    return $result;
}
Beispiel #6
0
        /*Disabled this, since all orders that goes to ready will directly printed
          //ignore printing pdf for this order if there item that still on cancel request. 
          $ok_print = (!orderItemHaveStatus($oid, 10, $type));
           */
        $ok_print = true;
    } elseif ($type == 'DP') {
        use_class('depot_orders');
        $class_do = new depot_orders();
        $do = $class_do->retrieveDetail($oid);
        if ($do['trans_type'] == 'SP') {
            use_class('jng_sp_orders');
            $class_jo = new jng_sp_orders();
            $oiid = $do['trans_id'];
            $i = $class_jo->retrieveItemDetail($oiid);
            $oid = $i['jng_sp_orders_id'];
            $o = $class_jo->retrieveDetail($oid);
            $sp_id = "{$o['jng_sp_id']}";
        } elseif ($do['trans_type'] == 'JG') {
            $sp_id = '0';
        }
        $is_prioritized = $do['trans_type'] == 'AR' && $do['trans_id'] == depot_orders::AUTO_REFILL_ID_ZALANDO || $is_prioritized || in_array($sp_id, $sp_using_red_paper);
        $ok_print = true;
    }
    if ($ok_print) {
        if ($is_prioritized && !(isset($queue_r[$pid]) && in_array($key, $queue_r[$pid]))) {
            $queue_r[$pid][] = $key;
        } else {
            $queue_w[$pid][] = $key;
        }
    }
}
Beispiel #7
0
 function createReturnContainerSP($return_id, $return_qty, $joi_id)
 {
     use_class('Order');
     use_class('jng_sp_orders');
     use_class('jng_sp_customers');
     use_class('payone_invoice');
     $class_jcust = new jng_sp_customers();
     $class_jo = new jng_sp_orders();
     $item = $class_jo->retrieveItemDetail($joi_id);
     $oid = $item['jng_sp_orders_id'];
     $order_obj = new Order(Order::ORDER_TYPE_SALES_PARTNER, $oid);
     $order = $class_jo->retrieveDetail($oid);
     if ($order_obj->isPaymentHandledByPayone()) {
         $invoice = new payone_invoice('invoice_order_type', 'S', "invoice_order_id={$oid}");
         //ONLY QUEING JUST FOR TRANSACTION THAT HAVE payone_txid (FIRST GET FROM SUBMITTING INVOICE)
         if ($invoice->detail['payone_txid'] != '') {
             $payone_txid = $invoice->detail['payone_txid'];
             $payment_method = $order_obj->getPaymentMethodRaw();
             $customer = $class_jcust->retrieveDetail(null, $order_obj->sales_partner_id, $order_obj->customer_id);
             $customer_bankdata = $class_jcust->getBankAccountData($customer['jng_sp_customers_id']);
             $data_por = array();
             $data_por['return_id'] = $return_id;
             $data_por['jng_sp_orders_items_id'] = $joi_id;
             $data_por['jng_sp_customers_id'] = $customer['jng_sp_customers_id'];
             $data_por['amount'] = round($return_qty * ($item['price'] * 100));
             $data_por['txid'] = $payone_txid;
             $data_por['invoice_id'] = $invoice->detail['invoice_id'];
             $data_por['invoice_no'] = $invoice->detail['invoice_no'];
             $data_por['id'] = $item['article_number'];
             $data_por['pr'] = round($item['price'] * 100);
             $data_por['no'] = $return_qty;
             $data_por['de'] = strlen($item['billing_text']) > 32 ? substr($item['billing_text'], 0, 32) : $item['billing_text'];
             $data_por['va'] = 0;
             $data_por['payment_method'] = $payment_method;
             $data_por['currency'] = 'EUR';
             if (!is_null($customer_bankdata)) {
                 $data_por['bankcode'] = $customer_bankdata['bank_code'];
                 $data_por['bankcountry'] = $customer_bankdata['bank_country'];
                 $data_por['bankaccount'] = $customer_bankdata['bank_account_number'];
                 $data_por['bankaccountholder'] = $customer_bankdata['bank_account_holder'];
             }
             $this->payoneReturnItemContainer($data_por);
             $items_total = $order_obj->getTotalItemsNotCanceledQuantity();
             $returns_total = $order_obj->getTotalItemsReturnedQuantity();
             if ($items_total == $returns_total) {
                 $amount_paid = $invoice->detail['invoice_amount_paid'];
                 $shipping_cost = $order_obj->getCostShipping();
                 $cod_cost = $order_obj->getCostCOD();
                 $total_costs = $shipping_cost + $cod_cost;
                 if ($shipping_cost > 0) {
                     //if((($amount_paid*1)==0)||(($amount_paid<>$shipping_cost)&&($amount_paid<>$total_costs))){
                     if ($amount_paid * 1 == 0 || $amount_paid > $total_costs) {
                         //HANDLE DOUBLE OR MORE SHIPING RETURN CONTAINER
                         $q_check = "SELECT * FROM payone_orders_return WHERE txid = '{$payone_txid}' AND id = 'Shipping'";
                         $dbc = tep_db_query($q_check);
                         if (tep_db_num_rows($dbc) == 0) {
                             $amount = round($shipping_cost * 100);
                             $data_por = array();
                             $data_por['return_id'] = 0;
                             $data_por['jng_sp_orders_items_id'] = 0;
                             $data_por['jng_sp_customers_id'] = $customer['jng_sp_customers_id'];
                             $data_por['amount'] = $amount;
                             $data_por['txid'] = $payone_txid;
                             $data_por['invoice_id'] = $invoice->detail['invoice_id'];
                             $data_por['invoice_no'] = $invoice->detail['invoice_no'];
                             $data_por['id'] = 'Shipping';
                             $data_por['pr'] = $amount;
                             $data_por['no'] = 1;
                             $data_por['de'] = 'Verpackung & Versand';
                             $data_por['va'] = 0;
                             $data_por['payment_method'] = $payment_method;
                             $data_por['currency'] = 'EUR';
                             $this->payoneReturnItemContainer($data_por);
                         }
                     }
                 }
                 if ($cod_cost > 0) {
                     //if((($amount_paid==0*1))||(($amount_paid<>$cod_cost)&&($amount_paid<>$total_costs))){
                     if ($amount_paid * 1 == 0 || $amount_paid > $total_costs) {
                         $amount = round($cod_cost * 100);
                         $data_por = array();
                         $data_por['return_id'] = 0;
                         $data_por['jng_sp_orders_items_id'] = 0;
                         $data_por['jng_sp_customers_id'] = $customer['jng_sp_customers_id'];
                         $data_por['amount'] = $amount;
                         $data_por['txid'] = $payone_txid;
                         $data_por['invoice_id'] = $invoice->detail['invoice_id'];
                         $data_por['invoice_no'] = $invoice->detail['invoice_no'];
                         $data_por['id'] = 'COD';
                         $data_por['pr'] = $amount;
                         $data_por['no'] = 1;
                         $data_por['de'] = 'Nachnahmegebühren';
                         $data_por['va'] = 0;
                         $data_por['payment_method'] = $payment_method;
                         $data_por['currency'] = 'EUR';
                         $this->payoneReturnItemContainer($data_por);
                     }
                 }
             }
         } else {
             //ORDER NOT SUBMITTED YET TO PAYONE, SO NO TXID CREATED YET. JUST NEED TO EXCLUDE ITEM FROM payone_invoice TABLE COLUMN 'invoice_order_items_id'
             $oids_arr = explode(',', $invoice->detail['invoice_order_items_id']);
             if (is_array($oids_arr)) {
                 $new_amount = $invoice->detail['invoice_amount'] - $return_qty * $item['price'];
                 foreach ($oids_arr as $key => $value) {
                     if ($value == $joi_id) {
                         unset($oids_arr[$key]);
                     }
                 }
                 $oids = implode(',', $oids_arr);
                 if (count($oids_arr) == 0) {
                     //ALL PRODUCTS RETURNED
                     $new_amount = 0;
                     $invoice->updateCompleteStatus('3');
                     //INVOICE CANCELLED
                 }
                 tep_db_perform('payone_invoice', array('invoice_amount' => $new_amount, 'invoice_order_items_id' => $oids), 'update', "invoice_id = '" . $invoice->detail['invoice_id'] . "'");
             }
         }
     }
 }
Beispiel #8
0
             //no, send an error message
             $errinfo = "Order could not transferred become Depot Order!";
             $result .= printPackageTip('E', $box_date, $errinfo, 'Orders');
             echo utf8_decode($result);
             exit;
         }
     }
 }
 //NOW GO TO THE REAL PROCESS
 if ($type == 'SP') {
     //FOR SALES PARTNER ORDER
     $sp_name = 'Orders';
     $sp_class = 'pink';
     //SP PROCESS
     $item = $class_jo->retrieveItemDetail($id);
     $order = $class_jo->retrieveDetail($item['jng_sp_orders_id']);
     //$sp_detail = $class_sp->retrieveDetail($order['jng_sp_id']);
     //$sp_name = $sp_detail['package_prefix'];
     //$sp_name = 'Orders';
     if (count($item) == 0) {
         //If no product found
         $errinfo = $template_error_not_found;
         $result .= printPackageTip('E', $box_date, $errinfo, $sp_name);
     } else {
         //If product is found
         if (strtoupper($ean_scan) != 'SKIP' && $ean_scan != $item['products_ean']) {
             $result .= printPackageTip(EAN_MISMATCH_ERROR, $item['products_ean'], $ean_scan);
         } else {
             if ($item['status'] < intval($old_status)) {
                 //If product status is not yet finish
                 $errinfo = $template_error_not_finish;
 use_class('jng_sp_orders');
 $o_jngspo = new jng_sp_orders();
 $oi = $o_jngspo->retrieveItemDetail($reqid);
 #header("Content-Type: text/plain; charset=utf-8");
 switch ($barcodetype) {
     case 'code39':
         use_class('jng_sp');
         $o_jngsp = new jng_sp();
         #table jng_sp_orders_items
         $oi_o_id = $oi["jng_sp_orders_id"];
         $oi_order_qty = $oi["order_qty"];
         $oi_article_number = $oi["article_number"];
         $oi_order_item_count = $oi["order_item_count"];
         $oi_order_item_total = $oi["order_item_total"];
         #table jng_sp_orders
         $o = $o_jngspo->retrieveDetail($oi_o_id);
         $o_order_no = $o["order_id"];
         $o_order_date = strtotime($o["order_date"]);
         $day = date("d", $o_order_date);
         $month = date("M", $o_order_date);
         $o_daily_count = $o["daily_count"];
         $o_shipment_id = $o["shipment_id"];
         $o_cust_fname = $o["customer_shipping_firstname"];
         $o_cust_lname = $o["customer_shipping_lastname"];
         $o_jngspid = $o["jng_sp_id"];
         #table jng_sp
         $jngsp = $o_jngsp->retrieveDetail($o_jngspid);
         $jngsp_prefix_num = $jngsp["package_prefix"];
         #format return label >> date;number;orderseq;nametag;kunde;auftragsnr;lieferscheinnr;qty;artikel
         $label_date = $day . ". " . $month;
         $label_order_seq = $oi_order_item_count . "/" . $oi_order_item_total;
} else {
    $logger->write("no orders ready");
}
//CREATE INVOICE FOR SP PREPAYMENT
$sp_vorkasse_handled_with_payone = "2, 10";
$logger->write("CREATING SP VORKASSE INVOICES");
$query = "SELECT jo.jng_sp_orders_id FROM jng_sp_orders jo\n        LEFT JOIN payone_invoice pi ON pi.invoice_order_type='S' AND pi.invoice_order_id=jo.jng_sp_orders_id\n        WHERE pi.invoice_id IS NULL AND jo.payment_method = '{$payment_method_prepayment}'\n        AND jo.jng_sp_id IN ({$sp_vorkasse_handled_with_payone})";
$q = tep_db_query($query);
$orders_array = array();
while ($row = tep_db_fetch_array($q)) {
    $orders_array[] = $row['jng_sp_orders_id'];
}
if (count($orders_array) > 0) {
    foreach ($orders_array as $order_id) {
        $pi_create_counter['sp']++;
        $order = $class_jo->retrieveDetail($order_id);
        $items = $class_jo->retrieveItems($order_id);
        //EXCLUDE CANCELLED ITEMS
        foreach ($items as $key => $item) {
            if ($class_jo->statusIsCancelled($item['status'])) {
                unset($items[$key]);
                break 1;
            }
        }
        //echo "<pre>";var_dump($order);die();
        //Order Items
        $payi->createFromOrderSP($order, $items, $prepayment_due_date, '0', '0');
        if (tep_db_insert_id() != '') {
            $l_invoice_id = tep_db_insert_id();
            $pi_success_create['sp'][] = $order_id;
            $logger->write("SPO{$order_id} invoice created (id = {$l_invoice_id})");
 $success = array();
 $failed = array();
 foreach ($sets_of_returns as $returns => $data) {
     //echo "<pre>";var_dump($data);die();
     if ($returns != '') {
         $txid = $returns;
         $class_pi = new payone_invoice("payone_txid", $txid);
         //NOT SEND RETURN OR CANCELLED VORKASSE OR ADVANCED PAYMENT ORDERS BEFORE CUST HAS PAID FULL
         if ($class_pi->detail['invoice_order_type'] == 'J') {
             $orders = $class_o->retrieveDetail($class_pi->detail['invoice_order_id']);
             //                if($orders['payment_method']=='Vorkasse' && $class_pi->detail['invoice_complete_status']!='P') continue;
             if ($orders['payment_method'] == PAYMENT_METHOD_BANK_TRANSFER && !in_array($class_pi->detail['invoice_complete_status'], $status_paid_complete)) {
                 continue;
             }
         } elseif ($class_pi->detail['invoice_order_type'] == 'S') {
             $orders = $class_jo->retrieveDetail($class_pi->detail['invoice_order_id']);
             if (strtoupper($orders['payment_method']) == strtoupper(PAYMENT_METHOD_PREPAYMENT) && !in_array($class_pi->detail['invoice_complete_status'], $status_paid_complete)) {
                 continue;
             }
         }
         $item_counter = 0;
         $counter_returns++;
         $return_hist = array();
         $return_hist['amount_return_submitted'] = 0;
         $return_pkey_id = array();
         $joid_arr = array();
         $rid_arr = array();
         $id_arr = array();
         $pr_arr = array();
         $no_arr = array();
         $de_arr = array();
 function retrieveData($barcode_type, $barcode_id)
 {
     use_class('jng_sp');
     use_class('orders');
     use_class('jng_sp_orders');
     use_class('depot_orders');
     use_class('products_ean');
     use_class('products_minierp');
     $class_sp = new jng_sp();
     $class_orders = new orders();
     $class_jo = new jng_sp_orders();
     $class_do = new depot_orders();
     $class_pean = new products_ean();
     $class_pm = new products_minierp();
     $result = '';
     //list($partner_type,$order_product_id) = split("-",$barcode_id);
     //$partner_type = strtolower($partner_type);
     $tmp_bcid = explode('-', $barcode_id);
     $partner_type = strtolower($tmp_bcid[0]);
     $order_product_id = $tmp_bcid[1];
     if (is_numeric($partner_type)) {
         $order_product_id = $partner_type;
         $partner_type = 'sp';
     }
     //all id without prefix JG or SP indicates as SP
     if (!empty($order_product_id) && $order_product_id != '') {
         $partners_need_ean13 = array('3');
         #switch partner prefix
         switch ($partner_type) {
             case 'jg':
                 $products = $class_orders->retrieveProductDetail($order_product_id);
                 #header("Content-Type: text/plain; charset=utf-8");
                 switch ($barcode_type) {
                     case 'code39':
                         if (count($products) > 0) {
                             #table orders,products,dll.
                             $order_id = $products["orders_id"];
                             $article_number = $products["products_model"];
                             $order_item_count = $products["order_item_count"];
                             $order_item_total = $products["order_item_total"];
                             $order_qty = $products["products_quantity"];
                             #table orders
                             $orders = $class_orders->retrieveDetail($order_id);
                             $order_no = $orders["orders_no"];
                             $order_date = strtotime($orders["date_purchased"]);
                             $day = date("d", $order_date);
                             $month = date("M", $order_date);
                             $daily_count = $orders["daily_count"];
                             #format return label >> date;number;orderseq;nametag;kunde;auftragsnr;lieferscheinnr;qty;artikel
                             $label_date = $day . ". " . $month;
                             $label_order_seq = $order_item_count . "/" . $order_item_total;
                             $label_cust_name = $orders["delivery_name"];
                             $qcountry = "SELECT countries_iso_code_2 FROM countries WHERE countries_name = '{$orders['delivery_country']}'";
                             $dbqcountry = tep_db_query($qcountry);
                             $rescountry = tep_db_fetch_array($dbqcountry);
                             $label_suffix = $rescountry['countries_iso_code_2'] != '' ? ".{$rescountry['countries_iso_code_2']}" : "";
                             $label_numtag = "JG" . $label_suffix;
                             $label_auftragsnr = $order_no == '' ? "-" : $order_no;
                             $label_lieferscheinnr = '';
                             $return_label = $label_date . ";" . $daily_count . ";" . $label_order_seq . ";" . $label_numtag . ";" . $label_cust_name;
                             $return_label .= ";" . $label_auftragsnr . ";" . $label_lieferscheinnr . ";" . $order_qty . ";" . $article_number . ";" . $order_product_id . ";" . $partner_type;
                             $result = $return_label;
                         } else {
                             $result = "no data";
                         }
                         break;
                     case 'ean13':
                         if (count($products) > 0) {
                             $result = $this->getEANReturnResult($partner_type, $products);
                         } else {
                             $result = "no data";
                         }
                         break;
                 }
                 break;
             case 'sp':
                 $oi = $class_jo->retrieveItemDetail($order_product_id);
                 $order_id = $oi["jng_sp_orders_id"];
                 $o = $class_jo->retrieveDetail($order_id);
                 $sp_id = $o["jng_sp_id"];
                 #header("Content-Type: text/plain; charset=utf-8");
                 switch ($barcode_type) {
                     case 'code39':
                         if (count($oi) > 0) {
                             #table jng_sp_orders_items
                             //                            $order_qty = $oi["order_quantity"] * 1;
                             $article_number = $oi["article_number"];
                             $order_item_count = $oi["order_item_count"];
                             $order_item_total = $oi["order_item_total"];
                             $order_qty = intval($oi["order_quantity"]);
                             #table jng_sp_orders
                             $order_no = $o["order_id"];
                             $class_ordersrder_date = strtotime($o["order_date"]);
                             $day = date("d", $class_ordersrder_date);
                             $month = date("M", $class_ordersrder_date);
                             $daily_count = $o["daily_count"];
                             $shipment_id = $o["shipment_id"];
                             $cust_fname = $o["customer_shipping_firstname"];
                             $cust_lname = $o["customer_shipping_lastname"];
                             #table jng_sp
                             $jngsp = $class_sp->retrieveDetail($sp_id);
                             $prefix_num = $jngsp["package_prefix"];
                             #format return label >> date;number;orderseq;nametag;kunde;auftragsnr;lieferscheinnr;qty;artikel
                             $label_date = $day . ". " . $month;
                             $label_order_seq = $order_item_count . "/" . $order_item_total;
                             $label_cust_name = $cust_fname . " " . $cust_lname;
                             $label_numtag = $prefix_num == '' ? "-" : $prefix_num;
                             $label_auftragsnr = $order_no == '' ? "-" : $order_no;
                             $label_lieferscheinnr = $shipment_id;
                             $return_label = $label_date . ";" . $daily_count . ";" . $label_order_seq . ";" . $label_numtag . ";" . $label_cust_name;
                             $return_label .= ";" . $label_auftragsnr . ";" . $label_lieferscheinnr . ";" . $order_qty . ";" . $article_number . ";" . $order_product_id . ";" . $partner_type;
                             if (in_array($sp_id, $partners_need_ean13)) {
                                 if (count($oi) > 0) {
                                     $cats = $class_jo->getCategories($order_id);
                                     $oi_product_id = $oi["products_id"];
                                     $oi_product_article_id = $oi["products_articles_id"];
                                     $ean = $oi_product_article_id != '' ? $class_pean->getEAN($oi_product_id, $oi_product_article_id) : $class_pean->getEAN($oi_product_id);
                                     if ($ean != '') {
                                         $label_material = "925er SILBER";
                                         $return_label .= ";" . $ean . ";" . strtoupper($cats['categories_name']) . ";" . $label_material . ";" . $oi['price'] . " EUR;{$order_qty};{$o['jng_sp_id']}";
                                     }
                                 }
                             }
                             $result = $return_label;
                         } else {
                             $result = "no data";
                         }
                         break;
                     case 'ean13':
                         if (count($oi) > 0) {
                             $result = $this->getEANReturnResult($partner_type, $oi, $sp_id);
                         } else {
                             $result = "no data";
                         }
                         break;
                 }
                 break;
             case 'dp':
                 //ONLY PRODUCT LABEL / ean13
                 $do = $class_do->retrieveDetail($order_product_id);
                 switch ($barcode_type) {
                     case 'code39':
                         $article_number = $do["products_ean"];
                         $order_item_count = '1';
                         $order_item_total = '1';
                         $order_qty = intval($do["quantity"]);
                         $daily_count = $order_qty . 'x';
                         #format return label >> date;number;orderseq;nametag;kunde;auftragsnr;lieferscheinnr;qty;artikel
                         $label_date = "Quantity: ";
                         $label_order_seq = "{$order_item_count}/{$order_item_total}";
                         $label_cust_name = 'Outsourcing';
                         $label_numtag = '-';
                         $label_auftragsnr = '-';
                         $label_lieferscheinnr = '-';
                         $return_label = $label_date . ";" . $daily_count . ";" . $label_order_seq . ";" . $label_numtag . ";" . $label_cust_name;
                         $return_label .= ";" . $label_auftragsnr . ";" . $label_lieferscheinnr . ";" . $order_qty . ";" . $article_number . ";" . $order_product_id . ";" . $partner_type;
                         $result = $return_label;
                         break;
                     case 'ean13':
                     default:
                         if (count($do) > 0) {
                             $do['products_articles_id'] = $do['articles_id'];
                             $result = $this->getEANReturnResult($partner_type, $do);
                         } else {
                             $result = "no data";
                         }
                 }
                 break;
         }
     } else {
         $result = "no data";
     }
     return $result;
 }
Beispiel #13
0
$product = $class_pm->retrieveDetail($do['products_id']);
$article = $do['articles_id'] == 0 ? null : $class_pa->retrieveDetail($do['articles_id']);
$length = $article == null ? $product['pnc']['products_length'] : $article['length'];
$length_text = $length == 0 ? '' : '<tr><td>Product Length</td><td>' . textLength($length) . '</td></tr>';
$group_name = $do['group_name'];
if (count($do) == 0) {
    $content .= '<h3 class="red">Depot Order ' . $order_id . ' is not found in Database';
} else {
    $statusName = statusNameShort();
    $bih_start_date = $do['order_date'];
    $bih_end_date = null;
    if ($do['trans_type'] == 'SP') {
        use_class('jng_sp_orders');
        $class_jo = new jng_sp_orders();
        $itrans = $class_jo->retrieveItemDetail($do['trans_id']);
        $otrans = $class_jo->retrieveDetail($itrans['jng_sp_orders_id']);
        $bih_start_date = $otrans['order_date'];
        $order_source = $class_do->translateOrderSource($do['trans_type'], $do['trans_id'], false, $itrans['jng_sp_orders_id'], $do['products_id']);
    } elseif ($do['trans_type'] == 'JG') {
        use_class('orders');
        $class_o = new orders();
        $itrans = $class_o->retrieveProductDetail($do['trans_id']);
        $otrans = $class_o->retrieveDetail($itrans['orders_id']);
        $bih_start_date = $otrans['date_purchased'];
        $order_source = $class_do->translateOrderSource($do['trans_type'], $do['trans_id'], false, $itrans['orders_id'], $do['products_id']);
    } else {
        $order_source = $class_do->translateOrderSource($do['trans_type'], $do['trans_id'], false, null, $do['products_id']);
    }
    $status_date = null;
    $history = $class_do->retrieveHistory($order_id);
    $history_prod = retrieveProductionHistory('DP', $order_id);