Ejemplo n.º 1
0
    $total_products_picked += $oi['order_quantity'];
    $prev_oid = $oid;
}
//GET FOR JnG ORDERS
if (!$PRINT_RETAILS && count($orders) < $trolley_capacity) {
    $jg_orders = $class_o->retrieveOrdersItemsFromDepo($inhh_status, WAREHOUSE_ID_PRODUCTS_HAMBURG, '', $filter_ir_jg);
    $prev_oid = '';
    foreach ($jg_orders as $oiid => $oi) {
        $oid = 'JGO' . $oi['orders_id'];
        $ean_id = $oi['products_id'] . '-' . $oi['products_articles_id'];
        $oi['order_quantity'] = intval($oi['products_quantity']);
        if ($prev_oid != $oid && count($orders) >= $trolley_capacity) {
            break;
        }
        if (!isset($ean_collection[$ean_id])) {
            $ean_collection[$ean_id] = $class_ean->getEAN($oi['products_id'], $oi['products_articles_id']);
        }
        $oi['products_ean'] = $ean_collection[$ean_id];
        if (!isset($orders[$oid])) {
            $orders[$oid] = array();
            $orders_barcode[$oid] = 'JG-' . $oiid;
        }
        if (!isset($bin_location_qty_collection[$oi['bin_code']])) {
            $bin_location_qty_collection[$oi['bin_code']] = 0;
        }
        $bin_location_qty_collection[$oi['bin_code']] += $oi['order_quantity'];
        if (!isset($pick_from_racks[$oi['bin_code']])) {
            $pick_from_racks[$oi['bin_code']] = array();
        }
        if (!isset($pick_from_racks[$oi['bin_code']][$oid])) {
            $pick_from_racks[$oi['bin_code']][$oid] = array();
                    $label_numtag = $jngsp_prefix_num == '' ? "-" : $jngsp_prefix_num;
                    $label_auftragsnr = $o_order_no == '' ? "-" : $o_order_no;
                    $label_lieferscheinnr = $o_shipment_id;
                    $return_label = $label_date . ";" . $o_daily_count . ";" . $label_order_seq . ";" . $label_numtag . ";" . $label_cust_name;
                    $return_label .= ";" . $label_auftragsnr . ";" . $label_lieferscheinnr . ";" . oi_order_qty . ";" . $oi_article_number;
                    echo $return_label;
                    break;
                case 'ean13':
                    if (count($oi) > 0) {
                        use_class('products_ean');
                        $o_pean = new products_ean();
                        $products_id = $oi['products_id'];
                        $cats = $o_jngspo->getCategories($products_id);
                        $oi_product_id = $oi["products_id"];
                        $oi_product_article_id = $oi["products_articles_id"];
                        $ean = $oi_product_article_id != '' ? $o_pean->getEAN($oi_product_id, $oi_product_article_id) : $o_pean->getEAN($oi_product_id);
                        if ($ean != '') {
                            $return_label = $ean . ";" . $oi['price'] . ";" . $cats['categories_name'];
                            echo $ean;
                        } else {
                            echo "no data";
                        }
                    } else {
                        echo "no data";
                    }
                    break;
            }
            break;
    }
    tep_db_close();
} else {
Ejemplo n.º 3
0
                 }
                 $result .= printPackageTip('P', '', '', $sp_name, $sp_class);
             } else {
                 //If product is already sent
                 $errinfo = sprintf($template_error_status, $item_status[$item['status']]);
                 $result .= printPackageTip('E', $box_date, $errinfo, $sp_name);
             }
         }
     }
 } elseif ($type == 'JG') {
     //FOR JULIE & GRACE ORDER
     //$sp_name = 'J&G';
     $sp_name = 'Orders';
     $sp_class = 'pink';
     $item = $class_o->retrieveProductDetail($id);
     $item['products_ean'] = $class_ean->getEAN($item['products_id'], $item['products_articles_id']);
     if (count($item) == 0) {
         //If no product found
         $errinfo = $template_error_not_found;
         $result .= printPackageTip('E', $box_date, $errinfo, $sp_name, $sp_class);
     } 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;
                 $result .= printPackageTip('E', $box_date, $errinfo, $sp_name, $sp_class);
             } elseif ($item['status'] == $old_status) {
                 //If product status is finish
     $ean = $item['products_ean'];
     $qty = $item['order_quantity'];
     $ean_printed = $item['ean_printed'];
     $barcode_id = "SP-{$oiid}";
     break;
 case 'JG':
     use_class('orders');
     $class_o = new orders();
     $item = $class_o->retrieveProductDetail($oiid);
     if ($counter_on || is_null($item['ean_printed']) || $item['ean_printed'] == '') {
         $class_o->printConfirmAdd($oiid);
         $class_o->eanPrintedSet($order['orders_id']);
     }
     $pid = $item['products_id'];
     $aid = $item['products_articles_id'];
     $ean = $class_ean->getEAN($pid, $aid);
     $qty = $item['products_quantity'];
     $ean_printed = $item['ean_printed'];
     $barcode_id = "JG-{$oiid}";
     break;
 case 'DP':
     use_class('depot_orders');
     $class_do = new depot_orders();
     $item = $class_do->retrieveDetail($oiid);
     if ($counter_on || is_null($item['ean_printed']) || $item['ean_printed'] == '') {
         $class_do->printConfirmAdd($oiid);
         $class_do->eanPrintedSet($oiid);
     }
     $pid = $item['products_id'];
     $aid = $item['articles_id'];
     $ean = $item['products_ean'];
Ejemplo n.º 5
0
     for ($x = 1; $x <= $total_qty; $x++) {
         $items_id = $class_do->newOrder($segments_id, $products_id, $articles_id, $products_ean, 1, null, '', depot_orders::MANUAL_REFILL_LTF, depot_orders::GROUP_NAME_LTF_INTERNAL);
         $ids_created[] = $items_id;
     }
     $ajaxResult = array();
     $ajaxResult['total_qty'] = $total_qty;
     $ajaxResult['ids_created'] = implode(',', $ids_created);
     ajaxReturn($ajaxResult);
     exit;
 } elseif ($_POST['me_action'] == "CREATEORDER") {
     $segments_id = tep_db_prepare_input($_POST['segments_id']);
     $products_id = tep_db_prepare_input($_POST['products_id']);
     $articles_id = tep_db_prepare_input($_POST['articles_id']);
     $order_qty = tep_db_prepare_input($_POST['order_qty']);
     $group_name = tep_db_prepare_input($_POST['group_name']);
     $product_ean = $class_ean->getEAN($products_id, $articles_id);
     for ($x = 1; $x <= $order_qty; $x++) {
         $class_do->newOrder($segments_id, $products_id, $articles_id, $product_ean, 1, null, null, null, $group_name);
     }
     $ajaxResult = array();
     $ajaxResult['qty_id'] = 'qty-' . $products_id . '-' . $articles_id;
     $ajaxResult['qty_order'] = $order_qty;
     ajaxReturn($ajaxResult);
 } elseif ($_POST['me_action'] == 'LOADDAILYLTFORDERS') {
     $year = date('Y');
     $period_start = "{$year}-01-01 00:00:00";
     $period_end = "{$year}-12-31 23:59:59";
     $dl_icon_template = '<span id="%s" class="ui-icon ui-icon-disk pointer" style="float:right;" title="Click here to download PO for this order"></span>';
     $trans_id_filter = depot_orders::MANUAL_REFILL_OUTSOURCED . ',' . depot_orders::MANUAL_REFILL_LTF;
     $q = "SELECT SUM(do.quantity) AS qty, DATE(do.order_date) AS daily_period" . ", IFNULL(doo.suppliers_id, 0) AS suppliers_id" . ", IFNULL(es.suppliers_name, 'Internal') AS suppliers_name" . " FROM depot_orders do" . " LEFT JOIN depot_orders_outsourced doo ON doo.depot_orders_id=do.depot_orders_id" . " LEFT JOIN elements_suppliers es ON es.elements_suppliers_id=doo.suppliers_id" . " WHERE do.order_date >= '{$period_start}' AND do.order_date <= '{$period_end}'" . " AND do.trans_type='' AND do.trans_id IN ({$trans_id_filter})" . " AND do.status NOT IN (10,12)" . " GROUP BY daily_period, suppliers_id" . " ORDER BY daily_period, suppliers_id";
     $r = tep_db_query($q);
function processReturnOld($sp_type, $order_id, $ean_code, $reason = '0')
{
    global $class_jo;
    global $class_o;
    use_class('payone');
    use_class('products_minierp');
    $class_payone = new payone();
    $class_pm = new products_minierp();
    $return_allowed_status = array('9', '11', '16', '20');
    $is_best_product = '';
    $order_product_id = '';
    $product_barcode = '';
    $status = 'RETURNNOTALLOWED';
    if (strtolower($sp_type) == 's') {
        $items = $class_jo->retrieveItems($order_id);
        foreach ($items as $key => $item) {
            $items_id = $item['jng_sp_orders_items_id'];
            $product_code = $item['products_model'];
            $product_name = $item['products_name'];
            //            echo $item['products_ean']." | ".$item['status']."<br/>";
            if ($item['products_ean'] == $ean_code && in_array($item['status'], $return_allowed_status)) {
                $products_id = $item['products_id'];
                //                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{
                $returnable = $item['order_quantity'];
                $return_data = $class_jo->retrieveReturnItem($items_id);
                //                    echo "<pre>";var_dump($return_data);
                if (!is_null($return_data)) {
                    foreach ($return_data as $rd) {
                        $returnable -= $rd['return_quantity'];
                    }
                }
                if ($returnable > 0) {
                    $order_product_id = $items_id;
                    $product_barcode = "SP-{$order_product_id}";
                    $is_best_product = $class_pm->isBestProduct($item['products_id']);
                    $status = $is_best_product ? 'MCBINORRETURN' : 'MCRETURNTOBALI';
                    //CREATE RETURN
                    $return_date = date('Y-m-d H:i:s');
                    $return_qty = 1;
                    $comment_customer = '';
                    $comment_jng = '';
                    $shipping_paid = tep_db_prepare_input($_POST['shipping_paid']);
                    $return_id = $class_jo->returnItem($items_id, $return_date, $return_qty, $reason, $comment_customer, $comment_jng, $shipping_paid);
                    //CREATE PAYONE RETURN
                    //                        $return_id = '123';
                    if ($return_id != '') {
                        $class_payone->createReturnContainerSP($return_id, $return_qty, $items_id);
                        $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') {
        use_class('products_ean');
        $class_pean = new products_ean();
        $items = $class_o->retrieveProducts($order_id);
        foreach ($items as $key => $item) {
            $ean = $class_pean->getEAN($item['products_id'], $item['products_articles_id']);
            $opid = $item['orders_products_id'];
            $product_code = $item['products_model'];
            $product_name = $item['products_name'];
            //            echo $ean." | ".$item['status']."<br/>";
            if ($ean == $ean_code && in_array($item['status'], $return_allowed_status)) {
                $products_id = $item['products_id'];
                $existing_return = $class_o->productReturnTotalQty($opid);
                if ($existing_return < $item['products_quantity']) {
                    $order_product_id = $opid;
                    $product_barcode = "JG-{$order_product_id}";
                    $is_best_product = $class_pm->isBestProduct($item['products_id']);
                    $status = $is_best_product ? 'MCBINORRETURN' : 'MCRETURNTOBALI';
                    //CREATE RETURN
                    $opid = $item['orders_products_id'];
                    $return_date = date('Y-m-d H:i:s');
                    $return_qty = 1;
                    $return_type = 'C';
                    $return_status = '0';
                    $return_comment = '';
                    $product_received = 1;
                    $return_id = $class_o->addReturnProduct($opid, $return_date, $return_qty, $return_type, $return_status, $return_comment, $product_received);
                    //CREATE PAYONE RETURN
                    //                    $return_id = '123';
                    if ($return_id != '') {
                        $class_payone->createReturnContainer($return_id, $return_qty, $opid);
                        $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['eancode'] = $ean_code;
    if ($products_id != '') {
        $result['product_id'] = $products_id;
        $qp = "SELECT p.*, pd.products_name FROM products p INNER JOIN products_description pd ON p.products_id = pd.products_id\n                WHERE p.products_id = {$products_id} AND pd.language_id = 2";
        $dbqp = tep_db_query($qp);
        $rp = tep_db_fetch_array($dbqp);
        $result['product_code'] = $rp['products_model'];
        $result['product_name'] = $rp['products_name'];
        $result['product_image'] = webImageSource($rp['products_image'], '80');
        //'http://www.julie-grace.de/images/imagecache/500x500_03601033.jpg';
    }
    $result['returnable'] = $returnable;
    $result['status'] = $status;
    return $result;
}
Ejemplo n.º 7
0
     echo utf8_encode($result);
     exit;
 } elseif ($_POST['me_action'] == 'SAVELENGTHS') {
     use_class('products_ean');
     $class_ean = new products_ean();
     $products_id = tep_db_prepare_input($_POST['products_id']);
     $def_length = tep_db_prepare_input($_POST['def_length']);
     $add_length = tep_db_prepare_input($_POST['add_length']);
     $upd_length = tep_db_prepare_input($_POST['upd_length']);
     $class_pm->saveLength($products_id, $def_length, $add_length);
     if (is_array($upd_length) && count($upd_length) > 0) {
         foreach ($upd_length as $paid => $l) {
             if ($l > 0 && $l != 'NaN') {
                 $class_pa->update($paid, 0, 0, array('length' => $l), true);
             } else {
                 $a_ean = $class_ean->getEAN($products_id, $paid);
                 if ($a_ean != '') {
                     $class_ean->setAsFree($a_ean);
                 }
                 $class_pa->remove($paid, true);
             }
         }
     }
     //$result = drawLengthsForm($products_id);
     $result = 'UPDATED';
     echo utf8_encode($result);
     exit;
     // TODO: remove this after freetext switch to attach
     //    } elseif($_POST['me_action']=='SAVEMANPI') {
     //        $products_id = tep_db_prepare_input($_POST['products_id']);
     //        $manual_pi = tep_db_prepare_input($_POST['manpi']);
    $q = "SELECT b.*, ps.`products_id`, ps.`stock`, ps.`articles_id`, p.`products_image`, p.`products_model` FROM bins b INNER JOIN products_stock ps";
    $q .= " ON b.`products_stock_id` = ps.`products_stock_id` AND ps.`jng_warehouses_id` = {$segment['warehouses_id']}";
    $q .= " LEFT JOIN products_log pl ON pl.`products_id` = ps.`products_id`";
    $q .= " LEFT JOIN products p ON p.`products_id` = ps.`products_id`";
    $q .= " LEFT OUTER JOIN `jng_sp_orders_items` joi ON joi.`products_id` = pl.`products_id` AND joi.`status` IN (1, 8)";
    $q .= " WHERE (pl.`{$log_column}` = 0 OR pl.`products_id` IS NULL)";
    $q .= " AND joi.`jng_sp_orders_items_id` IS NULL";
    $q .= " AND b.`bin_segments_id` = {$segment_id}";
    $q .= " ORDER BY b.code";
} elseif ($segment['used_for'] == 'E') {
}
$clean_picklists = array();
$dbq = tep_db_query($q);
if (tep_db_num_rows($dbq) > 0) {
    while ($row = tep_db_fetch_array($dbq)) {
        $products_ean = $class_ean->getEAN($row['products_id'], $row['articles_id']);
        $row['products_ean'] = $products_ean;
        $clean_picklists[$row['code']] = $row;
    }
    class PDF extends FPDF
    {
        var $header_date;
        //Page header
        function Header()
        {
        }
        //Page footer
        function Footer()
        {
            if ($this->header_date == '') {
                $this->header_date = date('d.m.Y H:i');
Ejemplo n.º 9
0
        if (!is_null($order['logistic_process'])) {
            $lp_time = date('d.m.Y H:i:s', strtotime($order['logistic_process']));
            $result['status'] = 'ERROR';
            $result['message'] = 'already processed on ' . $lp_time;
            $result['message'] .= "\n\n" . 'Please check order detail in Manobo for detail information about preventing double sendings!';
        } else {
            if ($item['status'] == $inhh_status || statusIsCancelled($item['status'])) {
                $products_found = true;
                $items = $class_o->retrieveProducts($item['orders_id']);
                foreach ($items as $i) {
                    if ($i['status'] == $inhh_status) {
                        if (statusIsCancelled($item['status']) && $barcode_new == '') {
                            $barcode_new = 'JG-' . $i['orders_products_id'];
                        }
                        $qty = intval($i['products_quantity']);
                        $ean_code = $class_ean->getEAN($i['products_id'], $i['products_articles_id']);
                        for ($x = 1; $x <= $qty; $x++) {
                            $products_ean[] = $ean_code;
                        }
                    }
                }
            } else {
                $result['status'] = 'ERROR';
                $result['message'] = $statusName[$item['status']];
            }
        }
    } else {
        $result['status'] = 'ERROR';
        $result['message'] = 'Order not found, please rescan!';
    }
} elseif ($type_length == 5 || $type == 'AM' || $type == 'BV' || $type == 'OT') {
Ejemplo n.º 10
0
 function transferFromRealOrder($segments_id, $type, $item_id)
 {
     $item = $this->retrieveDetailTransmigran($type, $item_id);
     if (is_null($item)) {
         $order_date = date('Y-m-d H:i:s');
         if ($type == 'JG') {
             use_class('orders');
             $class_o = new orders();
             use_class('products_ean');
             $class_ean = new products_ean();
             $i = $class_o->retrieveProductDetail($item_id);
             $products_ean = $class_ean->getEAN($i['products_id'], $i['products_articles_id']);
             $this->newOrder($segments_id, $i['products_id'], $i['products_articles_id'], $products_ean, $i['products_quantity'], $order_date, $type, $item_id);
         } elseif ($type == 'SP') {
             use_class('jng_sp_orders');
             $class_jo = new jng_sp_orders();
             $i = $class_jo->retrieveItemDetail($item_id);
             $this->newOrder($segments_id, $i['products_id'], $i['products_articles_id'], $i['products_ean'], $i['order_quantity'], $order_date, $type, $item_id);
         }
         $stock_status = $i['stock_status'] == 'D' ? $i['status'] < 4 ? '0' : 'P' : $i['stock_status'];
         $item = $this->retrieveDetailTransmigran($type, $item_id);
         $this->updateStockStatus($item['depot_orders_id'], $stock_status);
     }
     return $item;
 }
Ejemplo n.º 11
0
 function saveLength($products_id, $def_length, $add_length)
 {
     use_class('products_articles');
     use_class('products_ean');
     $class_pa = new products_articles();
     $class_ean = new products_ean();
     $sda = array('products_length' => $def_length);
     $product = $this->retrieveDetail($products_id, 'cat,pnc');
     if (!is_array($product['pnc'])) {
         $sda['products_id'] = $products_id;
         tep_db_perform('products_non_configurator', $sda);
     } else {
         tep_db_perform('products_non_configurator', $sda, 'update', "products_id={$products_id}");
     }
     $sda = array('length' => $def_length);
     tep_db_perform('jng_sp_catalog', $sda, 'update', "products_id={$products_id}");
     $p_ean = $class_ean->getEAN($products_id);
     if ($p_ean == '') {
         $class_ean->attachToProduct($products_id);
     }
     if (is_array($add_length) && count($add_length) > 0) {
         foreach ($add_length as $l) {
             $paid = $class_pa->add($products_id, 0, 0, array('length' => $l), true);
             $class_ean->attactToArticle($paid);
         }
     }
 }
Ejemplo n.º 12
0
 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;
 }
 function amazonVDTemplateXML($xml_type, $data_type, $data)
 {
     $xml_templ = '';
     if ($xml_type == 'variations') {
         $ean = $data_type == 'P' ? '' : $data['EAN'];
         $protype = $data_type == 'P' ? $data['ProductTypeName'] : '';
         $vartype = $data_type == 'P' ? $data['VariationThemeID'] : '';
         $ringsize = $data_type == 'P' ? '' : $data['RingSize'];
         $chainlen = $data_type == 'P' ? '' : $data['ItemDisplayLength'];
         $eannames = $data_type == 'P' ? $data['ParentName'] : $data['ChildName'];
         $eancodes = $data_type == 'P' ? $data['ParentCode'] : $data['ChildCode'];
         $xml_templ = "\n" . '   <Row>' . "\n";
         $xml_templ .= '    ' . amazonVDXMLCell($data_type);
         $xml_templ .= '    ' . amazonVDXMLCell($ean);
         $xml_templ .= '    ' . amazonVDXMLCell($protype);
         $xml_templ .= '    ' . amazonVDXMLCell($vartype);
         //$xml_templ .= '    '.amazonVDXMLCell('');
         $xml_templ .= '    ' . amazonVDXMLCell($ringsize);
         $xml_templ .= '    ' . amazonVDXMLCell($chainlen);
         $xml_templ .= '    ' . amazonVDXMLCell($eannames);
         $xml_templ .= '    ' . amazonVDXMLCell($eancodes);
         $xml_templ .= '    ' . amazonVDXMLCell($data['BrandName']);
         $xml_templ .= '    </Row>';
     } elseif ($xml_type == 'descriptions') {
         $xml_templ = "\n" . '   <Row>' . "\n";
         $xml_templ .= '    ' . amazonVDXMLCell($data_type);
         $xml_templ .= '    ' . amazonVDXMLCell('');
         $xml_templ .= '    ' . amazonVDXMLCell($data);
         $xml_templ .= '    </Row>';
     } elseif ($xml_type == 'accessories') {
         use_class('products_ean');
         $class_pean = new products_ean();
         foreach ($data as $acc_pid) {
             $xml_templ = "\n" . '   <Row>' . "\n";
             $xml_templ .= '    ' . amazonVDXMLCell($data_type);
             $xml_templ .= '    ' . amazonVDXMLCell($class_pean->getEAN($acc_pid['links_id']));
             $xml_templ .= '    </Row>';
         }
     }
     return $xml_templ;
 }
function getReturnedProducts($sp_type, $order_id)
{
    $result = array();
    $returns = array();
    if (strtolower($sp_type) == 's') {
        //        $ret_query  = "SELECT joi.jng_sp_orders_items_id AS order_product_id, p.products_id, p.products_image, p.products_model, p.products_ean, pd.products_name";
        //        $ret_query .= " FROM jng_sp_orders jo";
        //        $ret_query .= " LEFT JOIN jng_sp sp ON sp.jng_sp_id=jo.jng_sp_id";
        //        $ret_query .= " LEFT JOIN jng_sp_orders_items joi ON joi.jng_sp_orders_id=jo.jng_sp_orders_id";
        //        $ret_query .= " LEFT JOIN products p ON p.products_id=joi.products_id";
        //        $ret_query .= " LEFT JOIN products_description pd ON pd.products_id = p.products_id";
        //        $ret_query .= " WHERE jo.jng_sp_orders_id = $order_id AND joi.status IN (9,11) AND pd.language_id = 2";
        //        $ret_query .= " ORDER BY jo.order_date DESC, jo.jng_sp_orders_id DESC, joi.order_item_count ASC";
        $ret_query = "SELECT joi.jng_sp_orders_items_id AS order_product_id, joi.order_quantity AS qty_order, p.products_id, p.products_image, p.products_model, joi.products_ean, pd.products_name";
        $ret_query .= " FROM jng_sp_orders_items joi";
        $ret_query .= " LEFT JOIN products p ON p.products_id=joi.products_id";
        $ret_query .= " LEFT JOIN products_description pd ON pd.products_id = p.products_id";
        $ret_query .= " WHERE joi.jng_sp_orders_id = {$order_id} AND joi.status IN (9,11,16,17,18,19,20,21) AND pd.language_id = 2";
        $ret_query .= " ORDER BY joi.jng_sp_orders_items_id";
        $ret_result = tep_db_query($ret_query);
        while ($row = tep_db_fetch_array($ret_result)) {
            $qty_order = 0;
            $total_return = 0;
            $joi_id = $row['order_product_id'];
            $qty_order = $row['qty_order'];
            $c_ret = tep_db_query("SELECT COUNT(*) AS total_return FROM jng_sp_orders_items_return WHERE jng_sp_orders_items_id = {$joi_id}");
            $r_ret = tep_db_fetch_array($c_ret);
            $total_return = $r_ret['total_return'];
            if ($qty_order > $total_return) {
                $image = webImageSource($row['products_image'], '80');
                //'http://www.julie-grace.de/images/imagecache/500x500_03601033.jpg';
                $returns[] = $joi_id . "|" . $image . "|" . $row['products_id'] . " / " . $row['products_model'] . "\n" . $row['products_name'] . "|" . $row['products_ean'] . "|" . $sp_type . "|" . $order_id;
            }
        }
    } elseif (strtolower($sp_type) == 'j') {
        use_class('products_ean');
        $class_pean = new products_ean();
        //        $ret_query  = "SELECT op.orders_products_id AS order_product_id, p.products_id, p.products_image, p.products_model, p.products_ean, pd.products_name";
        //        $ret_query .= " FROM orders_products op";
        //        $ret_query .= " LEFT JOIN orders o ON o.orders_id=op.orders_id";
        //        $ret_query .= " LEFT JOIN products p ON p.products_id=op.products_id";
        //        $ret_query .= " LEFT JOIN products_description pd ON pd.products_id = p.products_id";
        //        $ret_query .= " WHERE o.orders_id = $order_id AND op.status>0 AND op.status IN (9,11) AND pd.language_id = 2";
        //        $ret_query .= " ORDER BY o.date_purchased ASC, o.orders_id ASC, op.order_item_count";
        $ret_query = "SELECT op.orders_products_id AS order_product_id, op.products_articles_id, op.products_quantity AS qty_order, p.products_id, p.products_image, p.products_model, pd.products_name";
        $ret_query .= " FROM orders_products op";
        $ret_query .= " LEFT JOIN orders o ON o.orders_id=op.orders_id";
        $ret_query .= " LEFT JOIN products p ON p.products_id=op.products_id";
        $ret_query .= " LEFT JOIN products_description pd ON pd.products_id = p.products_id";
        $ret_query .= " WHERE op.orders_id = {$order_id} AND op.status>0 AND op.status IN (9,11,16,17,18,19,20,21) AND pd.language_id = 2";
        $ret_query .= " ORDER BY op.orders_products_id";
        $ret_result = tep_db_query($ret_query);
        while ($row = tep_db_fetch_array($ret_result)) {
            $qty_order = 0;
            $total_return = 0;
            $op_id = $row['order_product_id'];
            $article_id = $row['products_articles_id'] != '' ? $row['products_articles_id'] : null;
            $ean = $class_pean->getEAN($row['products_id'], $article_id);
            $qty_order = $row['qty_order'];
            $c_ret = tep_db_query("SELECT COUNT(*) AS total_return FROM orders_products_return WHERE orders_products_id = {$op_id}");
            $r_ret = tep_db_fetch_array($c_ret);
            $total_return = $r_ret['total_return'];
            if ($qty_order > $total_return) {
                $image = webImageSource($row['products_image'], '80');
                //'http://www.julie-grace.de/images/imagecache/500x500_03601033.jpg';
                $returns[] = $row['order_product_id'] . "|" . $image . "|" . $row['products_id'] . " / " . $row['products_model'] . "\n " . $row['products_name'] . "|" . $ean . "|" . $sp_type . "|" . $order_id;
            }
        }
    }
    $result['returns'] = $returns;
    return $result;
}