Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

alter procedure _as_FCR_RevalueBank
	@nProfitAmount float
	,@nLossAmount float
	,@nProfitAccount int
	,@nLossAccount int
	,@nBankAccountLink int
	,@nExchangeRateAmount float
	,@nTransactionDate datetime
	,@nPexLex varchar(10)
	,@nReference varchar(1000)
	,@nIsBranch bit
	,@noldDate datetime
	,@nProjectID int

AS
BEGIN

/*usage:
exec _as_FCR_RevalueBank
	@nProfitAmount = 0
	,@nLossAmount = 5654.74
	,@nProfitAccount = 13704
	,@nLossAccount = 13754
	,@nBankAccountLink = 17689
	,@nExchangeRateAmount = 0.041883
	,@nTransactionDate = '2023-06-19'
	,@nPexLex = 'PEX'
	,@nReference = 'FXR0001'
	,@nIsBranch = 0
	,@noldDate = '2023-06-19'
	,@nProjectID = 0

	select top 10 a.master_sub_account,* from postgl 
		left join accounts a on postgl.accountlink = a.accountlink 
		order by postgl.autoidx desc



*/

SET NOCOUNT ON;

--DECLARE @nProfitAmount float
--DECLARE @nLossAmount float
--DECLARE @nProfitAccount int
--DECLARE @nLossAccount int
--DECLARE @nAccountLink int
--DECLARE @nExchangeRateAmount float
--DECLARE @nTransactionDate datetime
--DECLARE @nPexLex varchar(10)
--DECLARE @nReference varchar(1000)
--DECLARE @nIsBranch bit
--DEClARE @noldDate datetime
--DECLARE @nProjectID int

DECLARE @RC int
DECLARE @RC2 int
DECLARE @TxDate datetime
DECLARE @Id varchar(5)
DECLARE @ClientLink int
DECLARE @TrCodeID int
DECLARE @DebitAP float
DECLARE @CreditAP float
DECLARE @DebitGL1 float
DECLARE @CreditGL1 float
DECLARE @DebitGL2 float
DECLARE @CreditGL2 float
DECLARE @CurrencyID int
DECLARE @ExchangeRate float
DECLARE @ForeignDebit float
DECLARE @ForeignCredit float
DECLARE @Description varchar(40)
DECLARE @TaxTypeID int
DECLARE @Reference varchar(20)
DECLARE @Order_No varchar(20)
DECLARE @ExtOrderNum varchar(20)
DECLARE @Audit_No VARCHAR(20)
DECLARE @Tax_Amount float
DECLARE @ForeignTaxAmount float
DECLARE @Project int
DECLARE @Outstanding float
DECLARE @ForeignOutstanding float
DECLARE @InvNumKey int
DECLARE @CRCCheck float
DECLARE @DTStamp datetime
DECLARE @UserName varchar(20)
DECLARE @Reference2 varchar(20)
DECLARE @SettlementTermsID int
DECLARE @Profit float
DECLARE @Loss float
DECLARE @ProfitAccount int
DECLARE @LossAccount int
DECLARE @BankAccLink int
DECLARE @GLContraAccLink int
DECLARE @VenClassID int
DECLARE @DrCrAccount int
DECLARE @Reconciled varchar(2)
DECLARE @JobCodeLink int
DECLARE @MFPID int
DECLARE @cPayeeName varchar(100)
DECLARE @bPrintCheque bit
DECLARE @Period int
DECLARE @AutoIdx bigint
DECLARE @TxBranchID int
DECLARE @RepID int
DECLARE @JCRepCost float
DECLARE @IsJCDocLine bit
DECLARE @IsSTGLDocLine bit
DECLARE @iInvLineID bigint
DECLARE @AutoIdx2 bigint
DECLARE @AutoIdx3 bigint
DECLARE @AuditTemp float
DECLARE @cBankRef varchar(20)
DECLARE @bMaintainBranchID bit
declare @GLTaxAccountID int
declare @cLineUserFields Varchar(max)

