<?php
include_once $_SERVER["DOCUMENT_ROOT"] . '/bitrix/modules/main/include/prolog_before.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
\Bitrix\Main\Loader::includeModule('iblock');
$itemList = $_SESSION['CATALOG_COMPARE_LIST'][2]['ITEMS'];
$itemIdList = [];
if (!empty($itemList)) {
foreach ($itemList as $item) {
$itemIdList[] = $item['ID'];
}
}
$rsElements = CIBlockElement::GetList(Array("PROPERTY_PRICE" => "ASC"), ['ID' => $itemIdList], false, false,
[
'ID',
'NAME',
'IBLOCK',
'PROPERTY_ADDRESS',
'PROPERTY_PRICE',
'PROPERTY_ROOMS',
'PROPERTY_LIVINGSPACE',
'PROPERTY_KITCHENSPACE',
'PROPERTY_FLOOR',
'PROPERTY_WALLSTYPE',
'PROPERTY_PRICE_PER_METER',
'PROPERTY_AREA',
'PROPERTY_FLOORS',
'PROPERTY_AGENT_ID',
'PROPERTY_DISTRICT_LINK',
'OBJECT_TYPE_LINK',
]
);
$arElements = [];
$table = [
[
'Адрес',
'Район',
'Комнат',
'Цена',
'Цена за м²',
'S общая',
'S жилая',
'S кухни',
'Этаж',
'Агент',
'Телефон агента',
// 'Площадь участка',
]
];
$issetAgent = [];
while ($arElement = $rsElements->Fetch()) {
$row = [
$arElement['NAME'],
$arElement['PROPERTY_DISTRICT_LINK_VALUE'],
$arElement['PROPERTY_ROOMS_VALUE'],
$arElement['PROPERTY_PRICE_VALUE'],
$arElement['PROPERTY_PRICE_PER_METER_VALUE'],
$arElement['PROPERTY_AREA_VALUE'],
$arElement['PROPERTY_LIVINGSPACE_VALUE'],
$arElement['PROPERTY_KITCHENSPACE_VALUE'],
$arElement['PROPERTY_FLOOR_VALUE'].'/'.$arElement['PROPERTY_FLOORS_VALUE'],
$arElement['PROPERTY_AGENT_NAME'],
];
$agentName="";
$agentPhone="";
if(Empty($arElement['PROPERTY_ROOMS_VALUE'])){
$row[2]='Студия';
}
if(Empty($table['S жилая'])){
}
if (isset($arElement['PROPERTY_AGENT_ID_VALUE'])){
if (!isset($issetAgent[$arElement['PROPERTY_AGENT_ID_VALUE']])){
$agentInfo = getAgentById($arElement['PROPERTY_AGENT_ID_VALUE']);
$issetAgent[$arElement['PROPERTY_AGENT_ID_VALUE']]=$agentInfo;
$agentName=$agentInfo["NAME"];
$agentPhone=$agentInfo["PHONE"];
}
else{
$agentName=$issetAgent[$arElement['PROPERTY_AGENT_ID_VALUE']]["NAME"];
$agentPhone=$issetAgent[$arElement['PROPERTY_AGENT_ID_VALUE']]["PHONE"];
}
}
if (isset($arElement['PROPERTY_DISTRICT_LINK_VALUE'])){
if (!isset($issetDIS[$arElement['PROPERTY_DISTRICT_LINK_VALUE']])){
$disInfo = getAgentById($arElement['PROPERTY_DISTRICT_LINK_VALUE']);
$issetDIS[$arElement['PROPERTY_DISTRICT_LINK_VALUE']]=$disInfo;
$disName=$disInfo["NAME"];
$disPhone=$disInfo["PHONE"];
}
else{
$agentName=$issetDIS[$arElement['PROPERTY_AGENT_ID_VALUE']]["NAME"];
$agentPhone=$issetDIS[$arElement['PROPERTY_AGENT_ID_VALUE']]["PHONE"];
}
}
$row[1] =$disName;
$row[10]=$agentPhone;
$row[9]=$agentName;
// $row[11]
// $row[]=1; количество собственников
$table[] = $row;
}
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->fromArray($table);
$sheet->getColumnDimension('A')->setAutosize(true);
$sheet->getColumnDimension('B')->setAutoSize(true);
$sheet->getColumnDimension('J')->setAutoSize(true);
$sheet->getColumnDimension('K')->setAutoSize(true);
$sheet->getColumnDimension('L')->setAutoSize(true);
$sheet->getColumnDimension('C')->setAutoSize(true);
$sheet->getColumnDimension('G')->setAutoSize(true);
if(Empty($table['S жилая'])) {
$sheet->removeColumn('G');
}
//if(Empty($arElement['NAME'])){
// $sheet->getStyle($row[2])
// ->getFill()
// ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
// ->getStartColor()
// ->setARGB('FFF50000');
//}
if(empty($agentName)){
$sheet->getStyle($agentName)
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()
->setARGB('#808080');
}
//$row = $sheet->getStyle('A'.$row_id.':'.$columnWord.$row_id);
//
//$row->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setRGB('dbe5f1');
$writer = new Xlsx($spreadsheet);
$writer->save('compare.xlsx');
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename('compare.xlsx'));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize('compare.xlsx'));
ob_clean();
flush();
readfile('compare.xlsx');
unlink('compare.xlsx');
exit;