CUSTOMER SIDE PROCESS -
Creation of registration form including (but not restricted to) username (verify uniqueness), password and email address;
Processing of received information into database and delivering a 'workspace' page from template design (html template will be provided by us, edited by you);
'Workspace' will contain access to another form, allowing user to fill and submit several fields. Submission of the form will add to a second database, along with username and a unique identifier for the latter information;
Also in 'workspace' there is a form containing several input elements and 'total' output elements. The elements form part of a calculator which should be built in javascript to allow real-time updating of the total as changes are made. Some elements will need to be taken from databases outlined above and in the company process below. The final totals will be for price and quantity. As you will see in company process, once the quantity is calculated it's price will be looked up and may be across one or several company purchases, and that product will need to be blocked during the duration of validity of the quote. Should payment not be made the product should be released back to the company stock, otherwise once payment is made it should be permanently removed from stock;
Once a total has been arrived at the user should be able to accept and this information submitted to the server which makes a record of the total and other relevant information into a third database;
We will be moving this to an online payment system in due course but for the time being this last operation will generate an invoice to be emailed to the customer (and printed on screen) and a copy to the company;
COMPANY SIDE PROCESS:
The company will make bulk purchases of a product at a variable price. Each purchase will have a unique number attached to it (this will probably be user input);
The company rep (c-rep) will input these purchase details via his 'workspace';
C-rep will will need to see how much product is available at what price;
C-rep should receive notification if the quantity of product falls below a certain level (this should take into account any stock quoted but not paid for);
Once payment has been received from a customer the purchase number should be entered, the stock figures revised and:
A certificate shall be generated containing the relevant variables per customer (certificate layout is already designed) as a pdf document and emailed to the relevant parties.
The required server side scripting for this project is perl.