2 Replies Latest reply on Jun 2, 2013 12:49 PM by deathrobot

    Best practices for partial billing

    deathrobot

      Title

      Best practices for partial billing

      Post

            

           I am trying to create a system where I can have multiple invoices that are all connected to a single project, some of which are partial payments for a single service, and perhaps an invoice for an added-on service.
            
           For example, for project number 2013100, I might need 3 invoices:
            
           Invoice 2013100-001 - Service 1, first half due
           Invoice 2013100-002 - Service 1, second half due
           Invoice 2013100-003 - Service 2, full amount
            
           My trouble is figuring out the best way to deal with the partial payments invoices if I use the typical "Invoices » LineItems » Services" tables. I need to show the full project amount on both invoices 001 and 002.
            
           I could:
            
           1) Add a line item on the first invoice with description of "Amount to be billed later" and a negative amount. On the second invoice, I could add a line item with description of "previously billed (invoice 2013100-001)" also with a negative amount:
            
           INVOICE 2013100-001
            
           Line 1          Service 1                    Description                              Amount
           Line 2                                              To be billed later                     -$amount
            
                                                                                                                        Total
            
           INVOICE 2013100-002
            
                Line 1          Service 1                    Description                                Amount
                Line 2                                              amount previously billed         -$amount
                 
                                                                                                                               Total
                 
           Total
            
           This would be simple, but I don't like the idea of mixing services and payment info in the same LineItems table
            
           2) Add separate fields for amountDueNow and previouslyBilled:
            
           INVOICE 2013100-001
            
                Line 1          Service 1                    Description                                Amount
                 
                                                                                                                          Total
                                                                                                                          Amount due now
            
           INVOICE 2013100-002
            
                     Line 1          Service 1                    Description                                Amount
                      
                                                                                                                               Total
                                                                                                                               Previously billed
                                                                                                                               Amount due now
                 
           This seems troublesome for reporting because I now have connected Service 1 with double the amount of money I'm actually billing.
            
           3) Create another table for invoice amount connected to Invoices ("Invoices » InvoiceAmount")
            
           INVOICE 2013100-001
            
                Line 1          Service 1                    Description                                Amount
                 
                                                                                                                          Total
                                                                                                                          Amount due now (InvoiceAmount::amount)
            
           However, this seems to require invoices 001 and 002 to be in the InvoiceAmount table, while invoice 003 stays in the Invoices table.
            
           I'm sure this has been solved many times already. Any advice?
            
           Thanks