Invoice Tracker Website Project
A simple invoice approval website.
Invoices are loaded to the site by upload.php page, instead of uploading the files directly, the data is handled by javascript and a POST request is created only for what is relevant, reducing the load on server. Upon loading invoices they are assigned the status “Pending”, which can only be seen by admins. Then the admins can assign it to either users or usergroups. If assigned to a usergroup all members of the group can view and approve/reject the invoice. Once the assignee approves the invoice with a description it is given one of the states “Approved” or “Rejected”, as per the assignee’s action. At this stage the admins can either approve from their changing the invoice state to “Processed” or return to the users with a note of their own which then will reset this entire cycle.
Features:
- Assign invoices automatically to a user or usergroup by supplier name upon uploading
- Customized Datatables table view with various options to filter and view invoices
Welcome Page:

Viewable by:
- Users
- Admins
- Owner
Functions:
- Displays invoices where assignee parameter matches the logged in username or the user’s group if exists
- Display expandable invoice description, triggered by clicking on the following rows: Supplier, State, Date, Amount, Currency, Assignee
- The DataTable supports the following selection methods: Checkboxes, CTRL + Click, SHIFT + Click
- DataTables DOM setting: ‘Bfl<“toolbar”>trip’ => The default DataTables Show Count Selector, Search Bar, Info, Page Selector
- DataTables Toolbar Buttons (<toolbar>): The default DataTables Download (xlsx) and the Filter buttons
- Clickable Invoice numbers on the No column that forwards the user to the invoice.php page with the invoice number as GET value
- Process button that forwards to the submit.php page with the invoice number as the name parameter of the POST submit
Submit Page:

Viewable by:
- Users: displays invoice approval / rejection page. If the invoice is already approved the user is informed
- Admins: depending on the invoice state either displays invoice approval / rejection page or the invoice process / return page
- Owner
Approve Bulk Page:

Viewable by:
- Users
- Admins
- Owner
Functions:
- Displays invoices where assignee parameter matches the logged in username or the user’s group if exists
- Display expandable invoice description, triggered by clicking on the following rows: Supplier, State, Date, Amount, Currency, Assignee
- The DataTable supports the following selection methods: Checkboxes, CTRL + Click, SHIFT + Click
- DataTables DOM setting: ‘Bfl<“toolbar”>trip’ => The default DataTables Show Count Selector, Search Bar, Info, Page Selector
- DataTables Toolbar Buttons (<toolbar>): The default DataTables Download (xlsx) and the Filter buttons
- Clickable Invoice numbers on the No column that forwards the user to the invoice.php page with the invoice number as GET value
- Process button that forwards to the submit.php page with the invoice number as the name parameter of the POST submit