В данной ПФ внесены следующие изменения: - выведена информация о фирме, ИНН и ЗН фирмы (хардтекст) - выведена дата операции - в заголовке отображается, приход это или возврат прихода
begin
/*
DOR_ID = 1001314;
CHARS_IN_LINE_BIG = 24;
CHARS_IN_LINE_MEDIUM = 48;
CHARS_IN_LINE_SMALL = 57;
LOCAL_KASS_ID = 56;+
PAY_SUM = 100.00;
PAY_TYPE = 1; --0Нал/1безнал
*/
/*
SIZE_LINE: 1 - маленький шрифт (small); 2 - стандартный (medium); 3 - большой (big) - для каждого шрифта нужно свою ширину ставить
ALIGNMENT: 0 – по левому краю; 1 – по центру; 2 – по правому краю
*/
/*
[1], [2], [3] - признак в начале строки от размере символов
[C] (английская) - признак, что тут нужно отрезать (RES_STR = '[C] '; suspend;)
[B] (английская) - признак, что тут нужно печатать ШК (RES_STR = '[B]270000000001'; suspend;)
[S][Размер шрифта][текст под чертой 1][текст под чертой 2][текст под чертой 3] ([S][14][подпись клиента][][])
тут будет сама подпись
___________________
текст под чертой 1
текст под чертой 2
текст под чертой 3
*/
------------------------------------------------------------------------------------------------
--раздел настройки печати. Выставить 0 возле того, что НЕ надо печатать, и 1 - что НАДО печатать
-------------------------------------------------------------------------------------------------
select d.doc_date,
d.doc_num,
cast(dor.date_out as date),
dor.sclad_kredit_id,
dor.kredit,
dor.debet,
dor.kredit - dor.debet,
dor.barcode,
c.name,
u.description
from docs_order dor
left join docs d on d.doc_id = dor.doc_id
--left join users u on u.user_id = dor.creater_id
--left join sclads s on s.id = dor.sclad_kredit_id
left join contragents c on c.contr_id = d.contragent_id
left join users u on u.user_id = dor.creater_id
where dor.id = :DOR_ID
into :DOC_DATE, :DOC_NUM, :DATE_OUT, :SCLAD_KREDIT_ID, :DOR_KREDIT, :DOR_DEBET, :DOLG, :BARCODE,
:contr_name, :kassir;
RES_STR = ' '; suspend; -- отступаем строку
RES_STR = ' '; suspend; -- отступаем строку
if(:pay_sum > 0) then
for select RES from SP_FISC_PRINT_STRING('КАССОВЫЙ ЧЕК/ПРИХОД', :CHARS_IN_LINE_BIG, 3, 1) into RES_STR do suspend;
else
begin
for select RES from SP_FISC_PRINT_STRING('КАССОВЫЙ ЧЕК/', :CHARS_IN_LINE_BIG, 3, 1) into RES_STR do suspend;
for select RES from SP_FISC_PRINT_STRING('ВОЗВРАТ ПРИХОДА', :CHARS_IN_LINE_BIG, 3, 1) into RES_STR do suspend;
end
RES_STR = ' '; suspend; -- отступаем строку
for select RES from SP_FISC_PRINT_STRING('Заказ №' || :DOC_NUM, :CHARS_IN_LINE_BIG, 3, 1) into RES_STR do suspend;
for select RES from SP_FISC_PRINT_STRING('от ' || :doc_date, :CHARS_IN_LINE_BIG, 3, 1) into RES_STR do suspend;
RES_STR = ' '; suspend; -- отступаем строку
RES_STR = '[B]' || :BARCODE; suspend;
RES_STR = ' '; suspend; -- отступаем строку
for select RES from SP_FISC_PRINT_STRING(:contr_name, :CHARS_IN_LINE_MEDIUM, 2,1) into RES_STR do suspend;
RES_STR = ' '; suspend; -- отступаем строку
for select RES from SP_FISC_PRINT_STRING_AND_VALUE('Дата приема', :doc_date, :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend;
for select RES from SP_FISC_PRINT_STRING_AND_VALUE('Дата выдачи', :DATE_OUT, :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend;
RES_STR = ' '; suspend; -- отступаем строку
if (LOCAL_KASS_ID is null) then
begin
kassa_id = null;
select first 1 ks.kassa_id
from kassa_sclads ks
where ks.sclad_id = :SCLAD_KREDIT_ID and ks.is_default = 1
into :kassa_id;
end
else
begin
kassa_id = LOCAL_KASS_ID;
end
--услуги
for
select t.name as t_name,
dos.qty_kredit,
dos.kredit,
dos.discount,
dos.tovar_id,
dos.barcode_read
from doc_order_services dos
left join tovars_tbl t on t.tovar_id = dos.tovar_id
--left join tree f on f.folder_id = t.folder_id
where dos.doc_order_id = :DOR_ID and dos.status_id <> 7
into :t_name, :qty_kredit, :kredit, :discount, :tovar_id, :barcode_read
do
begin
if (kassa_id is not null) then
select result from sp_get_fisc_tovar_name(:tovar_id, :kassa_id, 0, :t_name, :barcode_read) into :MOD_T_NAME;
else
MOD_T_NAME = t_name;
for select RES from SP_FISC_PRINT_STRING_AND_VALUE(:MOD_T_NAME, '1.000 * ' || :kredit || ' =' || :kredit, :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend;
end
--товары
for
select t.name as t_name,
dol.qty_kredit,
dol.kredit,
dol.discount,
dol.tovar_id,
dol.barcode
from doc_order_lines dol
left join tovars_tbl t on t.tovar_id = dol.tovar_id
--left join tree f on f.folder_id = t.folder_id
where dol.doc_order_id = :DOR_ID
into :t_name, :qty_kredit, :kredit, :discount, :tovar_id, :barcode_read
do
begin
if (kassa_id is not null) then
select result from sp_get_fisc_tovar_name(:tovar_id, :kassa_id, 0, :t_name, :barcode_read) into :MOD_T_NAME;
else
MOD_T_NAME = t_name;
for select RES from SP_FISC_PRINT_STRING_AND_VALUE(:MOD_T_NAME, '1.000 * ' || :kredit || ' =' || :kredit, :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend;
end
--Итоги чека
if (:PAY_SUM>0) then
for select RES from SP_FISC_PRINT_STRING_AND_VALUE('Итого по чеку:', cast(:PAY_SUM as D_NUM_15_2), :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend;
else
for select RES from SP_FISC_PRINT_STRING_AND_VALUE('Итого возврат по чеку:', cast(-:PAY_SUM as D_NUM_15_2), :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend;
for select RES from SP_FISC_PRINT_STRING_AND_VALUE('Итого по заказу:', :DOR_KREDIT, :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend;
if (:PAY_TYPE=0) then
for select RES from SP_FISC_PRINT_STRING_AND_VALUE('НАЛИЧНЫМИ:', cast(abs(:PAY_SUM) as D_NUM_15_2), :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend;
if (:PAY_TYPE=1) then
for select RES from SP_FISC_PRINT_STRING_AND_VALUE('ЭЛЕКТРОННЫМИ:', cast(abs(:PAY_SUM) as D_NUM_15_2), :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend;
for select RES from SP_FISC_PRINT_STRING_AND_VALUE('Долг по оплате:', cast(:DOLG-:PAY_SUM as D_NUM_15_2), :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend;
RES_STR = ' '; suspend; -- отступаем строку
for select RES from SP_FISC_PRINT_STRING('___________________________', :CHARS_IN_LINE_MEDIUM, 1, 0) into RES_STR do suspend;
for select RES from SP_FISC_PRINT_STRING('ИП Громова Раиса Викторовна', :CHARS_IN_LINE_MEDIUM, 1, 0) into RES_STR do suspend;
for select RES from SP_FISC_PRINT_STRING('г.Москва, ул. Маршала Савицкого д.32', :CHARS_IN_LINE_BIG, 1, 0) into RES_STR do suspend;
for select RES from sp_fisc_print_string_and_value('Кассир:', :kassir, :CHARS_IN_LINE_BIG, 1) into RES_STR do suspend;
for select RES from SP_FISC_PRINT_STRING('ИНН: 772029947472', :CHARS_IN_LINE_BIG, 1, 0) into RES_STR do suspend;
for select RES from SP_FISC_PRINT_STRING('ЗН: DM07224V40827', :CHARS_IN_LINE_BIG, 1, 0) into RES_STR do suspend;
for select RES from SP_FISC_PRINT_STRING('Сайт ФНС: www.nalog.ru', :CHARS_IN_LINE_BIG, 1, 0) into RES_STR do suspend;
for select RES from SP_FISC_PRINT_STRING('СНО: Патент', :CHARS_IN_LINE_BIG, 1, 0) into RES_STR do suspend;
for select RES from SP_FISC_PRINT_STRING_AND_VALUE('',
lpad(extract(day from current_timestamp),2,'0') ||'.'|| lpad(extract(month from current_timestamp),2,'0') ||'.'|| extract(year from current_timestamp) ||' '||
lpad(extract(hour from current_timestamp),2,'0') ||':'|| lpad(extract(minute from current_timestamp),2,'0') , :CHARS_IN_LINE_MEDIUM, 1) into RES_STR do suspend;
--for select RES from SP_FISC_PRINT_STRING('СПАСИБО', :CHARS_IN_LINE_BIG, 3, 1) into RES_STR do suspend;
--for select RES from SP_FISC_PRINT_STRING('ЗА ПОКУПКУ!', :CHARS_IN_LINE_BIG, 3, 1) into RES_STR do suspend;
RES_STR = ' '; suspend; -- отступаем строку
RES_STR = ' '; suspend; -- отступаем строку
RES_STR = ' '; suspend; -- отступаем строку
end