$paySystemID = isset($arFields['~PAY_SYSTEM_ID']) ? intval($arFields['~PAY_SYSTEM_ID']) : 0; } elseif (!empty($arResult['PAY_SYSTEMS'])) { $paySystemID = $arFields['~PAY_SYSTEM_ID'] = $arFields['PAY_SYSTEM_ID'] = array_shift(array_keys($arResult['PAY_SYSTEMS'])); } //<-- PAY_SYSTEM // INVOICE_PROPERTIES --> $arFields['INVOICE_PROPERTIES'] = array(); $properties = CCrmInvoice::GetProperties($entityID, $personTypeID); if (!is_array($properties)) { $properties = array(); } if ($entityID === 0) { CCrmInvoice::__RewritePayerInfo($companyID, $contactID, $properties); } $arFields['INVOICE_PROPERTIES'] = $properties; $arResult['PAYER_REQUISITES'] = $personTypeID > 0 ? CCrmMobileHelper::PrepareInvoiceClientRequisites($personTypeID, $properties) : array(); //<-- INVOICE_PROPERTIES CCrmMobileHelper::PrepareInvoiceItem($arFields, $arParams, array('PAY_SYSTEMS' => $arResult['PAY_SYSTEMS'], 'INVOICE_PROPERTIES' => $properties), array('ENABLE_MULTI_FIELDS' => true, 'ENABLE_PAYER_INFO' => true, 'ENABLE_LOCATION' => true)); $arResult['ENABLE_LOCATION'] = $taxMode === 'EXT'; // PRODUCT_ROWS, TAX_INFOS, SUM_BRUTTO, SUM_NETTO --> $arResult['PRODUCT_ROWS'] = array(); if ($entityID > 0) { $rows = CCrmInvoice::GetProductRows($entityID); foreach ($rows as &$row) { $price = isset($row['PRICE']) ? round(doubleval($row['PRICE']), 2) : 0.0; $qty = isset($row['QUANTITY']) ? intval($row['QUANTITY']) : 0; $sum = $item['SUM'] = $price * $qty; $item = array('ID' => isset($row['ID']) ? intval($row['ID']) : 0, 'PRODUCT_ID' => isset($row['PRODUCT_ID']) ? intval($row['PRODUCT_ID']) : 0, 'PRODUCT_NAME' => isset($row['PRODUCT_NAME']) ? $row['PRODUCT_NAME'] : '', 'PRICE' => $price, 'QUANTITY' => $qty, 'SUM' => $sum, 'VAT_RATE' => isset($row['VAT_RATE']) ? round(doubleval($row['VAT_RATE']) * 100, 2) : 0.0); $item['FORMATTED_PRICE'] = CCrmCurrency::MoneyToString($price, $currencyID); $item['FORMATTED_SUM'] = CCrmCurrency::MoneyToString($sum, $currencyID); $item['CURRENCY_ID'] = $currencyID;
$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); } } if (!$enableProductRows || empty($productRows)) { $resultData = array('PERSON_TYPE_ID' => $resolvedPersonTypeID, 'PAY_SYSTEM_ID' => $resolvedPaySystemID, 'PAY_SYSTEM_NAME' => $resolvedPaySystemID > 0 && isset($paySystems[$resolvedPaySystemID]) ? $paySystems[$resolvedPaySystemID] : ''); if ($enablePayerInfo) { $resultData['PAYER_INFO'] = $payerInfo; $resultData['PAYER_INFO_FORMAT'] = $resolvedPersonTypeID > 0 ? CCrmMobileHelper::PrepareInvoiceClientInfoFormat($resolvedPersonTypeID) : ''; $resultData['PAYER_REQUISITES'] = $payerRequisites; } __CrmMobileInvoiceEditEndResonse(array('RESULT_DATA' => $resultData)); } $orderData = CCrmInvoice::QuickRecalculate($arFields); if (empty($orderData)) { __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_INVOICE_COULD_NOT_RECALCULATE'))); }