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

93 lines
4.3 KiB
Transact-SQL

USE [SISTEST]
GO
/****** Object: View [dbo].[vv_WaitforRateDiff] Script Date: 05/18/2012 09:20:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE view [dbo].[vv_WaitforRateDiff]
as
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(t4.AmountDEV_Account,2) AmountDEV_Account,
round(t4.AmountHUF_Account,2) AmountHUF_Account,
round(t4.BallanceDEV,2) BallanceDEV_Account,
case when round(t4.AmountDEV_Account,2)<>0 then round(round(t4.AmountHUF_Account,2)/round(t4.AmountDEV_Account,2),2) else 0 end CurrencyRate_Account,
t1.LiquidAssets LiquidAssets,
t2.DateExecution DateExecution,
round(t1.InAmountDEV,2) InAmountDEV,
round(t1.OutAmountDEV,2) OutAmountDEV,
round(t1.InAmountDEV2,2) InAmountDEV2,
round(t1.OutAmountDEV2,2) OutAmountDEV2,
case when InAmountHUF>0 then
case when t1.InAmountDEV <>0 then round(t1.InAmountHUF,2)/round(t1.InAmountDEV,2)
else 0
end
else
case when t1.OutAmountDEV <>0 then round(t1.OutAmountHUF,2)/round(t1.OutAmountDEV,2)
else 0
end
end CurrencyRate,
round(t1.InAmountHUF,2) InAmountHUF,
round(t1.OutAmountHUF,2) OutAmountHUF,
case when t3.CurrencyName=t5.CurrencyName then round(t1.InAmountDEV,2)* round(t3.CurrencyRate,2)
else round(t1.InAmountDEV2,2)* round(t3.CurrencyRate,2)
end InAmountHUF_Account,
case when t3.CurrencyName=t5.CurrencyName then round(t1.OutAmountDEV,2)*round(t3.CurrencyRate,2)
else round(t1.OutAmountDEV2,2)*round(t3.CurrencyRate,2)
end OutAmountHUF_Account,
case when t3.CurrencyName=t5.CurrencyName then round(t1.InAmountDEV,2)* round(t3.CurrencyRate,2)
else round(t1.InAmountDEV2,2)* round(t3.CurrencyRate,2)
end - round(t1.InAmountHUF,2) InAmountHUF_Diff,
case when t3.CurrencyName=t5.CurrencyName then round(t1.OutAmountDEV,2)*round(t3.CurrencyRate,2)
else round(t1.OutAmountDEV2,2)*round(t3.CurrencyRate,2)
end - round(t1.OutAmountHUF,2) OutAmountHUF_Diff,
t1.GLRowsRatediff GLRowsRatediff,
case when t1.PartnerType = 0 Then
case when case when t3.CurrencyName=t5.CurrencyName then round(t1.InAmountDEV,2)* round(t3.CurrencyRate,2)
else round(t1.InAmountDEV2,2)* round(t3.CurrencyRate,2)
end - round(t1.InAmountHUF,2) > 0 Then -1
else 1
end
when t1.PartnerType = 1 Then
case when case when t3.CurrencyName=t5.CurrencyName then round(t1.OutAmountDEV,2)*round(t3.CurrencyRate,2)
else round(t1.OutAmountDEV2,2)*round(t3.CurrencyRate,2)
end - round(t1.OutAmountHUF,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 isnull(t7.ShortName,'HUF')<>'HUF' and
((t1.PartnerType=0 and t1.InAmountHUF>0) or (t1.PartnerType=1 and t1.OutAmountHUF>0))
GO