When you will provide a patch, update the file before. I have formatted and refactored the code to make transferAmount calculation more clear
Jacques Jacques Le Roux wrote: > When you will provide a patch, update the file before. > I have formatted and refactored the code to make transferAmount calculation > more clear > > Jacques > > Jacques Le Roux wrote: >> It seems that your explanation makes sense, thanks for the "translation" ;). >> Unfortutnately I have no knowledge about this part of the code and did not >> look yet into details >> >> Could you please open a Jira and submit a patch with your comments in code >> (this will help much) >> >> Thanks >> >> Jacques >> >> Robert G. wrote: >>> I played a little around and found in PartyFinancialHistory.groovy the >>> calculation of "totalToBeReceived" / "totalToBePayed" >>> >>> I believe, that these are the amounts that the company owe to the customer >>> or the customer owe to the company... >>> >>> if so, I think there is a misscalculation (cause I do not get correct >>> amounts there) >>> >>> your code: >>> transferAmount = >>> totalInvSaApplied.add(totalInvSaNotApplied).subtract(totalInvPuApplied.add(totalInvPuNotApplied)).subtract(totalPayInApplied.add(totalPayInNotApplied).*add*(totalPayOutApplied.add(totalPayOutNotApplied))); >>> >>> my opinion: >>> transferAmount = >>> totalInvSaApplied.add(totalInvSaNotApplied).subtract(totalInvPuApplied.add(totalInvPuNotApplied)).subtract(totalPayInApplied.add(totalPayInNotApplied).*subtract*(totalPayOutApplied.add(totalPayOutNotApplied))); >>> >>> in easier looking: >>> your code: >>> Sales Invoices - purchase invoices - (incomming payments + outgoing >>> payments) >>> >>> my code: >>> Sales Invoices - purchase invoices - (incomming payments - outgoing >>> payments) >>> >>> So lets test the cases: >>> *1. customer payed and we refund items * >>> payment 1000$ >>> sales invoices (applied and unapplied) = 1000$ >>> purchase invoice (refund) = 100$ (item refund) >>> refund payment 100$ >>> >>> acutally: 1000 - 100-(1000+100) = -100 --> Wrong, because we allready payed >>> and invoiced back >>> my way: 1000 - 100 -(1000-100) = 0 --> OK >>> >>> 2. customer payed more than he should (1200 instead of 1000) but we have not >>> refunded it (same amounts) >>> 1000 - 0 - (1200 - 0) = -200 --> OK, we owe 200$ to the customer >>> >>> what do you think, am I wrong? otherwise I do not understand the meaning of >>> the field value.
