Пример #1
0
 public function createByOrder(Order $order)
 {
     $modelAttempt = new Attempt();
     $modelAttempt->getLastOrderAttempt($order->order_id, Attempt::CREDIT_TYPE);
     //fb($order);
     $xmlArr = self::$_xmlContainer;
     $xmlArr['inkasso']['auftraggebernummer'] = 1088;
     $xmlArr['inkasso']['erstellungsdatum'] = date("d.m.Y");
     //$xmlArr['inkasso']['schuldner']['kundennummer']='';//2325
     $xmlArr['inkasso']['schuldner']['vorname'] = $order->customer->fname;
     $xmlArr['inkasso']['schuldner']['name'] = $order->customer->lname;
     //$xmlArr['inkasso']['schuldner']['anrede']='';
     //$xmlArr['inkasso']['schuldner']['geburtsdatum']='';
     //$xmlArr['inkasso']['schuldner']['familienstand']='';
     $xmlArr['inkasso']['schuldner']['gewerblich'] = 0;
     $xmlArr['inkasso']['schuldner']['rechtsform'] = 'Privat';
     //??
     //$xmlArr['inkasso']['schuldner']['arbeitgeber']['arbeitgeber-name1']='';
     //$xmlArr['inkasso']['schuldner']['arbeitgeber']['arbeitgeber-strasse']='';
     //$xmlArr['inkasso']['schuldner']['arbeitgeber']['arbeitgeber-plz']='';
     //$xmlArr['inkasso']['schuldner']['arbeitgeber']['arbeitgeber-ort']='';
     $xmlArr['inkasso']['schuldner']['adresse']['strasse'] = $order->address->fullAddress;
     $xmlArr['inkasso']['schuldner']['adresse']['plz'] = $order->address->zip;
     $xmlArr['inkasso']['schuldner']['adresse']['ort'] = $order->address->city;
     $xmlArr['inkasso']['schuldner']['adresse']['land'] = $order->address->country->country_name;
     //$xmlArr['inkasso']['schuldner']['adresse']['zusatz']='';
     $xmlArr['inkasso']['schuldner']['telefon']['telefonnr'] = $order->address->phone;
     $xmlArr['inkasso']['schuldner']['telefon']['typ'] = 'Telefon';
     //or Mobil
     $xmlArr['inkasso']['schuldner']['telefon']['zusatz'] = 'Zuhause';
     //?? Zuhause, Arbeit, Partner, Eltern
     $xmlArr['inkasso']['schuldner']['email']['emailadresse'] = $order->customer->email;
     //$xmlArr['inkasso']['schuldner']['bankverbindung']['kontoinhaber']='';
     $xmlArr['inkasso']['schuldner']['bankverbindung']['kontonr'] = strlen($order->payment->bank_code) <= 10 ? $order->payment->bank_code : null;
     $xmlArr['inkasso']['schuldner']['bankverbindung']['blz'] = strlen($order->payment->bank_code) == 8 ? $order->payment->bank_code : null;
     //$xmlArr['inkasso']['schuldner']['bankverbindung']['bankname']='';//??
     $xmlArr['inkasso']['inkassofall']['bestelldatum'] = HelperFormatted::date_euro_format($order->created);
     $xmlArr['inkasso']['inkassofall']['bestellzeit'] = HelperFormatted::time_format($order->created);
     $xmlArr['inkasso']['inkassofall']['mandatenreferenz'] = $order->campaign->order_url;
     $xmlArr['inkasso']['inkassofall']['zusatzinfo1'] = $order->ip_formatted;
     //$xmlArr['inkasso']['inkassofall']['zusatzinfo2']='';
     //$xmlArr['inkasso']['inkassofall']['zusatzinfo3']='';
     //$xmlArr['inkasso']['inkassofall']['sachbearbeiter']='';
     //$xmlArr['inkasso']['inkassofall']['telsach']='';
     $xmlArr['inkasso']['inkassofall']['forderung']['rechnungsnr'] = $modelAttempt->attempt_id;
     $xmlArr['inkasso']['inkassofall']['forderung']['rechnungstext'] = $modelAttempt->status_note;
     $xmlArr['inkasso']['inkassofall']['forderung']['betrag'] = $modelAttempt->amount * 100;
     $xmlArr['inkasso']['inkassofall']['forderung']['rech-datum'] = HelperFormatted::date_euro_format($modelAttempt->created);
     //$xmlArr['inkasso']['inkassofall']['forderung']['datumerstemahn']='';
     //$xmlArr['inkasso']['inkassofall']['forderung']['mahngebuehrengesamt']='';
     $xmlArr['inkasso']['inkassofall']['forderung']['zins-datum'] = HelperFormatted::date_euro_format($modelAttempt->created);
     //$xmlArr['inkasso']['inkassofall']['forderung']['katalog-nr']='';
     //$xmlArr['inkasso']['inkassofall']['forderung']['ruecklaeufergebuehr']='';
     //$xmlArr['inkasso']['inkassofall']['forderung']['datumruecklaeufergebuehr']='';
     //$xmlArr['inkasso']['inkassofall']['forderung']['waehrung']='';
     $xmlRequest = HelperFormatted::array2xml($xmlArr, false);
     /*
     header("Content-type:text/xml; charset=utf-8");
     echo $xmlRequest;
     die;
     */
     $xmlResponse = $this->request($xmlRequest, self::METHOD_INKASSOFAL_EINTRAGEN);
     $responseModel = simplexml_load_string($xmlResponse);
     $responseModel = (array) $responseModel;
     $responseItem = false;
     echo '<pre>';
     print_r($responseModel);
     echo '</pre>';
     die;
     foreach ($responseModel as $item) {
         ///*
         header("Content-type:text/xml; charset=utf-8");
         echo $item;
         die;
         //*/
         $responseItem = simplexml_load_string($item);
         return;
     }
     if ($responseItem && $responseItem->Code == 'OK') {
     } else {
     }
 }
