Выгрузка остатков из автоматизации Инфоаптека — различия между версиями
Материал из wiki.standart-n.ru
Avo (обсуждение | вклад) (Новая страница: «== Скрипт выгрузки из автоматизации торговли Инфоаптека == Подключить базу в IBExpert и выпол…») |
Amiheev (обсуждение | вклад) (→Скрипт выгрузки из автоматизации торговли Инфоаптека) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
== Скрипт выгрузки из автоматизации торговли Инфоаптека == | == Скрипт выгрузки из автоматизации торговли Инфоаптека == | ||
Подключить базу в IBExpert и выполнить в SQL редакторе: | Подключить базу в IBExpert и выполнить в SQL редакторе: | ||
− | + | <pre> | |
− | + | 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,nds,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.nds||','|| | |
− | + | i.SALLPRICE ||','''|| | |
− | + | 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 | ||
+ | |||
+ | |||
+ | </pre> | ||
В результате выполнения получится готовый скрипт на insert, который нужно скопировать в буфер через Экспортировать данные - выбрав пункт копировать в буфер. | В результате выполнения получится готовый скрипт на insert, который нужно скопировать в буфер через Экспортировать данные - выбрав пункт копировать в буфер. | ||
Строка 41: | Строка 46: | ||
Далее заходим в Инфоаптеку с ролью товароведа и проверяем остатки у нас в менеджере (Журнал документов - активные) и в отчете в Инфоаптеке - Товарные запасы. Если расхождения не значительные проводим документ выполнив комментированный блок: | Далее заходим в Инфоаптеку с ролью товароведа и проверяем остатки у нас в менеджере (Журнал документов - активные) и в отчете в Инфоаптеке - Товарные запасы. Если расхождения не значительные проводим документ выполнив комментированный блок: | ||
execute procedure PR_DOC_COMMIT(-1,0); | execute procedure PR_DOC_COMMIT(-1,0); | ||
+ | |||
+ | * '''Перенести контрагентов можно скриптом''' | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | |||
+ | </pre> |
Текущая версия на 11:11, 25 января 2022
Скрипт выгрузки из автоматизации торговли Инфоаптека
Подключить базу в 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,nds,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.nds||','|| i.SALLPRICE ||','''|| 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);
- Перенести контрагентов можно скриптом