Thanks, Paul and everyone for the detailed description. -- Thanks and Regards, *Suraj Khurana* | Sr. Enterprise Software Engineer *HotWax Commerce* by *HotWax Systems* Plot no. 80, Scheme no. 78, Vijay Nagar, Indore, M.P. India 452010
On Wed, Nov 22, 2017 at 1:51 PM, Vaibhav Jain <vaibhav.jain@hotwaxsystems. com> wrote: > Hello all, > > Thank you very much to all of you for sharing this valuable information. > > As we can conclude this conversation here. > > 1. Payment entity already has a field finAccountTransId. So there is no > need of paymentId in the FinAccountTrans entity. > 2. A financial account transaction may have multiple order so there is > no need of orderId and orderItemSeqId in FinAccountTrans entity. > > If the following points are looking good then I will create a JIRA for > this. > > Thanks & Regards, > > Vaibhav Jain > Hotwax Systems, > vaibhav.j...@hotwaxsystems.com > > On Tue, Nov 21, 2017 at 6:05 PM, Paul Foxworthy <p...@cohsoft.com.au> > wrote: > > > On 21 November 2017 at 21:48, Suraj Khurana <suraj.khurana@hotwaxsystems. > > com > > > wrote: > > > > > > > > I think in this case, one *FinAccountTrans* record will be created when > > you > > > receive a cheque payments from a customer with DEPOSIT purpose which > > marks > > > *paymentId* in *FinAccountTrans *entity. > > > > > > > Yes, there's a paymentId in the FinAccountTrans entity. That assumes > there > > will be one and only one Payment for the FinAccountTrans. That assumption > > is flawed to my mind. There is also a finAccountTransId in the Payment. > If > > we dropped the paymentId, we would have a one-to-many between > > FinAccountTrans and Payment, instead of one-to-one. That would be an > > improvement. > > > > If you pay my invoice by direct deposit to my bank account, that should > be > > recorded with both a Payment and a FinAccountTrans in OFBiz. If you send > me > > a cheque, that should be recorded with a Payment. When I deposit a batch > of > > cheques, there should be a FinAccountTrans for that. > > > > Think of the statement you receive from the bank and you want to > reconcile > > against your own records. As far as the bank is concerned, there was one > > deposit of a total amount. That's the amount you want to reconcile > against > > your FinAccountTrans. A payment from a customer is not necessarily the > same > > thing or the same amount as a FinAccountTrans. > > > > And moving further when certain amount from that payment is applied to > any > > > invoice, another *FinAccountTrans *will be created with corresponding > > > orderId/shipmentId with WITHDRAWAL purpose. > > > > > > > Nope. I receive a payment from a customer, and deposit the money in my > bank > > account. Applying the payment to a sale invoice does *not* reduce my bank > > balance. It does mean the invoice has been paid. There are two separate > > balances: the Accounts Receivable balance in an account in my GL, and the > > balance of my account with the financial institution. > > > > The accounting transaction that varies the Accounts Receivable balance is > > not a FinAccountTrans. It's an AcctgTrans. > > > > Any shipment will already be associated with an order. Storing the > > shipmentId a second time in FinAccountTrans is redundant. There may be > more > > than one shipment anyway, so a single shipmentId attribute in > > FinAccountTrans is not enough to hold the truth and would be misleading. > > > > > > > In this manner I think we can track every transaction happened with the > > > *FinAccount.* > > > > > > > I do not dispute the need to track all this. Where I disagree is which > > entities should be doing the tracking. Are you thinking any accounting > > transaction is a FinAccountTrans? I think FinAccountTrans is more > > specialised than that. A FinAccountTrans should correspond to and be > > reconciled against a single line in a statement from a bank or other > > financial institution. > > > > If you want to know the order or orders for a FinAccountTrans, go > > > > FinAccountTrans -> Payment -> PaymentApplication -> Invoice -> > InvoiceItem > > -> OrderItem -> OrderHeader > > > > If you want to know the shipment or shipments for a FinAccountTrans, go > > > > FinAccountTrans -> Payment -> PaymentApplication -> Invoice -> > InvoiceItem > > -> OrderItem -> ItemIssuance -> Shipment > > > > As I said, if you know that in your organisation there will always be > only > > one shipment, create custom screens and views to hide that complexity. > But > > the entities should be able to handle more complex organisations too. > > > > Cheers > > > > Paul Foxworthy > > > > -- > > Coherent Software Australia Pty Ltd > > PO Box 2773 > > Cheltenham Vic 3192 > > Australia > > > > Phone: +61 3 9585 6788 > > Web: http://www.coherentsoftware.com.au/ > > Email: i...@coherentsoftware.com.au > > >