Пример #1
0
 if ($_POST['me_action'] == 'LOADUNSUBMITTEDORDERS') {
     $orders = $class_payone->newSPorders($jng_sp_id);
     $result = $class_payone->drawListTable($orders);
 } elseif ($_POST['me_action'] == 'AUTHORIZATION') {
     $process_method = 'authorization';
     $order_id = tep_db_prepare_input($_POST['orders_id']);
     $order = $class_jo->retrieveDetail($order_id);
     $items = $class_jo->retrieveItems($order_id);
     $cust = $class_jcust->retrieveDetail(null, $order['jng_sp_id'], $order['customer_billing_id']);
     foreach ($items as $key => $i) {
         if ($class_jo->statusIsCancelled($i['status'])) {
             unset($items[$key]);
         }
     }
     $payi = new payone_invoice();
     $payi->createFromOrderSP($order, $items);
     if (count($order) == 0 || count($items) == 0 || $payi->detail['invoice_complete_status'] != '0') {
         $result = "{$order_id},1";
     } else {
         //--PREPARE PARAMETERS
         $request = array();
         //--STANDARD PARAMETERS
         $request['mid'] = PAYONE_MERCHANT_ID;
         $request['portalid'] = PAYONE_PORTAL_ID;
         $request['key'] = md5(PAYONE_PORTAL_KEY);
         $request['mode'] = PAYONE_MODE;
         $request['request'] = $process_method;
         $request['encoding'] = 'UTF-8';
         //--ORDER INFO
         $request['aid'] = PAYONE_SUBACCOUNT_ID_OTTODE;
         $request['clearingtype'] = PAYONE_PAYMENT_METHOD_INVOICE;
 }
 if (count($items) > 0) {
     $order = $class_jo->retrieveDetail($order_id);
     $display_counter = date('d. M', strtotime($order['order_date'])) . ' - No. ' . sprintf("%003s", $order['daily_count']);
     $shipping_name = $order['customer_shipping_firstname'] . ' ' . $order['customer_shipping_lastname'];
     $shipping_address = $order['customer_shipping_address'];
     $cod_value = 0;
     switch ($order['jng_sp_id']) {
         case '1':
             //NM.DE
             $reference = $order['shipment_id'];
             break;
         case '2':
             //OT.DE
             $invoice = new payone_invoice();
             $invoice->createFromOrderSP($order, $items);
             if ($order['shipment_id'] != $invoice->detail['invoice_no']) {
                 $sda_jo = array('shipment_id' => $invoice->detail['invoice_no']);
                 tep_db_perform('jng_sp_orders', $sda_jo, 'update', "jng_sp_orders_id={$order['jng_sp_orders_id']}");
                 $order['shipment_id'] = $invoice->detail['invoice_no'];
             }
             $reference = $order['shipment_id'];
             $cod_value = $order['payment_method'] == 'CASH_ON_DELIVERY' ? number_format($invoice->detail['invoice_amount'], 2, ',', '') : 0;
             break;
     }
     if ($order['customer_shipping_address2'] != '') {
         $shipping_address .= ' ' . $order['customer_shipping_address2'];
     }
     $cols = array();
     $cols[] = $package['jng_sp_packages_id'];
     $cols[] = $package['package_code'];
         $cust = $class_jcust->retrieveDetail(null, $order['jng_sp_id'], $order['customer_billing_id']);
     }
 } else {
     $order = $class_o->retrieveDetail($order_id, true);
     $items = $class_o->retrieveProducts($order_id, true);
     //            $cust = $class_jcust->retrieveDetail(null, $order['jng_sp_id'], $order['customer_billing_id']);
 }
 //EXCLUDE ITEMS THAT CANCELLED
 foreach ($items as $key => $i) {
     if (!in_array($i['jng_sp_orders_items_id'], $arr_joid)) {
         unset($items[$key]);
     }
 }
 if ($is_sp) {
     if (strtoupper($order["payment_method"]) == strtoupper(PAYMENT_METHOD_PREPAYMENT)) {
         $payi->createFromOrderSP($order, $items, '+1 month');
     } else {
         $payi->createFromOrderSP($order, $items);
     }
 } else {
     if ($order["payment_method"] == PAYMENT_METHOD_BANK_TRANSFER) {
         $payi->createFromOrderJNG($order, $items, '+1 month');
     } else {
         $payi->createFromOrderJNG($order, $items);
     }
 }
 if (count($order) == 0 || count($items) == 0 || $payi->detail['invoice_complete_status'] != 'R') {
     $result = "{$order_id},1";
 } else {
     //--PREPARE PARAMETERS
     $request = array();
}
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})");
        } else {
            $pi_failed_create['sp'][] = $order_id;
            $logger->write("SPO{$order_id} invoice failed created");
        }
    }
} else {
    $logger->write("no orders ready");
}
//SEND ALL UNSUBMITTED VORKASSE AND PREPAYMENT INVOICE TO PAYONE
//$process_method = 'authorization';    #CHANGED TO PREAUTH, TO PROVIDE VORKASSE WHEN THERE'S VOUCHER USED AFTER ORDER SUBMITTED TO PAYONE
$process_method = 'preauthorization';