Changeset View
Changeset View
Standalone View
Standalone View
branches/5.2.x/units/orders/orders_event_handler.php
Show First 20 Lines • Show All 342 Lines • ▼ Show 20 Line(s) | |||||
* | * | ||||
* @param OrdersItem $order | * @param OrdersItem $order | ||||
* @return Array | * @return Array | ||||
*/ | */ | ||||
function ChargeOrder(&$order) | function ChargeOrder(&$order) | ||||
{ | { | ||||
$gw_data = $order->getGatewayData(); | $gw_data = $order->getGatewayData(); | ||||
$this->Application->registerClass( $gw_data['ClassName'], GW_CLASS_PATH.'/'.$gw_data['ClassFile'] ); | /** @var kGWBase $gateway_object */ | ||||
$gateway_object = $this->Application->recallObject( $gw_data['ClassName'] ); | $gateway_object = $this->Application->recallObject($gw_data['ClassName']); | ||||
/* @var $gateway_object kGWBase */ | |||||
$payment_result = $gateway_object->DirectPayment($order->GetFieldValues(), $gw_data['gw_params']); | $payment_result = $gateway_object->DirectPayment($order->GetFieldValues(), $gw_data['gw_params']); | ||||
$sql = 'UPDATE %s SET GWResult1 = %s WHERE %s = %s'; | $sql = 'UPDATE %s SET GWResult1 = %s WHERE %s = %s'; | ||||
$sql = sprintf($sql, $order->TableName, $this->Conn->qstr($gateway_object->getGWResponce()), $order->IDField, $order->GetID() ); | $sql = sprintf($sql, $order->TableName, $this->Conn->qstr($gateway_object->getGWResponce()), $order->IDField, $order->GetID() ); | ||||
$this->Conn->Query($sql); | $this->Conn->Query($sql); | ||||
$order->SetDBField('GWResult1', $gateway_object->getGWResponce() ); | $order->SetDBField('GWResult1', $gateway_object->getGWResponce() ); | ||||
return array('result'=>$payment_result, 'data'=>$gateway_object->parsed_responce, 'gw_data' => $gw_data, 'error_msg'=>$gateway_object->getErrorMsg()); | return array('result'=>$payment_result, 'data'=>$gateway_object->parsed_responce, 'gw_data' => $gw_data, 'error_msg'=>$gateway_object->getErrorMsg()); | ||||
▲ Show 20 Lines • Show All 1733 Lines • ▼ Show 20 Line(s) | |||||
$object->SetDBField('ChargeOnNextApprove', 0); | $object->SetDBField('ChargeOnNextApprove', 0); | ||||
$sql = 'UPDATE '.$object->TableName.' SET ChargeOnNextApprove = 0 WHERE '.$object->IDField.' = '.$object->GetID(); | $sql = 'UPDATE '.$object->TableName.' SET ChargeOnNextApprove = 0 WHERE '.$object->IDField.' = '.$object->GetID(); | ||||
$this->Conn->Query($sql); | $this->Conn->Query($sql); | ||||
} | } | ||||
// charge user for order in case if we user 2step charging (e.g. AUTH_ONLY + PRIOR_AUTH_CAPTURE) | // charge user for order in case if we user 2step charging (e.g. AUTH_ONLY + PRIOR_AUTH_CAPTURE) | ||||
$gw_data = $object->getGatewayData(); | $gw_data = $object->getGatewayData(); | ||||
$this->Application->registerClass( $gw_data['ClassName'], GW_CLASS_PATH.'/'.$gw_data['ClassFile'] ); | /** @var kGWBase $gateway_object */ | ||||
$gateway_object = $this->Application->recallObject( $gw_data['ClassName'] ); | $gateway_object = $this->Application->recallObject($gw_data['ClassName']); | ||||
/* @var $gateway_object kGWBase */ | |||||
$charge_result = $gateway_object->Charge($object->GetFieldValues(), $gw_data['gw_params']); | $charge_result = $gateway_object->Charge($object->GetFieldValues(), $gw_data['gw_params']); | ||||
$sql = 'UPDATE %s SET GWResult2 = %s WHERE %s = %s'; | $sql = 'UPDATE %s SET GWResult2 = %s WHERE %s = %s'; | ||||
$sql = sprintf($sql, $object->TableName, $this->Conn->qstr($gateway_object->getGWResponce()), $object->IDField, $object->GetID() ); | $sql = sprintf($sql, $object->TableName, $this->Conn->qstr($gateway_object->getGWResponce()), $object->IDField, $object->GetID() ); | ||||
$this->Conn->Query($sql); | $this->Conn->Query($sql); | ||||
$object->SetDBField('GWResult2', $gateway_object->getGWResponce() ); | $object->SetDBField('GWResult2', $gateway_object->getGWResponce() ); | ||||
if ($charge_result) { | if ($charge_result) { | ||||
▲ Show 20 Lines • Show All 47 Lines • ▼ Show 20 Line(s) | |||||
if ( ($original_order_status != ORDER_STATUS_INCOMPLETE) && ($event->Name == 'OnMassOrderDeny' || $event->Name == 'OnOrderDeny') ) { | if ( ($original_order_status != ORDER_STATUS_INCOMPLETE) && ($event->Name == 'OnMassOrderDeny' || $event->Name == 'OnOrderDeny') ) { | ||||
$this->Application->emailUser('ORDER.DENY', null, $email_params); | $this->Application->emailUser('ORDER.DENY', null, $email_params); | ||||
// inform payment gateway that order was declined | // inform payment gateway that order was declined | ||||
$gw_data = $object->getGatewayData(); | $gw_data = $object->getGatewayData(); | ||||
if ( $gw_data ) { | if ( $gw_data ) { | ||||
$this->Application->registerClass($gw_data['ClassName'], GW_CLASS_PATH . '/' . $gw_data['ClassFile']); | /** @var kGWBase $gateway_object */ | ||||
$gateway_object = $this->Application->recallObject($gw_data['ClassName']); | $gateway_object = $this->Application->recallObject($gw_data['ClassName']); | ||||
$gateway_object->OrderDeclined($object->GetFieldValues(), $gw_data['gw_params']); | $gateway_object->OrderDeclined($object->GetFieldValues(), $gw_data['gw_params']); | ||||
} | } | ||||
} | } | ||||
// !!! LOOK HERE !!! | // !!! LOOK HERE !!! | ||||
// !!!! no break !!!! here on purpose!!! | // !!!! no break !!!! here on purpose!!! | ||||
case 'OnMassOrderArchive': | case 'OnMassOrderArchive': | ||||
case 'OnOrderArchive': | case 'OnOrderArchive': | ||||
Show All 35 Lines | |||||
$shipping_email = $object->GetDBField('ShippingEmail'); | $shipping_email = $object->GetDBField('ShippingEmail'); | ||||
$email_params['to_email'] = $shipping_email ? $shipping_email : $email_params['_user_email']; | $email_params['to_email'] = $shipping_email ? $shipping_email : $email_params['_user_email']; | ||||
$this->Application->emailUser('ORDER.SHIP', null, $email_params); | $this->Application->emailUser('ORDER.SHIP', null, $email_params); | ||||
// inform payment gateway that order was shipped | // inform payment gateway that order was shipped | ||||
$gw_data = $object->getGatewayData(); | $gw_data = $object->getGatewayData(); | ||||
$this->Application->registerClass($gw_data['ClassName'], GW_CLASS_PATH . '/' . $gw_data['ClassFile']); | /** @var kGWBase $gateway_object */ | ||||
$gateway_object = $this->Application->recallObject($gw_data['ClassName']); | $gateway_object = $this->Application->recallObject($gw_data['ClassName']); | ||||
$gateway_object->OrderShipped($object->GetFieldValues(), $gw_data['gw_params']); | $gateway_object->OrderShipped($object->GetFieldValues(), $gw_data['gw_params']); | ||||
} | } | ||||
else { | else { | ||||
$sqe_errors = $this->Application->RecallVar('sqe_errors'); | $sqe_errors = $this->Application->RecallVar('sqe_errors'); | ||||
$sqe_errors = $sqe_errors ? unserialize($sqe_errors) : Array (); | $sqe_errors = $sqe_errors ? unserialize($sqe_errors) : Array (); | ||||
$sqe_errors[ $object->GetField('OrderNumber') ] = $ret['error_description']; | $sqe_errors[ $object->GetField('OrderNumber') ] = $ret['error_description']; | ||||
$this->Application->StoreVar('sqe_errors', serialize($sqe_errors)); | $this->Application->StoreVar('sqe_errors', serialize($sqe_errors)); | ||||
▲ Show 20 Lines • Show All 1862 Lines • Show Last 20 Lines |