//GET ORDER DETAIL $order = tep_db_fetch_array($order_result); if ($order_id == '') { $order_id = $order['orders_id']; } //REDIRECT LINK IF AN ORDER IS FOUND BY POST if (!isset($_GET['id'])) { $redirect_link = "Location: ?open=order&id={$order_id}"; if (isset($useopid) && $useopid === true) { $redirect_link .= "&opid=" . $order_code; } header($redirect_link); exit; } $invoice = new payone_invoice(); $invoice->retrieveDetail('J', $order_id); $order_int_comments = $class_o->retrieveComments($order_id); $returns = $class_o->retrieveProductsReturned($order_id); $order_currency = $order['currency']; $order_status = $order['orders_status']; $customer_id = $order['customers_id']; $order_sl_type = ''; $order_sl_icon = ''; if ($order['list_type'] != '') { $crown_img = $class_csl->getTypeSymbol($order['list_type'], $order['customers_id']); $order_sl_icon = $crown_img . ' '; $order_sl_type = $class_csl->getTypeName($order['list_type']); if ($order_sl_type != '') { $order_sl_type = ' (' . $order_sl_type . ')'; } }
function createReturnContainer($return_id, $return_qty, $opid) { use_class('orders'); use_class('payone_invoice'); use_class('minierp_customers'); $class_o = new orders(); $class_pi = new payone_invoice(); $class_cust = new minierp_customers(); $insert_id = ''; $op = $class_o->retrieveProductDetail($opid); $order_id = $op['orders_id']; $order = $class_o->retrieveDetail($order_id, true); $customers_id = $order['customers_id']; $item = $class_o->retrieveProductDetail($opid); $final_price = $item['final_price']; //CHECK WHETHER CUSTOMER USING COUPON DISCOUNT OR NOT (ONLY ON JNG ORDERS) $qcheck_disc = "SELECT c.* FROM `coupon_redeem_track` crt INNER JOIN `coupons` c\n ON crt.`coupon_id` = c.`coupon_id`\n WHERE crt.`order_id` = {$order_id}"; $dbq_disc = tep_db_query($qcheck_disc); if (tep_db_num_rows($dbq_disc) > 0) { $r_disc = tep_db_fetch_array($dbq_disc); $disc = $r_disc['coupon_amount']; if ($disc > 0 && $disc < 1) { $final_price = $final_price - $final_price * $disc; $final_price = ceil($final_price * 100) / 100; //take only 2 digits decimals ex: 21.165 became 21.16 } } $customer = $class_cust->retrieveDetail($customers_id); $customer_bankdata = $class_cust->getBankAccountData($order_id); $class_pi->retrieveDetail("J", $order_id); //ONLY QUEING JUST FOR TRANSACTION THAT HAVE payone_txid (FIRST GET FROM SUBMITTING INVOICE) if ($class_pi->detail['payone_txid'] != '') { $payone_txid = $class_pi->detail['payone_txid']; $payment_method = $order['payment_method']; $data_por = array(); $data_por['return_id'] = $return_id; $data_por['jng_sp_orders_items_id'] = $item['orders_products_id']; $data_por['jng_sp_customers_id'] = $customer['customers_id']; $data_por['amount'] = round($return_qty * ($final_price * 100)); $data_por['txid'] = $payone_txid; $data_por['invoice_id'] = $class_pi->detail['invoice_id']; $data_por['invoice_no'] = $class_pi->detail['invoice_no']; $data_por['id'] = $item['products_model']; $data_por['pr'] = round($final_price * 100); $data_por['no'] = $return_qty; $data_por['de'] = strlen($item['products_name']) > 32 ? substr($item['products_name'], 0, 32) : $item['products_name']; $data_por['va'] = 0; $data_por['payment_method'] = $payment_method; $data_por['currency'] = 'EUR'; if (!is_null($customer_bankdata)) { $data_por['bankcode'] = $customer_bankdata['banktransfer_blz']; $data_por['bankcountry'] = 'DE'; $data_por['bankaccount'] = $customer_bankdata['banktransfer_number']; $data_por['bankaccountholder'] = $customer_bankdata['banktransfer_owner']; } // echo "<pre>";var_dump($data_por); $insert_id = $this->payoneReturnItemContainer($data_por); $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_q = "SELECT SUM(opr.return_qty) AS total" . " FROM orders_products op" . " LEFT JOIN orders_products_return opr" . " ON opr.orders_products_id = op.orders_products_id" . " WHERE op.orders_id={$order_id}" . " AND op.status NOT IN (10, 12)"; $returns_r = tep_db_query($returns_q); $returns = tep_db_fetch_array($returns_r); $returns_total = $returns['total']; if ($items_total == $returns_total) { $amount_paid = $class_pi->detail['invoice_amount_paid']; $total_costs = $order['shipping_costs'] + $order['cod_costs']; if ($order['shipping_costs'] > 0) { // if((($amount_paid*1)==0)||(($amount_paid<>$order['shipping_costs'])&&($amount_paid<>$total_costs))){ if ($amount_paid * 1 == 0 || $amount_paid > $total_costs) { $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) { //HANDLE DOUBLE OR MORE SHIPING RETURN CONTAINER $amount = round($order['shipping_costs'] * 100); $data_por = array(); $data_por['return_id'] = 0; $data_por['jng_sp_orders_items_id'] = 0; $data_por['jng_sp_customers_id'] = $customer['customers_id']; $data_por['amount'] = $amount; $data_por['txid'] = $payone_txid; $data_por['invoice_id'] = $class_pi->detail['invoice_id']; $data_por['invoice_no'] = $class_pi->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'; $insert_id = $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(',', $class_pi->detail['invoice_order_items_id']); if (is_array($oids_arr)) { $new_amount = $class_pi->detail['invoice_amount'] - $return_qty * $final_price; foreach ($oids_arr as $key => $value) { if ($value == $opid) { unset($oids_arr[$key]); } } $oids = implode(',', $oids_arr); if (count($oids_arr) == 0) { //ALL PRODUCTS RETURNED $new_amount = 0; $class_pi->updateCompleteStatus('3'); //INVOICE CANCELLED } tep_db_perform('payone_invoice', array('invoice_amount' => $new_amount, 'invoice_order_items_id' => $oids), 'update', "invoice_id = '" . $class_pi->detail['invoice_id'] . "'"); } } return $insert_id; }
require_once '../functions.php'; require_once '../functions-2.php'; require_once DIR_WS_FUNCTIONS . 'html_output.php'; tep_db_connect(); use_class('jng_sp'); use_class('jng_sp_orders'); use_class('payone_invoice'); $class_sp = new jng_sp(); $class_jo = new jng_sp_orders(); $class_pi = new payone_invoice(); $items_id_returned = array('28801', '28806'); foreach ($items_id_returned as $items_id) { $o_oi = $class_jo->retrieveItemDetail($items_id); $o_ri_arr = $class_jo->retrieveReturnItem($items_id); $o_ri = $o_ri_arr[0]; $class_pi->retrieveDetail("S", $o_oi['jng_sp_orders_id']); //ONLY QUEING JUST FOR TRANSACTION THAT HAVE payone_txid (FIRST GET FROM SUBMITTING INVOICE) if ($class_pi->detail['payone_txid'] != '') { $data_por = array(); $data_por['return_id'] = $o_ri['return_id']; $data_por['invoice_id'] = $o_oi['jng_sp_orders_id']; $data_por['jng_sp_orders_items_id'] = $items_id; $data_por['id'] = $o_oi['article_number']; $data_por['pr'] = intval($o_oi['price'] * 100); $data_por['no'] = $o_ri['return_quantity']; $data_por['de'] = $o_oi['billing_text']; $data_por['va'] = 0; $data_por['amount'] = $data_por['pr'] * $data_por['no']; $payone_txid = $class_pi->detail['payone_txid']; $data_por['txid'] = $payone_txid; $data_por['currency'] = 'EUR';