Skip to end of metadata
Go to start of metadata
DECLARE @ClosingDate as datetime
SELECT @ClosingDate = '2015-12-31'
	--Declares and lookups:
	 DECLARE @CY datetime
	 SELECT @CY = @ClosingDate
	 DECLARE @PeriodEnd int 
	 SELECT @PeriodEnd = (Select Max(idPeriod) + 1 from _etblPeriod where dPeriodDate < @CY) 

--AR Accounts: Foreign:
SELECT
 DB_NAME() as Company
 ,'AR' as [Type]
 ,Account
,Name
,COALESCE(G.Code + ' - ' + G.Description,'None') as GroupCodeDesc
,Currency.CurrencyCode
,HomeClosing = ROUND(COALESCE((SELECT SUM(Debit-Credit) FROM PostAR where AccountLink = Client.DCLink AND TxDate <= @ClosingDate),0),2)
,ForeignClosing = 
CASE WHEN bForCurAcc = 1 THEN ROUND(COALESCE((SELECT SUM(fForeignDebit-fForeignCredit) FROM PostAR where AccountLink = Client.DCLink AND TxDate <= @ClosingDate),0),2)
	ELSE 0 END 
FROM Client
	LEFT JOIN Currency ON Client.iCurrencyID = Currency.CurrencyLink
	LEFT JOIN CliClass G ON G.idCliClass = Client.iClassID
	WHERE Client.bForCurAcc = 1

--AP Accounts Foreign:	
UNION ALL
SELECT
 DB_NAME() as Company
 ,'AP' as [Type]
 ,Account
,Name
,COALESCE(G.Code + ' - ' + G.Description,'None') as GroupCodeDesc
,Currency.CurrencyCode
,HomeClosing = ROUND(COALESCE((SELECT SUM(Debit-Credit) FROM PostAP where AccountLink = Vendor.DCLink AND TxDate <= @ClosingDate),0),2)
,ForeignClosing = 
CASE WHEN bForCurAcc = 1 THEN ROUND(COALESCE((SELECT SUM(fForeignDebit-fForeignCredit) FROM PostAP where AccountLink = Vendor.DCLink AND TxDate <= @ClosingDate),0),2)
	ELSE 0 END 
FROM Vendor
	LEFT JOIN Currency ON Vendor.iCurrencyID = Currency.CurrencyLink
	LEFT JOIN VenClass G ON G.idVenClass = Vendor.iClassID
	WHERE Vendor.bForCurAcc = 1
	
--GL Accounts Foreign:
UNION ALL
	--Query:
SELECT 
  DB_NAME() as Company
 ,'GL' as [Type]
 ,Accounts.[Master_Sub_Account]
 ,Accounts.[Description]
 ,AT.cAccountTypeDescription as Account_Type
 ,Currency.CurrencyCode
 ,HomeClosing =  
   CASE 
       WHEN bIsBalanceSheet = 1 THEN 
       ROUND(COALESCE((SELECT SUM(ROUND(Cast(fBFDebit as Decimal(22,5)),2)-ROUND(Cast(fBFCredit as Decimal(22,5)),2)) FROM [_etblAccPrev] WHERE iAccPrevAccountID = Accounts.AccountLink),0) 
       + COALESCE((SELECT SUM(BLC.fActualDebit - BLC.fActualCredit) FROM _etblAccBlnc BLC LEFT JOIN _etblPeriod PD ON BLC.iAccBlncPeriodID = PD.idPeriod WHERE BLC.iAccBlncAccountID = Accounts.AccountLink AND BLC.iAccBlncPeriodID < @PeriodEnd AND BLC.iAccBlncPeriodID > 0),0) 
       + COALESCE((SELECT SUM(ROUND(Cast(DEBIT as Decimal(22,5)),2)-ROUND(Cast(CREDIT as Decimal(22,5)),2)) FROM PostGL P2 WHERE Accounts.AccountLink = P2.AccountLink AND P2.Period >= @PeriodEnd AND P2.TxDate <= @CY),0),2)  
       ELSE 0 END
 ,ForeignClosing =  
   CASE 
       WHEN bIsBalanceSheet = 1 THEN 
       ROUND(COALESCE((SELECT SUM(ROUND(Cast(fBFForeignDebit as Decimal(22,5)),2)-ROUND(Cast(fBFForeignCredit as Decimal(22,5)),2)) FROM [_etblAccPrev] WHERE iAccPrevAccountID = Accounts.AccountLink),0) 
       + COALESCE((SELECT SUM(BLC.fActualForeignDebit - BLC.fActualForeignCredit) FROM _etblAccBlnc BLC LEFT JOIN _etblPeriod PD ON BLC.iAccBlncPeriodID = PD.idPeriod WHERE BLC.iAccBlncAccountID = Accounts.AccountLink AND BLC.iAccBlncPeriodID < @PeriodEnd AND BLC.iAccBlncPeriodID > 0),0) 
       + COALESCE((SELECT SUM(ROUND(Cast(fForeignDebit as Decimal(22,5)),2)-ROUND(Cast(fForeignCredit as Decimal(22,5)),2)) FROM PostGL P2 WHERE Accounts.AccountLink = P2.AccountLink AND P2.Period >= @PeriodEnd AND P2.TxDate <= @CY),0),2)  
       ELSE 0 END
FROM Accounts 
	LEFT JOIN _etblGLAccountTypes AT ON Accounts.iAccountType = AT.idGLAccountType       
	LEFT JOIN Currency ON Accounts.iForeignBankCurrencyID = Currency.CurrencyLink                                                               
WHERE                                                                        
  Accounts.[AccountLevel] <> 1 AND Accounts.bForeignBankAcc = 1 AND AT.bIsBalanceSheet = 1
  • No labels