It was not my original intention to have a continuation on the original blog which you can see here, however my good friend Richard Sisk at Sage provided some follow-up on the original post that provide additional insight into this new process. I thought I needed to follow-up on this new found information to complete my prior posting. This is great information. Thank you Rick!
In the original post I closed out by saying it would be nice to be able to post a second payment against the same invoice even though the balance was already < 0. It turns out this does exist it just did not work as I thought it would so I missed it. I apologize for the oversight but in this post I detail this newfound information for you.
I have entered another payment from Aldebrn for $150. I am applying this payment to against an invoice that has a current balance of $0. This brings the new balance to –$150.
Now I register and post this batch. This makes this record permanent. My next step is to create another batch with a another payment for Aldebrn of $135, as shown below. As you can see by entering in the Invoice No 1113 and then pressing the Tab key key it retrieves the invoice information showing the current balance of –$150. I then key in the Payment Applied of $135 as mentioned by Richard Sisk and it now brings the value of the new balance to –$285.
So I stand corrected in my comment in my original post. It appears that Sage has accommodated for this possibility!
How is this being treated in the database is quite interesting and simplistic. You can see this with some simple selects as shown below. The TranNo and the corresponding keys are based on the values from my demonstration and would most likely be different in your system.
-- Invoice Header information
SELECT InvcKey, TranID, TranDate, CompanyID, TranAmt, Balance
FROM tarInvoice
WHERE tranno like '%1113%';
-- Invoice Header Application information
SELECT ApplyToInvcKey, PostDate, PmtAmt, ApplyFromPmtKey, ApplyFromTranID
FROM tarInvoiceAppl
WHERE ApplyToInvcKey = 1307;
-- Customer Payment Header
SELECT CustPmtKey, BatchKey, PmtRcptDate, PostDate, TranID, TranAmt, UnappliedAmt
FROM tarCustPmt
WHERE CustPmtKey
IN (515, 516, 517);
-- Customer Payment Application
SELECT CustPmtKey, ApplyToInvcKey, ApplyToTranDate, ApplyToTranID, PmtAmt
FROM tarCustPmtAppl
WHERE CustPmtKey
IN (515, 516, 517);
Results of above Select statements in order of the selects.
I recommend that you read up on this functionality in more detail and experiment with it in a test environment of your own. It is a very useful enhancement. Thank you Sage!