мета-данные страницы
В данной ПФ внесены следующие изменения: - выведена информация о фирме, ИНН и ЗН фирмы (хардтекст) - выведена дата операции - в заголовке отображается, приход это или возврат прихода
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