Download Latest Version Resource_Management.zip (25.3 kB)
Email in envelope

Get an email when there's a new version of Complete Resource Management

Home
Name Modified Size InfoDownloads / Week
Resource_Management.zip 2023-01-16 25.3 kB
README 2023-01-15 6.6 kB
Totals: 2 Items   32.0 kB 0
Complete solution for employee management. This software is designed to automate your administrative functions so that you can focus all of your attention on providing products and/or services.
MARIADB (or MYSQL) and PHP REQUIRED (python required to use time.py for punches)
-Create database
-Create SQL user and grant all privileges to the DB.
-Open 'install.php' in /install folder.
-Enter DB credentials - installer will create tables 'admin', 'employees', and 'settings' and write your DB credentials to 'mysql-credentials.php' in the root directory (Make sure your server has write permissions to the root directory or it will not work - Nothing will work without 'mysql-credentials.php'. Browser access is denied to this file for security). A copy of this file is provided in the root directory. If you wish to edit it manually, feel free.
-Fill in DB credentials in time.py if using python script for punches, which is recommended (python uses a separate credential set).
-Place logo ('logo.svg') into /logo folder - sample logo included - (Logo is included as a background image on select pages where it won't interfere with printed output. Pages are currently set to use an .svg image for logo. If you wish to use another image type, rename the file extension of the background-image in the CSS of the individual pages. CSS is located within the <style></style> tags of each page.)

'add_employee.php' will insert employee info into employees table, create a time table for the employee, emp-{emp#} (ie. emp-18). Employee # is retrieved from id row of employee table (each row is sequentially unique). A punch in and punch out are added to employee's time table when employee's time table is created (this is just to fill in the NULL values on the initial row. Since both entries are the same time it won't affect accounting in any way).

'del_employee.php' will insert termination date into employee's record in employees table and rename employee's time table by appending '-terminated' (ie. emp-18-terminated). This will prevent any further punches for the given employee. (time will be calculated from these tables as normal). It is recommended to keep these (terminated) tables for a couple of years to make sure the data is no longer needed and then drop the tables to keep the DB clean of unnecessary clutter - OR - print out '-terminated' time tables from 'manage tables' to file a hard copy and then drop the table.

'view_update_emp.php' can be used to view or modify employee info in employees table.

'get_times.php' will pull punches based on given day range from all time tables (active and terminated), calculate total time in minutes (per punch period and total), and calculate pay (per punch period and total) based on pay rate in employees table. Overtime is calculated per day (above 8 hours) and per week (above 40 hours). Overtime rate can be set in the settings menu (default rate is double time - 2). WILL NOT pull records from current day. Times must be at least one day old to prevent incomplete calculations of any employees who are currently punched in. Setting the '<' field to 0 will pull times as recent as yesterday. Use 'employee_times.php' if you want to see current punches. 'get_times.php' also checks each time table to see if any time tables have grown longer than 2080 rows (I estimate that to be 4 years of records for a typical 40 hour per week employee - 2 punch periods per day * 5 days per week = 10 * 52 weeks per year = 520 * 4 years = 2080 rows). Time punches older than 2 years are deleted from any large tables. The first tables should start to be truncated after 4 years of punches and then roughly every 2 years thereafter.

'employee_times.php' can be used by employees to view previous punch periods or insert a new punch (validated by Employee# and Last 4 of SS#). This file is not password protected as it has it's own validations built-in and needs to be accessed by everyone. The input field 'Number of Punch Periods:' is only used for retrieving previous records. This field can be ignored when recording a punch.

'edit_punches.php' allows editing of punches for a given employee. That will allow for any mistakes or accidents to easily be corrected. (currently set to pull the last 28 punch periods, roughly 2 weeks). Includes RegEx requirements for proper format.

'manage_tables.php' used to delete old time tables (ONLY terminated tables ie. 'emp-18-terminated' can be deleted)

'time.py' can be used to trigger automatic punches (on key-card entry or computer log-in, for example). It automatically senses whether to punch in or punch out based on current records in employee's time table. Call it with {employee#} as an argument (ie. python time.py 18) or make it executable and call it with {employee#} as an argument (ie. ./time.py 18).

ALL FILES EXCEPT (employee_times.php and time.py) ARE PASSWORD PROTECTED. DEFAULT USER: admin DEFAULT PASSWORD: admin (both can be changed from admin panel 'user' will show in change form)

Admin panel can be accessed by browsing to index.php or login.php and logging in with admin/admin

NOTE: all php pages need access to the file 'mysql-credentials.php' (or a copy of it) - browser access is denied to this file for security - and all files need access to the DB. They either need to run on a local machine or have access permissions to the DB (network setup is beyond the scope of this README).

NOTE: since all records are stored and accessed electronically - INSTITUTE A GOOD BACKUP POLICY. Don't risk losing everything if a hard-drive goes south.

What's new in this release:
-Fixed bug in 'Punch' flow which would allow incorrect SS# to pass validation.
-Renamed navigation menu items in admin to be more logical.
-Formatted output of compiled times (prettier and easier to read).
-Fixed all page <title>'s.

12-13-2022
-Added ability to sort employees by Last Name, Pay, and Hire Date (Page default is to sort by Employee #).

12-14-2022
-Removed ability to sort employees by Hire Date. It was redundant. Hire Date sort order will ALWAYS be the same order as the page default of sorting by employee #.

12-18-2022
-Added ability to view (or print) all punches from 'terminated' time tables in 'manage tables'. That will make it a little easier to archive 'terminated' time tables.

12-19-2022
-Reformatted punch report from employee punch screen (cleaner).

1-8-2022
-Added calculations for overtime (daily and weekly).
-Added 'settings' table to installer to store overtime rate.
-Added 'settings' menu item in main panel to set overtime rate.

1-14-2022
-Rewrote overtime calculations to be more concise and logical.
Source: README, updated 2023-01-15