I need an invoice module for the service sales and product sales module of my system with print capability.
The invoice module will not be connected to any payment gateway as this will be for internal recording purposes only.
The items to be displayed on the invoice will not come from user input but will be read from the service sales table and product sales table.
The service sales module and the product sales module are already completed and working.
The main criteria for knowing which records to select from the service and product sales table is the client name.
So basically, in the invoice create page, the user will input or select the client name from the client drop down list and the system will automatically search the service and product sales table given a set of criteria and display them as line item in the invoice create page.
Take note that this Invoice module will be easier to build than the usual creation of an Invoice module because:
1. There is already a CRUD for the invoice module created
2. There is no payment gateway to setup since this is for internal recording purposes only of sales.
3. There is already a layout provided for the Create, Read and Update pages and you don't have to design one.
4. There will be no input from the user for the invoice line items as you will just get these data from existing data tables
5. The invoice model is already created. You do not have to define the invoice table structure.
6. A clear description of which tables and fields to get the necessary data for use in the invoice will be provided.
You need to have high level skills in mySQL and PHP to complete this project.
The requirements for the invoice module are as follows:
1. To type or select the client name from the dropdown list on the invoice create page.
2. To generate custom invoice number with the following format (MMYY0001). The first 2 digits will represent the month, the
next 2 digits will be the year and the last 4 digits will be the incremental number from 0001 up to 9999. Every month, the
last 4 digits will reset to 0001 and the first 2 digits will change to reflect the number of month in a year (e.g. Jan=01,
Feb=02, Mar=03…). Every year, the 3rd and 4th digits of the invoice number will change to reflect the year in the calendar
(e.g. 2021=21, 2022=22, 2023=23…)
3. To get the service sales and product sales records and display as list items on the invoice create page
A. Service Sales Table (appoints)
1. Include in the invoice all client records that are unpaid (appoints.paystat=0)
2. Include in the invoice as another line item all client records that have add-on amount (appoints.addon_amt > 0)
3. Include in the invoice all client records that are partially paid ([login to view URL] > 0)
B. Product Sales Table (prodsales)
1. Include in the invoice all client records that are unpaid (prodsales.paystat=0)
2. Include in the invoice all client records that are partially paid ([login to view URL] > 0)
4. To save the invoice entries in the invoice table and lock the appoints and prodsales table records that are included in the
invoice item list. Do not lock the tables, only the records included in the invoice.
5. To save records in the inventory table and lock that record
6. To be able to print the invoice on a 79mm receipt printer
7. Modify page layout of the invoice list([login to view URL]), view([login to view URL]) and edit([login to view URL]) to complete the invoice module.
8. Revise the product sales create page so that the user can input more than 1 product item for the client