Files
Nuvolar/Nuvolar.Module/BusinessObjects/SIS/SQLscripts/POSTGRESQL/vv_WaitforRateDiff.sql
T
2017-03-08 11:21:27 +01:00

72 lines
5.1 KiB
SQL

select t1."Oid" Oid,
t2."CustomersFrom" CustomersFrom,
t1."PartnerType" PartnerType,
t1."Customer" Customers,
t1."ConnectInfo" ConnectInfo,
t3."DateExecution" DateExecution_Account,
t3."CurrencyName" CurrencyName_Account,
round(cast(t4."AmountDEV_Account" as numeric),2) AmountDEV_Account,
round(cast(t4."AmountHUF_Account" as numeric),2) AmountHUF_Account,
round(cast(t4."BallanceDEV" as numeric),2) BallanceDEV_Account,
case when round(cast(t4."AmountDEV_Account" as numeric),2)<>0 then round(cast(round(cast(t4."AmountHUF_Account" as numeric),2)/round(cast(t4."AmountDEV_Account" as numeric),2) as numeric),2) else 0 end CurrencyRate_Account,
t1."LiquidAssets" LiquidAssets,
t2."DateExecution" DateExecution,
round(cast(t1."InAmountDEV" as numeric),2) InAmountDEV,
round(cast(t1."OutAmountDEV" as numeric),2) OutAmountDEV,
round(cast(t1."InAmountDEV2" as numeric),2) InAmountDEV2,
round(cast(t1."OutAmountDEV2" as numeric),2) OutAmountDEV2,
case when "InAmountHUF">0 then
case when t1."InAmountDEV" <>0 then round(cast(t1."InAmountHUF" as numeric),2)/round(cast(t1."InAmountDEV" as numeric),2)
else 0
end
else
case when t1."OutAmountDEV" <>0 then round(cast(t1."OutAmountHUF" as numeric),2)/round(cast(t1."OutAmountDEV" as numeric),2)
else 0
end
end CurrencyRate,
round(cast(t1."InAmountHUF" as numeric),2) InAmountHUF,
round(cast(t1."OutAmountHUF" as numeric),2) OutAmountHUF,
case when t3."CurrencyName"=t5."CurrencyName" then round(cast(t1."InAmountDEV" as numeric),2)* round(cast(t3."CurrencyRate" as numeric),2)
else round(cast(t1."InAmountDEV2" as numeric),2)* round(cast(t3."CurrencyRate" as numeric),2)
end InAmountHUF_Account,
case when t3."CurrencyName"=t5."CurrencyName" then round(cast(t1."OutAmountDEV" as numeric),2)*round(cast(t3."CurrencyRate" as numeric),2)
else round(cast(t1."OutAmountDEV2" as numeric),2)*round(cast(t3."CurrencyRate" as numeric),2)
end OutAmountHUF_Account,
case when t3."CurrencyName"=t5."CurrencyName" then round(cast(t1."InAmountDEV" as numeric),2)* round(cast(t3."CurrencyRate" as numeric),2)
else round(cast(t1."InAmountDEV2" as numeric),2)* round(cast(t3."CurrencyRate" as numeric),2)
end - round(cast(t1."InAmountHUF" as numeric),2) InAmountHUF_Diff,
case when t3."CurrencyName"=t5."CurrencyName" then round(cast(t1."OutAmountDEV" as numeric),2)*round(cast(t3."CurrencyRate" as numeric),2)
else round(cast(t1."OutAmountDEV2" as numeric),2)*round(cast(t3."CurrencyRate" as numeric),2)
end - round(cast(t1."OutAmountHUF" as numeric),2) OutAmountHUF_Diff,
t1."GLRowsRateDiff" GLRowsRateDiff,
case when t1."PartnerType" = 0 Then
case when case when t3."CurrencyName"=t5."CurrencyName" then round(cast(t1."InAmountDEV" as numeric),2)* round(cast(t3."CurrencyRate" as numeric),2)
else round(cast(t1."InAmountDEV2" as numeric),2)* round(cast(t3."CurrencyRate" as numeric),2)
end - round(cast(t1."InAmountHUF" as numeric),2) > 0 Then -1
else 1
end
when t1."PartnerType" = 1 Then
case when case when t3."CurrencyName"=t5."CurrencyName" then round(cast(t1."OutAmountDEV" as numeric),2)*round(cast(t3."CurrencyRate" as numeric),2)
else round(cast(t1."OutAmountDEV2" as numeric),2)*round(cast(t3."CurrencyRate" as numeric),2)
end - round(cast(t1."OutAmountHUF" as numeric),2) > 0 Then 1
else -1
end
else 0
end RateDiffState
from "GLRows" t1
left join "GLHeader" t2 on t1."GLHeader"=t2."Oid"
join "vv_PartnerConnectionInfoAccount" t3 on t2."CustomersFrom"=t3."CustomersFrom"
and t1."PartnerType"=t3."PartnerType" and t1."Customer"=t3."Customers" and t1."ConnectInfo"=t3."ConnectInfo"
left join "PCIGroup" t4 on t2."CustomersFrom"=t4."CustomersFrom"
and t1."PartnerType"=t4."PartnerType" and t1."Customer"=t4."Customers" and t1."ConnectInfo"=t4."ConnectInfo"
left join "LiquidAssets" t5 on t1."LiquidAssets"=t5."Oid"
left join "CurrencyName" t6 on t5."CurrencyName"=t6."Oid"
left join "CurrencyName" t7 on t3."CurrencyName"=t7."Oid"
where t2."GCRecord" is null and
t2."GLDocumentType" in (2,3,4) and
t6."ShortName" <> 'HUF' and coalesce(t7."ShortName",'HUF')<>'HUF' and
((t1."PartnerType"=0 and t1."InAmountHUF">0) or (t1."PartnerType"=1 and t1."OutAmountHUF">0))