Меморандум для Казахстана — различия между версиями
Материал из wiki.standart-n.ru
Agk (обсуждение | вклад) |
Agk (обсуждение | вклад) |
||
| Строка 74: | Строка 74: | ||
[[Файл:Меморандум 4.png|center|Код]] | [[Файл:Меморандум 4.png|center|Код]] | ||
| + | |||
| + | |||
| + | =Приход товара= | ||
| + | в приходном документе, если товар относится к группе "Меморандум" (10022), анализируется розничная цена, если она выше, чем в справочнике будет выведено соответствующее сообщение. | ||
| + | |||
| + | [[Файл:Меморандум 5.png|center|Код]] | ||
| + | |||
| + | =Автоматическое ограничение цены= | ||
| + | возможно программу настроить так, что при нажатии "Назначить наценку по приходу", в случае превышения, цена будет обрезана до максимально допустимой. | ||
| + | <pre> | ||
| + | if ((Pos('Меморандум',Trim(mmbsh))) >0) then //Меморандум | ||
| + | begin | ||
| + | query1:=ExecIBQuery(trn1,'select trunc(price/10)*10 as price from OUT$MEMORAND_KZ WHERE barcode = '''+IBQuery_FieldByName_s(query, 'bcode_izg')+'''',1); | ||
| + | m_manager.logit(IBQuery_FieldByName_s(query1, 'price')); | ||
| + | if IBQuery_FieldByName_f(query, 'price_o') <> 0 Then | ||
| + | if not IBQUERY_EOF(query) Then nac:=FloatToStr( (IBQuery_FieldByName_f(query1, 'price')-IBQuery_FieldByName_f(query, 'price_o'))*100/IBQuery_FieldByName_f(query, 'price_o') ) | ||
| + | else | ||
| + | nac:='0.000001'; | ||
| + | //nac := FloatToStr(nac1); | ||
| + | infor := infor +'Группа товара - '+mmbsh; | ||
| + | end; | ||
| + | </pre> | ||
| + | |||
| + | [[Файл:Меморандум 6.png|center|Код]] | ||
Версия 11:05, 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
Приход товара
в приходном документе, если товар относится к группе "Меморандум" (10022), анализируется розничная цена, если она выше, чем в справочнике будет выведено соответствующее сообщение.
Автоматическое ограничение цены
возможно программу настроить так, что при нажатии "Назначить наценку по приходу", в случае превышения, цена будет обрезана до максимально допустимой.
if ((Pos('Меморандум',Trim(mmbsh))) >0) then //Меморандум
begin
query1:=ExecIBQuery(trn1,'select trunc(price/10)*10 as price from OUT$MEMORAND_KZ WHERE barcode = '''+IBQuery_FieldByName_s(query, 'bcode_izg')+'''',1);
m_manager.logit(IBQuery_FieldByName_s(query1, 'price'));
if IBQuery_FieldByName_f(query, 'price_o') <> 0 Then
if not IBQUERY_EOF(query) Then nac:=FloatToStr( (IBQuery_FieldByName_f(query1, 'price')-IBQuery_FieldByName_f(query, 'price_o'))*100/IBQuery_FieldByName_f(query, 'price_o') )
else
nac:='0.000001';
//nac := FloatToStr(nac1);
infor := infor +'Группа товара - '+mmbsh;
end;