Пример #2
0
 public static function finalizeOrder($orderID)
 {
     $modelOrder = Order::model()->findByPk((int) $orderID);
     if (!$modelOrder) {
         return false;
     }
     //Check status
     $modelAttempt = new Attempt();
     $modelAttempt->getLastOrderAttempt($modelOrder->order_id, Attempt::DEBIT_TYPE);
     if (in_array($modelAttempt->status, array(Attempt::SUCCESS_STATUS, Attempt::DECLINED_STATUS))) {
         return true;
     }
     $payment = new PaymentAPI();
     $response = $payment->updateStatusAttempt($modelAttempt);
     if ($response->attemptStatus == 'success') {
         $modelOrder->status = Order::STATUS_OK;
         $modelOrder->removeFlags(Order::FlAG_PAY);
         $modelOrder->addFlags(Order::FlAG_PAID);
         $modelOrder->payment_total = $modelAttempt->amount;
         $modelOrder->save();
         Event::setEvents($modelOrder->order_id, 8, false);
         //update recurring_next
         $sql = "UPDATE `orders_products`\n                JOIN `products` USING(`product_id`)\n                SET `orders_products`.`recurring_next` = DATE_ADD(NOW(), INTERVAL `products`.`subscription_days` DAY)\n                WHERE FIND_IN_SET('recurring', `orders_products`.`flags`)>0\n                AND `orders_products`.`order_id`=?i";
         self::$_msql->query($sql, $modelOrder->order_id);
         if ($modelOrder->billing_cycle == 0) {
             // Delete order prospect
             Prospects::deleteProspectOkOrder($modelOrder->order_id);
             Orders::createAttachedOrders($modelOrder);
             // Fire Pixel
             $cloneOrder = clone $modelOrder;
             Pixel::firePixelPb($cloneOrder);
             unset($cloneOrder);
         }
     } elseif ($response->attemptStatus == 'declined') {
         $modelOrder->status = Order::STATUS_ERROR;
         $modelOrder->removeFlags(Order::FlAG_PAY);
         $modelOrder->save();
         // Delete order prospect
         Prospects::deleteProspectOkOrder($modelOrder->order_id);
     }
 }
