/** * 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; }
/** * 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; }