Beispiel #1
0
if ($contextID === '' && isset($_REQUEST['context_id'])) {
    $contextID = $_REQUEST['context_id'];
}
if ($contextID === '') {
    $contextID = "{$uid}_{$entityID}";
}
$arResult['CONTEXT_ID'] = $arParams['CONTEXT_ID'] = $contextID;
//<-- CONTEXT_ID
$dbFields = CCrmInvoice::GetList(array(), array('ID' => $entityID));
$arFields = $dbFields->GetNext();
if (!$arFields) {
    ShowError(GetMessage('CRM_INVOICE_VIEW_NOT_FOUND', array('#ID#' => $arParams['ENTITY_ID'])));
    return;
}
$arResult['PERMISSIONS'] = array('EDIT' => !$userPerms->HavePerm('INVOICE', BX_CRM_PERM_NONE, 'WRITE'), 'DELETE' => !$userPerms->HavePerm('INVOICE', BX_CRM_PERM_NONE, 'DELETE'));
CCrmMobileHelper::PrepareInvoiceItem($arFields, $arParams, array(), array('ENABLE_MULTI_FIELDS' => true, 'ENABLE_PAYER_INFO' => true));
$accountNumber = isset($arFields['~ACCOUNT_NUMBER']) ? $arFields['~ACCOUNT_NUMBER'] : '';
if ($accountNumber === '') {
    $accountNumber = $arFields['~ID'];
}
$arResult['EMAIL_SUBJECT'] = GetMessage('CRM_INVOICE_VIEW_EMAIL_SUBJECT', array('#NUMBER#' => $accountNumber));
$dealID = $arFields['~DEAL_ID'];
$contactID = $arFields['~CONTACT_ID'];
$companyID = $arFields['~COMPANY_ID'];
if ($contactID <= 0) {
    $arResult['CONTACT_CALLTO'] = $arFields['CONTACT_SHOW_URL'] = $arFields['CONTACT_EMAIL_EDIT_URL'] = '';
} else {
    $arResult['CONTACT_CALLTO'] = CCrmMobileHelper::PrepareCalltoParams(array('COMMUNICATION_LIST_URL_TEMPLATE' => $arParams['COMMUNICATION_LIST_URL_TEMPLATE'], 'ENTITY_TYPE_ID' => CCrmOwnerType::Contact, 'ENTITY_ID' => $contactID, 'FM' => $arFields['CONTACT_FM']));
    $arFields['CONTACT_SHOW_URL'] = CComponentEngine::makePathFromTemplate($arParams['CONTACT_SHOW_URL_TEMPLATE'], array('contact_id' => $contactID));
    $emailOwnerTypeName = CCrmOwnerType::ContactName;
    $emailOwnerID = $contactID;
Beispiel #2
0
$dbRes = CCrmInvoice::GetList($sort, $filter, false, $navParams, $select, array());
if (!is_object($dbRes)) {
    $arResult['NEXT_PAGE_URL'] = '';
} else {
    $dbRes->NavStart($navParams['nPageSize'], false);
    $arResult['PAGE_NAVNUM'] = intval($dbRes->NavNum);
    // pager index
    $arResult['PAGE_NUMBER'] = intval($dbRes->NavPageNomer);
    // current page index
    $arResult['PAGE_NAVCOUNT'] = intval($dbRes->NavPageCount);
    // page count
    $arResult['PAGER_PARAM'] = "PAGEN_{$arResult['PAGE_NAVNUM']}";
    $arResult['PAGE_NEXT_NUMBER'] = $arResult['PAGE_NUMBER'] + 1;
    $enums = array();
    while ($item = $dbRes->GetNext()) {
        CCrmMobileHelper::PrepareInvoiceItem($item, $arParams, $enums);
        $arResult['ITEMS'][] =& $item;
        unset($item);
    }
    //NEXT_PAGE_URL, SEARCH_PAGE_URL, SERVICE_URL -->
    if ($arResult['PAGE_NEXT_NUMBER'] > $arResult['PAGE_NAVCOUNT']) {
        $arResult['NEXT_PAGE_URL'] = '';
    } else {
        $arResult['NEXT_PAGE_URL'] = $APPLICATION->GetCurPageParam('AJAX_CALL=Y&PAGING=Y&FORMAT=json&SEARCH=' . ($enableSearch ? 'Y' : 'N') . '&' . $arResult['PAGER_PARAM'] . '=' . $arResult['PAGE_NEXT_NUMBER'], array('AJAX_CALL', 'PAGING', 'FORMAT', 'SEARCH', $arResult['PAGER_PARAM']));
    }
}
$arResult['SEARCH_PAGE_URL'] = $APPLICATION->GetCurPageParam('AJAX_CALL=Y&SEARCH=Y&FORMAT=json&apply_filter=Y&save=Y', array('AJAX_CALL', 'SEARCH', 'FORMAT', 'save', 'apply_filter', 'clear_filter'));
$arResult['SERVICE_URL'] = $arParams["SERVICE_URL"] ? $arParams["SERVICE_URL"] : SITE_DIR . 'bitrix/components/bitrix/mobile.crm.invoice.edit/ajax.php?siteID=' . SITE_ID . '&' . bitrix_sessid_get();
//<-- NEXT_PAGE_URL, SEARCH_PAGE_URL, SERVICE_URL
$arResult['PERMISSIONS'] = array('CREATE' => !$userPerms->HavePerm('INVOICE', BX_CRM_PERM_NONE, 'ADD'));
$arResult['CREATE_URL'] = $arParams['INVOICE_EDIT_URL_TEMPLATE'] !== '' ? CComponentEngine::makePathFromTemplate($arParams['INVOICE_EDIT_URL_TEMPLATE'], array('invoice_id' => 0)) : '';
Beispiel #3
0
    $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;
        $arResult['PRODUCT_ROWS'][] =& $item;
        unset($item);
Beispiel #4
0
        $statusParams['PAY_VOUCHER_NUM'] = isset($additionalData['PAYMENT_DOC']) ? substr(trim($additionalData['PAYMENT_DOC']), 0, 20) : '';
        $statusParams['REASON_MARKED'] = isset($additionalData['PAYMENT_COMMENT']) ? substr(trim($additionalData['PAYMENT_COMMENT']), 0, 255) : '';
    } elseif ($isFail) {
        $timestamp = isset($additionalData['CANCEL_TIME_STAMP']) ? max(intval($additionalData['CANCEL_TIME_STAMP']), 0) : 0;
        $statusParams['DATE_MARKED'] = $timestamp > 0 ? ConvertTimeStamp($timestamp, 'SHORT', SITE_ID) : null;
        $statusParams['REASON_MARKED'] = isset($additionalData['CANCEL_REASON']) ? substr(trim($additionalData['CANCEL_REASON']), 0, 255) : '';
    }
    //$DB->StartTransaction();
    $CCrmInvoice = new CCrmInvoice(false);
    $successed = $CCrmInvoice->SetStatus($ID, $statusID, $statusParams);
    if ($successed) {
        //$DB->Commit();
        $dbRes = CCrmInvoice::GetList(array(), array('ID' => $ID));
        $currentItem = $dbRes->GetNext();
        $formatParams = isset($_REQUEST['FORMAT_PARAMS']) ? $_REQUEST['FORMAT_PARAMS'] : array();
        CCrmMobileHelper::PrepareInvoiceItem($currentItem, $formatParams, array(), array('ENABLE_MULTI_FIELDS' => true, 'ENABLE_PAYER_INFO' => true));
        __CrmMobileInvoiceEditEndResonse(array('SAVED_ENTITY_ID' => $ID, 'SAVED_ENTITY_DATA' => CCrmMobileHelper::PrepareInvoiceData($currentItem)));
    } else {
        //$DB->Rollback();
        __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_INVOICE_COULD_NOT_SAVE_STATUS')));
    }
} elseif ($action === 'RECALCULATE') {
    // Refresh invoice data according to client settings
    __IncludeLang(dirname(__FILE__) . '/lang/' . LANGUAGE_ID . '/' . basename(__FILE__));
    $data = isset($_REQUEST['SOURCE_DATA']) && is_array($_REQUEST['SOURCE_DATA']) ? $_REQUEST['SOURCE_DATA'] : array();
    if (count($data) == 0) {
        __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_ENTITY_DATA_NOT_FOUND')));
    }
    $enablePayerInfo = isset($data['ENABLE_PAYER_INFO']) ? strtoupper($data['ENABLE_PAYER_INFO']) === "Y" : false;
    $enableProductRows = isset($data['ENABLE_PRODUCT_ROWS']) ? strtoupper($data['ENABLE_PRODUCT_ROWS']) === "Y" : false;
    $productRows = $enableProductRows && isset($data['PRODUCT_ROWS']) && is_array($data['PRODUCT_ROWS']) ? $data['PRODUCT_ROWS'] : array();