Realized gain/loss transactions

FommoFommo Member Posts: 138
Hello

I wanna know why gain and loss is posted differently to G/L Entry.
When a customer pays an invoice and it results in a realized loss I get these transactions:
Bank Account:  -10.000
Ledger Account:  10.000
Ledger Account:  -1.000
Loss Account:  1.000

But if the payment results in a realized gain I get these transactions:
Bank Account:  -8.000
Ledger Account:  10.000
Gain Account:  -2.000

I have a customer where I need to isolate the currency adjustment transactions and in the first case it's easy since the Loss transaction is matched with a separate Ledger Account transaction. Why is it merged into the same transaction when posting a realized gain? ](*,)

Comments

  • jglathejglathe Member Posts: 639
    Hi Fommo,

    the answer seems to be the function HandlDtlAddJustment() in CU 12:
    HandlDtlAddjustment(DebitAddjustment : Decimal;DebitAddjustmentAddCurr : Decimal;CreditAddjustment : Decimal;CreditAddjustmentAddCurr :
    GLInitDone := FALSE;
    IF (TotalAmountLCY > 0) OR ((TotalAmountLCY = 0) AND (TotalAmountAddCurr > 0)) THEN BEGIN
      IF ((DebitAddjustment <> 0) OR (DebitAddjustmentAddCurr <> 0)) AND
         ((TotalAmountLCY + DebitAddjustment <> 0) OR (TotalAmountAddCurr + DebitAddjustmentAddCurr <> 0)) THEN BEGIN
        InitGLEntry(
           GLAcc,-DebitAddjustment,-DebitAddjustmentAddCurr,TRUE,TRUE);
        GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type";
        GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";
        InsertGLEntry(TRUE);
        InitGLEntry(
          GLAcc,TotalAmountLCY + DebitAddjustment,
          TotalAmountAddCurr + DebitAddjustmentAddCurr,TRUE,TRUE);
        GLInitDone := TRUE;
      END;
    END ELSE IF TotalAmountLCY < 0 THEN BEGIN
      IF ((CreditAddjustment <> 0) OR (CreditAddjustmentAddCurr <> 0)) AND
         ((TotalAmountLCY + CreditAddjustment <> 0) OR (TotalAmountAddCurr + CreditAddjustmentAddCurr <> 0)) THEN BEGIN
        InitGLEntry(
           GLAcc,-CreditAddjustment,-CreditAddjustmentAddCurr,TRUE,TRUE);
        GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type";
        GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";
        InsertGLEntry(TRUE);
        InitGLEntry(
          GLAcc,TotalAmountLCY + CreditAddjustment,
          TotalAmountAddCurr + CreditAddjustmentAddCurr,TRUE,TRUE);
        GLInitDone := TRUE;
      END;
    END;
    
    IF NOT GLInitDone THEN
      InitGLEntry(GLAcc,TotalAmountLCY,TotalAmountAddCurr,TRUE,TRUE);
    

    Meaning, if the adjustments are with the opposite sign of the amount to post on the Ledger, make two entries. If they have the same sign, make one entry. You can also have separate entries on the Ledger if the application date is different.

    To select the realized gains/losses I would recommend to go with the source type, source no. fields, or with the detailed customer/vendor ledger entries (and their transaction nos.).

    HTH.

    with best regards

    Jens
  • FommoFommo Member Posts: 138
    Hi Jens

    Thanks a lot for your answer and for pointing out the way. I'll look at your suggestion.

    Br
    /Simon
Sign In or Register to comment.