standing purchase orders (or work orders)

Nik Trevallyn-Jones nik at babel.homelinux.net
Thu May 12 20:02:15 EDT 2011


Ok,

So it seems no one has any particular opinion (or interest) in this.

So I will code it as an extension to the Job concept.

I am not sure if it will work best if I create a new type of Job that 
has a "budget", or whether it would be best to just add the ability to 
have a "budget" to any Job.
But I will work that out as I review the GnuCash code.

Cheers!
Nik

On 05/06/2011 02:03 PM, Nik wrote:
> Hi All,
>
> I am using GnuCash to help manage my consulting business, and find a 
> particular issue is currently quite difficult to manage, but could be 
> dramatically simplified if I could automate it using GnuCash.
>
> At least one of my customers gives me a standing PO (purchase order) 
> which 'contains' a total amount of available funds which should cover 
> 6 or 12 months of work.
>
> As I perform work, I invoice against this one standing PO, and the 
> total 'available' funds in the PO is decremented.
> At some point, the PO has so little funds remaining on it that I 
> cannot invoice against it.
>
> So I need to be able to track the decreasing funds in the PO;
> firstly, so that I never present an invoice against a PO which has 
> insufficient funds;
> and secondly so that I can see when the available funds are getting 
> low and remind my customer that we need to top up the existing PO, or 
> generate a new one.
>
> Essentially, I need some entity in GnuCash represents the PO, which I 
> can create and where I store the appropriate value for available 
> funds. Then, as I /post/ invoices, I need the available funds in the 
> PO to be decremented (and incremented again if I unpost).
> In addition, I need to be able to view the details of all such POs:
> - customer;
> - job (optional)
> - creation date
> - expiry date
> - initial funds
> - available funds
>
> As an accountant, I am an excellent computer programmer - which is to 
> say I am pretty lost when it comes to accounting theory, so I have no 
> idea how such a feature should be modelled.
>
> Personally, I would prefer /not/ to represent a standing PO as an 
> account, as the POs tend to come and go over time, and I don't really 
> want a long list of inactive accounts in my system.
> I would prefer them to be either a new entity, or possibly an 
> enhancement to the Job entity.
>
> However, I am posting here to get advice on how best this feature 
> should be modelled, so feel free to disagree :o)
>
> As far as I can tell, regardless of how a standing PO is represented, 
> new code will need to be added to gncInvoicePostToAccount(...) to 
> correctly decrement from the standing PO; and to gncInvoiceUnpost(...) 
> to increment it on unpost.
>
> There should also be code that would warn me as I enter invoice data 
> that the standing PO associated with an invoice has insufficient funds 
> to cover the current total of the invoice. This obviously changes as 
> each change is made to the invoice.
> However, the funds should only actually be decremented from the PO 
> when the invoice is posted.
>
> With guidance on how to model the concept, I am happy to write the 
> actual code and provide it as a patch.
> However, I do need input on the various ways this could and should be 
> modelled.
>
> Thanks in advance for all input.
>
> Cheers!
> Nik



More information about the gnucash-user mailing list