Выгрузка остатков из автоматизации Инфоаптека

Материал из wiki.standart-n.ru
Перейти к: навигация, поиск

Скрипт выгрузки из автоматизации торговли Инфоаптека

Подключить базу в IBExpert и выполнить в SQL редакторе: select 'delete from doc_detail where doc_id=-1; ' from rdb$database union all select 'delete from doc_detail_active where doc_id=-1; ' from rdb$database union all select 'delete from doc_detail_deleted where doc_id=-1;' from rdb$database union all select 'delete from prices; ' from rdb$database union all select 'delete from parts where doc_id=-1;' from rdb$database union all select 'delete from docs where id in (-1);' from rdb$database union all select 'insert into docs (VNUM,ID,PARENT_ID,DOC_TYPE,STATUS,AGENT_ID,AUDIT_ID) values (1,-1,0,20,0,0,0);' from rdb$database union all select ' insert into doc_detail_active (doc_id,sname,scountry,sizg,bcode_izg,quant,price,price_o,seria,godendo,barcode1) values (-1,'''|| coalesce(replace(replace(m.med_name,'"',''),'''',''),'') ||''','''|| coalesce(replace(replace(c.country_name,'"',''),'''',''),'')||''','''|| coalesce(replace(replace(v.vendor_name,'"',''),'''',''),'')||''',(select res_bcode from utpr_getchecksum_ean13('''|| coalesce(m.vendorbarcode,'')||''','''')),'|| cast(st.QTTY*1.0000/i.divisor as numeric(15,3))||','|| i.RPRICE||','|| i.SPRICE||','''|| coalesce(i.SERIA,'')||''','''|| coalesce(CAST(i.VALID_DATE AS DATE),'01.01.2000')||''','''|| st.iid||''');' from stock st, items i, medicine m left join vendor_v v on m.vendor_id=v.vendor_id left join country c on v.country_id=c.country_id where st.IID=i.IID and st.med_id=m.med_id and st.QTTY>0 union all select 'commit work; ' from rdb$database union all select '--execute procedure PR_DOC_COMMIT(-1,0);' from rdb$database

В результате выполнения получится готовый скрипт на insert, который нужно скопировать в буфер через Экспортировать данные - выбрав пункт копировать в буфер. Открываем нашу чистую базу, открываем редактор скриптов, вставляем из буфера текст полученный из запроса выгрузки и выполняем, если все хорошо скрипт выполнится без ошибок Далее заходим в Инфоаптеку с ролью товароведа и проверяем остатки у нас в менеджере (Журнал документов - активные) и в отчете в Инфоаптеке - Товарные запасы. Если расхождения не значительные проводим документ выполнив комментированный блок:

execute procedure PR_DOC_COMMIT(-1,0);