| в каждой сделке есть 2 доп поля: "договор" типа файл (если несколько доков, то архив кладут) "акт" типа файл (если несколько доков, то архив кладут) Задача: Вывести список доков клиента, которые клиент может скачать: договор, акт, счета (счета битриксовские используют) |
component.php
| UF_CRM_CONTRACT и UF_CRM_ACT - это константы, в которых прописаны идентификаторы битриксовские доп полей, заданы в init.php |
<?php
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true)die();
/**
* @global \CMain $APPLICATION
* @global \CUser $USER
* @global \CDatabase $DB
* @var \CUserTypeManager $USER_FIELD_MANAGER
* @var \CBitrixComponent $this
* @var array $arParams
* @var array $arResult
*/
global $USER_FIELD_MANAGER, $USER, $APPLICATION, $DB;
$isErrorOccured = false;
$errorMessage = '';
if (!CModule::IncludeModule('crm'))
{
$errorMessage = GetMessage('CRM_MODULE_NOT_INSTALLED');
$isErrorOccured = true;
}
if(!$isErrorOccured){
$arResult["CONTRACT"] = array();
$arResult["DOCS"] = array();
if(is_object($USER)){
$rsUser = CUser::GetList($by, $order,
array("ID" => $USER->GetID()),
array(
"SELECT" => array("ID","NAME","UF_CONTACT"),
)
);
if($arUser = $rsUser->Fetch()){
$companyId = $arUser["UF_CONTACT"];
if(intval($companyId)>0){
$arFilter = array("ID"=>intval($companyId),"CHECK_PERMISSIONS"=>"N");
$arSelect = array("ID","TITLE", UF_COMPANY_CONTRACT);
$rsCompany = CCrmCompany::GetList(Array(),$arFilter,$arSelect);
if($arComp = $rsCompany->Fetch()){
if(isset($arComp[UF_COMPANY_CONTRACT]) && (intval($arComp[UF_COMPANY_CONTRACT])>0)){
$arResult["CONTRACT"] = array(
"FILE"=> CFile::GetFileArray($arComp[UF_COMPANY_CONTRACT])
);
}
}
$arFilter = array(
"CHECK_PERMISSIONS"=>"N",
"COMPANY_ID" => $companyId,
);
$arSelect = array("ID",UF_CRM_CONTRACT,UF_CRM_ACT);
$res = CCrmDeal::GetList(Array("ID"=>"ASC"), $arFilter, $arSelect);
while($row = $res->Fetch()){
if(isset($row[UF_CRM_CONTRACT]) && (intval($row[UF_CRM_CONTRACT])>0)){
$arResult["DOCS"][] = array(
"TYPE"=> "CONTRACT",
"DEAL_ID"=> $row["ID"],
"FILE"=> CFile::GetFileArray($row[UF_CRM_CONTRACT])
);
}
if(isset($row[UF_CRM_ACT]) && intval($row[UF_CRM_ACT])>0){
$arResult["DOCS"][] = array(
"TYPE"=> "ACT",
"DEAL_ID"=> $row["ID"],
"FILE"=> CFile::GetFileArray($row[UF_CRM_ACT])
);
}
}
$arFilter = array(
"CHECK_PERMISSIONS"=>"N",
"UF_COMPANY_ID" => $companyId,
);
$arSelect = array("ID","ORDER_TOPIC","PRICE","STATUS_ID","CANCELED","DATE_BILL","UF_DEAL_ID");
$res2 = CCrmInvoice::GetList($arOrder = Array("ID"=>"DESC"), $arFilter ,false, false, $arSelect);
while($row2 = $res2->Fetch()){
$row2["LINK"] = CCrmInvoice::getPublicLink($row2["ID"]);
$arResult["INVOICES"][] = $row2;
}
}
}
}
$this->IncludeComponentTemplate();
}
else{
ShowError($errorMessage);
} |
<?php if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true)die();?>
<div class="documents-list">
<div class="header-content ">
<h1>Счета и договоры</h1>
</div>
<?if(isset($arResult["CONTRACT"])):?>
<div class="row">
<div class="col">
<h2>Основной договор</h2>
<a href="<?=$arResult["CONTRACT"]["FILE"]["SRC"]?>" target="_blank"><?=$arResult["CONTRACT"]["FILE"]["FILE_NAME"]?></a>
</div>
</div>
<?endif;?>
<?if(count($arResult["DOCS"])>0):?>
<div class="row ">
<div class="col">
<h2>Договоры, приложения, акты, товарные накладные</h2>
<?foreach($arResult["DOCS"] as $arDoc):?>
<div>
<a href="<?=$arDoc["FILE"]["SRC"]?>" target="_blank" class="mr-3"><?=$arDoc["FILE"]["FILE_NAME"]?></a>
<?if($arDoc["DEAL_ID"]>0):?>
<a href="/client/orders/detail/?id=<?=$arDoc["DEAL_ID"]?>">сделка <?=$arDoc["DEAL_ID"]?></a>
<?endif;?>
</div>
<?endforeach;?>
</div>
</div>
<?endif;?>
<?if(count($arResult["INVOICES"])>0):?>
<div class="row">
<div class="col">
<h2>Счета</h2>
<?foreach($arResult["INVOICES"] as $arInvoice):?>
<div>
<a href="<?=$arInvoice["LINK"]?>" target="_blank" class="">
Счет №<?=$arInvoice["ID"]?> от <?=$arInvoice["DATE_BILL"]?> на сумму <?=intval($arInvoice["PRICE"])?>руб.
<?if($arInvoice["UF_DEAL_ID"]>0):?>
,</a>
<a href="/client/orders/detail/?id=<?=$arInvoice["UF_DEAL_ID"]?>">сделка <?=$arInvoice["UF_DEAL_ID"]?></a>
<a href="<?=$arInvoice["LINK"]?>" target="_blank" class="">
<?endif;?>
<?=str_replace(array("N","S", "P","D"), array("не оплачен","не оплачен","оплачен","отменен"), $arInvoice["STATUS_ID"])?></a>
</div>
<?endforeach;?>
</div>
</div>
<?endif;?>
<div class="row">
<div class="col">
<h2>Типовые договоры</h2>
<div>
<a href="/client/docs/Dogovor_na_pochasovoe_obsluzhivanie.docx" target="_blank" class="">Бланк договора на почасовое обслуживание</a>
</div>
<div>
<a href="/client/docs/Dogovor_abonentskogo_obsluzhivania_Minimum.docx" target="_blank" class="">Бланк договора МИНИМУМ</a>
</div>
<div>
<a href="/client/docs/Dogovor_Abonentskogo_obsluzhivania_Standart.docx" target="_blank" class="">Бланк договора СТАНДАРТ</a>
</div>
<div>
<a href="/client/docs/Dogovor_Abonentskogo_obsluzhivania_Maximum.docx" target="_blank" class="">Бланк договора МАКСИМУМ</a>
</div>
</div>
</div>
</div> |