declare @LinkAccCode int
declare @TillID int
declare @iMBPropertyID int
declare @iMBPortionID int
declare @iMBServiceID int
declare @iMBMeterID int
declare @iMBPropertyPortionServiceID int

-- TODO: Set parameter values here.
SELECT @Profit = @nProfitAmount
SELECT @Loss = @nLossAmount
SELECT @ProfitAccount = @nProfitAccount
SELECT @LossAccount = @nLossAccount
SELECT @ExchangeRate = @nExchangeRateAmount
SELECT @TxDate = @nTransactionDate
SELECT @TrCodeID = (SELECT idTrCodes FROM TrCodes WHERE Code = @nPexLex AND iModule = 4)--6=AP, 5=AR, 4=GL

select @AutoIdx = 0
select @TxBranchID = 0
select @RepID = 0
select @JCRepCost = 0
select @IsJCDocLine = 0
select @IsSTGLDocLine = 0
select @iInvLineID = 0

select @LinkAccCode = 0
select @TillID = 0
select @iMBPropertyID = 0
select @iMBPortionID = 0
select @iMBServiceID = 0
select @iMBMeterID = 0
select @iMBPropertyPortionServiceID = 0

SELECT @Reference = @nReference

SELECT @DrCrAccount = @nBankAccountLink
SELECT @Reconciled = ''
SELECT @JobCodeLink = 0
SELECT @MFPID = 0
SELECT @cPayeeName = ''
SELECT @bPrintCheque = 0
SELECT @cBankRef = ''
SELECT @bMaintainBranchID = 1

-- **** EARLY BREAK IF AMOUNT IS 0****
IF ((ROUND(@Profit + @Loss,2)) = 0)
 begin 
 SELECT 0 
 Return
end
--NOW: WE SET THE CONTRA ACCOUNT, AND THE DEBIT/CREDIT AMOUNT
IF (ABS(@Profit) > 0)
BEGIN
 --PROFIT > 0
 SELECT @GLContraAccLink = @ProfitAccount
 IF (@Profit > 0) --if profit, then:
   BEGIN
	--Profit is positive, so DEBIT AP Account (Credit GL Contra)
    SELECT @DebitAP = @Profit
	SELECT @CreditAP = 0
	SELECT @DebitGL1 = @Profit
	SELECT @CreditGL1 = 0
	SELECT @DebitGL2 = 0
	SELECT @CreditGL2 = @Profit
   END
 ELSE
	BEGIN
	 --Profit is negative, so this is REVERSE TRANSACTION
	 SELECT @DebitAP = 0
	 SELECT @CreditAP = -@Profit
	SELECT @DebitGL1 = 0
	SELECT @CreditGL1 = -@Profit
	SELECT @DebitGL2 = -@Profit
	SELECT @CreditGL2 = 0
	END
END
ELSE
 BEGIN
 --Loss > 0
 SELECT @GLContraAccLink = @LossAccount
 IF (@Loss > 0) --if loss, then:
   BEGIN
	--loss is positive, so CREDIT AP Account (Debit GL Contra)
    SELECT @DebitAP = 0
	SELECT @CreditAP = @Loss
	SELECT @DebitGL1 = 0
	SELECT @CreditGL1 = @Loss
	SELECT @DebitGL2 = @Loss
	SELECT @CreditGL2 = 0
   END
 ELSE
	BEGIN
	 --Loss is negative, so this is REVERSE TRANSACTION
	 SELECT @DebitAP = -@Loss
	 SELECT @CreditAP = 0
	SELECT @DebitGL1 = -@Loss
	SELECT @CreditGL1 = 0
	SELECT @DebitGL2 = 0
	SELECT @CreditGL2 = -@Loss
	END
 END


SELECT @Id = 'CB'

SELECT @CurrencyID = 0

SELECT @ForeignDebit = 0
SELECT @ForeignCredit = 0
SELECT @Description = 'FX Revaluation @ ' + CAST(ROUND(@ExchangeRate,6) AS VARCHAR(10))
SELECT @TaxTypeID = 0

