From 66fd9f3260a96c2a05f9be403bffb773de558d45 Mon Sep 17 00:00:00 2001 From: NirmalNegi07 Date: Mon, 26 Feb 2024 22:58:10 +0530 Subject: [PATCH 1/5] Approved pipeline col added --- Modules/EffortTracking/Config/config.php | 1 + .../Services/EffortTrackingService.php | 15 ++++++--- ..._26_133946_add_approved_pipline_column.php | 32 +++++++++++++++++++ .../Project/Resources/views/show.blade.php | 18 ++++++++--- 4 files changed, 56 insertions(+), 10 deletions(-) create mode 100644 Modules/Project/Database/Migrations/2024_02_26_133946_add_approved_pipline_column.php diff --git a/Modules/EffortTracking/Config/config.php b/Modules/EffortTracking/Config/config.php index e85f963e98..02a6ff1dc4 100644 --- a/Modules/EffortTracking/Config/config.php +++ b/Modules/EffortTracking/Config/config.php @@ -10,6 +10,7 @@ 'end_date' => 'end date', 'actual_effort' => 'actual effort', 'billable_effort' => 'billable effort', + 'approved_pipeline' => 'Approved Pipeline', ], 'default_last_column_in_effort_sheet' => 'G', 'default_start_column_in_effort_sheet' => 'C', diff --git a/Modules/EffortTracking/Services/EffortTrackingService.php b/Modules/EffortTracking/Services/EffortTrackingService.php index 05ab5b0fb3..84727e2d4d 100644 --- a/Modules/EffortTracking/Services/EffortTrackingService.php +++ b/Modules/EffortTracking/Services/EffortTrackingService.php @@ -201,7 +201,6 @@ public function getEffortForProject($project) $sheet = $sheets->spreadsheet($sheetId) ->range($range) ->get(); - foreach ($sheet as $rows) { if (count($rows) == 0) { break; @@ -216,7 +215,12 @@ public function getEffortForProject($project) $sheet = $sheets->spreadsheet($sheetId) ->range($range) ->get(); + $approvedPipelineRange = "A6"; + $approvedPipelineSheet = $sheets->spreadsheet($sheetId) + ->range($approvedPipelineRange) + ->get(); + $mergedData = array_merge($sheet[0], $approvedPipelineSheet[0]); $columnIndex++; if (isset($sheet[0]) && count($sheet[0]) == $columnIndex) { $subProjectName = $sheet[0][count($sheet[0]) - 1]; @@ -240,10 +244,11 @@ public function getEffortForProject($project) } $range = config('efforttracking.default_start_column_in_effort_sheet') . '2:' . $lastColumn . ($projectMembersCount + 1); // this will depend on the number of people on the project - $sheetIndexForTeamMemberName = $this->getColumnIndex($sheetColumnsName['team_member_name'], $sheet[0]); - $sheetIndexForTotalBillableEffort = $this->getColumnIndex($sheetColumnsName['billable_effort'], $sheet[0]); - $sheetIndexForStartDate = $this->getColumnIndex($sheetColumnsName['start_date'], $sheet[0]); - $sheetIndexForEndDate = $this->getColumnIndex($sheetColumnsName['end_date'], $sheet[0]); + $sheetIndexForTeamMemberName = $this->getColumnIndex($sheetColumnsName['team_member_name'], $mergedData[0]); + $sheetIndexForTotalBillableEffort = $this->getColumnIndex($sheetColumnsName['billable_effort'], $mergedData[0]); + $sheetIndexForStartDate = $this->getColumnIndex($sheetColumnsName['start_date'], $mergedData[0]); + $sheetIndexForEndDate = $this->getColumnIndex($sheetColumnsName['end_date'], $mergedData[0]); + $sheetIndexForApprovedPipelineHrs = $this->getColumnIndex($sheetColumnsName['approved_pipeline'], $mergedData[0]); if ($sheetIndexForTeamMemberName === false || $sheetIndexForTotalBillableEffort === false || $sheetIndexForStartDate === false || $sheetIndexForEndDate === false) { return false; diff --git a/Modules/Project/Database/Migrations/2024_02_26_133946_add_approved_pipline_column.php b/Modules/Project/Database/Migrations/2024_02_26_133946_add_approved_pipline_column.php new file mode 100644 index 0000000000..3725f251d6 --- /dev/null +++ b/Modules/Project/Database/Migrations/2024_02_26_133946_add_approved_pipline_column.php @@ -0,0 +1,32 @@ +string('monthly_approved_pipeline')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('projects', function (Blueprint $table) { + $table->dropColumn('monthly_approved_pipeline'); + }); + } +} \ No newline at end of file diff --git a/Modules/Project/Resources/views/show.blade.php b/Modules/Project/Resources/views/show.blade.php index e20d125b5d..bf62a75ae4 100644 --- a/Modules/Project/Resources/views/show.blade.php +++ b/Modules/Project/Resources/views/show.blade.php @@ -81,11 +81,19 @@ {{ $project->total_estimated_hours }} -
-

- -

- {{ optional($project->start_date)->format('d M Y')}} +
+
+

+ +

+ {{ optional($project->start_date)->format('d M Y')}} +
+
+

+ +

+ {{ $project->monthly_approved_pipeline }} +

From adcd2aaf311d874a8ecce5837f1a8f8f15ecdc05 Mon Sep 17 00:00:00 2001 From: NirmalNegi07 Date: Tue, 27 Feb 2024 15:31:40 +0530 Subject: [PATCH 2/5] Approved pipeline col added to the project details --- Modules/EffortTracking/Config/config.php | 2 +- .../Services/EffortTrackingService.php | 34 +++++++++++++------ 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/Modules/EffortTracking/Config/config.php b/Modules/EffortTracking/Config/config.php index 02a6ff1dc4..b182dcee11 100644 --- a/Modules/EffortTracking/Config/config.php +++ b/Modules/EffortTracking/Config/config.php @@ -10,8 +10,8 @@ 'end_date' => 'end date', 'actual_effort' => 'actual effort', 'billable_effort' => 'billable effort', - 'approved_pipeline' => 'Approved Pipeline', ], 'default_last_column_in_effort_sheet' => 'G', 'default_start_column_in_effort_sheet' => 'C', + 'default_monthly_approved_pipeline_column_in_effort_sheet' => 'B6', ]; diff --git a/Modules/EffortTracking/Services/EffortTrackingService.php b/Modules/EffortTracking/Services/EffortTrackingService.php index 84727e2d4d..754ce72f4b 100644 --- a/Modules/EffortTracking/Services/EffortTrackingService.php +++ b/Modules/EffortTracking/Services/EffortTrackingService.php @@ -208,6 +208,11 @@ public function getEffortForProject($project) $projectMembersCount++; } + $approvedPipelineRange = config("efforttracking.default_monthly_approved_pipeline_column_in_effort_sheet"); + $approvedPipelineSheet = $sheets->spreadsheet($sheetId) + ->range($approvedPipelineRange) + ->get(); + try { while (true) { $lastColumn++; @@ -215,12 +220,7 @@ public function getEffortForProject($project) $sheet = $sheets->spreadsheet($sheetId) ->range($range) ->get(); - $approvedPipelineRange = "A6"; - $approvedPipelineSheet = $sheets->spreadsheet($sheetId) - ->range($approvedPipelineRange) - ->get(); - $mergedData = array_merge($sheet[0], $approvedPipelineSheet[0]); $columnIndex++; if (isset($sheet[0]) && count($sheet[0]) == $columnIndex) { $subProjectName = $sheet[0][count($sheet[0]) - 1]; @@ -244,11 +244,10 @@ public function getEffortForProject($project) } $range = config('efforttracking.default_start_column_in_effort_sheet') . '2:' . $lastColumn . ($projectMembersCount + 1); // this will depend on the number of people on the project - $sheetIndexForTeamMemberName = $this->getColumnIndex($sheetColumnsName['team_member_name'], $mergedData[0]); - $sheetIndexForTotalBillableEffort = $this->getColumnIndex($sheetColumnsName['billable_effort'], $mergedData[0]); - $sheetIndexForStartDate = $this->getColumnIndex($sheetColumnsName['start_date'], $mergedData[0]); - $sheetIndexForEndDate = $this->getColumnIndex($sheetColumnsName['end_date'], $mergedData[0]); - $sheetIndexForApprovedPipelineHrs = $this->getColumnIndex($sheetColumnsName['approved_pipeline'], $mergedData[0]); + $sheetIndexForTeamMemberName = $this->getColumnIndex($sheetColumnsName['team_member_name'], $sheet[0]); + $sheetIndexForTotalBillableEffort = $this->getColumnIndex($sheetColumnsName['billable_effort'], $sheet[0]); + $sheetIndexForStartDate = $this->getColumnIndex($sheetColumnsName['start_date'], $sheet[0]); + $sheetIndexForEndDate = $this->getColumnIndex($sheetColumnsName['end_date'], $sheet[0]); if ($sheetIndexForTeamMemberName === false || $sheetIndexForTotalBillableEffort === false || $sheetIndexForStartDate === false || $sheetIndexForEndDate === false) { return false; @@ -301,6 +300,8 @@ public function getEffortForProject($project) try { $effortData['sheet_project'] = $sheetProject; $this->updateEffort($effortData); + $approvedPipelineSheetEffort = !empty($approvedPipelineSheet[0][0]) ? $approvedPipelineSheet[0][0] : 0; + $this->updateApprovedPipelineEffort($approvedPipelineSheetEffort,$effortData); ProjectMeta::updateOrCreate( [ 'key' => config('project.meta_keys.last_updated_at.key'), @@ -336,6 +337,19 @@ public function getColumnIndex($columnName, $sheetColumns) return false; } + public function updateApprovedPipelineEffort($approvedPipelineSheet, $effortData) { + Project::updateOrCreate( + [ + 'id' => $effortData['sheet_project']['id'], + ], + [ + 'monthly_approved_pipeline' => $approvedPipelineSheet, + ] + ); + + return "success"; + } + public function updateEffort(array $effortData) { $currentDate = now(config('constants.timezone.indian'))->today(); From fe8d278524a69938c4ddffdbc521188e8871a894 Mon Sep 17 00:00:00 2001 From: NirmalNegi07 Date: Tue, 27 Feb 2024 15:39:36 +0530 Subject: [PATCH 3/5] lint fixes --- .../Services/EffortTrackingService.php | 17 +++++++++-------- ...02_26_133946_add_approved_pipline_column.php | 6 +++--- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Modules/EffortTracking/Services/EffortTrackingService.php b/Modules/EffortTracking/Services/EffortTrackingService.php index 754ce72f4b..1f42ed6c3b 100644 --- a/Modules/EffortTracking/Services/EffortTrackingService.php +++ b/Modules/EffortTracking/Services/EffortTrackingService.php @@ -103,7 +103,7 @@ public function getWorkingDays($startDate, $endDate) $dates = []; $weekend = ['Saturday', 'Sunday']; foreach ($period as $date) { - if (! in_array($date->format('l'), $weekend)) { + if (!in_array($date->format('l'), $weekend)) { $dates[] = $date->format('Y-m-d'); } } @@ -137,7 +137,7 @@ public function getTeamMembersDetails($teamMembers) $userDetails = $teamMember->user; $efforts = $teamMember->projectTeamMemberEffort()->get(); - if (! $userDetails) { + if (!$userDetails) { continue; } @@ -178,7 +178,7 @@ public function getEffortForProject($project) try { $effortSheetUrl = $project->effort_sheet_url ?: $project->client->effort_sheet_url; - if (! $effortSheetUrl) { + if (!$effortSheetUrl) { return false; } @@ -186,7 +186,7 @@ public function getEffortForProject($project) $isSyntaxMatching = preg_match('/.*[^-\w]([-\w]{25,})[^-\w]?.*/', $effortSheetUrl, $correctedEffortsheetUrl); - if (! $isSyntaxMatching) { + if (!$isSyntaxMatching) { return false; } @@ -275,7 +275,7 @@ public function getEffortForProject($project) $portalUsers = clone $users; $portalUser = $portalUsers->where('nickname', $userNickname)->first(); - if (! $portalUser) { + if (!$portalUser) { continue; } @@ -301,7 +301,7 @@ public function getEffortForProject($project) $effortData['sheet_project'] = $sheetProject; $this->updateEffort($effortData); $approvedPipelineSheetEffort = !empty($approvedPipelineSheet[0][0]) ? $approvedPipelineSheet[0][0] : 0; - $this->updateApprovedPipelineEffort($approvedPipelineSheetEffort,$effortData); + $this->updateApprovedPipelineEffort($approvedPipelineSheetEffort, $effortData); ProjectMeta::updateOrCreate( [ 'key' => config('project.meta_keys.last_updated_at.key'), @@ -337,7 +337,8 @@ public function getColumnIndex($columnName, $sheetColumns) return false; } - public function updateApprovedPipelineEffort($approvedPipelineSheet, $effortData) { + public function updateApprovedPipelineEffort($approvedPipelineSheet, $effortData) + { Project::updateOrCreate( [ 'id' => $effortData['sheet_project']['id'], @@ -355,7 +356,7 @@ public function updateEffort(array $effortData) $currentDate = now(config('constants.timezone.indian'))->today(); $projectTeamMember = $effortData['portal_user']->projectTeamMembers()->active()->where('project_id', $effortData['sheet_project']['id'])->first(); - if (! $projectTeamMember) { + if (!$projectTeamMember) { return; } $latestProjectTeamMemberEffort = $projectTeamMember->projectTeamMemberEffort() diff --git a/Modules/Project/Database/Migrations/2024_02_26_133946_add_approved_pipline_column.php b/Modules/Project/Database/Migrations/2024_02_26_133946_add_approved_pipline_column.php index 3725f251d6..98bda01645 100644 --- a/Modules/Project/Database/Migrations/2024_02_26_133946_add_approved_pipline_column.php +++ b/Modules/Project/Database/Migrations/2024_02_26_133946_add_approved_pipline_column.php @@ -1,8 +1,8 @@ dropColumn('monthly_approved_pipeline'); }); } -} \ No newline at end of file +} From f6da51029144a07da19d457107c4ca2272640be9 Mon Sep 17 00:00:00 2001 From: NirmalNegi07 Date: Tue, 27 Feb 2024 15:45:50 +0530 Subject: [PATCH 4/5] lint fixes --- .../Services/EffortTrackingService.php | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/Modules/EffortTracking/Services/EffortTrackingService.php b/Modules/EffortTracking/Services/EffortTrackingService.php index 1f42ed6c3b..dfb854f479 100644 --- a/Modules/EffortTracking/Services/EffortTrackingService.php +++ b/Modules/EffortTracking/Services/EffortTrackingService.php @@ -103,7 +103,7 @@ public function getWorkingDays($startDate, $endDate) $dates = []; $weekend = ['Saturday', 'Sunday']; foreach ($period as $date) { - if (!in_array($date->format('l'), $weekend)) { + if (! in_array($date->format('l'), $weekend)) { $dates[] = $date->format('Y-m-d'); } } @@ -137,7 +137,7 @@ public function getTeamMembersDetails($teamMembers) $userDetails = $teamMember->user; $efforts = $teamMember->projectTeamMemberEffort()->get(); - if (!$userDetails) { + if (! $userDetails) { continue; } @@ -178,7 +178,7 @@ public function getEffortForProject($project) try { $effortSheetUrl = $project->effort_sheet_url ?: $project->client->effort_sheet_url; - if (!$effortSheetUrl) { + if (! $effortSheetUrl) { return false; } @@ -186,7 +186,7 @@ public function getEffortForProject($project) $isSyntaxMatching = preg_match('/.*[^-\w]([-\w]{25,})[^-\w]?.*/', $effortSheetUrl, $correctedEffortsheetUrl); - if (!$isSyntaxMatching) { + if (! $isSyntaxMatching) { return false; } @@ -208,7 +208,7 @@ public function getEffortForProject($project) $projectMembersCount++; } - $approvedPipelineRange = config("efforttracking.default_monthly_approved_pipeline_column_in_effort_sheet"); + $approvedPipelineRange = config('efforttracking.default_monthly_approved_pipeline_column_in_effort_sheet'); $approvedPipelineSheet = $sheets->spreadsheet($sheetId) ->range($approvedPipelineRange) ->get(); @@ -275,7 +275,7 @@ public function getEffortForProject($project) $portalUsers = clone $users; $portalUser = $portalUsers->where('nickname', $userNickname)->first(); - if (!$portalUser) { + if (! $portalUser) { continue; } @@ -347,8 +347,6 @@ public function updateApprovedPipelineEffort($approvedPipelineSheet, $effortData 'monthly_approved_pipeline' => $approvedPipelineSheet, ] ); - - return "success"; } public function updateEffort(array $effortData) @@ -356,7 +354,7 @@ public function updateEffort(array $effortData) $currentDate = now(config('constants.timezone.indian'))->today(); $projectTeamMember = $effortData['portal_user']->projectTeamMembers()->active()->where('project_id', $effortData['sheet_project']['id'])->first(); - if (!$projectTeamMember) { + if (! $projectTeamMember) { return; } $latestProjectTeamMemberEffort = $projectTeamMember->projectTeamMemberEffort() From b8c20e37a3cc38ca4d9d3f014a21a5582278bb9d Mon Sep 17 00:00:00 2001 From: NirmalNegi07 Date: Tue, 27 Feb 2024 15:49:02 +0530 Subject: [PATCH 5/5] lint fixes --- Modules/EffortTracking/Services/EffortTrackingService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/EffortTracking/Services/EffortTrackingService.php b/Modules/EffortTracking/Services/EffortTrackingService.php index dfb854f479..ce4a4deadf 100644 --- a/Modules/EffortTracking/Services/EffortTrackingService.php +++ b/Modules/EffortTracking/Services/EffortTrackingService.php @@ -300,7 +300,7 @@ public function getEffortForProject($project) try { $effortData['sheet_project'] = $sheetProject; $this->updateEffort($effortData); - $approvedPipelineSheetEffort = !empty($approvedPipelineSheet[0][0]) ? $approvedPipelineSheet[0][0] : 0; + $approvedPipelineSheetEffort = ! empty($approvedPipelineSheet[0][0]) ? $approvedPipelineSheet[0][0] : 0; $this->updateApprovedPipelineEffort($approvedPipelineSheetEffort, $effortData); ProjectMeta::updateOrCreate( [