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 { } }
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); } }
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)); }