Beispiel #1
0
            $addParams['company_id'] = $internalContext['COMPANY_ID'];
        }
        if (isset($internalContext['LEAD_ID'])) {
            $addParams['lead_id'] = $internalContext['LEAD_ID'];
        }
        if (isset($internalContext['DEAL_ID'])) {
            $addParams['deal_id'] = $internalContext['DEAL_ID'];
        }
    }
    if (!empty($addParams)) {
        $arResult['PATH_TO_QUOTE_ADD'] = CHTTP::urlAddParams($arResult['PATH_TO_QUOTE_ADD'], $addParams);
    }
}
if (isset($arResult['QUOTE_ID']) && !empty($arResult['QUOTE_ID'])) {
    // try to load product rows
    $arProductRows = CCrmQuote::LoadProductRows(array_keys($arResult['QUOTE_ID']));
    foreach ($arProductRows as $arProductRow) {
        $ownerID = $arProductRow['OWNER_ID'];
        if (!isset($arResult['QUOTE'][$ownerID])) {
            continue;
        }
        $arEntity =& $arResult['QUOTE'][$ownerID];
        if (!isset($arEntity['PRODUCT_ROWS'])) {
            $arEntity['PRODUCT_ROWS'] = array();
        }
        $arEntity['PRODUCT_ROWS'][] = $arProductRow;
    }
    // checkig access for operation
    $arQuoteAttr = CCrmPerms::GetEntityAttr('QUOTE', $arResult['QUOTE_ID']);
    foreach ($arResult['QUOTE_ID'] as $iQuoteId) {
        $arResult['QUOTE'][$iQuoteId]['EDIT'] = $CCrmPerms->CheckEnityAccess('QUOTE', 'WRITE', $arQuoteAttr[$iQuoteId]);
Beispiel #2
0
    if ($arFields === false) {
        $bEdit = false;
        $bCopy = false;
    } else {
        $arEntityAttr = $CCrmInvoice->cPerms->GetEntityAttr('INVOICE', array($arParams['ELEMENT_ID']));
    }
    //HACK: MSSQL returns '.00' for zero value
    if (isset($arFields['~PRICE'])) {
        $arFields['~PRICE'] = $arFields['PRICE'] = floatval($arFields['~PRICE']);
    }
} else {
    $arFields = array('ID' => 0, 'DATE_INSERT' => ConvertTimeStamp(time(), 'FULL', SITE_ID));
    if ($bCreateFromQuote) {
        $arFields['UF_QUOTE_ID'] = $quoteId;
        $arQuote = CCrmQuote::GetByID($quoteId);
        $arQuoteProducts = CCrmQuote::LoadProductRows($quoteId);
        if (is_array($arQuote) && count($arQuote) > 0) {
            if ($bTaxMode && isset($arQuote['LOCATION_ID'])) {
                $arFields['~PR_LOCATION'] = $arQuote['LOCATION_ID'];
                $arFields['PR_LOCATION'] = htmlspecialcharsbx($arQuote['LOCATION_ID']);
            }
            if (isset($arQuote['TITLE'])) {
                $arFields['~ORDER_TOPIC'] = $arQuote['TITLE'];
                $arFields['ORDER_TOPIC'] = htmlspecialcharsbx($arQuote['TITLE']);
            }
            if (isset($arQuote['COMPANY_ID'])) {
                $arFields['~UF_COMPANY_ID'] = $arQuote['COMPANY_ID'];
                $arFields['UF_COMPANY_ID'] = htmlspecialcharsbx($arQuote['COMPANY_ID']);
            }
            if (isset($arQuote['CONTACT_ID'])) {
                $arFields['~UF_CONTACT_ID'] = $arQuote['CONTACT_ID'];
Beispiel #3
0
    $arQuote['PATH_TO_QUOTE_EDIT'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_QUOTE_EDIT'], array('quote_id' => $iQuoteId));
    $arQuote['PATH_TO_CONTACT_SHOW'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CONTACT_SHOW'], array('contact_id' => $arQuote['CONTACT_ID']));
    $arQuote['PATH_TO_COMPANY_SHOW'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_COMPANY_SHOW'], array('company_id' => $arQuote['COMPANY_ID']));
    $arQuote['CONTACT_NAME'] = CUser::FormatName(\Bitrix\Crm\Format\PersonNameFormatter::getFormat(), array('NAME' => $arQuote['NAME'], 'LAST_NAME' => $arQuote['LAST_NAME'], 'SECOND_NAME' => $arQuote['SECOND_NAME']), true, false);
    $strCard = '
<div class="bx-user-info-data-cont-video bx-user-info-fields" id="bx_user_info_data_cont_1">
	<div class="bx-user-info-data-name">
		<a href="' . $arQuote['PATH_TO_QUOTE_SHOW'] . '">' . htmlspecialcharsbx(empty($arQuote['TITLE']) ? $arQuote['QUOTE_NUMBER'] : $arQuote['QUOTE_NUMBER'] . ' - ' . $arQuote['TITLE']) . '</a>
	</div>
	<div class="bx-user-info-data-info">';
    if (!empty($arQuote['STATUS_ID'])) {
        $strCard .= '<span class="field-name">' . GetMessage('CRM_COLUMN_STATUS_ID') . '</span>:
		<span class="fields enumeration">' . $arResult['STATUS_LIST'][$arQuote['STATUS_ID']] . '</span>
		<br />';
    }
    $arProductRows = CCrmQuote::LoadProductRows($arQuote['ID']);
    if (count($arProductRows) > 0) {
        $strCard .= '<span class="field-name">' . GetMessage('CRM_COLUMN_PRODUCTS') . '</span>:<span class="fields enumeration">' . htmlspecialcharsbx(CCrmProductRow::RowsToString($arProductRows)) . '</span><br />';
    }
    if (!empty($arQuote['OPPORTUNITY'])) {
        $strCard .= '<span class="field-name">' . GetMessage('CRM_COLUMN_OPPORTUNITY') . '</span>:
		<span class="fields enumeration"><nobr>' . number_format($arQuote['OPPORTUNITY'], 2, ',', ' ') . ' ' . htmlspecialcharsbx(CCrmCurrency::GetCurrencyName($arQuote['CURRENCY_ID'])) . '</nobr></span>
		<br />';
    }
    /*if (!empty($arQuote['PROBABILITY']))
    	{
    		$strCard .= '<span class="field-name">'.GetMessage('CRM_COLUMN_PROBABILITY').'</span>:
    		<span class="fields enumeration">'.intval($arQuote['PROBABILITY']).'%</span>
    		<br />';
    	}*/
    $strCard .= '<span class="field-name">' . GetMessage('CRM_COLUMN_DATE_MODIFY') . '</span>:
 public function map(EntityConversionMap $map, array $options = null)
 {
     $srcFields = $this->getSourceFields();
     if (empty($srcFields)) {
         return array();
     }
     $dstFields = array();
     $dstEntityTypeID = $map->getDestinationEntityTypeID();
     foreach ($map->getItems() as $item) {
         $dstFieldID = $item->getDestinationField();
         //Skip empty binding
         if ($dstFieldID === '-') {
             continue;
         }
         $srcFieldID = $item->getSourceField();
         if ((!isset($srcFields[$srcFieldID]) || $srcFields[$srcFieldID] === '') && $srcFieldID !== 'PRODUCT_ROWS') {
             $altSrcFieldID = '';
             foreach ($item->getAlternativeSourceFields() as $fieldID) {
                 if (isset($srcFields[$fieldID])) {
                     $altSrcFieldID = $fieldID;
                     break;
                 }
             }
             if ($altSrcFieldID !== '') {
                 $srcFieldID = $altSrcFieldID;
             }
         }
         if ($dstFieldID === '') {
             $dstFieldID = $srcFieldID;
         }
         if (strpos($srcFieldID, 'UF_') === 0 && strpos($dstFieldID, 'UF_') === 0) {
             self::mapUserField(\CCrmOwnerType::Quote, $srcFieldID, $srcFields, $dstEntityTypeID, $dstFieldID, $dstFields, $options);
         } elseif ($srcFieldID === 'PRODUCT_ROWS') {
             $productRows = \CCrmQuote::LoadProductRows($this->srcEntityID);
             if (count($productRows) > 0) {
                 if ($dstEntityTypeID === \CCrmOwnerType::Invoice) {
                     $currencyID = isset($srcFields['CURRENCY_ID']) ? $srcFields['CURRENCY_ID'] : '';
                     if ($currencyID === '' || !\CCrmCurrency::IsExists($currencyID)) {
                         $currencyID = \CCrmCurrency::GetBaseCurrencyID();
                     }
                     $actualRows = \CCrmInvoice::ProductRows2BasketItems($productRows, $currencyID, \CCrmInvoice::GetCurrencyID());
                     if (count($actualRows) > 0) {
                         foreach ($actualRows as &$productRow) {
                             unset($productRow['ID']);
                         }
                         unset($productRow);
                         $dstFields[$dstFieldID] = $actualRows;
                     }
                 } else {
                     foreach ($productRows as &$productRow) {
                         unset($productRow['ID']);
                     }
                     unset($productRow);
                     $dstFields[$dstFieldID] = $productRows;
                 }
             }
         } elseif (isset($srcFields[$srcFieldID])) {
             $dstFields[$dstFieldID] = $srcFields[$srcFieldID];
         }
     }
     if (!empty($dstFields) && $dstEntityTypeID === \CCrmOwnerType::Invoice) {
         $dstFields['UF_QUOTE_ID'] = $this->srcEntityID;
     }
     return $dstFields;
 }