Пример #3
0
 function printAction()
 {
     $id = AF::get($this->params, 'id', FALSE);
     if (!$id) {
         throw new AFHttpException(0, 'no_id');
     }
     $orderArray = Order::getPrintFields($id);
     if (!$orderArray) {
         throw new AFHttpException(0, 'incorrect_id');
     }
     $orderModel = new Order();
     $orderModel->order_id = $id;
     $lables = $orderModel->attributeLabels();
     $orderInfo = array('full_order_id' => $orderArray['order_id'], 'created' => $orderArray['created'], 'status' => $orderArray['status'], 'campaign_name' => $orderArray['campaign_id'], 'amount_product' => Currency::getSingPrice($orderArray['amount_product'], $orderArray['currency_id']), 'amount_shipping' => Currency::getSingPrice($orderArray['amount_shipping'], $orderArray['currency_id']));
     if ($orderArray['amount_refunded']) {
         $orderInfo['amount_refunded'] = Currency::getSingPrice($orderArray['amount_refunded'], $orderArray['currency_id']);
     }
     $modelAttempt = new Attempt();
     $modelAttempt->getLastOrderAttempt($id, Attempt::DEBIT_TYPE);
     $orderInfo2 = array('payment_total' => Currency::getSingPrice($orderArray['payment_total'], $orderArray['currency_id']), 'AFID' => $orderArray['aff_id'], 'SID' => $orderArray['sid'], 'c1' => $orderArray['c1'], 'c2' => $orderArray['c2'], 'c3' => $orderArray['c3'], 'billing_cycle' => $orderArray['billing_cycle'], 'tracking_number' => $modelAttempt->tracking_number ? $modelAttempt->tracking_number : __('no'));
     $orderInfo2['rma_code'] = $orderArray['rma_code'] ? $orderArray['rma_code'] : __('no');
     $orderInfo2['gateway_name'] = $orderArray['gateway_name'];
     $orderInfo = array_merge($orderInfo, $orderInfo2);
     $customerInfo = array('order_customer_name' => $orderArray['fname'] . ' ' . $orderArray['lname'], 'email' => $orderArray['email'], 'ip' => long2ip($orderArray['ip']), 'phone' => $orderArray['phone'], 'order_address1' => $orderArray['address1'], 'order_address2' => $orderArray['address2'], 'order_city' => $orderArray['city'], 'order_state' => $orderArray['state_name'], 'order_country' => $orderArray['country_name'], 'order_zip' => $orderArray['zip'], 'order_billing_fname' => $orderArray['billing_country_id'] ? $orderArray['billing_fname'] : $orderArray['fname'], 'order_billing_lname' => $orderArray['billing_country_id'] ? $orderArray['billing_lname'] : $orderArray['lname'], 'order_billing_address1' => $orderArray['billing_country_id'] ? $orderArray['billing_address1'] : $orderArray['address1'], 'order_billing_address2' => $orderArray['billing_country_id'] ? $orderArray['billing_address2'] : $orderArray['address2'], 'order_billing_city' => $orderArray['billing_country_id'] ? $orderArray['billing_city'] : $orderArray['city'], 'order_billing_state' => $orderArray['billing_country_id'] ? $orderArray['billing_state_name'] : $orderArray['state_name'], 'order_billing_country' => $orderArray['billing_country_id'] ? $orderArray['billing_country_name'] : $orderArray['country_name'], 'order_billing_zip' => $orderArray['billing_country_id'] ? $orderArray['billing_zip'] : $orderArray['zip']);
     $paymentModel = new Payment();
     $paymentModel->fillFromArray($orderArray);
     $paymentInfo = array('payment_type' => $orderArray['payment_type']);
     if ($orderArray['payment_type'] == 'pn') {
         $addPaymentInfo = array('order_payment_status' => $modelAttempt->status, 'order_cc_number' => $paymentModel->cc_number_formatted, 'order_expiry_date' => $paymentModel->exp_date_formatted, 'order_transaction_id' => $modelAttempt->tracking_number ? $modelAttempt->tracking_number : __('no'));
         $paymentInfo = array_merge($paymentInfo, $addPaymentInfo);
     }
     $orderProducts = $orderModel->getOrderProducts();
     $this->layout = array('layouts', 'main_print');
     $this->render('print', array('order' => $orderArray, 'lables' => $lables, 'orderInfo' => $orderInfo, 'customerInfo' => $customerInfo, 'paymentInfo' => $paymentInfo, 'orderProducts' => $orderProducts));
 }