Exemplo n.º 1
0
     // Pay system does not changed
     $resolvedPaySystemID = $paySystemID;
 } elseif (!empty($paySystems)) {
     // Take first pay system
     $resolvedPaySystemID = array_shift(array_keys($paySystems));
 }
 $arFields = array('ID' => $ID, 'PRODUCT_ROWS' => $productRows, 'PAY_SYSTEM_ID' => $resolvedPaySystemID, 'PERSON_TYPE_ID' => $resolvedPersonTypeID);
 $properties = CCrmInvoice::GetProperties($ID, $resolvedPersonTypeID);
 if (!is_array($properties)) {
     $properties = array();
 }
 if (isset($data['LOCATION_ID']) && !isset($data['LOC_CITY'])) {
     //HACK: see CCrmInvoice::ParsePropertiesValuesFromPost
     $data['LOC_CITY'] = $data['LOCATION_ID'];
 }
 $propertyValues = CCrmInvoice::ParsePropertiesValuesFromPost($resolvedPersonTypeID, $data, $properties);
 if (isset($propertyValues['PROPS_VALUES']) && isset($propertyValues['PROPS_INDEXES'])) {
     $arFields['INVOICE_PROPERTIES'] = $propertyValues['PROPS_VALUES'];
     foreach ($propertyValues['PROPS_INDEXES'] as $name => $index) {
         if (!isset($arFields[$name])) {
             $arFields[$name] = $propertyValues['PROPS_VALUES'][$index];
         }
     }
 }
 $payerInfo = '';
 $payerRequisites = array();
 if ($enablePayerInfo) {
     CCrmInvoice::__RewritePayerInfo($companyID, $contactID, $properties);
     $payerInfo = CCrmInvoice::__MakePayerInfoString($properties);
     if ($resolvedPersonTypeID > 0) {
         $payerRequisites = CCrmMobileHelper::PrepareInvoiceClientRequisites($resolvedPersonTypeID, $properties);
Exemplo n.º 2
0
 $productRowSettingsFieldName = $productDataFieldName . '_SETTINGS';
 if (array_key_exists($productRowSettingsFieldName, $_POST)) {
     $settingsJson = isset($_POST[$productRowSettingsFieldName]) ? strval($_POST[$productRowSettingsFieldName]) : '';
     $arSettings = strlen($settingsJson) > 0 ? CUtil::JsObjectToPhp($settingsJson) : array();
     if (is_array($arSettings)) {
         $productRowSettings['ENABLE_DISCOUNT'] = isset($arSettings['ENABLE_DISCOUNT']) ? $arSettings['ENABLE_DISCOUNT'] === 'Y' : false;
         $productRowSettings['ENABLE_TAX'] = isset($arSettings['ENABLE_TAX']) ? $arSettings['ENABLE_TAX'] === 'Y' : false;
     }
 }
 unset($productRowSettingsFieldName, $settingsJson, $arSettings);
 // set person type field
 $arFields['PERSON_TYPE_ID'] = $personTypeId;
 // set pay system field
 $arFields['PAY_SYSTEM_ID'] = intval($_POST['PAY_SYSTEM_ID']);
 // <editor-fold defaultstate="collapsed" desc="Process invoice properties ...">
 $tmpArInvoicePropertiesValues = $CCrmInvoice->ParsePropertiesValuesFromPost($personTypeId, $_POST, $arInvoiceProperties);
 if (isset($tmpArInvoicePropertiesValues['PROPS_VALUES']) && isset($tmpArInvoicePropertiesValues['PROPS_INDEXES'])) {
     $arFields['INVOICE_PROPERTIES'] = $tmpArInvoicePropertiesValues['PROPS_VALUES'];
     foreach ($tmpArInvoicePropertiesValues['PROPS_INDEXES'] as $propertyName => $propertyIndex) {
         if (!isset($arFields[$propertyName])) {
             $arFields[$propertyName] = $tmpArInvoicePropertiesValues['PROPS_VALUES'][$propertyIndex];
         }
     }
 }
 unset($tmpArInvoicePropertiesValues);
 // </editor-fold>
 $USER_FIELD_MANAGER->EditFormAddFields(CCrmInvoice::GetUserFieldEntityID(), $arFields);
 if (!$CCrmInvoice->CheckFields($arFields, $bEdit ? $arResult['ELEMENT']['ID'] : false, $bStatusSuccess, $bStatusFailed)) {
     if (!empty($CCrmInvoice->LAST_ERROR)) {
         $arResult['ERROR_MESSAGE'] .= $CCrmInvoice->LAST_ERROR;
     } else {