How To: Печать документа заказа (счет, акт, ТОРГ-12 и т.д.) в личном кабинете клиента
* Доступно с версии 6.8.7
Пример реализации печати документа заказа в личном кабинете клиента.
- Редактируем XSL-шаблон списка заказов в личном кабинете и добавляем кнопку печати вида
<a href="?action=print&printlayout_id=10&guid={guid}">Печать</a>
, где в printlayout_id указываем идентификатор шаблона документа, который будет использован для генерации документа. - Редактируем ТДС списка заказов в личном кабинете и в коде настроек добавляем обработку:
<?php // Печать документа if (Core_Array::getGet('action') == 'print') { // Драйвер шаблона документов. 1-HTML, 2-Docx $driver_id = 2; /* Массив идентификаторов доступных для заказа шаблонов документов: * 9 - Акт об оказании услуг * 10 - Счет на оплату * 11 - ТОРГ-12 * 12 - Товарный чек * 13 - Счет-фактура */ $aAvailablePrintlayouts = array(9, 10, 11, 12, 13); $printlayout_id = intval(Core_Array::getGet('printlayout_id')); if (in_array($printlayout_id, $aAvailablePrintlayouts)) { $oPrintlayout = Core_Entity::factory('Printlayout')->getById($printlayout_id); if (!is_null($oPrintlayout)) { $oPrintlayout_Controller = new Printlayout_Controller($oPrintlayout); $oShop = Core_Entity::factory('Shop', Core_Array::get(Core_Page::instance()->libParams, 'shopId')); $oPrintlayout_Driver = Core_Entity::factory('Printlayout_Driver', $driver_id); $guid = strval(Core_Array::getGet('guid')); $oShop_Order = $oShop->Shop_Orders->getByGuid($guid); if (!is_null($oShop_Order)) { $oPrintlayout_Controller ->replace($oShop_Order->getPrintlayoutReplaces()) ->driver($oPrintlayout_Driver) ->entity($oShop_Order); $oPrintlayout_Controller->execute()->downloadFile(); exit(); } } } Core_Page::instance()->response->status(404)->sendHeaders()->showBody(); exit(); }
Не нашли ответ на свой вопрос в документации? Направьте обращение в службу поддержки или онлайн чат.