Краткое описание :
Реализовать выгрузку сальдо по контрагентам на дату (из
KontrBal)Описание :
Выгрузки контура ЛогистикиЧто измененно :
Реализовать выгрузку сальдо по контрагентам на дату (из
KontrBal) как это было сделано в SQL-запросе для Асконы.
Запрос для базы ORACLE прилагается, только его нужно перевести на VIP. Имена и
маппинг полей в запросе.
Нужно учесть, что одна запись в таблице сальдо при выгрузке преобразуется в 4
записи (отдельно для продаж и закупок, товаров и финансов).
Дата сальдо при выгрузке должна формироваться на следующий день: то есть, если
сальдо по контрагентам рассчитано на конец дня 31.12.2009, то в выгрузку оно
должно идти датой 01.01.2010.
-------
-- поля [datФактическиеОперации] для выгрузки баланса
-- дополнен маппинг полей для запроса измененного Удальцовой Е.В.
-- 781 direct=1
-- 782 direct=-1
-- 783 direct=-1
-- 784 direct=1
select
-- общий заголовок
to_date('01012010', 'DDMMYYYY') AS FactDocs_DatOb
,111 AS UnloadJournalID
,0 AS UploadingStatus
,1 AS FactDocs_Reverse
,SelBalans.* from
(
-- 782 direct=-1 - S1OTGNDE - сумма продаж в НДЕ
select gal_vek.to_oradate(a.FdSaldo) FdSaldo, a.FcOrg
-- атрибуты документа уникальные
,782 AS Soprhoz_TiDk
,782 AS Soprhoz_TiDkGal
,-1 AS Soprhoz_Direct
-- суммы уникальные
,a.FS1OtgNDE AS FactSpDocs_Summa
,a.FS1OtgNDE AS FactDocs_Summa
,a.FS1OTGBASE AS FactSpDocs_SumValut
,a.FS1OTGBASE AS FactDocs_SummaValut
-- поля выгрузки общие
,TO_CHAR(TO_INT64(a.FATL_BRANCH)) AS OfficeNo
,TO_CHAR(TO_INT64(a.FcOrg)) AS Soprhoz_cOrg
,TO_CHAR(TO_INT64(a.FNRec)) AS Soprhoz_cSoprDoc
,TO_CHAR(TO_INT64(a.FNRec)) AS TableNRec
,TO_CHAR(TO_INT64(a.FCVAL)) AS Soprhoz_KodValut
,to_oradate(a.FdSaldo) AS FactDocs_dDoc
,to_oradate(a.FdSaldo) AS FactDocs_dValCurse
from gal_vek.Kontrbal a join
(
select max(FdSaldo) FdSaldo, FcOrg from gal_vek.Kontrbal
where (to_date('01012010', 'DDMMYYYY') >= decode(FdSaldo,0, to_date('01011900',
'DDMMYYYY'), gal_vek.to_oradate(FdSaldo)) and FdSaldo <> 0 and FdSaldo is not
null)
group by FcOrg) b on (a.FcOrg = b.FcOrg and a.FdSaldo = b.FdSaldo and a.FdSaldo
<> 0 and a.FdSaldo is not null)
-- 781 direct=1 - S2OTGNDE - сумма закупок в НДЕ
union
select gal_vek.to_oradate(a.FdSaldo) FdSaldo, a.FcOrg
-- атрибуты документа уникальные
,781 AS Soprhoz_TiDk
,781 AS Soprhoz_TiDkGal
,1 AS Soprhoz_Direct
-- суммы уникальные
,a.FS2OtgNDE AS FactSpDocs_Summa
,a.FS2OtgNDE AS FactDocs_Summa
,a.FS2OTGBASE AS FactSpDocs_SumValut
,a.FS2OTGBASE AS FactDocs_SummaValut
-- поля выгрузки общие
-- поля выгрузки общие
,TO_CHAR(TO_INT64(a.FATL_BRANCH)) AS OfficeNo
,TO_CHAR(TO_INT64(a.FcOrg)) AS Soprhoz_cOrg
,TO_CHAR(TO_INT64(a.FNRec)) AS Soprhoz_cSoprDoc
,TO_CHAR(TO_INT64(a.FNRec)) AS TableNRec
,TO_CHAR(TO_INT64(a.FCVAL)) AS Soprhoz_KodValut
,to_oradate(a.FdSaldo) AS FactDocs_dDoc
,to_oradate(a.FdSaldo) AS FactDocs_dValCurse
from gal_vek.Kontrbal a join
(
select max(FdSaldo) FdSaldo, FcOrg from gal_vek.Kontrbal
where (to_date('01012010', 'DDMMYYYY') >= decode(FdSaldo,0, to_date('01011900',
'DDMMYYYY'), gal_vek.to_oradate(FdSaldo)) and FdSaldo <> 0 and FdSaldo is not
null)
group by FcOrg) b on (a.FcOrg = b.FcOrg and a.FdSaldo = b.FdSaldo and a.FdSaldo
<> 0 and a.FdSaldo is not null)
-- 784 direct=1 - S1OPLNDE - сумма входящих платежей в НДЕ
union
select gal_vek.to_oradate(a.FdSaldo) FdSaldo, a.FcOrg
-- атрибуты документа уникальные
,784 AS Soprhoz_TiDk
,784 AS Soprhoz_TiDkGal
,1 AS Soprhoz_Direct
-- суммы уникальные
,a.FS1OPLNDE AS FactSpDocs_Summa
,a.FS1OPLNDE AS FactDocs_Summa
,a.FS1OPLBASE AS FactSpDocs_SumValut
,a.FS1OPLBASE AS FactDocs_SummaValut
-- поля выгрузки общие
-- поля выгрузки общие
,TO_CHAR(TO_INT64(a.FATL_BRANCH)) AS OfficeNo
,TO_CHAR(TO_INT64(a.FcOrg)) AS Soprhoz_cOrg
,TO_CHAR(TO_INT64(a.FNRec)) AS Soprhoz_cSoprDoc
,TO_CHAR(TO_INT64(a.FNRec)) AS TableNRec
,TO_CHAR(TO_INT64(a.FCVAL)) AS Soprhoz_KodValut
,to_oradate(a.FdSaldo) AS FactDocs_dDoc
,to_oradate(a.FdSaldo) AS FactDocs_dValCurse
from gal_vek.Kontrbal a join
(
select max(FdSaldo) FdSaldo, FcOrg from gal_vek.Kontrbal
where (to_date('01012010', 'DDMMYYYY') >= decode(FdSaldo,0, to_date('01011900',
'DDMMYYYY'), gal_vek.to_oradate(FdSaldo)) and FdSaldo <> 0 and FdSaldo is not
null)
group by FcOrg) b on (a.FcOrg = b.FcOrg and a.FdSaldo = b.FdSaldo and a.FdSaldo
<> 0 and a.FdSaldo is not null)
-- 783 direct=-1 - S2OPLNDE - сумма исходящих платежей в НДЕ
union
select gal_vek.to_oradate(a.FdSaldo) FdSaldo, a.FcOrg
-- атрибуты документа уникальные
,783 AS Soprhoz_TiDk
,783 AS Soprhoz_TiDkGal
,-1 AS Soprhoz_Direct
-- суммы уникальные
,a.FS2OPLNDE AS FactSpDocs_Summa
,a.FS2OPLNDE AS FactDocs_Summa
,a.FS2OPLBASE AS FactSpDocs_SumValut
,a.FS2OPLBASE AS FactDocs_SummaValut
-- поля выгрузки общие
-- поля выгрузки общие
,TO_CHAR(TO_INT64(a.FATL_BRANCH)) AS OfficeNo
,TO_CHAR(TO_INT64(a.FcOrg)) AS Soprhoz_cOrg
,TO_CHAR(TO_INT64(a.FNRec)) AS Soprhoz_cSoprDoc
,TO_CHAR(TO_INT64(a.FNRec)) AS TableNRec
,TO_CHAR(TO_INT64(a.FCVAL)) AS Soprhoz_KodValut
,to_oradate(a.FdSaldo) AS FactDocs_dDoc
,to_oradate(a.FdSaldo) AS FactDocs_dValCurse
from gal_vek.Kontrbal a join
(
select max(FdSaldo) FdSaldo, FcOrg from gal_vek.Kontrbal
where (to_date('01012010', 'DDMMYYYY') >= decode(FdSaldo,0, to_date('01011900',
'DDMMYYYY'), gal_vek.to_oradate(FdSaldo)) and FdSaldo <> 0 and FdSaldo is not
null)
group by FcOrg) b on (a.FcOrg = b.FcOrg and a.FdSaldo = b.FdSaldo and a.FdSaldo
<> 0 and a.FdSaldo is not null)
) SelBalans
order by FcOrg;
Как измененно :
Реализована выгрузка из таблицы KontrBal C_OLAP::dwt_ERP_Debt
Поля:
OfficeNo
Operation
TableNRec
Soprhoz_TiDk
Soprhoz_TiDkGal
Soprhoz_Direct
Soprhoz_cOrg
Soprhoz_cSoprDoc
Soprhoz_KodValut
FactDocs_dDoc
FactDocs_dValCurse
FactDocs_Summa
FactDocs_SumValut
FactSpDocs_Summa';
FactSpDocs_SummaValut