Меморандум для Казахстана — различия между версиями
Материал из wiki.standart-n.ru
								
												
				Agk  (обсуждение | вклад)  | 
				Agk  (обсуждение | вклад)   | 
				||
| Строка 21: | Строка 21: | ||
=Проверка препаратов в приходном документе=  | =Проверка препаратов в приходном документе=  | ||
| + | В менеджере групп партий, в основной группе, должен быть код  | ||
| + | <pre>  | ||
| + |   //Проверка меморандумных препаратов (группа) 20151117  | ||
| + |   if (infor = '') Then  | ||
| + |   Begin  | ||
| + |     trn:=CREATEIBTRANSACTION;    | ||
| + |     STARTIBTRANSACTION(trn,1);  | ||
| + |     query:=ExecIBQuery(trn,'select * from OUT$MEMORAND_KZ WHERE barcode = '''+fieldvalue_s('bcode_izg')+'''',1);  | ||
| + |     if (not IBQUERY_EOF(query)) then  | ||
| + |       If Pos('Меморандум', fieldvalue_s('mmbsh')) = 0 Then  | ||
| + |       Begin  | ||
| + |         //заявка 887094 А.К. 20170913   | ||
| + |         query:=ExecIBQuery(trn,'INSERT INTO GROUP_DETAIL (GROUP_ID, PARENT_ID, GROUPTABLE_ID, GROUPTABLE, d$uuid, d$srvupddt) VALUES (10022, 0, '''+fieldvalue_s('NAME_ID')+''', ''PARTS.NAME_ID'', UUID_TO_CHAR(GEN_UUID()), ''2000-01-01'');',1);        | ||
| + | //      setstatus(3);  | ||
| + | //        perem :=perem+'bcode_izg=255; 1'#13#10+'SNAME=255; 0'#13#10;   | ||
| + | //        infor := infor+'Товар с ШК '+fieldvalue_s('bcode_izg')+' относится к группе "Меморандум", но группа не проставлена! ШК и наименование отмечено красным{clrf}';  | ||
| + |       end  | ||
| + |     FREEIBQUERY(query);          | ||
| + |     FREEIBTRANSACTION(trn);  | ||
| + |   End  | ||
| + | |||
| + |   //Проверка меморандумных препаратов (цена)  | ||
| + |   if (infor = '') Then  | ||
| + |   Begin  | ||
| + |     trn:=CREATEIBTRANSACTION;    | ||
| + |     STARTIBTRANSACTION(trn,1);  | ||
| + |     query:=ExecIBQuery(trn,'select min(price) as price from OUT$MEMORAND_KZ WHERE barcode = '''+fieldvalue_s('bcode_izg')+'''',1);  | ||
| + |     if ((not IBQUERY_EOF(query)) and (IBQUERY_FIELDBYNAME_f(query,'price')>0)) then  | ||
| + |      begin   | ||
| + |      If ((fieldvalue_f('price')- IBQUERY_FIELDBYNAME_f(query,'price'))>0.01) then  | ||
| + |      Begin  | ||
| + |        setstatus(3);  | ||
| + |        perem :=perem+'bcode_izg=10724305; 1'#13#10+'SNAME=10724305; 0'#13#10;   | ||
| + |        infor := infor+'Цена на данный меморандумный препарат должна быть НЕ БОЛЕЕ '+IBQUERY_FIELDBYNAME_s(query,'price')+' тенге! ШК и наименование отмечено красным{clrf}';  | ||
| + |      end  | ||
| + |      end  | ||
| + |     else  | ||
| + |      If (Pos('Меморандум', fieldvalue_s('mmbsh')) > 0) Then  | ||
| + |      Begin  | ||
| + |        setstatus(3);  | ||
| + |        perem :=perem+'bcode_izg=10724305; 1'#13#10+'SNAME=10724305; 0'#13#10;   | ||
| + |        infor := infor+'Группа "Меморандум" на ШК '+fieldvalue_s('bcode_izg')+' установлена, но не указана цена в справочнике! ШК и наименование отмечено красным{clrf}';  | ||
| + |      end       | ||
| + |     FREEIBQUERY(query);          | ||
| + |     FREEIBTRANSACTION(trn);  | ||
| + |   End  | ||
| + | |||
| + | </pre>  | ||
Версия 10:57, 25 июля 2019
Содержание
Общие сведения
В 2019 году правительство Казахстана ввело ограничение на цены некоторых препаратов (около 4 тыс. позиций) в республике. Официально список нигде не выложен, но аптечным сетям пришло письмо с вложением (см. ниже) и требованием исполнять данное указание. Мы настраиваем данный функционал бесплатно, для всех клиентов, кто на технической поддержке.
Прикрепленный файл Файл:Приложение розница.docx Прикрепленный файл Файл:Приложение опт.docx
Справочник Меморандумных препаратов
сопоставление товара из файла правительства и аптеки сделано на основании заводского ШК. Мы прогнали файл по названиям и примерно 50% ШК смогли найти, остальное требуется заполнять вручную. В базе требуется выполнить данный скрипт.
Прикрепленный файл Файл:Script.txt
Работа со справочником
Проверка препаратов в приходном документе
В менеджере групп партий, в основной группе, должен быть код
  //Проверка меморандумных препаратов (группа) 20151117
  if (infor = '') Then
  Begin
    trn:=CREATEIBTRANSACTION;  
    STARTIBTRANSACTION(trn,1);
    query:=ExecIBQuery(trn,'select * from OUT$MEMORAND_KZ WHERE barcode = '''+fieldvalue_s('bcode_izg')+'''',1);
    if (not IBQUERY_EOF(query)) then
      If Pos('Меморандум', fieldvalue_s('mmbsh')) = 0 Then
      Begin
        //заявка 887094 А.К. 20170913 
        query:=ExecIBQuery(trn,'INSERT INTO GROUP_DETAIL (GROUP_ID, PARENT_ID, GROUPTABLE_ID, GROUPTABLE, d$uuid, d$srvupddt) VALUES (10022, 0, '''+fieldvalue_s('NAME_ID')+''', ''PARTS.NAME_ID'', UUID_TO_CHAR(GEN_UUID()), ''2000-01-01'');',1);      
//      setstatus(3);
//        perem :=perem+'bcode_izg=255; 1'#13#10+'SNAME=255; 0'#13#10; 
//        infor := infor+'Товар с ШК '+fieldvalue_s('bcode_izg')+' относится к группе "Меморандум", но группа не проставлена! ШК и наименование отмечено красным{clrf}';
      end
    FREEIBQUERY(query);        
    FREEIBTRANSACTION(trn);
  End
  
  //Проверка меморандумных препаратов (цена)
  if (infor = '') Then
  Begin
    trn:=CREATEIBTRANSACTION;  
    STARTIBTRANSACTION(trn,1);
    query:=ExecIBQuery(trn,'select min(price) as price from OUT$MEMORAND_KZ WHERE barcode = '''+fieldvalue_s('bcode_izg')+'''',1);
    if ((not IBQUERY_EOF(query)) and (IBQUERY_FIELDBYNAME_f(query,'price')>0)) then
     begin 
     If ((fieldvalue_f('price')- IBQUERY_FIELDBYNAME_f(query,'price'))>0.01) then
     Begin
       setstatus(3);
       perem :=perem+'bcode_izg=10724305; 1'#13#10+'SNAME=10724305; 0'#13#10; 
       infor := infor+'Цена на данный меморандумный препарат должна быть НЕ БОЛЕЕ '+IBQUERY_FIELDBYNAME_s(query,'price')+' тенге! ШК и наименование отмечено красным{clrf}';
     end
     end
    else
     If (Pos('Меморандум', fieldvalue_s('mmbsh')) > 0) Then
     Begin
       setstatus(3);
       perem :=perem+'bcode_izg=10724305; 1'#13#10+'SNAME=10724305; 0'#13#10; 
       infor := infor+'Группа "Меморандум" на ШК '+fieldvalue_s('bcode_izg')+' установлена, но не указана цена в справочнике! ШК и наименование отмечено красным{clrf}';
     end     
    FREEIBQUERY(query);        
    FREEIBTRANSACTION(trn);
  End

