мета-данные страницы
  •  

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

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