Ejemplo n.º 1
0
 public static function PreparePopupItems($currencyID = '', $count = 50, $enableRawPrices = false)
 {
     $currencyID = strval($currencyID);
     if (!isset($currencyID[0])) {
         $currencyID = CCrmCurrency::GetBaseCurrencyID();
     }
     $count = intval($count);
     if ($count <= 0) {
         $count = 50;
     }
     $arSelect = array('ID', 'NAME', 'PRICE', 'CURRENCY_ID');
     $arPricesSelect = $arVatsSelect = array();
     $arSelect = CCrmProduct::DistributeProductSelect($arSelect, $arPricesSelect, $arVatsSelect);
     $rs = CCrmProduct::GetList(array('ID' => 'DESC'), array('ACTIVE' => 'Y', 'CATALOG_ID' => CCrmCatalog::EnsureDefaultExists()), $arSelect, $count);
     $arProducts = array();
     $arProductId = array();
     while ($product = $rs->Fetch()) {
         foreach ($arPricesSelect as $fieldName) {
             $product[$fieldName] = null;
         }
         foreach ($arVatsSelect as $fieldName) {
             $product[$fieldName] = null;
         }
         $arProductId[] = $product['ID'];
         $arProducts[$product['ID']] = $product;
     }
     CCrmProduct::ObtainPricesVats($arProducts, $arProductId, $arPricesSelect, $arVatsSelect, $enableRawPrices);
     $measureInfos = \Bitrix\Crm\Measure::getProductMeasures($arProductId);
     $productVatInfos = CCrmProduct::PrepareCatalogProductFields($arProductId);
     unset($arProductId, $arPricesSelect, $arVatsSelect);
     $defaultMeasureInfo = \Bitrix\Crm\Measure::getDefaultMeasure();
     $result = array();
     foreach ($arProducts as $productID => &$product) {
         if ($currencyID != $product['CURRENCY_ID']) {
             $product['PRICE'] = CCrmCurrency::ConvertMoney($product['PRICE'], $product['CURRENCY_ID'], $currencyID);
             $product['CURRENCY_ID'] = $currencyID;
         }
         $customData = array('price' => $product['PRICE']);
         if (isset($measureInfos[$productID]) && !empty($measureInfos[$productID])) {
             $measureIfo = $measureInfos[$productID][0];
             $customData['measure'] = array('code' => $measureIfo['CODE'], 'name' => $measureIfo['SYMBOL']);
         } elseif ($defaultMeasureInfo !== null) {
             $customData['measure'] = array('code' => $defaultMeasureInfo['CODE'], 'name' => $defaultMeasureInfo['SYMBOL']);
         }
         if (isset($productVatInfos[$productID])) {
             $productVatInfo = $productVatInfos[$productID];
             $customData['tax'] = array('id' => $productVatInfo['TAX_ID'], 'included' => $enableRawPrices && $productVatInfo['TAX_INCLUDED']);
         }
         $result[] = array('title' => $product['NAME'], 'desc' => CCrmProduct::FormatPrice($product), 'id' => $product['ID'], 'url' => '', 'type' => 'product', 'selected' => false, 'customData' => &$customData);
         unset($customData);
     }
     unset($product, $arProducts);
     return $result;
 }
Ejemplo n.º 2
0
 private static function ConvertMoney($sum, $srcCurrencyID, $dstCurrencyID)
 {
     if (CModule::IncludeModule('currency')) {
         return CCrmCurrency::ConvertMoney($sum, $srcCurrencyID, $dstCurrencyID);
     }
     $exchRate = 1.0;
     // Using hardcoded exchange rates for Rub
     if ($srcCurrencyID === 'RUB') {
         if ($dstCurrencyID === 'EUR') {
             $exchRate = 39.4;
         } elseif ($dstCurrencyID === 'USD') {
             $exchRate = 31.0;
         } elseif ($dstCurrencyID === 'UAH') {
             $exchRate = 3.9;
         }
     }
     return round($sum / $exchRate, 2);
 }
