Выгрузка остатков из автоматизации Инфоаптека — различия между версиями

Материал из wiki.standart-n.ru
Перейти к: навигация, поиск
(Новая страница: «== Скрипт выгрузки из автоматизации торговли Инфоаптека == Подключить базу в IBExpert и выпол…»)
 
(Скрипт выгрузки из автоматизации торговли Инфоаптека)
 
(не показаны 4 промежуточные версии этого же участника)
Строка 1: Строка 1:
 
== Скрипт выгрузки из автоматизации торговли Инфоаптека ==
 
== Скрипт выгрузки из автоматизации торговли Инфоаптека ==
 
Подключить базу в IBExpert и выполнить в SQL редакторе:
 
Подключить базу в IBExpert и выполнить в SQL редакторе:
select 'delete from doc_detail where doc_id=-1; ' from rdb$database
+
<pre>
union all
+
select 'delete from doc_detail where doc_id=-1; ' from rdb$database
select 'delete from doc_detail_active where doc_id=-1; ' from rdb$database
+
union all
union all
+
select 'delete from doc_detail_active where doc_id=-1; ' from rdb$database
select 'delete from doc_detail_deleted where doc_id=-1;' from rdb$database
+
union all
union all
+
select 'delete from doc_detail_deleted where doc_id=-1;' from rdb$database
select 'delete from prices; ' from rdb$database
+
union all
union all
+
select 'delete from prices; ' from rdb$database
select 'delete from parts where doc_id=-1;' from rdb$database
+
union all
union all
+
select 'delete from parts where doc_id=-1;' from rdb$database
select 'delete from docs where id in (-1);' from rdb$database
+
union all
union all
+
select 'delete from docs where id in (-1);' from rdb$database
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
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
select '
+
union all
insert into doc_detail_active (doc_id,sname,scountry,sizg,bcode_izg,quant,price,price_o,seria,godendo,barcode1) values (-1,'''||
+
select '
coalesce(replace(m.med_name,'''','"'),'') ||''','''||
+
insert into doc_detail_active (doc_id,sname,scountry,sizg,bcode_izg,quant,price,nds,price_o,seria,godendo,barcode1) values (-1,'''||
coalesce(replace(c.country_name,'''','"'),'')||''','''||
+
coalesce(replace(replace(m.med_name,'"',''),'''',''),'') ||''','''||
coalesce(replace(v.vendor_name,'''','"'),'')||''','''||
+
coalesce(replace(replace(c.country_name,'"',''),'''',''),'')||''','''||
coalesce(m.vendorbarcode,'')||''','||
+
coalesce(replace(replace(v.vendor_name,'"',''),'''',''),'')||''',(select res_bcode from utpr_getchecksum_ean13('''||
cast(st.QTTY*1.0000/i.divisor as numeric(15,3))||','||
+
coalesce(m.vendorbarcode,'')||''','''')),'||
i.RPRICE||','||
+
cast(st.QTTY*1.0000/i.divisor as numeric(15,3))||','||
i.SPRICE||','''||
+
i.RPRICE||','||
coalesce(i.SERIA,'')||''','''||
+
i.nds||','||
coalesce(CAST(i.VALID_DATE AS DATE),'01.01.2000')||''','||
+
i.SALLPRICE ||','''||
st.iid||');'
+
coalesce(i.SERIA,'')||''','''||
+
coalesce(CAST(i.VALID_DATE AS DATE),'01.01.2000')||''','''||
from stock st, items i, medicine m
+
st.iid||''');'
left join vendor_v v on m.vendor_id=v.vendor_id
+
 
left join country c on v.country_id=c.country_id
+
from stock st, items i, medicine m
where st.IID=i.IID and st.med_id=m.med_id and st.QTTY>0
+
left join vendor_v v on m.vendor_id=v.vendor_id
union all
+
left join country c on v.country_id=c.country_id
select 'commit work; ' from rdb$database
+
where st.IID=i.IID and st.med_id=m.med_id and st.QTTY>0
union all
+
union all
select '--execute procedure PR_DOC_COMMIT(-1,0);' from rdb$database
+
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);
  • Перенести контрагентов можно скриптом