Nie wszystkie typy rozliczeń są obsłużone, ale na podstawie tego można sobie dopisać resztę, można też trochę zoptymalizować
Kod: Zaznacz cały
select
CDN.NumerDokumentuTRN(trn_gidtyp,trn_spityp,trn_trntyp,trn_trnnumer,trn_trnrok,trn_trnseria) nrDok
,TrP_GIDLp
,TrN_NettoR
,(TrN_NettoR+TrN_VatR) brutto
,TrP_FormaNazwa
,TrP_Kwota
,TrP_Waluta
,TrP_KwotaSys
,TrP_KursL/TrP_KursM kurs
,TrN_Data2
,case when ddtyp=784 then
(select
CDN.NumerDokumentu(KAZ_GIDTyp,0,0,KRP_Numer,kaz_rok,kaz_seria,KAZ_KRPLp)+' ('+KAZ_NumerDokumentu+')'
from CDN.Zapisy
join CDN.Raporty on KRP_GIDNumer=KAZ_KRPNumer and KAZ_KRPTyp=800
where KAZ_GIDTyp=ddtyp AND KAZ_GIDNumer=ddnumer AND KAZ_GIDLp=ddlp
)
else
(select CDN.NumerDokumentuTRN(trn_gidtyp,trn_spityp,trn_trntyp,trn_trnnumer,trn_trnrok,trn_trnseria)from CDN.TraNag
where TrN_GIDTyp=ddtyp and TrN_GIDNumer=ddnumer )
end
,R2_KwotaSys
,r2_datarozrachunku
--,(select KAZ_NumerDokumentu from CDN.Zapisy where KAZ_GIDNumer=R2_Dok2Numer and KAZ_GIDTyp=R2_Dok2Typ and KAZ_GIDLp=R2_Dok2Lp) zapis
from CDN.TraNag
join CDN.TraPlat on TrN_GIDTyp=TrP_GIDTyp AND TrN_GIDNumer=TrP_GIDNumer
--join CDN.Rozliczenia on TrP_GIDTyp=R2_Dok1Typ AND TrP_GIDNumer=R2_Dok1Numer and TrP_GIDLp=R2_Dok1Lp
join (SELECT
R2_Dok1Typ dok_typ,
R2_Dok1Numer dok_numer,
R2_Dok2Typ ddtyp,
R2_Dok2Numer ddnumer,
R2_Dok2Lp ddlp,
R2_DataRozrachunku,
R2_KwotaSys,
R2_KwotaWal1,
R2_KwotaWal2,
R2_Waluta1 AS R2_Waluta
FROM CDN.Rozliczenia
UNION ALL
SELECT
R2_Dok2Typ dok_typ,
R2_Dok2Numer dok_numer,
R2_Dok1Typ ddtyp,
R2_Dok1Numer ddnumer,
R2_Dok1Lp ddlp,
R2_DataRozrachunku,
R2_KwotaSys,
R2_KwotaWal1,
R2_KwotaWal2,
R2_Waluta2 AS R2_Waluta
FROM CDN.Rozliczenia
) AS ROZ
ON TrP_GIDTyp=dok_typ AND TrP_GIDNumer=dok_numer-- and TrP_GIDLp=R2_Dok1Lp
where --TrP_GIDLp=R2_Dok1Lp and R2_Dok1Typ<>784 AND R2_Dok1Typ<>0 AND R2_Dok1Typ<>435 and TrP_KntTyp = 32 AND TrP_KntNumer = 17348 AND TrP_Rozliczona = 1 AND (TRP_Waluta='PLN' AND TRP_GIDTyp<>434 AND (TRP_KntTyp<>944 OR TRP_GIDTyp IN (2977,2976)))
(TrN_GIDTyp=2033)