From 16a40188c4507072eaa6fca883271c5a64469677 Mon Sep 17 00:00:00 2001
From: Nurul Umbhiya
Date: Mon, 3 Feb 2020 11:39:30 +0600
Subject: [PATCH 1/5] added structure for leave requests seeder
---
includes/class-hr-leaves-seeder.php | 78 +++++++++++++++++++++++++++++
includes/tools-page.php | 6 ++-
plugin.php | 15 ++++--
3 files changed, 94 insertions(+), 5 deletions(-)
create mode 100644 includes/class-hr-leaves-seeder.php
diff --git a/includes/class-hr-leaves-seeder.php b/includes/class-hr-leaves-seeder.php
new file mode 100644
index 0000000..8a65be7
--- /dev/null
+++ b/includes/class-hr-leaves-seeder.php
@@ -0,0 +1,78 @@
+count = $count;
+ }
+
+ /**
+ * Run the seeder functions
+ *
+ * @return void
+ */
+ public function run() {
+ $this->truncate_all();
+ $this->policies_datas();
+ $this->entitlement_datas();
+ }
+
+ /**
+ * Delete employees and clear the table
+ *
+ * @return void
+ */
+ public function truncate_all() {
+ global $wpdb;
+
+ // truncate the tables
+ $tables = [ 'leave_policies', 'leave_entitlements', 'leave_requests', 'hr_leaves', 'user_leaves' ];
+
+ foreach ($tables as $table) {
+ $wpdb->query( 'TRUNCATE TABLE ' . $wpdb->prefix . $table );
+ }
+ }
+
+ /**
+ * Use this method as seeder for leave request
+ */
+ protected function leave_request_datas() {
+ $this->leave_request_datas = [
+
+ ];
+ }
+
+ protected function policies_datas() {
+ global $wpdb;
+
+ $this->policies = [
+
+ ];
+
+ //create policies datas here
+
+ }
+
+
+ protected function create_entitlements() {
+ //grab policie ids
+
+ //grab user ids
+
+ //insert datas to entitlements table
+
+ }
+
+ protected function create_leave_requests() {
+ //get policy id, user id, data from $this->leave_request_datas, then insert into table
+ }
+
+
+}
diff --git a/includes/tools-page.php b/includes/tools-page.php
index 18de608..0246be3 100644
--- a/includes/tools-page.php
+++ b/includes/tools-page.php
@@ -18,9 +18,13 @@
+
+
+
+
-
\ No newline at end of file
+
diff --git a/plugin.php b/plugin.php
index 8a43fab..4e8b7ee 100644
--- a/plugin.php
+++ b/plugin.php
@@ -22,6 +22,7 @@ class WeDevs_ERP_Seeder {
private $faker;
private $employee_count;
private $customer_count;
+ private $create_leaves;
/**
* Constructor
@@ -70,8 +71,9 @@ public static function init() {
public function file_includes() {
include_once __DIR__ . '/includes/class-hr-seeder.php';
include_once __DIR__ . '/includes/class-crm-seeder.php';
+ include_once __DIR__ . '/includes/class-hr-leaves-seeder.php';
- if ( defined( 'WP_CLI' ) && WP_CLI ) {
+ if ( defined( 'WP_CLI' ) && WP_CLI ) {
include_once __DIR__ . '/includes/cli/class-commands.php';
}
}
@@ -90,8 +92,9 @@ public function add_settings_area() {
*/
function submit_tools_page() {
if ( isset( $_POST['erp_generate_dummy_data'] ) && wp_verify_nonce( $_REQUEST['_wpnonce'], 'erp-dummy-data-nonce' ) ) {
- $this->employee_count = isset( $_POST['employee_number'] ) ? intval( $_POST['employee_number'] ) : 0;
- $this->customer_count = isset( $_POST['customer_number'] ) ? intval( $_POST['customer_number'] ) : 0;
+ $this->employee_count = isset( $_POST['employee_number'] ) ? intval( $_POST['employee_number'] ) : 0;
+ $this->customer_count = isset( $_POST['customer_number'] ) ? intval( $_POST['customer_number'] ) : 0;
+ $this->create_leaves = isset( $_POST['create_leaves'] ) ? intval( $_POST['create_leaves'] ) : 0;
$this->generate_data();
echo "Done!
";
@@ -137,6 +140,10 @@ function generate_data() {
if ( $this->customer_count > 0 ) {
(new WeDevs_ERP_CRM_Seeder( $this->faker, $this->customer_count ))->run();
}
+
+ if ( $this->create_leaves > 0 ) {
+ (new WeDevs_ERP_HR_Leaves_Seeder( $this->customer_count ))->run();
+ }
}
}
@@ -144,4 +151,4 @@ function erp_seeder() {
return WeDevs_ERP_Seeder::init();
}
-erp_seeder();
\ No newline at end of file
+erp_seeder();
From f90b52d06d64599a64d79fc8f1cd64aa76ff98d5 Mon Sep 17 00:00:00 2001
From: Nadim
Date: Mon, 3 Feb 2020 17:12:40 +0600
Subject: [PATCH 2/5] Add entitlements data
---
includes/class-hr-leaves-seeder.php | 239 ++++++++++++++++++++++++++--
includes/tools-page.php | 2 +-
2 files changed, 228 insertions(+), 13 deletions(-)
diff --git a/includes/class-hr-leaves-seeder.php b/includes/class-hr-leaves-seeder.php
index 8a65be7..2f73c9b 100644
--- a/includes/class-hr-leaves-seeder.php
+++ b/includes/class-hr-leaves-seeder.php
@@ -21,7 +21,7 @@ function __construct( $count ) {
public function run() {
$this->truncate_all();
$this->policies_datas();
- $this->entitlement_datas();
+ $this->create_entitlements();
}
/**
@@ -33,7 +33,14 @@ public function truncate_all() {
global $wpdb;
// truncate the tables
- $tables = [ 'leave_policies', 'leave_entitlements', 'leave_requests', 'hr_leaves', 'user_leaves' ];
+ $tables = [
+ 'erp_hr_leave_policies',
+ 'erp_hr_leave_entitlements',
+ 'erp_hr_leave_requests',
+ 'erp_hr_leaves',
+ 'erp_user_leaves',
+ 'erp_hr_holiday'
+ ];
foreach ($tables as $table) {
$wpdb->query( 'TRUNCATE TABLE ' . $wpdb->prefix . $table );
@@ -49,30 +56,238 @@ protected function leave_request_datas() {
];
}
+ /**
+ * Use this method as seeder for leave policy
+ */
protected function policies_datas() {
- global $wpdb;
-
+ global $wpdb;
+
$this->policies = [
+ [
+ 'name' => 'Annual leave',
+ 'value' => 5,
+ 'color' => '#8224e3',
+ 'department' => 2,
+ 'designation' => 5,
+ 'gender' => '-1',
+ 'marital' => '-1',
+ 'description' => 'Annual leave policy',
+ 'location' => '-1',
+ 'effective_date' => '2020-01-01 00:00:00',
+ 'activate' => 1,
+ 'execute_day' => 0,
+ 'created_at' => '2020-02-03 10:39:03',
+ 'updated_at' => '2020-02-03 10:39:03'
+ ],
+ [
+ 'name' => 'Casual leave',
+ 'value' => 10,
+ 'color' => '#f90000',
+ 'department' => '-1',
+ 'designation' => '-1',
+ 'gender' => '-1',
+ 'marital' => '-1',
+ 'description' => 'Casual leave policy',
+ 'location' => '-1',
+ 'effective_date' => '2020-01-01 00:00:00',
+ 'activate' => 1,
+ 'execute_day' => 0,
+ 'created_at' => '2020-02-03 10:42:04',
+ 'updated_at' => '2020-02-03 10:42:04'
+ ],
+ [
+ 'name' => 'Sick leave',
+ 'value' => 5,
+ 'color' => '#f54330',
+ 'department' => '-1',
+ 'designation' => '-1',
+ 'gender' => '-1',
+ 'marital' => '-1',
+ 'description' => 'Casual leave policy',
+ 'location' => '-1',
+ 'effective_date' => '2020-01-01 00:00:00',
+ 'activate' => 1,
+ 'execute_day' => 0,
+ 'created_at' => '2020-02-03 10:42:04',
+ 'updated_at' => '2020-02-03 10:42:04'
+ ],
+ [
+ 'name' => 'Marriage leave',
+ 'value' => 5,
+ 'color' => '#f54330',
+ 'department' => '-1',
+ 'designation' => '-1',
+ 'gender' => '-1',
+ 'marital' => 'single',
+ 'description' => 'Marriage leave policy',
+ 'location' => '-1',
+ 'effective_date' => '2020-01-01 00:00:00',
+ 'activate' => 1,
+ 'execute_day' => 0,
+ 'created_at' => '2020-02-03 10:42:04',
+ 'updated_at' => '2020-02-03 10:42:04'
+ ],
+ [
+ 'name' => 'Maternity leave',
+ 'value' => 84,
+ 'color' => '#0726c1',
+ 'department' => '-1',
+ 'designation' => '-1',
+ 'gender' => 'female',
+ 'marital' => 'married',
+ 'description' => 'Maternity leave policy',
+ 'location' => '-1',
+ 'effective_date' => '2020-01-01 00:00:00',
+ 'activate' => 1,
+ 'execute_day' => 0,
+ 'created_at' => '2020-02-03 10:55:28',
+ 'updated_at' => '2020-02-03 10:55:28'
+ ],
+ [
+ 'name' => 'Paternity leave',
+ 'value' => 5,
+ 'color' => '#8726c1',
+ 'department' => '-1',
+ 'designation' => '-1',
+ 'gender' => 'male',
+ 'marital' => 'married',
+ 'description' => 'Paternity leave policy',
+ 'location' => '-1',
+ 'effective_date' => '2020-01-01 00:00:00',
+ 'activate' => 1,
+ 'execute_day' => 0,
+ 'created_at' => '2020-02-03 10:55:28',
+ 'updated_at' => '2020-02-03 10:55:28'
+ ]
+ ];
+
+ foreach( $this->policies as $policy ) {
+ $wpdb->insert( $wpdb->prefix . 'erp_hr_leave_policies', $policy );
+ }
+ }
+
+ protected function create_entitlements() {
+ global $wpdb;
- ];
+ $current_user = get_current_user_id();
+ $date_minus_1 = strtotime( date('Y-m-d') . ' -1 year' );
+ $prev_year = date('Y', $date_minus_1);
- //create policies datas here
+ $policies_id = [
+ 'annual' => 1,
+ 'casual' => 2,
+ 'sick' => 3,
+ 'marriage' => 4,
+ 'maternity' => 5,
+ 'paternity' => 6
+ ];
- }
+ $basic = [
+ [
+ 'policy_id' => $policies_id['annual'],
+ 'days' => 5,
+ 'comments' => 'An entitlement',
+ 'status' => 1,
+ 'created_by' => $current_user,
+ 'created_on' => date('Y-m-d h:i:s')
+ ],
+ [
+ 'policy_id' => $policies_id['casual'],
+ 'days' => 10,
+ 'comments' => 'An entitlement',
+ 'status' => 1,
+ 'created_by' => $current_user,
+ 'created_on' => date('Y-m-d h:i:s')
+ ],
+ [
+ 'policy_id' => $policies_id['sick'],
+ 'days' => 5,
+ 'comments' => 'An entitlement',
+ 'status' => 1,
+ 'created_by' => $current_user,
+ 'created_on' => date('Y-m-d h:i:s')
+ ]
+ ];
+ $professional = [
+ 'policy_id' => $policies_id['marriage'],
+ 'days' => 5,
+ 'comments' => 'An entitlement',
+ 'status' => 1,
+ 'created_by' => $current_user,
+ 'created_on' => date('Y-m-d h:i:s')
+ ];
- protected function create_entitlements() {
- //grab policie ids
+ $business = [
+ 'policy_id' => $policies_id['maternity'],
+ 'days' => 84,
+ 'from_date' => '2020-01-01 00:00:00',
+ 'to_date' => '2020-12-31 23:59:59',
+ 'comments' => 'An entitlement',
+ 'status' => 1,
+ 'created_by' => $current_user,
+ 'created_on' => date('Y-m-d h:i:s')
+ ];
- //grab user ids
+ $enterprise = [
+ 'policy_id' => $policies_id['paternity'],
+ 'days' => 5,
+ 'from_date' => '2020-01-01 00:00:00',
+ 'to_date' => '2020-12-31 23:59:59',
+ 'comments' => 'An entitlement',
+ 'status' => 1,
+ 'created_by' => $current_user,
+ 'created_on' => date('Y-m-d h:i:s')
+ ];
- //insert datas to entitlements table
+ $employees = erp_hr_get_employees( [ 'number' => -1 ] );
+ foreach( $employees as $employee ) {
+ $user_id = $employee->get_user_id();
+ $gender = $employee->get_gender();
+ $marital_status = $employee->get_marital_status();
+
+ if ( $user_id % 2 === 0 ) {
+ $from_date = $prev_year . '-01-01 00:00:00';
+ $to_date = $prev_year . '-01-01 00:00:00';
+ } else {
+ $from_date = date('Y') . '-01-01 00:00:00';
+ $to_date = date('Y') . '-01-01 00:00:00';
+ }
+
+ foreach( $basic as $base ) {
+ $base['user_id'] = $user_id;
+ $base['from_date'] = $from_date;
+ $base['to_date'] = $to_date;
+
+ $wpdb->insert( $wpdb->prefix . 'erp_hr_leave_entitlements', $base );
+ }
+
+ if ( $marital_status === 'single' ) {
+ $professional['from_date'] = $from_date;
+ $professional['to_date'] = $to_date;
+
+ $wpdb->insert( $wpdb->prefix . 'erp_hr_leave_entitlements', $professional );
+ }
+
+ if ( $marital_status === 'married' && $gender === 'female' ) {
+ $business['from_date'] = $from_date;
+ $business['to_date'] = $to_date;
+
+ $wpdb->insert( $wpdb->prefix . 'erp_hr_leave_entitlements', $business );
+ }
+
+ if ( $marital_status === 'married' && $gender === 'male' ) {
+ $business['from_date'] = $from_date;
+ $business['to_date'] = $to_date;
+
+ $wpdb->insert( $wpdb->prefix . 'erp_hr_leave_entitlements', $enterprise );
+ }
+ }
}
protected function create_leave_requests() {
//get policy id, user id, data from $this->leave_request_datas, then insert into table
}
-
}
diff --git a/includes/tools-page.php b/includes/tools-page.php
index 0246be3..a6e7a43 100644
--- a/includes/tools-page.php
+++ b/includes/tools-page.php
@@ -20,7 +20,7 @@
-
+
From df5460ba2b6449485ab1709fd127e60817e15a6c Mon Sep 17 00:00:00 2001
From: Nadim
Date: Tue, 4 Feb 2020 13:04:51 +0600
Subject: [PATCH 3/5] Add request mock data
---
includes/class-hr-leaves-seeder.php | 331 +++++++++++++++++++++++++---
plugin.php | 1 +
2 files changed, 298 insertions(+), 34 deletions(-)
diff --git a/includes/class-hr-leaves-seeder.php b/includes/class-hr-leaves-seeder.php
index 2f73c9b..2cc4652 100644
--- a/includes/class-hr-leaves-seeder.php
+++ b/includes/class-hr-leaves-seeder.php
@@ -3,13 +3,14 @@
/**
* HR Seeder Class
*/
-class WeDevs_ERP_HR_Leaves_Seeder {
+class WeDevs_ERP_HR_Leaves_Seeder
+{
- protected $policies;
+ protected $policies;
- protected $leave_request_datas;
+ protected $leave_request_datas;
- function __construct( $count ) {
+ function __construct($count) {
$this->count = $count;
}
@@ -20,8 +21,10 @@ function __construct( $count ) {
*/
public function run() {
$this->truncate_all();
+ $this->create_holidays();
$this->policies_datas();
$this->create_entitlements();
+ $this->create_leave_requests();
}
/**
@@ -43,26 +46,24 @@ public function truncate_all() {
];
foreach ($tables as $table) {
- $wpdb->query( 'TRUNCATE TABLE ' . $wpdb->prefix . $table );
+ $wpdb->query('TRUNCATE TABLE ' . $wpdb->prefix . $table);
}
}
- /**
- * Use this method as seeder for leave request
- */
- protected function leave_request_datas() {
- $this->leave_request_datas = [
-
- ];
- }
+ /**
+ * Use this method as seeder for leave request
+ */
+ protected function leave_request_datas() {
+ $this->leave_request_datas = [];
+ }
- /**
- * Use this method as seeder for leave policy
- */
+ /**
+ * Use this method as seeder for leave policy
+ */
protected function policies_datas() {
global $wpdb;
-
- $this->policies = [
+
+ $this->policies = [
[
'name' => 'Annual leave',
'value' => 5,
@@ -161,8 +162,8 @@ protected function policies_datas() {
]
];
- foreach( $this->policies as $policy ) {
- $wpdb->insert( $wpdb->prefix . 'erp_hr_leave_policies', $policy );
+ foreach ($this->policies as $policy) {
+ $wpdb->insert($wpdb->prefix . 'erp_hr_leave_policies', $policy);
}
}
@@ -170,10 +171,10 @@ protected function create_entitlements() {
global $wpdb;
$current_user = get_current_user_id();
- $date_minus_1 = strtotime( date('Y-m-d') . ' -1 year' );
+ $date_minus_1 = strtotime(date('Y-m-d') . ' -1 year');
$prev_year = date('Y', $date_minus_1);
- $policies_id = [
+ $policies_id = [
'annual' => 1,
'casual' => 2,
'sick' => 3,
@@ -240,14 +241,14 @@ protected function create_entitlements() {
'created_on' => date('Y-m-d h:i:s')
];
- $employees = erp_hr_get_employees( [ 'number' => -1 ] );
+ $employees = erp_hr_get_employees(['number' => -1]);
- foreach( $employees as $employee ) {
+ foreach ($employees as $employee) {
$user_id = $employee->get_user_id();
$gender = $employee->get_gender();
$marital_status = $employee->get_marital_status();
- if ( $user_id % 2 === 0 ) {
+ if ($user_id % 2 === 0) {
$from_date = $prev_year . '-01-01 00:00:00';
$to_date = $prev_year . '-01-01 00:00:00';
} else {
@@ -255,39 +256,301 @@ protected function create_entitlements() {
$to_date = date('Y') . '-01-01 00:00:00';
}
- foreach( $basic as $base ) {
+ foreach ($basic as $base) {
$base['user_id'] = $user_id;
$base['from_date'] = $from_date;
$base['to_date'] = $to_date;
- $wpdb->insert( $wpdb->prefix . 'erp_hr_leave_entitlements', $base );
+ $wpdb->insert($wpdb->prefix . 'erp_hr_leave_entitlements', $base);
}
- if ( $marital_status === 'single' ) {
+ if ($marital_status === 'single') {
$professional['from_date'] = $from_date;
$professional['to_date'] = $to_date;
- $wpdb->insert( $wpdb->prefix . 'erp_hr_leave_entitlements', $professional );
+ $wpdb->insert($wpdb->prefix . 'erp_hr_leave_entitlements', $professional);
}
- if ( $marital_status === 'married' && $gender === 'female' ) {
+ if ($marital_status === 'married' && $gender === 'female') {
$business['from_date'] = $from_date;
$business['to_date'] = $to_date;
- $wpdb->insert( $wpdb->prefix . 'erp_hr_leave_entitlements', $business );
+ $wpdb->insert($wpdb->prefix . 'erp_hr_leave_entitlements', $business);
}
- if ( $marital_status === 'married' && $gender === 'male' ) {
+ if ($marital_status === 'married' && $gender === 'male') {
$business['from_date'] = $from_date;
$business['to_date'] = $to_date;
- $wpdb->insert( $wpdb->prefix . 'erp_hr_leave_entitlements', $enterprise );
+ $wpdb->insert($wpdb->prefix . 'erp_hr_leave_entitlements', $enterprise);
}
}
}
+ /**
+ * Create leave requests
+ */
protected function create_leave_requests() {
- //get policy id, user id, data from $this->leave_request_datas, then insert into table
+ global $wpdb;
+
+ $entitlements = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}erp_hr_leave_entitlements");
+
+ foreach ($entitlements as $entitlement) {
+ $date_plus_10 = date('Y-m-d', strtotime($entitlement->from_date . ' +10 days'));
+ $date_plus_20 = date('Y-m-d', strtotime($date_plus_10 . ' +20 days'));
+
+ $from_date = $this->get_random_date($entitlement->from_date, $date_plus_10);
+ $to_date = $this->get_random_date($date_plus_10, $date_plus_20);
+ $date_count = date_diff(date_create($from_date), date_create($to_date));
+
+ $data = [
+ 'user_id' => $entitlement->user_id,
+ 'policy_id' => $entitlement->policy_id,
+ 'days' => $date_count->format('%a') + 1, // plus 1 for count with the starting date
+ 'start_date' => $from_date,
+ 'end_date' => date('Y-m-d 23:59:59', strtotime($to_date)),
+ 'comments' => 'Leave request',
+ 'status' => rand(1, 3),
+ 'created_by' => get_current_user_id(),
+ 'created_on' => date('Y-m-d H:i:s')
+ ];
+
+ $wpdb->insert($wpdb->prefix . 'erp_hr_leave_requests', $data);
+
+ /**
+ * Breakdown days for details entry
+ */
+ $request_id = $wpdb->insert_id;
+
+ $periods = new DatePeriod(
+ new DateTime($from_date),
+ new DateInterval('P1D'),
+ new DateTime($to_date)
+ );
+
+ $holidays = erp_hr_leave_get_holiday_between_date_range($from_date, $to_date);
+
+ $dates = [];
+
+ foreach ($periods as $period) {
+ $dates[] = $period->format('Y-m-d');
+ }
+
+ $applicable_dates = array_diff( $dates, $holidays );
+
+ foreach ($applicable_dates as $applicable_date) {
+ $wpdb->insert($wpdb->prefix . 'erp_hr_leaves', [
+ 'request_id' => $request_id,
+ 'date' => $applicable_date,
+ 'length_hours' => '8.00',
+ 'length_days' => '1',
+ 'start_time' => '00:00:00',
+ 'end_time' => '23:59:00',
+ 'duration_type' => '1'
+ ]);
+ }
+ }
+ }
+
+ /**
+ * Get random data
+ */
+ private function get_random_date($start_date, $end_date)
+ {
+ $min = strtotime($start_date);
+ $max = strtotime($end_date);
+
+ $val = rand($min, $max);
+
+ return date('Y-m-d', $val);
}
+ /**
+ * Create holidays
+ */
+ protected function create_holidays() {
+ global $wpdb;
+
+ $date_minus_1 = strtotime(date('Y-m-d') . ' -1 year');
+ $prev_year = date('Y', $date_minus_1);
+ $current_year = date('Y');
+
+ $holidays = [
+ [
+ 'title' => 'Independence Day',
+ 'start' => $prev_year . '-02-01 00:00:00',
+ 'end' => $prev_year . '-02-01 23:59:59',
+ 'description' => 'Independence Day',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Tax Day',
+ 'start' => $prev_year . '-02-09 00:00:00',
+ 'end' => $prev_year . '-02-09 23:59:59',
+ 'description' => 'Tax Day',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Thanksgiving Day',
+ 'start' => $prev_year . '-03-12 00:00:00',
+ 'end' => $prev_year . '-03-14 23:59:59',
+ 'description' => 'Thanksgiving Day',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Election Day',
+ 'start' => $prev_year . '-04-04 00:00:00',
+ 'end' => $prev_year . '-04-04 23:59:59',
+ 'description' => 'Election Day',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Orthodox Day',
+ 'start' => $prev_year . '-05-05 00:00:00',
+ 'end' => $prev_year . '-05-05 23:59:59',
+ 'description' => 'Orthodox Day',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Hanukkah Day',
+ 'start' => $prev_year . '-05-22 00:00:00',
+ 'end' => $prev_year . '-05-22 23:59:59',
+ 'description' => 'Hanukkah Day',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Rosh Hashanah Day',
+ 'start' => $prev_year . '-06-06 00:00:00',
+ 'end' => $prev_year . '-06-06 23:59:59',
+ 'description' => 'Rosh Hashanah Day',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Lunar Day',
+ 'start' => $prev_year . '-07-07 00:00:00',
+ 'end' => $prev_year . '-07-07 23:59:59',
+ 'description' => 'Lunar Day',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Yom Kippur',
+ 'start' => $prev_year . '-08-22 00:00:00',
+ 'end' => $prev_year . '-08-22 23:59:59',
+ 'description' => 'Yom Kippur',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Easter',
+ 'start' => $current_year . '-02-02 00:00:00',
+ 'end' => $current_year . '-02-02 23:59:59',
+ 'description' => 'Easter',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Ashura',
+ 'start' => $prev_year . '-09-09 00:00:00',
+ 'end' => $prev_year . '-09-09 23:59:59',
+ 'description' => 'Ashura',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Diwali',
+ 'start' => $prev_year . '-10-13 00:00:00',
+ 'end' => $prev_year . '-10-13 23:59:59',
+ 'description' => 'Diwali',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Holi',
+ 'start' => $current_year . '-02-15 00:00:00',
+ 'end' => $current_year . '-02-15 23:59:59',
+ 'description' => 'Holi',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Ashura',
+ 'start' => $prev_year . '-02-17 00:00:00',
+ 'end' => $prev_year . '-02-17 23:59:59',
+ 'description' => 'Ashura',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Palm Sunday',
+ 'start' => $prev_year . '-04-05 00:00:00',
+ 'end' => $prev_year . '-04-05 23:59:59',
+ 'description' => 'Palm Sunday',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Christmas Eve',
+ 'start' => $prev_year . '-05-23 00:00:00',
+ 'end' => $prev_year . '-05-23 23:59:59',
+ 'description' => 'Christmas Eve',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Palm Sunday',
+ 'start' => $current_year . '-01-03 00:00:00',
+ 'end' => $current_year . '-01-03 23:59:59',
+ 'description' => 'Palm Sunday',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Columbus Day',
+ 'start' => $current_year . '-01-17 00:00:00',
+ 'end' => $current_year . '-01-17 23:59:59',
+ 'description' => 'Columbus Day',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ],
+ [
+ 'title' => 'Memorial Day',
+ 'start' => $current_year . '-06-06 00:00:00',
+ 'end' => $current_year . '-06-06 23:59:59',
+ 'description' => 'Memorial Day',
+ 'range_status' => '',
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s')
+ ]
+ ];
+
+ foreach ( $holidays as $holiday ) {
+ $wpdb->insert($wpdb->prefix . 'erp_hr_holiday', $holiday);
+ }
+ }
}
diff --git a/plugin.php b/plugin.php
index 4e8b7ee..6311384 100644
--- a/plugin.php
+++ b/plugin.php
@@ -99,6 +99,7 @@ function submit_tools_page() {
echo "Done!
";
printf( 'View Employees OR ', admin_url( 'admin.php?page=erp-hr§ion=employee' ) );
+ printf( 'View Leaves OR ', admin_url( 'admin.php?page=erp-hr§ion=leave' ) );
printf( 'View Customers', admin_url( 'admin.php?page=erp-crm§ion=contacts' ) );
die();
}
From 3096b65b3142a9fd72192fffb5895f8af088a88c Mon Sep 17 00:00:00 2001
From: Nadim
Date: Mon, 10 Feb 2020 09:59:10 +0600
Subject: [PATCH 4/5] Fix user id for migration
---
includes/class-hr-leaves-seeder.php | 8 ++++++--
plugin.php | 2 +-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/includes/class-hr-leaves-seeder.php b/includes/class-hr-leaves-seeder.php
index 2cc4652..2480c66 100644
--- a/includes/class-hr-leaves-seeder.php
+++ b/includes/class-hr-leaves-seeder.php
@@ -265,6 +265,7 @@ protected function create_entitlements() {
}
if ($marital_status === 'single') {
+ $professional['user_id'] = $user_id;
$professional['from_date'] = $from_date;
$professional['to_date'] = $to_date;
@@ -272,6 +273,7 @@ protected function create_entitlements() {
}
if ($marital_status === 'married' && $gender === 'female') {
+ $business['user_id'] = $user_id;
$business['from_date'] = $from_date;
$business['to_date'] = $to_date;
@@ -279,8 +281,9 @@ protected function create_entitlements() {
}
if ($marital_status === 'married' && $gender === 'male') {
- $business['from_date'] = $from_date;
- $business['to_date'] = $to_date;
+ $enterprise['user_id'] = $user_id;
+ $enterprise['from_date'] = $from_date;
+ $enterprise['to_date'] = $to_date;
$wpdb->insert($wpdb->prefix . 'erp_hr_leave_entitlements', $enterprise);
}
@@ -310,6 +313,7 @@ protected function create_leave_requests() {
'start_date' => $from_date,
'end_date' => date('Y-m-d 23:59:59', strtotime($to_date)),
'comments' => 'Leave request',
+ 'reason' => 'No reason, just for testing',
'status' => rand(1, 3),
'created_by' => get_current_user_id(),
'created_on' => date('Y-m-d H:i:s')
diff --git a/plugin.php b/plugin.php
index 6311384..30c072f 100644
--- a/plugin.php
+++ b/plugin.php
@@ -5,7 +5,7 @@
* Plugin URI: http://wperp.com
* Author: Tareq Hasan
* Author URI: http://tareq.co
- * Version: 1.0
+ * Version: 2.0.0
* License: GPL2
*/
From 2137c7ad4c22dddc10d8d4a2b4b65e69c95d0b07 Mon Sep 17 00:00:00 2001
From: Nadim
Date: Mon, 10 Feb 2020 15:33:51 +0600
Subject: [PATCH 5/5] Update status for leave
---
includes/class-hr-leaves-seeder.php | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/includes/class-hr-leaves-seeder.php b/includes/class-hr-leaves-seeder.php
index 2480c66..201a4c4 100644
--- a/includes/class-hr-leaves-seeder.php
+++ b/includes/class-hr-leaves-seeder.php
@@ -306,6 +306,9 @@ protected function create_leave_requests() {
$to_date = $this->get_random_date($date_plus_10, $date_plus_20);
$date_count = date_diff(date_create($from_date), date_create($to_date));
+ $status = rand(1, 3);
+ $status_pending = 2;
+
$data = [
'user_id' => $entitlement->user_id,
'policy_id' => $entitlement->policy_id,
@@ -314,11 +317,16 @@ protected function create_leave_requests() {
'end_date' => date('Y-m-d 23:59:59', strtotime($to_date)),
'comments' => 'Leave request',
'reason' => 'No reason, just for testing',
- 'status' => rand(1, 3),
+ 'status' => $status,
'created_by' => get_current_user_id(),
'created_on' => date('Y-m-d H:i:s')
];
+ if ( $status !== $status_pending ) {
+ $data['updated_by'] = get_current_user_id();
+ $data['updated_on'] = date('Y-m-d 23:59:58');
+ }
+
$wpdb->insert($wpdb->prefix . 'erp_hr_leave_requests', $data);
/**