Beispiel #1
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();
}
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;
Beispiel #2
0
 $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')));
 }