Invoicing / Statements

V

Vantastic

Hi everyone

I've got a system where i get a job, I input the details, and set the status
of the job to "Awaiting Invoicing" when i'm done. I need to invoice my
customers each month with a proper invoice number etc.

When I get a new job, the description of the job is entered into a table
called "Jobs", and that is linked to a table called "ContentsOfJob". This
part is simple enough. What I want to do is have a report printed out for
each customer at the beginning of each month for the previous month, and be
able to track that invoice should the need arise. At the moment I don't have
any way to do it.

I'm assuming I need to create a CreateTable Query?

Cheers

Niko
 
A

Allen Browne

This will be a much larger job than we can help you with in the newsgroups -
probably several hours coding.

If you are comfortable writing VBA code, the basic algorithm would be along
these lines:
a) Get the last date to include in these invocies.

b) Create a new batch number (for undo and print purposes).

c) Identify which clients have uninvoiced work up to that ending date.

d) Create an invoice header record for each distinct client, using the batch
number from step (b).

e) Create invoice detail records related to these header records for each
uninvoiced work order detail line.

f) Relate these invoice detail entries to the original work order detail
entries, so they will not be selected again next time.

g) Provide a way to delete all the entries in a most recent batch, so the
user can repeat the entire process if the original entries proved to be
incomplete.

h) Provide an interface to print the entries in the batch.
 
V

Vantastic

Hi Allen
Thanks for the response. I am quite comfortable with VBA for the most part
and should be able to pull this one off without too much hassle. Very good
point about the batch part of it... Will make life easier.

Thanks
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top