Какое-то время не формировались фискальные чеки по оплатам. Потребовалось создание чеков коррекции для таких оплат.
Требовалось выбрать завершенные оплаты за период, когда была сломана касса, и отобразить их как XML согласнодокументации
XML сохранялся в файл и загружался в личном кабинетеhttps://online.atol.ru/lk/ui/#/xml .
Требовалось выбрать завершенные оплаты за период, когда была сломана касса, и отобразить их как XML согласно
XML сохранялся в файл и загружался в личном кабинете
\Bitrix\Main\Loader::includeModule('sale'); $paymentTable = \Bitrix\Sale\PaymentCollection::getList([ 'select' => ['ID', 'DATE_PAID', 'SUM'], 'filter' => [ '=PAID' => 'Y', 'PAY_SYSTEM_ID' => 12, '>=DATE_PAID' => new \Bitrix\Main\Type\DateTime('15.07.2023 00:00:00'), '<=DATE_PAID' => new \Bitrix\Main\Type\DateTime('30.10.2023 14:00:00'), ] ]); $xml = '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL . PHP_EOL; $xml .= '<main>' . PHP_EOL; while ($item = $paymentTable->fetch()) { $timestamp = $item['DATE_PAID']->format('d.m.Y H:i:s'); $id = $item['ID']; $sum = number_format((float)$item['SUM'], 2, '.', ''); $check = <<<XM L <check> <timestamp>$timestamp</timestamp> <external_id>sell_correction_$id</external_id> <is_bso>false</is_bso> <correction> <operation>sell_correction</operation> <company> <sno>usn_income</sno> <inn>9718129333</inn> <payment_address>https://example.ru/</payment_address> </company> <correction_info> <type>self</type> <base_date>2023-10-31</base_date> <base_number>1</base_number> <base_name>Акт</base_name> </correction_info> <payments> <payment> <type>1</type> <sum>$sum</sum> </payment> </payments> <vats> <vat> <type>none</type> <sum>0</sum> </vat> </vats> <cashier>Иванов Иван Иванович</cashier> </correction> </check> XML; $xml .= $check . PHP_EOL; } $xml .= '</main>'; echo $xml; |