1
0
forked from poc/pds

Added logic for all lines in modulefilterdataController and changed logic in module controller

This commit is contained in:
dhanabalan
2025-07-11 15:51:09 +05:30
parent 658dea8e72
commit b153a53f4b
2 changed files with 166 additions and 36 deletions

View File

@@ -71,14 +71,20 @@ class ModuleController extends Controller
->get()
->unique('module_name')
->pluck('module_name')
->values(); // reset array keys
->values();
if ($uniqueModules->isEmpty()) {
return response()->json([
'status_code' => 'ERROR',
'status_description' => 'Module names not found'
], 404);
}
return response()->json([
'status_code' => 'SUCCESS',
'modules' => $uniqueModules
]);
'status_description' => $uniqueModules
], 200);
}
/**

View File

@@ -17,6 +17,99 @@ class ModuleFilterDataController extends Controller
//
}
// public function get_moduleFilterData(Request $request)
// {
// $expectedUser = env('API_AUTH_USER');
// $expectedPw = env('API_AUTH_PW');
// $header_auth = $request->header('Authorization');
// $expectedToken = $expectedUser . ':' . $expectedPw;
// if ("Bearer " . $expectedToken != $header_auth)
// {
// return response()->json([
// 'status_code' => 'ERROR',
// 'status_description' => 'Invalid authorization token!'
// ], 403);
// }
// $moduleName = $request->header('module-name');
// $chartName = $request->header('chart-name');
// $plantName = $request->header('plant-name');
// $lineName = $request->header('line-name');
// $filterName = $request->header('filter-name');
// $requiredHeaders = [
// 'module-name',
// 'chart-name',
// 'plant-name',
// 'line-name',
// 'filter-name',
// ];
// $missingHeaders = [];
// foreach ($requiredHeaders as $header) {
// if (empty($request->header($header))) {
// $missingHeaders[] = $header;
// }
// }
// if (!empty($missingHeaders)) {
// return response()->json([
// 'status_code' => 'ERROR',
// 'status_description' => 'Missing required headers: ' . implode(', ', $missingHeaders)
// ], 400);
// }
// // Fetch plant ID
// $plant = Plant::where('name', $plantName)->first();
// if (!$plant) {
// return response()->json([
// 'status_code' => 'ERROR',
// 'status_description' => "Plant '{$plantName}' not found!"
// ], 404);
// }
// // Fetch line ID
// $line = Line::where('name', $lineName)->where('plant_id', $plant->id)->first();
// if (!$line) {
// return response()->json([
// 'status_code' => 'ERROR',
// 'status_description' => "Line '{$lineName}' not found for plant '{$plantName}'"
// ], 404);
// }
// $activeFilter = strtolower(trim($request->header('filter-name')));
// if ($activeFilter == 'yesterday') {
// $startDate = now()->subDay()->setTime(8, 0, 0);
// $endDate = now()->setTime(8, 0, 0);
// }
// elseif ($activeFilter == 'this week') {
// $startDate = now()->startOfWeek()->setTime(8, 0, 0);
// $endDate = now()->endOfWeek()->addDay()->setTime(8, 0, 0);
// }
// elseif ($activeFilter == 'this month') {
// $startDate = now()->startOfMonth();
// $endDate = now()->endOfMonth();
// }
// else {
// $startDate = now()->setTime(8, 0, 0);
// $endDate = now()->copy()->addDay()->setTime(8, 0, 0);
// }
// $rowCount = ProductionQuantity::where('plant_id', $plant->id)
// ->where('line_id', $line->id)
// ->whereBetween('created_at', [$startDate, $endDate])
// ->count();
// return response()->json([
// 'status_code' => 'SUCCESS',
// 'status_description' => $rowCount
// ], 200);
// }
public function get_moduleFilterData(Request $request)
{
$expectedUser = env('API_AUTH_USER');
@@ -25,20 +118,13 @@ class ModuleFilterDataController extends Controller
$header_auth = $request->header('Authorization');
$expectedToken = $expectedUser . ':' . $expectedPw;
if ("Bearer " . $expectedToken != $header_auth)
{
if ("Bearer " . $expectedToken != $header_auth) {
return response()->json([
'status_code' => 'ERROR',
'status_description' => 'Invalid authorization token!'
], 403);
}
$moduleName = $request->header('module-name');
$chartName = $request->header('chart-name');
$plantName = $request->header('plant-name');
$lineName = $request->header('line-name');
$filterName = $request->header('filter-name');
$requiredHeaders = [
'module-name',
'chart-name',
@@ -62,7 +148,20 @@ class ModuleFilterDataController extends Controller
], 400);
}
// Fetch plant ID
$validFilters = ['Today', 'Yesterday', 'This Week', 'This Month'];
$filterHeader = $request->header('filter-name');
if (!in_array($filterHeader, $validFilters)) {
return response()->json([
'status_code' => 'ERROR',
'status_description' => "Invalid filter-name value! Accepted values are: " . implode(', ', $validFilters)
], 400);
}
$plantName = $request->header('plant-name');
$lineName = $request->header('line-name');
$filterName = strtolower(trim($request->header('filter-name')));
$plant = Plant::where('name', $plantName)->first();
if (!$plant) {
return response()->json([
@@ -71,7 +170,50 @@ class ModuleFilterDataController extends Controller
], 404);
}
// Fetch line ID
// Set date filter range
if ($filterName === 'yesterday') {
$startDate = now()->subDay()->setTime(8, 0, 0);
$endDate = now()->setTime(8, 0, 0);
} elseif ($filterName === 'this week') {
$startDate = now()->startOfWeek()->setTime(8, 0, 0);
$endDate = now()->endOfWeek()->addDay()->setTime(8, 0, 0);
} elseif ($filterName === 'this month') {
$startDate = now()->startOfMonth();
$endDate = now()->endOfMonth();
} else {
$startDate = now()->setTime(8, 0, 0);
$endDate = now()->copy()->addDay()->setTime(8, 0, 0);
}
// Handle All Lines
if (strtolower(trim($lineName)) == 'all lines') {
$lines = Line::where('plant_id', $plant->id)->pluck('id', 'name');
if ($lines->isEmpty()) {
return response()->json([
'status_code' => 'ERROR',
'status_description' => "No lines found for plant '{$plantName}'"
], 404);
}
$lineCounts = [];
foreach ($lines as $name => $id) {
$count = ProductionQuantity::where('plant_id', $plant->id)
->where('line_id', $id)
->whereBetween('created_at', [$startDate, $endDate])
->count();
$lineCounts[$name] = $count;
}
return response()->json([
'status_code' => 'SUCCESS',
'status_description' => $lineCounts
], 200);
}
// Handle single line
$line = Line::where('name', $lineName)->where('plant_id', $plant->id)->first();
if (!$line) {
return response()->json([
@@ -80,25 +222,6 @@ class ModuleFilterDataController extends Controller
], 404);
}
$activeFilter = strtolower(trim($request->header('filter-name')));
if ($activeFilter == 'yesterday') {
$startDate = now()->subDay()->setTime(8, 0, 0);
$endDate = now()->setTime(8, 0, 0);
}
elseif ($activeFilter == 'this_week') {
$startDate = now()->startOfWeek()->setTime(8, 0, 0);
$endDate = now()->endOfWeek()->addDay()->setTime(8, 0, 0);
}
elseif ($activeFilter == 'this_month') {
$startDate = now()->startOfMonth();
$endDate = now()->endOfMonth();
}
else { // today or default
$startDate = now()->setTime(8, 0, 0);
$endDate = now()->copy()->addDay()->setTime(8, 0, 0);
}
$rowCount = ProductionQuantity::where('plant_id', $plant->id)
->where('line_id', $line->id)
->whereBetween('created_at', [$startDate, $endDate])
@@ -110,6 +233,7 @@ class ModuleFilterDataController extends Controller
], 200);
}
/**
* Store a newly created resource in storage.
*/