/**
  * Creates payments
  *
  * @param array $aPayments
  *
  * @return array of payment id's
  */
 protected function _setPayments($aPayments)
 {
     if (empty($aPayments)) {
         return false;
     }
     $aPay = array();
     foreach ($aPayments as $iKey => $aPayment) {
         // add discounts
         $oPayment = new oxPayment();
         if (isset($aPayment['oxid'])) {
             $oPayment->setId($aPayment['oxid']);
         }
         foreach ($aPayment as $sKey => $mxValue) {
             if (!is_array($mxValue)) {
                 $sField = "oxpayments__" . $sKey;
                 $oPayment->{$sField} = new oxField("{$mxValue}");
             }
         }
         $oPayment->save();
         $aPay[] = $oPayment->getId();
     }
     return $aPay;
 }
Exemplo n.º 2
0
 /**
  * Set payment model duplicated fields values from array.
  * Makes sure, that field is in the array.
  * For amount type field validates if value is correct.
  *
  * @param OxpsPaymorrowOxPayment|oxPayment $oPayment
  * @param array                            $aParams
  *
  * @return OxpsPaymorrowOxPayment|oxPayment
  */
 protected function _setDuplicatedFields($oPayment, $aParams)
 {
     $aDuplicatedFields = (array) $this->_aDuplicatedPaymentFields;
     foreach ($aDuplicatedFields as $sFieldName => $sType) {
         $sField = sprintf('%s__%s', $oPayment->getCoreTableName(), $sFieldName);
         if (!isset($aParams[$sField]) and $sFieldName != 'oxchecked') {
             continue;
         }
         $this->_setDuplicatedField($oPayment, $sFieldName, $sType, $aParams, $sField);
     }
     return $oPayment;
 }