...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_invoice.php
- Класс: \CAllCrmInvoice
- Вызов: CAllCrmInvoice::savePdf
static function savePdf($invoice_id, &$error = null) { $error = false; if (!CModule::IncludeModule('sale')) { $error = 'MODULE SALE NOT INCLUDED!'; return false; } $invoice_id = (int) $invoice_id; if ($invoice_id <= 0) { $error = 'INVOICE_ID NOT DEFINED!'; return false; } if (!\CCrmInvoice::checkReadPermission($invoice_id)) { $error = 'PERMISSION DENIED!'; return false; } $pdfContent = ''; $dbOrder = Compatible\Helper::getList( array("ID"=>"DESC"), array("ID" => $invoice_id), false, false, array('*', 'UF_DEAL_ID', 'UF_QUOTE_ID', 'UF_COMPANY_ID', 'UF_CONTACT_ID', 'UF_MYCOMPANY_ID') ); $arOrder = $dbOrder->GetNext(); $paymentData = is_array($arOrder) ? CCrmInvoice::PrepareSalePaymentData($arOrder) : null; if(!$arOrder) { $error = 'COULD NOT FIND ORDER!'; return false; } if ($arOrder["SUM_PAID"] <> '') $arOrder["PRICE"] -= $arOrder["SUM_PAID"]; $service = \Bitrix\Sale\PaySystem\Manager::getObjectById($arOrder["PAY_SYSTEM_ID"]); if ($service !== null) { $psa = new CSalePaySystemAction(); $psa->InitParamArrays( $arOrder, 0, "", array( 'REQUISITE' => is_array($paymentData['REQUISITE']) ? $paymentData['REQUISITE'] : null, 'BANK_DETAIL' => is_array($paymentData['BANK_DETAIL']) ? $paymentData['BANK_DETAIL'] : null, 'CRM_COMPANY' => is_array($paymentData['CRM_COMPANY']) ? $paymentData['CRM_COMPANY'] : null, 'CRM_CONTACT' => is_array($paymentData['CRM_CONTACT']) ? $paymentData['CRM_CONTACT'] : null, 'MC_REQUISITE' => is_array($paymentData['MC_REQUISITE']) ? $paymentData['MC_REQUISITE'] : null, 'MC_BANK_DETAIL' => is_array($paymentData['MC_BANK_DETAIL']) ? $paymentData['MC_BANK_DETAIL'] : null, 'CRM_MYCOMPANY' => is_array($paymentData['CRM_MYCOMPANY']) ? $paymentData['CRM_MYCOMPANY'] : null ), array(), array(), REGISTRY_TYPE_CRM_INVOICE ); unset($psa); \Bitrix\Sale\BusinessValue::redefineProviderField( array( 'PROPERTY' => $paymentData['USER_FIELDS'] ) ); $order = Invoice::load($invoice_id); if ($order) { $collection = $order->getPaymentCollection(); if ($collection) { /** @var \Bitrix\Sale\Payment $payment */ foreach ($collection as $payment) { if (!$payment->isInner() && $service->isAffordPdf()) { $file = $service->getPdf($payment); if ($file !== null) { return $file['ID']; } } } } } } return false; }