We require a system for controlling payments. Both incomes and expenses.
The backend functions/classes for controlling the entities and inputs related to the business model in the system will be provided to you with the SQL schema (including SQL Views and Stored-Procedures where applicable)
Your responsibility is to handle the parts not related to business model (i.e. user accounts, passwords, permissions, sessions etc) and create the user interface in a user friendly high quality (ajax) fashion according to the below requirements.
A few notes:
Site will be in Hebrew (meaning all controls support full RTL!!!) – we will provide translations
You are responsible for the site design (according to the requirements below)
All buttons will have translatable text in them, meaning the button is a 3X3 table with middle cell being text cell (I do not want to have to go to Photoshop each time we create a new button)
All input fields should be validated (if possible - at browser) to have legal values
Code should be well documented
Site will operate perfectly on IE version 6 and up and FF version 2.0 and up
Code will be written in php to run on a Linux host with MySQL database
You are responsible to upload the project to a hosting server and make sure it is running
You are also responsible to assist (until success) on running the project on our local Ubuntu server
There is an admin module for opening user accounts. Each user has its own payments and one user should not be able to see the other user's payments. Admin module is password protected and you can do the following:
Add/Edit/Remove user accounts
Each user account has the following properties: creation date, account holder, contact person, phone 1, phone 2, username, password (hidden), option to block user (block access, but keep data in database), block date, block reason, 4 more text fields.
There should be a way to reset password
There should be a way to log into the system as if you are the selected user (without asking to reset password or anything like that!!!).
From now on we are only referring to pages in the system of the users.
The system will have 3 main entities:
Supplier – some person or company we pay money to
Customer - some person or company that pays us money
Bank Account – the bank account from which we pay or to which we get paid
You will have 3 pages:
List of suppliers and their details (name, phone number, address, email, …)
You can select a supplier to edit its details – editing is done on a DIV that is opened at the center of the screen (not a popup! but display="") while the rest of the page in the background is grayed out. You cannot do anything at the background until the DIV is closed (either by providing details and pressing ok or pressing cancel/close button on the DIV) – this form of updating the tables and data will repeat itself many times in this project and we refer to it as "floating blocking DIV". Using this DIV we can also add new suppliers. Note that once we add/edit/remove an entry to/from the table the table is updated with the new entry details using ajax (there should not be full page reloading!)
Table of suppliers is ordered by supplier name but by pressing any of the table headers the table will be sorted by that column. Pressing the header again will change the sorting order (ASC <-> DESC). Furthermore, there is a possibility to filter the table by each field (enter a partial name and get all supplier with this part in their names etc). Finally, if the list of suppliers is long (more than 30 records), the table will have paging options (links that allow you to navigate to the previous 5 pages, next 5 pages, next page, previous page, last page, first page – something like << < 2 3 4 5 6 7 8 9 10 11 > >> for a current page 6). Each page will hold 30 records. This form of table will appear many times in this project and we refer to it as "Searchable, Sortable Table with Paging".
There should be a possibility to print the suppliers table (you can choose to print current page only or all pages). At the top of the printed page the filter fields will be printed with the table title.
There should be a possibility to export all pages (according to filter fields) to Excel format (with some simple formulas).
Note that the combination of floating blocking DIV and Sortable Table with Paging can cause situations like: you edit a row and the new row values mean the row location has changed (due to sorting) – you need to take care of that.
List (table) of customers and their details (similar to suppliers) – list is a Searchable, Sortable Table with Paging.
Possibility to add/remove/edit customers using floating blocking DIV
Printing and export to Excel options.
List (table) of bank accounts and their details (name, branch number, account number, credit) – list is a Searchable, Sortable Table with Paging.
Possibility to add/remove/edit bank accounts using floating blocking DIV
Printing and export to Excel options.
There are 6 pages that allow managing (add/edit/remove) various types of payments (income/expense):
Customer Invoices – a list of invoices that we gave to customers. Note that this does not mean the customer has paid us. This only means that the customer is expected to pay us.
Customer Payments – this is the part we actually get the money
Supplier Invoices - a list of invoices that we got from suppliers. Note that this does not mean we paid the supplier. This only means that we are supposed to pay the supplier.
Supplier Payment – this is the part we actually pay the supplier.
Monthly Regular Incomes – a list of incomes that are received on a monthly basis (like leasing a place we own)
Monthly Regular Expenses – a list of expenses that are paid on a monthly basis (like renting a car)
All 6 pages will show lists (tables) of the relevant data (like invoice date, payment amount, customer name, payment method etc). List is a Searchable, Sortable Table with Paging. There should be possibility to add/remove/edit records using floating blocking DIV and printing and export to Excel options. In addition, on those pages there is a possibility to add customer/supplier/bank account using a floating blocking DIV.
There is an option for 2-3 more pages in the same spirit.
There are 5 types of reports. Reports will have their filter fields (4-5 fields per report, such as customer name or invoice/payment date etc). Depending on the type of report, the result may be displayed in a sortable table with paging or as several tables grouped by a report property (such as customer name). Reports can be printed or exported to Excel.
Two special points about two different reports:
1) Detailed payments report – shows all payment (income/expenses of any type). In this page it is possible to change the payment date for any record (the change will take affect only after pressing the update button on the page)
2) Grouped payments report – shows all payments (income/expenses of any type) accumulated for every day (meaning if there are 2 incomes for 100 and 300 on same date we will see single record with 400). In this page you can put cursor on any record and see the payments it is accumulated from (standing on the 400 row will show 2 rows with 100 and 300)
As stated earlier, you will be getting all required php classes/functions and all required SQL schema, stored procedures and view for the accomplishment of all tasks.
For example – there will be a Customers class with functions:
Add(name, phone, address…) to add a customer
Info array that holds all current customer properties
GetCustomerList(page, sort_column, sort_order, name, phone…) that returns a MySQL result set with list of customers (returns specified page sorted in specified way and filtered by specified fields)
Also there will be a function:
GetDetailedPaymentReport(page, sort_column, sort_order, start_date, end_date…) – that will return a MySQL result set with list of all payment (income/expenses of any type). Like earlier, the result set is a specified page sorted in specified way and filtered by specified fields.
20 freelanceria on tarjonnut keskimäärin 1647 $ tähän työhön
We are expert in doing this sort of stuff... No upfront needed, all payments through GAF escrow.. Online 16 Hours a day, Can start right away.. Thanks
Hi, i am very interested to work on this project and can start immediately, please check pmb for the height of experience and quality of work. Regards, Tarun
Hello! We are an international web development company wanting to expand business. Your project is very interesting and we would be thrilled to work with you!