if (isset($arFields['UF_CONTACT_ID'])) { $contactID = intval($arFields['UF_CONTACT_ID']); } if (isset($arFields['UF_DEAL_ID'])) { $dealID = intval($arFields['UF_DEAL_ID']); } } $arResult['CURRENCY_ID'] = $currencyID; // PERSON_TYPE_ID --> if ($companyID > 0 && isset($personTypes['COMPANY'])) { $personTypeID = $personTypes['COMPANY']; } elseif ($contactID > 0 && isset($personTypes['CONTACT'])) { $personTypeID = $personTypes['CONTACT']; } $arResult['PERSON_TYPE_ID'] = $personTypeID; $arResult['PAYER_INFO_FORMAT'] = $personTypeID > 0 ? CCrmMobileHelper::PrepareInvoiceClientInfoFormat($personTypeID) : ''; //<-- PERSON_TYPE_ID // PAY_SYSTEM --> $arResult['PAY_SYSTEMS'] = CCrmPaySystem::GetPaySystemsListItems($personTypeID); if ($entityID > 0) { $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(); }
__CrmMobileInvoiceEditEndResonse(array('RESULT_DATA' => $resultData)); } $orderData = CCrmInvoice::QuickRecalculate($arFields); if (empty($orderData)) { __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_INVOICE_COULD_NOT_RECALCULATE'))); } $currencyID = isset($orderData['CURRENCY']) ? $orderData['CURRENCY'] : CCrmCurrency::GetBaseCurrencyID(); $sumBrutto = isset($orderData['PRICE']) ? $orderData['PRICE'] : 0.0; $taxSum = isset($orderData['TAX_VALUE']) ? $orderData['TAX_VALUE'] : 0.0; $sumNetto = $sumBrutto - $taxSum; $taxList = isset($orderData['TAX_LIST']) && is_array($orderData['TAX_LIST']) ? $orderData['TAX_LIST'] : array(); $taxMode = isset($orderData['USE_VAT']) && $orderData['USE_VAT'] ? 'VAT' : (!empty($taxList) ? 'EXT' : ''); $resultData = array('PERSON_TYPE_ID' => $resolvedPersonTypeID, 'PAY_SYSTEM_ID' => $resolvedPaySystemID, 'PAY_SYSTEM_NAME' => $resolvedPaySystemID > 0 && isset($paySystems[$resolvedPaySystemID]) ? $paySystems[$resolvedPaySystemID] : '', 'CURRENCY_ID' => $currencyID, 'SUM_NETTO' => $sumNetto, 'SUM_BRUTTO' => $sumBrutto, 'TAX_SUM' => $taxSum, 'FORMATTED_SUM_NETTO' => CCrmCurrency::MoneyToString($sumNetto, $currencyID), 'FORMATTED_SUM_BRUTTO' => CCrmCurrency::MoneyToString($sumBrutto, $currencyID), 'FORMATTED_TAX_SUM' => CCrmCurrency::MoneyToString($taxSum, $currencyID), 'TAX_MODE' => $taxMode, 'PRODUCT_ROWS' => array()); if ($enablePayerInfo) { $resultData['PAYER_INFO'] = $payerInfo; $resultData['PAYER_INFO_FORMAT'] = $resolvedPersonTypeID > 0 ? CCrmMobileHelper::PrepareInvoiceClientInfoFormat($resolvedPersonTypeID) : ''; $resultData['PAYER_REQUISITES'] = $payerRequisites; } $isVATMode = $taxMode === 'VAT'; $VATName = $isVATMode && isset($taxList[0]) && isset($taxList[0]['NAME']) ? $taxList[0]['NAME'] : ''; $cartItems = isset($orderData['BASKET_ITEMS']) && isset($orderData['BASKET_ITEMS']) ? $orderData['BASKET_ITEMS'] : array(); // Recover initial row's order sortByColumn($cartItems, 'IDX'); foreach ($cartItems as &$cartItem) { $productID = isset($cartItem['PRODUCT_ID']) ? intval($cartItem['PRODUCT_ID']) : 0; if ($productID <= 0) { continue; } $productName = isset($cartItem['NAME']) ? $cartItem['NAME'] : ''; if ($productName === '') { $dbProduct = CCrmProduct::GetList(array(), array('ID' => $productID), array('NAME'));