স্টেপ ১: Overtime Policies Creation (ওভারটাইম নীতিমালা তৈরি)
1. overtime_policies টেবিল:
এই টেবিলে ওভারটাইমের হার বেতন অথবা বেতন গ্রেড অনুযায়ী শতাংশ হিসেবেও নির্ধারণ করা যায়।
| Field Name | Data Type | Description |
|---|---|---|
| policy_id | INT (PK) | প্রতিটি নীতিমালার জন্য ইউনিক আইডি |
| company_id | INT (FK) | কোম্পানির আইডি |
| policy_name | VARCHAR(100) | ওভারটাইম নীতিমালার নাম |
| calculation_basis | ENUM | হিসাবের ভিত্তি (Basic Salary, Monthly Salary) |
| rate_type | ENUM | রেটের ধরণ (Percentage of Salary, Fixed Rate) |
| rate | DECIMAL(5,2) | ওভারটাইমের হার (যদি Percentage of Salary হয়) |
| fixed_rate_per_hour | DECIMAL(10,2) | প্রতি ঘণ্টার জন্য নির্দিষ্ট হার (যদি Fixed Rate হয়) |
| applicable_days | ENUM | প্রযোজ্য দিন (Weekdays, Weekends, Holidays) |
| effective_date | DATE | নীতিমালার কার্যকরী তারিখ |
| created_at | TIMESTAMP | তৈরি করার তারিখ |
| updated_at | TIMESTAMP | আপডেট করার তারিখ |
রিলেশন:
company_idcompanies টেবিলের সাথে সংযুক্ত থাকবে। calculation_basis এবং rate_type অনুযায়ী ওভারটাইমের হার বেতন বা মাসিক বেতনের নির্দিষ্ট শতাংশের উপর নির্ভরশীল হবে।
Demo Data:
| policy_id | company_id | policy_name | calculation_basis | rate_type | rate | fixed_rate_per_hour | applicable_days | effective_date | created_at | updated_at |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | Standard OT | Basic Salary | Percentage of Salary | 1.50 | NULL | Weekdays | 2023-01-01 | 2023-01-01 10:00:00 | 2023-01-01 10:00:00 |
| 2 | 1 | Holiday OT | Monthly Salary | Fixed Rate | NULL | 350.00 | Holidays | 2023-01-01 | 2023-01-01 10:00:00 | 2023-01-01 10:00:00 |
বিঃদ্রঃ এখানে
Standard OTনীতিমালার জন্য ওভারটাইম হার বেসিক বেতনের ১.৫০% এবংHoliday OTএর জন্য প্রতি ঘণ্টায় ৩৫০ টাকা নির্দিষ্ট করা হয়েছে।
স্টেপ ২: Employee Overtime Records (কর্মীর ওভারটাইম রেকর্ড)
2. employee_overtime_records টেবিল:
এই টেবিলটি কর্মীদের অতিরিক্ত কাজের সময়ের রেকর্ড সংরক্ষণ করে, যেখানে কাজের শুরু ও শেষ সময় এবং মোট ঘণ্টা উল্লেখ করা থাকে।
| Field Name | Data Type | Description |
|---|---|---|
| overtime_id | INT (PK) | প্রতিটি ওভারটাইম রেকর্ডের জন্য ইউনিক আইডি |
| employee_id | INT (FK) | কর্মীর আইডি |
| policy_id | INT (FK) | ওভারটাইম নীতিমালা আইডি |
| start_time | TIMESTAMP | অতিরিক্ত কাজের শুরুর সময় |
| end_time | TIMESTAMP | অতিরিক্ত কাজের শেষ সময় |
| total_hours | DECIMAL(5,2) | মোট কাজের ঘন্টা |
| date | DATE | কাজের তারিখ |
| created_at | TIMESTAMP | তৈরি করার তারিখ |
| updated_at | TIMESTAMP | আপডেট করার তারিখ |
Demo Data:
| overtime_id | employee_id | policy_id | start_time | end_time | total_hours | date | created_at | updated_at |
|---|---|---|---|---|---|---|---|---|
| 1 | 101 | 1 | 2023-06-10 18:00:00 | 2023-06-10 20:00:00 | 2.00 | 2023-06-10 | 2023-06-10 20:10:00 | 2023-06-10 20:10:00 |
| 2 | 102 | 2 | 2023-06-11 09:00:00 | 2023-06-11 13:00:00 | 4.00 | 2023-06-11 | 2023-06-11 13:10:00 | 2023-06-11 13:10:00 |
রিলেশন:
employee_idemployees টেবিলের সাথে এবংpolicy_idovertime_policies টেবিলের সাথে সংযুক্ত থাকবে।
স্টেপ ৩: Overtime Payment Calculations (ওভারটাইম বেতন গণনা)
3. overtime_payments টেবিল:
এই টেবিলটি কর্মীদের অতিরিক্ত কাজের জন্য প্রদানকৃত অর্থ সংরক্ষণ করবে। এখানে প্রতি ঘণ্টা এবং মোট ঘণ্টার উপর ভিত্তি করে বেতন পরিমাণ উল্লেখ করা হয়।
| Field Name | Data Type | Description |
|---|---|---|
| payment_id | INT (PK) | প্রতিটি ওভারটাইম পরিশোধের জন্য ইউনিক আইডি |
| overtime_id | INT (FK) | ওভারটাইম রেকর্ড আইডি |
| employee_id | INT (FK) | কর্মীর আইডি |
| total_overtime_hours | DECIMAL(5,2) | মোট অতিরিক্ত কাজের ঘন্টা |
| total_overtime_pay | DECIMAL(10,2) | মোট ওভারটাইম বেতন |
| payment_date | DATE | ওভারটাইম পরিশোধের তারিখ |
| payment_method | ENUM | পরিশোধের পদ্ধতি (Bank Transfer, Cash, Check) |
| created_at | TIMESTAMP | তৈরি করার তারিখ |
| updated_at | TIMESTAMP | আপডেট করার তারিখ |
Demo Data:
| payment_id | overtime_id | employee_id | total_overtime_hours | total_overtime_pay | payment_date | payment_method | created_at | updated_at |
|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 101 | 2.00 | 600.00 | 2023-06-12 | Bank Transfer | 2023-06-12 10:00:00 | 2023-06-12 10:00:00 |
| 2 | 2 | 102 | 4.00 | 1400.00 | 2023-06-12 | Cash | 2023-06-12 10:00:00 | 2023-06-12 10:00:00 |
রিলেশন:
overtime_idemployee_overtime_records টেবিলের সাথে সংযুক্ত থাকবে এবংemployee_idemployees টেবিলের সাথে সংযুক্ত থাকবে।
Summary
এই Overtime Management ডিজাইনটি প্রতিটি কোম্পানির জন্য কর্মীদের বেতনের উপর ভিত্তি করে ওভারটাইম রেট নির্ধারণ করার সুযোগ দেয়। এতে overtime_policies টেবিলে বেতন ভিত্তিক হার নির্ধারণ এবং তা থেকে employee_overtime_records ও overtime_payments টেবিলে নির্ভুলভাবে ওভারটাইম গণনা করা সম্ভব হবে।