SELECT @Order_No = ''
SELECT @ExtOrderNum = ''
select @cLineUserFields = ''
select @GLTaxAccountID = 0

EXEC @AuditTemp = _bspNextAuditNo;

select @Audit_No = CASE 
	WHEN @nIsBranch = 1 THEN Cast(@TxBranchID as varchar(20)) + '.' + CAST(@AuditTemp as varchar(10)) + '.0001'
	ELSE CAST(@AuditTemp as varchar(10)) + '.0001' END; --'GET NEXT AUDIT NO!!!!' --Check SP _bspNextAuditNo

SELECT @Tax_Amount = 0
SELECT @ForeignTaxAmount = 0
SELECT @Project = @nProjectID
SELECT @Outstanding = 0 --MMMM CHECK!
SELECT @ForeignOutstanding = 0
SELECT @InvNumKey = 0
SELECT @CRCCheck = 0
SELECT @DTStamp = GETDATE()
SELECT @UserName = 'Asamco' --misschien nog veranderen?
SELECT @Reference2 = 'FX Reval ' + Convert(varchar(25), @noldDate, 112) -- (YYYYMMDD)
SELECT @SettlementTermsID = 0
Select @Period = (Select Max(idPeriod) + 1 from _etblPeriod where dPeriodDate < @TxDate)

BEGIN TRY
BEGIN TRANSACTION

--NOW EXECUTE LINE 1 OF GL Tx
EXECUTE @RC = [_bspPostGLTrans]

@AutoIdx2 OUTPUT
  ,@TxDate
  ,@Id
  ,@nBankAccountLink
  ,@TrCodeID
  ,@DebitGL1
  ,@CreditGL1
  ,@CurrencyID
  ,@ExchangeRate
  ,@ForeignDebit
  ,@ForeignCredit
  ,@Description
  ,@TaxTypeID
  ,@Reference
  ,@Order_No
  ,@ExtOrderNum
  ,@Audit_No
  ,@Tax_Amount
  ,@ForeignTaxAmount
  ,@Project
  ,@Period
  ,@Reconciled
  ,@DrCrAccount
  ,@JobCodeLink
  ,@MFPID
  ,@UserName
  ,@cPayeeName
  ,@bPrintCheque
  ,@Reference2
,@TxBranchID
,@RepID
,@JCRepCost
,@IsJCDocLine
,@IsSTGLDocLine
,@iInvLineID
,@cBankRef
,@bMaintainBranchID
  ,@GLTaxAccountID
  ,@cLineUserFields

--NOW EXECUTE LINE 2 OF GL Tx
EXECUTE @RC = [_bspPostGLTrans]

@AutoIdx3 OUTPUT
  ,@TxDate
  ,@Id
  ,@GLContraAccLink
  ,@TrCodeID
  ,@DebitGL2
  ,@CreditGL2
  ,@CurrencyID
  ,@ExchangeRate
  ,@ForeignDebit
  ,@ForeignCredit
  ,@Description
  ,@TaxTypeID
  ,@Reference
  ,@Order_No
  ,@ExtOrderNum
  ,@Audit_No
  ,@Tax_Amount
  ,@ForeignTaxAmount
  ,@Project
  ,@Period
  ,@Reconciled
  ,@DrCrAccount
  ,@JobCodeLink
  ,@MFPID
  ,@UserName
  ,@cPayeeName
  ,@bPrintCheque
  ,@Reference2           
,@TxBranchID 
,@RepID
,@JCRepCost 
,@IsJCDocLine 
,@IsSTGLDocLine 
,@iInvLineID
,@cBankRef 
,@bMaintainBranchID 
  ,@GLTaxAccountID
  ,@cLineUserFields
Select @AutoIdx;

COMMIT TRANSACTION
END TRY
BEGIN CATCH
	ROLLBACK TRANSACTION
	THROW;
END CATCH

END -- sproc
  • No labels