Index: branches/5.2.x/units/orders/orders_event_handler.php =================================================================== diff -u -N -r14812 -r14813 --- branches/5.2.x/units/orders/orders_event_handler.php (.../orders_event_handler.php) (revision 14812) +++ branches/5.2.x/units/orders/orders_event_handler.php (.../orders_event_handler.php) (revision 14813) @@ -1,6 +1,6 @@ Application->isAdminUser) { - return true; + return ; } else { $event->setRedirectParams(Array('opener' => 's'), true); @@ -675,7 +675,7 @@ else { // strange: recalculate total amount on error $object =& $event->getObject(); - /* @var $object kDBItem */ + /* @var $object OrdersItem */ $object->SetDBField('TotalAmount', $object->getTotalAmount()); } @@ -1428,10 +1428,10 @@ if ( $check_cc && ($field_values['PaymentType'] == $order->GetDBField('PaymentType')) ) { // cc check required AND payment type was not changed during SUBMIT if ( $this->Application->isAdminUser ) { - $req_fields = Array ('PaymentCardType', 'PaymentAccount', 'PaymentNameOnCard', 'PaymentCCExpDate'); + $req_fields = Array (/*'PaymentCardType',*/ 'PaymentAccount', /*'PaymentNameOnCard',*/ 'PaymentCCExpDate'); } else { - $req_fields = Array ('PaymentCardType', 'PaymentAccount', 'PaymentNameOnCard', 'PaymentCCExpDate', 'PaymentCVV2'); + $req_fields = Array (/*'PaymentCardType',*/ 'PaymentAccount', /*'PaymentNameOnCard',*/ 'PaymentCCExpDate', 'PaymentCVV2'); } $order->setRequired($req_fields); @@ -2313,6 +2313,21 @@ $this->RecalculateProcessingFee($event); $this->UpdateShippingTotal($event); $this->RecalculateGift($event); + + // guess fields from "One Step Checkout" form + if ( $object->GetDBField('PaymentAccount') ) { + $order_helper =& $this->Application->recallObject('OrderHelper'); + /* @var $order_helper OrderHelper */ + + $object->SetDBField('PaymentCardType', $order_helper->getCreditCartType($object->GetDBField('PaymentAccount'))); + } + else { + $object->SetDBField('PaymentCardType', ''); + } + + if ( !$object->GetDBField('PaymentNameOnCard') ) { + $object->SetDBField('PaymentNameOnCard', $object->GetDBField('BillingTo')); + } } /**