Ejemplo n.º 3
0
 public static function PrepareAccountingData($arFields)
 {
     $accountCurrencyID = CCrmCurrency::GetAccountCurrencyID();
     if (!isset($accountCurrencyID[0])) {
         return false;
     }
     $currencyID = isset($arFields['CURRENCY_ID']) ? strval($arFields['CURRENCY_ID']) : '';
     if (!CCrmCurrency::GetByID($currencyID)) {
         // Currency is invalid or not assigned
         return false;
     }
     if ($currencyID === $accountCurrencyID) {
         // Avoid conversion to float since possible data lost
         return array('ACCOUNT_CURRENCY_ID' => $accountCurrencyID, 'ACCOUNT_SUM' => isset($arFields['SUM']) ? $arFields['SUM'] : 0.0);
     }
     $account = CCrmCurrency::ConvertMoney(isset($arFields['SUM']) ? doubleval($arFields['SUM']) : 0.0, $currencyID, $accountCurrencyID, isset($arFields['EXCH_RATE']) ? doubleval($arFields['EXCH_RATE']) : -1);
     return array('ACCOUNT_CURRENCY_ID' => $accountCurrencyID, 'ACCOUNT_SUM' => $account);
 }
Ejemplo n.º 4
0
    $stageID = isset($data['STAGE_ID']) ? $data['STAGE_ID'] : '';
    if ($stageID === '') {
        __CrmMobileDealEditEndResonse(array('ERROR' => GetMessage('CRM_DEAL_STAGE_NOT_FOUND')));
    }
    //$DB->StartTransaction();
    $fields = array('STAGE_ID' => $stageID);
    $entity = new CCrmDeal(false);
    $successed = $entity->Update($ID, $fields, true, true, array());
    if ($successed) {
        //$DB->Commit();
        $errors = array();
        CCrmBizProcHelper::AutoStartWorkflows(CCrmOwnerType::Deal, $ID, CCrmBizProcEventType::Edit, $errors);
        $dbRes = CCrmDeal::GetListEx(array(), array('=ID' => $ID, 'CHECK_PERMISSIONS' => 'N'));
        $currentItem = $dbRes->GetNext();
        $formatParams = isset($_REQUEST['FORMAT_PARAMS']) ? $_REQUEST['FORMAT_PARAMS'] : array();
        CCrmMobileHelper::PrepareDealItem($currentItem, $formatParams);
        __CrmMobileDealEditEndResonse(array('SAVED_ENTITY_ID' => $ID, 'SAVED_ENTITY_DATA' => CCrmMobileHelper::PrepareDealData($currentItem)));
    } else {
        //$DB->Rollback();
        __CrmMobileDealEditEndResonse(array('ERROR' => $fields['RESULT_MESSAGE']));
    }
} elseif ($action === 'CONVERT_MONEY') {
    __IncludeLang(dirname(__FILE__) . '/lang/' . LANGUAGE_ID . '/' . basename(__FILE__));
    $srcCurrencyID = isset($_REQUEST['SRC_CURRENCY_ID']) ? $_REQUEST['SRC_CURRENCY_ID'] : CCrmCurrency::GetBaseCurrencyID();
    $dstCurrencyID = isset($_REQUEST['DST_CURRENCY_ID']) ? $_REQUEST['DST_CURRENCY_ID'] : CCrmCurrency::GetBaseCurrencyID();
    $srcSum = isset($_REQUEST['SUM']) ? doubleval($_REQUEST['SUM']) : 0.0;
    $dstSum = CCrmCurrency::ConvertMoney($srcSum, $srcCurrencyID, $dstCurrencyID);
    __CrmMobileDealEditEndResonse(array('SUM' => $dstSum, 'CURRENCY_ID' => $dstCurrencyID, 'CURRENCY_NAME' => CCrmCurrency::GetCurrencyName($dstCurrencyID), 'FORMATTED_SUM' => CCrmCurrency::MoneyToString($dstSum, $dstCurrencyID)));
} else {
    __CrmMobileDealEditEndResonse(array('ERROR' => 'Action is not supported in current context.'));
}
Ejemplo n.º 5
0
     }
 }
 if ($bAjax || $bAjaxSubmit) {
     $APPLICATION->RestartBuffer();
     $ajaxResponse = array('err' => '', 'productId' => 0, 'productData' => array());
     if (isset($err[0])) {
         $ajaxResponse['err'] = $err;
     } else {
         $ajaxResponse['productId'] = $productID;
         $dbRes = CCrmProduct::GetList(array(), array('ID' => $productID, '~REAL_PRICE' => true), array('ID', 'NAME', 'ACTIVE', 'PRICE', 'CURRENCY_ID', 'MEASURE', 'VAT_ID', 'VAT_INCLUDED'), array('nTopCount' => 1));
         if ($row = $dbRes->Fetch()) {
             if ($row['ACTIVE'] === 'Y') {
                 $currencyTo = isset($_POST['currencyTo']) ? $_POST['currencyTo'] : '';
                 $currencyFrom = isset($row['CURRENCY_ID']) ? $row['CURRENCY_ID'] : '';
                 if (strlen($currencyFrom) > 0 && strlen($currencyTo) > 0 && $currencyFrom !== $currencyTo) {
                     $row['PRICE'] = CCrmCurrency::ConvertMoney(doubleval($row['PRICE']), $currencyFrom, $currencyTo);
                 }
                 $ajaxResponse['productData'] = $row;
                 $measureInfo = array();
                 if (isset($row['MEASURE']) && intval($row['MEASURE']) > 0) {
                     $measureInfo = \Bitrix\Crm\Measure::getProductMeasures(intval($row['ID']));
                     $measureInfo = $measureInfo[intval($row['ID'])][0];
                 } else {
                     $measureInfo = \Bitrix\Crm\Measure::getDefaultMeasure();
                 }
                 if (is_array($measureInfo) && isset($measureInfo['CODE']) && isset($measureInfo['SYMBOL'])) {
                     $ajaxResponse['measureData'] = array('code' => $measureInfo['CODE'], 'name' => $measureInfo['SYMBOL']);
                 }
             }
         }
         unset($dbRes, $row);
Ejemplo n.º 6
0
    $arSort['NAME'][] = $nameUpper;
    $arSort['ID'][] = $arRes['ID'];
}
array_multisort($arSort['RANK1'], SORT_NUMERIC, SORT_ASC, $arSort['NAME'], SORT_STRING, SORT_ASC, $arSort['ID'], SORT_NUMERIC, SORT_ASC);
unset($arSort['RANK1'], $arSort['NAME']);
CCrmProduct::ObtainPricesVats($arProducts, $arProductId, $arPricesSelect, $arVatsSelect, $enableRawPrices);
$measureInfos = \Bitrix\Crm\Measure::getProductMeasures($arProductId);
$productVatInfos = CCrmProduct::PrepareCatalogProductFields($arProductId);
unset($arProductId);
$defaultMeasureInfo = \Bitrix\Crm\Measure::getDefaultMeasure();
$i = 0;
foreach ($arSort['ID'] as $id) {
    $arRes = $arProducts[$id];
    $srcCurrencyID = isset($arRes['CURRENCY_ID']) ? $arRes['CURRENCY_ID'] : 0;
    if (strlen($dstCurrencyID) > 0 && strlen($srcCurrencyID) > 0 && $dstCurrencyID != $srcCurrencyID) {
        $arRes['PRICE'] = CCrmCurrency::ConvertMoney($arRes['PRICE'], $srcCurrencyID, $dstCurrencyID);
        $arRes['CURRENCY_ID'] = $dstCurrencyID;
    }
    $productID = $arRes['ID'];
    $customData = array('price' => $arRes['PRICE']);
    if (isset($measureInfos[$productID]) && !empty($measureInfos[$productID])) {
        $measureIfo = $measureInfos[$productID][0];
        $customData['measure'] = array('code' => $measureIfo['CODE'], 'name' => $measureIfo['SYMBOL']);
    } elseif ($defaultMeasureInfo !== null) {
        $customData['measure'] = array('code' => $defaultMeasureInfo['CODE'], 'name' => $defaultMeasureInfo['SYMBOL']);
    }
    if (isset($productVatInfos[$productID])) {
        $productVatInfo = $productVatInfos[$productID];
        $customData['tax'] = array('id' => $productVatInfo['TAX_ID'], 'included' => $enableRawPrices && $productVatInfo['TAX_INCLUDED']);
    }
    $arData[] = array('id' => $multi ? 'PROD_' . $arRes['ID'] : $arRes['ID'], 'url' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_product_show'), array('product_id' => $arRes['ID'])), 'title' => $arRes['NAME'], 'desc' => CCrmProduct::FormatPrice($arRes), 'type' => 'product', 'customData' => &$customData);
Ejemplo n.º 7
0
    Header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET);
    echo CUtil::PhpToJsObject(array('CURRENCY_ID' => $dstCurrencyID, 'CURRENCY_FORMAT' => CCrmCurrency::GetCurrencyFormatString($dstCurrencyID), 'EXCH_RATE' => CCrmCurrency::GetExchangeRate($dstCurrencyID), 'PRODUCTS' => $arProducts, 'PRODUCT_POPUP_ITEMS' => CCrmProductHelper::PreparePopupItems($dstCurrencyID)));
} elseif ($mode === 'CONVERT_MONEY') {
    if ($perms->HavePerm($ownerName, BX_CRM_PERM_NONE, 'READ')) {
        echo CUtil::PhpToJSObject(array('ERROR' => 'PERMISSION_DENIED'));
        die;
    }
    $data = isset($_POST['DATA']) && is_array($_POST['DATA']) ? $_POST['DATA'] : array();
    if (count($data) == 0) {
        echo CUtil::PhpToJSObject(array('ERROR' => 'SOURCE_DATA_NOT_FOUND'));
        die;
    }
    $srcSum = isset($data['SRC_SUM']) ? doubleval($data['SRC_SUM']) : 0.0;
    $srcCurrencyID = isset($data['SRC_CURRENCY_ID']) && strlen(strval($data['SRC_CURRENCY_ID'])) > 0 ? strval($data['SRC_CURRENCY_ID']) : CCrmCurrency::GetBaseCurrencyID();
    $dstCurrencyID = isset($data['DST_CURRENCY_ID']) && strlen(strval($data['DST_CURRENCY_ID'])) > 0 ? strval($data['DST_CURRENCY_ID']) : CCrmCurrency::GetBaseCurrencyID();
    echo CUtil::PhpToJSObject(array('SUM' => CCrmCurrency::ConvertMoney($srcSum, $srcCurrencyID, $dstCurrencyID)));
} elseif ($mode === 'ADD_PRODUCT') {
    // 'OWNER_TYPE':'D', 'OWNER_ID':7 'PRODUCT_ID':100, 'QTY':1, 'CURRENCY_ID':1 'PRICE':100.50
    if ($perms->HavePerm($ownerName, BX_CRM_PERM_NONE, 'WRITE')) {
        echo CUtil::PhpToJSObject(array('ERROR' => 'PERMISSION_DENIED'));
        die;
    }
    if ($ownerID <= 0) {
        echo CUtil::PhpToJSObject(array('ERROR' => 'OWNER_ID_NOT_FOUND'));
        die;
    }
    // 'OWNER_TYPE':'D', 'OWNER_ID':7 'PRODUCT_ID':100, 'QTY':1, 'CURRENCY_ID':1 'PRICE':100.50
    $fields = array('OWNER_TYPE' => $ownerType, 'OWNER_ID' => $ownerID);
    // Custom products are allowed (PRODUCT_ID === 0)
    $fields['PRODUCT_ID'] = isset($_POST['PRODUCT_ID']) ? intval($_POST['PRODUCT_ID']) : 0;
    if ($fields['PRODUCT_ID'] < 0) {
Ejemplo n.º 8
0
 foreach ($properties as $propertyKey => &$propertyData) {
     $propertyFields = isset($propertyData['FIELDS']) ? $propertyData['FIELDS'] : null;
     $propertyID = is_array($propertyFields) && isset($propertyFields['ID']) ? $propertyFields['ID'] : '';
     if ($propertyID === '') {
         continue;
     }
     $recalculateData['INVOICE_PROPERTIES'][$propertyID] = isset($propertyData['VALUE']) ? $propertyData['VALUE'] : '';
 }
 unset($propertyData);
 $rows = CCrmDeal::LoadProductRows($dealID);
 $rowQty = count($rows);
 for ($i = 0; $i < $rowQty; $i++) {
     $row = $rows[$i];
     $price = isset($row['PRICE']) ? round(doubleval($row['PRICE']), 2) : 0.0;
     if ($dealCurrencyID !== $currencyID) {
         $price = CCrmCurrency::ConvertMoney($price, $dealCurrencyID, $currencyID);
     }
     $qty = isset($row['QUANTITY']) ? intval($row['QUANTITY']) : 0;
     $sum = $item['SUM'] = $price * $qty;
     $item = array('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, 'IDX' => $i);
     $item['FORMATTED_PRICE'] = CCrmCurrency::MoneyToString($price, $currencyID);
     $item['FORMATTED_SUM'] = CCrmCurrency::MoneyToString($sum, $currencyID);
     $item['CURRENCY_ID'] = $currencyID;
     $recalculateData['PRODUCT_ROWS'][] =& $item;
     unset($item);
 }
 $orderData = CCrmInvoice::QuickRecalculate($recalculateData);
 if (empty($orderData)) {
     $arResult['TAX_INFOS'] = array();
     $arResult['SUM_BRUTTO'] = $arResult['SUM_NETTO'] = 0.0;
 } else {
Ejemplo n.º 9
0
 public static function ProductRows2BasketItems($arProductRows, $srcCurrencyID = '', $dstCurrencyID = '')
 {
     $basketItems = array();
     $srcCurrencyID = strval($srcCurrencyID);
     $dstCurrencyID = strval($dstCurrencyID);
     if (strlen($srcCurrencyID) <= 0 || strlen($dstCurrencyID) <= 0) {
         $srcCurrencyID = $dstCurrencyID = '';
     }
     foreach ($arProductRows as $row) {
         $freshRow = array();
         $freshRow['ID'] = isset($row['ID']) ? intval($row['ID']) : 0;
         $freshRow['PRODUCT_ID'] = isset($row['PRODUCT_ID']) ? intval($row['PRODUCT_ID']) : 0;
         $freshRow['PRODUCT_NAME'] = isset($row['PRODUCT_NAME']) ? strval($row['PRODUCT_NAME']) : '';
         $freshRow['QUANTITY'] = isset($row['QUANTITY']) ? round(doubleval($row['QUANTITY']), 2) : 0.0;
         $freshRow['PRICE'] = isset($row['PRICE']) ? round(doubleval($row['PRICE']), 2) : 0.0;
         if ($dstCurrencyID != $srcCurrencyID) {
             $freshRow['PRICE'] = CCrmCurrency::ConvertMoney($freshRow['PRICE'], $srcCurrencyID, $dstCurrencyID);
         }
         $taxRate = isset($row['TAX_RATE']) ? round(doubleval($row['TAX_RATE']), 2) : 0.0;
         $freshRow['VAT_RATE'] = $taxRate / 100;
         $discountTypeID = isset($row['DISCOUNT_TYPE_ID']) ? intval($row['DISCOUNT_TYPE_ID']) : \Bitrix\Crm\Discount::UNDEFINED;
         if ($discountTypeID !== \Bitrix\Crm\Discount::PERCENTAGE && $discountTypeID !== \Bitrix\Crm\Discount::MONETARY) {
             $discountTypeID = \Bitrix\Crm\Discount::PERCENTAGE;
         }
         if ($discountTypeID === \Bitrix\Crm\Discount::PERCENTAGE) {
             $discountRate = isset($row['DISCOUNT_RATE']) ? round(doubleval($row['DISCOUNT_RATE']), 2) : 0.0;
             $exclusivePrice = CCrmProductRow::CalculateExclusivePrice($freshRow['PRICE'], $taxRate);
             $freshRow['DISCOUNT_PRICE'] = round(\Bitrix\Crm\Discount::calculateDiscountSum($exclusivePrice, $discountRate), 2);
         } else {
             $freshRow['DISCOUNT_PRICE'] = isset($row['DISCOUNT_SUM']) ? round(doubleval($row['DISCOUNT_SUM']), 2) : 0.0;
             if ($dstCurrencyID != $srcCurrencyID) {
                 $freshRow['DISCOUNT_PRICE'] = CCrmCurrency::ConvertMoney($freshRow['DISCOUNT_PRICE'], $srcCurrencyID, $dstCurrencyID);
             }
         }
         $freshRow['MEASURE_CODE'] = isset($row['MEASURE_CODE']) ? intval($row['MEASURE_CODE']) : 0;
         $freshRow['MEASURE_NAME'] = isset($row['MEASURE_NAME']) ? strval($row['MEASURE_NAME']) : '';
         $freshRow['CUSTOMIZED'] = isset($row['CUSTOMIZED']) ? $row['CUSTOMIZED'] === 'Y' ? 'Y' : 'N' : 'Y';
         $basketItems[] = $freshRow;
     }
     return $basketItems;
 }
Ejemplo n.º 10
0
 public static function PrepareProductItem(&$item, &$params)
 {
     $sectionID = $item['~SECTION_ID'] = isset($item['SECTION_ID']) ? intval($item['SECTION_ID']) : 0;
     if ($sectionID <= 0) {
         $item['~SECTION_NAME'] = $item['SECTION_NAME'] = '';
     } else {
         $sections = isset($params['SECTIONS']) ? $params['SECTIONS'] : array();
         $item['~SECTION_NAME'] = isset($sections[$sectionID]) ? $sections[$sectionID]['NAME'] : '';
         $item['SECTION_NAME'] = htmlspecialcharsbx($item['~SECTION_NAME']);
     }
     $price = $item['~PRICE'] = isset($item['~PRICE']) ? doubleval($item['~PRICE']) : 0.0;
     $srcCurrencyID = $item['~CURRENCY_ID'] = isset($item['~CURRENCY_ID']) ? $item['~CURRENCY_ID'] : CCrmCurrency::GetBaseCurrencyID();
     $dstCurrencyID = isset($params['CURRENCY_ID']) ? $params['CURRENCY_ID'] : '';
     if ($dstCurrencyID === '') {
         $dstCurrencyID = $srcCurrencyID;
     }
     if ($dstCurrencyID !== $srcCurrencyID) {
         $item['~CURRENCY_ID'] = $dstCurrencyID;
         $item['CURRENCY_ID'] = htmlspecialcharsbx($dstCurrencyID);
         $price = CCrmCurrency::ConvertMoney($price, $srcCurrencyID, $dstCurrencyID);
     }
     $item['FORMATTED_PRICE'] = CCrmCurrency::MoneyToString($price, $dstCurrencyID);
 }
Ejemplo n.º 11
0
    } else {
        $quantity = isset($_REQUEST['QUANTITY']) ? intval($_REQUEST['QUANTITY']) : 0;
        $price = isset($_REQUEST['PRICE']) ? doubleval($_REQUEST['PRICE']) : 0.0;
        __CrmMobileProductRowEditEndResonse(array('QUANTITY' => $quantity, 'PRICE' => $price, 'CURRENCY_ID' => $currencyID, 'FORMATTED_PRICE' => CCrmCurrency::MoneyToString($price, $currencyID), 'FORMATTED_SUM' => CCrmCurrency::MoneyToString($price * $quantity, $currencyID)));
    }
} elseif ($action === 'CONVERT') {
    $ownerType = isset($_REQUEST['OWNER_TYPE']) ? $_REQUEST['OWNER_TYPE'] : '';
    $ownerTypeName = CCrmOwnerTypeAbbr::ResolveName($ownerType);
    if (!CCrmAuthorizationHelper::CheckReadPermission($ownerTypeName, 0, $userPerms)) {
        die;
    }
    $srcCurrencyID = isset($_REQUEST['SRC_CURRENCY_ID']) ? $_REQUEST['SRC_CURRENCY_ID'] : CCrmCurrency::GetBaseCurrencyID();
    $dstCurrencyID = isset($_REQUEST['DST_CURRENCY_ID']) ? $_REQUEST['DST_CURRENCY_ID'] : CCrmCurrency::GetBaseCurrencyID();
    $items = isset($_REQUEST['ITEMS']) && is_array($_REQUEST['ITEMS']) ? $_REQUEST['ITEMS'] : array();
    $result = array();
    $sumTotal = 0.0;
    if (!empty($items)) {
        foreach ($items as &$item) {
            $quantity = isset($item['QUANTITY']) ? intval($item['QUANTITY']) : 1;
            $price = isset($item['PRICE']) ? doubleval($item['PRICE']) : 0.0;
            $price = $price > 0.0 ? CCrmCurrency::ConvertMoney($price, $srcCurrencyID, $dstCurrencyID) : 0.0;
            $sum = $price * $quantity;
            $sumTotal += $sum;
            $result[] = array('QUANTITY' => $quantity, 'PRICE' => $price, 'CURRENCY_ID' => $dstCurrencyID, 'FORMATTED_PRICE' => CCrmCurrency::MoneyToString($price, $dstCurrencyID), 'FORMATTED_SUM' => CCrmCurrency::MoneyToString($sum, $dstCurrencyID));
        }
        unset($item);
    }
    __CrmMobileProductRowEditEndResonse(array('ITEMS' => $result, 'SUM_TOTAL' => $sumTotal, 'FORMATTED_SUM_TOTAL' => CCrmCurrency::MoneyToString($sumTotal, $dstCurrencyID)));
} else {
    __CrmMobileProductRowEditEndResonse(array('ERROR' => 'Action is not supported in current context.'));
}
Ejemplo n.º 12
0
 $arInvoice['PATH_TO_INVOICE_DELETE'] = CHTTP::urlAddParams($bInternal ? $APPLICATION->GetCurPage() : $arParams['PATH_TO_INVOICE_LIST'], array('action_' . $arResult['GRID_ID'] => 'delete', 'ID' => $entityID, 'sessid' => bitrix_sessid()));
 if (empty($arInvoice['~CURRENCY'])) {
     $arInvoice['~CURRENCY'] = $currencyID;
     $arInvoice['CURRENCY'] = htmlspecialcharsbx($currencyID);
 }
 $arInvoice['FORMATTED_PRICE'] = "<nobr>" . CCrmCurrency::MoneyToString($arInvoice['~PRICE'], $arInvoice['~CURRENCY']) . '</nobr>';
 $arInvoice['FORMATTED_TAX_VALUE'] = "<nobr>" . CCrmCurrency::MoneyToString($arInvoice['~TAX_VALUE'], $arInvoice['~CURRENCY']) . '</nobr>';
 $isStatusNeutral = false;
 $isStatusSuccess = CCrmStatusInvoice::isStatusSuccess($arInvoice['~STATUS_ID']);
 if (!$isStatusSuccess) {
     $isStatusNeutral = CCrmStatusInvoice::isStatusNeutral($arInvoice['~STATUS_ID']);
 }
 // calculate paid sum
 if ($isStatusSuccess) {
     $totalPaidNumber++;
     $totalPaidSum += CCrmCurrency::ConvertMoney($arInvoice['~PRICE'], $arInvoice['~CURRENCY'], $totalPaidCurrencyId);
 }
 // color coding
 $arInvoice['INVOICE_EXPIRED_FLAG'] = false;
 $arInvoice['INVOICE_IN_COUNTER_FLAG'] = false;
 if ($isStatusNeutral && !empty($arInvoice['DATE_PAY_BEFORE'])) {
     $tsDatePayBefore = MakeTimeStamp($arInvoice['DATE_PAY_BEFORE']);
     $tsNow = time() + CTimeZone::GetOffset();
     $tsMax = mktime(00, 00, 00, date('m', $tsNow), date('d', $tsNow), date('Y', $tsNow));
     if ($tsDatePayBefore < $tsMax) {
         $arInvoice['INVOICE_EXPIRED_FLAG'] = true;
     }
     if ($currentUserID > 0 && $currentUserID === intval($arInvoice['RESPONSIBLE_ID'])) {
         if ($tsDatePayBefore <= $tsMax) {
             $arInvoice['INVOICE_IN_COUNTER_FLAG'] = true;
         }