When I was working on the Personnel Management software, I found out that the issue of payroll in payroll management was often changed, and that the calculation relationship between salary items was constantly changing, which caused a lot of trouble for actual programming. In fact, there are many similar situations in the actual work to be resolved, I hope to provide you with a number of ideas for reference.
My resolution is presented below.
The first step is to create a payroll Tbl_gztz that records the monthly payroll of employees, including the payment of wages. So this table field should be as much as possible, you can put more than 50.
Table structure is as follows: Tbl_gztz
Data column Name |
Data column type |
Data column meaning |
Zgbh |
VARCHAR2 (10) |
Employee number |
Mc |
VARCHAR2 (10) |
Employee Name |
Yf |
VARCHAR2 (6) |
Payroll Month |
Gz1 |
Number (12,2) |
(meaning see table below in the project table) |
Gz2 |
Number (12,2) |
(meaning see table below in the project table) |
Gz3 |
Number (12,2) |
(meaning see table below in the project table) |
Gz4 |
Number (12,2) |
(meaning see table below in the project table) |
Gz5 |
Number (12,2) |
(meaning see table below in the project table) |
The second step is to create a payroll project Registration Form TBL_GZXMDY, which is used to record all the payroll items and the calculated relationships between projects in the actual work of payroll management. The computational relationship can be a simple arithmetic, or it can contain functions (limited to PB content functions).
The table structure is as follows:
Data column Name |
Data column type |
Data column meaning |
Xm |
VARCHAR2 (10) |
Salary Item Name |
Xmmc |
VARCHAR2 (20) |
The meaning of the salary item |
Jsgs |
VARCHAR2 (40) |
The corresponding computational relationship |
Flag |
VARCHAR2 (1) |
Whether the key is enabled (1 is enabled, 0 is inactive) |
The Payroll project takes the field out of the payroll form TBL_GZTZ, which is easy to get out in Oracle (or other data), and then inserts the fetched field into the Payroll Project Definition Table Tbl_gzxmdy and defines its meaning for each item, which will not be displayed.
For the convenience of explanation, the examples are more clear. The SQL statement to remove the Release project field is as follows:
Select Cname from Col Where tname = ' Tbl_gztz ' and coltype = ' NUMERIC ' ORDER by Colno;
Payroll Project Data Maintenance Examples show:
Xm |
Xmmc |
Jsgs |
Gz1 |
Skill pay |
|
Gz2 |
Floating wages |
|
Gz3 |
Insurance Wages |
|
Gz4 |
Wages to be issued |
GZ1 + Gz2 |
Gz5 |
Rent |
|
Gz6 |
Real wages |
Gz4-gz5 |