update modal for receive elemental tasks and for every equipments, and uptade workstation.

This commit is contained in:
ygbanzato 2023-07-24 12:22:04 +01:00
parent fdbb662fba
commit fa669b7419
5 changed files with 417 additions and 266 deletions

View File

@ -19,6 +19,7 @@
use App\Models\AmbitsEquipment;
use App\Models\EquipmentAssociationAmbit;
use App\Models\ConstructionWorkstation;
use App\Models\ElementalTasks;
use App\Models\OrderEquipmentTasks;
use App\Models\FurtherTasks;
use App\Models\WorkstationsAssociationTasks;
@ -40,32 +41,56 @@ public function finishCreatingProject($numberProject)
return redirect()->route('home');
}
// public function testDataTables(Request $request){
// dd($request);
// if ($request->ajax()) {
// $data = User::select('id','name','email')->get();
// return Datatables::of($data)->addIndexColumn()
// ->addColumn('action', function($data){
// $button = '<button type="button" name="edit" id="'.$data->id.'" class="edit btn btn-primary btn-sm"> <i class="bi bi-pencil-square"></i>Edit</button>';
// $button .= ' <button type="button" name="edit" id="'.$data->id.'" class="delete btn btn-danger btn-sm"> <i class="bi bi-backspace-reverse-fill"></i> Delete</button>';
// return $button;
// })
// ->make(true);
// }
// return view('recebeIdiota');
// }
public function deleteWorkstation($name)
{
$workstation = ConstructionWorkstation::where('name_workstations', $name)->first();
if ($workstation) {
$removeAcountUserWorkstation = User::where('user_name', $workstation->name_workstations)->first();
if ($workstation && $removeAcountUserWorkstation) {
$workstation->delete();
$removeAcountUserWorkstation->delete();
// pegar o número da estação de trabalho que está sendo deletada
preg_match('/workstation(\d+)-/', $workstation->name_workstations, $matches);
$deletedWorkstationNumber = $matches[1];
// pega o número do projeto da estação de trabalho que está sendo deletada
$projectNumber = explode('-', $workstation->name_workstations)[1];
// pegar todas as estações de trabalho e usuários com números maiores que o deletado e renumerá-los
$workstationsToUpdate = ConstructionWorkstation::where('company_projects_id', $projectNumber)
->whereRaw("SUBSTRING_INDEX(name_workstations, '-', 1) REGEXP '^workstation[0-9]+$'")
->whereRaw("CAST(SUBSTRING(SUBSTRING_INDEX(name_workstations, '-', 1), 12) AS UNSIGNED) >= ?", [$deletedWorkstationNumber])
->orderByRaw("CAST(SUBSTRING(SUBSTRING_INDEX(name_workstations, '-', 1), 12) AS UNSIGNED) DESC")
->get();
foreach ($workstationsToUpdate as $workstationToUpdate) {
// pegar o número da estação de trabalho atual
preg_match('/workstation(\d+)-/', $workstationToUpdate->name_workstations, $matches);
$currentWorkstationNumber = $matches[1];
// atualizar nome da estação de trabalho
$workstationToUpdate->name_workstations = 'workstation' . ($currentWorkstationNumber - 1) . '-' . $projectNumber;
$workstationToUpdate->save();
// atualizar usuário associado
$userToUpdate = User::where('user_name', 'workstation' . $currentWorkstationNumber . '-' . $projectNumber)->first();
if ($userToUpdate) {
$userToUpdate->user_name = 'workstation' . ($currentWorkstationNumber - 1) . '-' . $projectNumber;
$userToUpdate->save();
}
}
return back()->with('success', 'Posto de Trabalho removido com sucesso!');
}
return back()->with('danger', 'Posto de Trabalho não encontrado!');
}
public function AddNomenclatureWorkstation(Request $request)
{
foreach ($request->nameWorkstations as $key => $value) {
@ -158,15 +183,14 @@ public function EditEquipmentsProjects(Request $request)
// Se nao selecionar nenhuma tarefas ele devolve um erro , pois e necessario pelo menos uma
if (!in_array('on', $request->input('ordemTasks'))) {
return redirect()->back()->with('danger', 'É necessário selecionar pelo menos uma tarefa, Para o Equipamento : '.$equipment->equipment_tag );
return redirect()->back()->with('danger', 'É necessário selecionar pelo menos uma tarefa, Para o Equipamento : ' . $equipment->equipment_tag);
}
$executionOrder = 1;
$executionOrder = 1;
foreach ($request->input('ordemTasks') as $key => $value) {
$orderEquipmentTask = OrderEquipmentTasks::where('equipment_id', $request->equipmentId)
->where('elemental_tasks_id', $key)
->first();
// dd($orderEquipmentTask);
if ($value == "on") {
if (!$orderEquipmentTask) {
@ -176,28 +200,29 @@ public function EditEquipmentsProjects(Request $request)
}
$orderEquipmentTask->execution_order = $executionOrder;
$orderEquipmentTask->save();
$executionOrder++;
} elseif ($value == "off" && $orderEquipmentTask) {
$orderEquipmentTask->delete();
}
}
$executionOrder = 1; // Reinicia a contagem de ordem de execução
$remainingOrderEquipmentTasks = OrderEquipmentTasks::where('equipment_id', $request->equipmentId)
->orderBy('execution_order', 'asc')
->get();
foreach ($remainingOrderEquipmentTasks as $orderEquipmentTask) {
$orderEquipmentTask->execution_order = $executionOrder;
$orderEquipmentTask->save();
$executionOrder++;
}
$orderTasks = OrderEquipmentTasks::where('equipment_id', $request->equipmentId)
->orderBy('execution_order', 'asc')
->get();
$taskExecutionOrders = [];
foreach ($orderTasks as $task) {
$taskExecutionOrders[$task->elemental_tasks_id] = $task->execution_order;
@ -213,10 +238,21 @@ public function showJson($id)
{
$attributes = SpecificAttributesEquipmentType::where('equipment_id', $id)->get();
$OrdemTasks = OrderEquipmentTasks::where('equipment_id', $id)->get();
$allElementalTasks = ElementalTasks::all();
return response()->json([
'attributes' => $attributes,
'OrdemTasks' => $OrdemTasks
'OrdemTasks' => $OrdemTasks,
'allElementalTasks' => $allElementalTasks
]);
}
public function receveTasksWorkstationPlanning($WorkstationId)
{
$workstationsAssociationTasks = WorkstationsAssociationTasks::where('id_workstations', $WorkstationId)->get();
return response()->json([
'workstationsAssociationTasks' => $workstationsAssociationTasks
]);
}
@ -230,10 +266,12 @@ public function createWorkStations(Request $request)
$numberProject = $request->numberProject;
$listWorkstations = ConstructionWorkstation::where('company_projects_id', $numberProject)->get();
$receveProjectCompanyNumber = CompanyProject::where('company_projects_id', $numberProject)->first();
// Pega o último elemento da lista
$lastWorkstation = $listWorkstations->last();
// Se houver uma estação de trabalho anterior, extrai o número dela
$startNumber = 1;
if ($lastWorkstation) {
@ -241,28 +279,26 @@ public function createWorkStations(Request $request)
$startNumber = intval(str_replace('workstation', '', $parts[0])) + 1;
}
// Loop para criar as estações de trabalho
// Loop para criar as estações de trabalho e seus logins
for ($i = $startNumber; $i < $startNumber + $numberWorkstations; $i++) {
$workstation = new ConstructionWorkstation();
$workstation->name_workstations = 'workstation' . $i . '-' . $numberProject;
$workstation->company_projects_id = $numberProject;
$workstation->save();
preg_match('/workstation(\d+)-/', $workstation->name_workstations, $matches);
$receiveNumberWorkstation = $matches[1];
//Apos criar a Workstation vamos criar um login para pode aceder os postos de trabalho na obra
$loginWorkStation = new User;
$loginWorkStation->user_name = $workstation->name_workstations;
$loginWorkStation->email = $receveProjectCompanyNumber->project_company_number . '-' . $receiveNumberWorkstation . '@isptgroup.com';
$loginWorkStation->password = bcrypt($receveProjectCompanyNumber->project_company_number . '-' . $receiveNumberWorkstation);
$loginWorkStation->type_users = 5;
$loginWorkStation->user_nif = $receveProjectCompanyNumber->project_company_number . '-' . $receiveNumberWorkstation;
$loginWorkStation->save();
}
preg_match('/workstation(\d+)-/', $workstation->name_workstations, $matches);
$receiveNumberWorkstation = $matches[1];
$receveProjectCompanyNumber = CompanyProject::where('company_projects_id',$numberProject)->first();
//Apos criar a Workstation vamos criar um login para pode aceder os postos de trabalho na obra
$loginWorkStation = new User;
$loginWorkStation->user_name = $workstation->name_workstations;
$loginWorkStation->email = $receveProjectCompanyNumber->project_company_number.'-'.$receiveNumberWorkstation.'@isptgroup.com';
$loginWorkStation->password = bcrypt($receveProjectCompanyNumber->project_company_number.'-'.$receiveNumberWorkstation) ;
$loginWorkStation->type_users = 5;
$loginWorkStation->user_nif = $receveProjectCompanyNumber->project_company_number.'-'.$receiveNumberWorkstation;
$loginWorkStation->save();
// Redireciona para onde você quiser após a criação das workstations
return redirect()->route('test3', ['id' => $request->numberProject])
->with('success', $numberWorkstations . ' Postos de Trabalho criados !!!')
@ -338,7 +374,7 @@ public function CreateNewEquipmentFromPendingEquipment(Request $request, $id)
$newEquipmentAssociationAmbits->equipment_id = $receiveEquipmentID;
$newEquipmentAssociationAmbits->save();
$checkPendingEquipment->delete();
@ -751,26 +787,73 @@ public function showStep3($company_projects_id)
public function workstationsAssociationTasks(Request $request)
{
// dd($request);
$workStation = ConstructionWorkstation::where('id_workstations', $request->idWorkStation)->first();
// Trocar o nome se for diferente do recebido
if ($workStation) {
$workStation->nomenclature_workstation = $request->nameWorkstation;
$workStation->save();
}
// então, iteramos sobre as três listas de tarefas e as associamos à estação de trabalho
$taskTypes = ['generalTasks', 'PsvTasks', 'CvTasks'];
// dd($taskTypes);
// foreach ($taskTypes as $taskType) {
// if (isset($request->$taskType)) {
// foreach ($request->$taskType as $taskId) {
// dd($taskId);
// $taskAssociation = new WorkstationsAssociationTasks;
// $taskAssociation->id_workstations = $workStation->id_workstations;
// $taskAssociation->elemental_tasks_id = $taskId; // assumindo que $taskId é o id da tarefa
// $taskAssociation->company_projects_id = $workStation->company_projects_id;
// $taskAssociation->save();
// }
// }
// }
foreach ($taskTypes as $taskType) {
if (isset($request->$taskType)) {
foreach ($request->$taskType as $taskId) {
$taskAssociation = new WorkstationsAssociationTasks;
$taskAssociation->id_workstations = $workStation->id_workstations;
$taskAssociation->elemental_tasks_id = $taskId; // assumindo que $taskId é o id da tarefa
$taskAssociation->company_projects_id = $workStation->company_projects_id;
$taskAssociation->save();
// foreach($taskTypes as $groupTasks){
// if (isset($request[$groupTasks])) { // Checar se esse grupo de tarefas existe no request
// foreach ($request[$groupTasks] as $taskID => $check) {
// if ($check == 'on') {
// $taskAssociation = new WorkstationsAssociationTasks;
// $taskAssociation->id_workstations = $workStation->id_workstations;
// $taskAssociation->elemental_tasks_id = $taskID; // Usando $taskID, que é a key
// $taskAssociation->company_projects_id = $workStation->company_projects_id;
// $taskAssociation->save();
// }
// }
// }
// }
foreach ($taskTypes as $groupTasks) {
if (isset($request[$groupTasks])) { // Checar se esse grupo de tarefas existe no request
foreach ($request[$groupTasks] as $taskID => $check) {
// Encontra a tarefa existente, se houver
$taskAssociation = WorkstationsAssociationTasks::where('id_workstations', $workStation->id_workstations)
->where('elemental_tasks_id', $taskID)
->where('company_projects_id', $workStation->company_projects_id)
->first();
if ($check == 'on') {
if (!$taskAssociation) {
$taskAssociation = new WorkstationsAssociationTasks;
$taskAssociation->id_workstations = $workStation->id_workstations;
$taskAssociation->elemental_tasks_id = $taskID; // Usando $taskID, que é a key
$taskAssociation->company_projects_id = $workStation->company_projects_id;
}
$taskAssociation->save();
} elseif ($check == 'off' && $taskAssociation) {
$taskAssociation->delete();
}
}
}
}
// Redirecionar de volta com uma mensagem de sucesso
return back()->with('success', 'Posto de trabalho : ' . $workStation->name_workstations . ' atualizado com sucesso!');
}

View File

@ -103,12 +103,12 @@ public function receiveEquipmentsProject($receiveNumberProject)
->addColumn('order_tasks', function ($row) {
return $row->orderEquipmentTasks->map(function ($task) {
return $task->elementalTask->elemental_tasks_code;
})->implode('-');
})->implode(' ||');
})
->addColumn('current_task', function ($row) {
return $row->controlEquipmentWorkstation->map(function ($task) {
return $task->elementalTask->elemental_tasks_code;
})->implode('-');
})->implode(' ||');
})
->addColumn('Inspec', function ($row) {
return $row->hasInspectionYes() ? 'Sim' : 'Nao';
@ -124,7 +124,7 @@ public function receiveWorkstationProject($receiveNumberProject)
->addColumn('workstations_Association_Tasks', function ($row) {
return $row->workstationsAssociationTasks->map(function ($task) {
return $task->elementalTask->elemental_tasks_code;
})->implode('-');
})->implode(' ||');
})
->toJson();

View File

@ -1639,7 +1639,7 @@ class="form-control card_inputs"
<div class="card ordemTasks-div">
<div class="card-header">
<h3 class="card-title">Lista de Tarefas Elementares :
{{ $listEquipmentsProject->equipmentAssociationAmbit->first()->ambitsEquipment->ambits_description }}
{{ $listEquipmentsProject->equipmentAssociationAmbit->ambitsEquipment->ambits_description }}
</h3>
</div>
<!-- /.card-header -->
@ -1674,7 +1674,7 @@ class="form-control card_inputs"
<td class="text-center">
<input type="hidden"
name="ordemTasks[2]" value="off">
<input type="checkbox"
<input type="checkbox"
name="ordemTasks[2]" value="on">
</td>
<td class="text-center">
@ -1740,9 +1740,11 @@ class="form-control card_inputs"
componentes </td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[10]" value="off">
name="ordemTasks[10]"
value="off">
<input type="checkbox"
name="ordemTasks[10]" value="on">
name="ordemTasks[10]"
value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
@ -1753,9 +1755,11 @@ class="form-control card_inputs"
<td>Calibrar e certificar</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[13]" value="off">
name="ordemTasks[13]"
value="off">
<input type="checkbox"
name="ordemTasks[13]" value="on">
name="ordemTasks[13]"
value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
@ -1766,9 +1770,11 @@ class="form-control card_inputs"
<td>Pintura</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[14]" value="off">
name="ordemTasks[14]"
value="off">
<input type="checkbox"
name="ordemTasks[14]" value="on">
name="ordemTasks[14]"
value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
@ -1782,7 +1788,7 @@ class="form-control card_inputs"
<input type="hidden"
name="ordemTasks[15]"
value="off">
<input type="checkbox"
<input type="checkbox"
name="ordemTasks[15]" value="on"
{{ old('ordemTasks[15]') == 'on' ? 'checked' : '' }}>
</td>
@ -1797,7 +1803,7 @@ class="form-control card_inputs"
<input type="hidden"
name="ordemTasks[17]"
value="off">
<input type="checkbox"
<input type="checkbox"
name="ordemTasks[17]" value="on"
{{ old('ordemTasks[17]') == 'on' ? 'checked' : '' }}>
</td>
@ -2194,7 +2200,7 @@ class="form-control card_inputs"
<div class="card card-primary collapsed-card">
<div class="card-header">
<h3 class="card-title">Ambito :
{{-- {{ $listEquipmentsProject->equipmentAssociationAmbit->first()->ambitsEquipment->ambits_description }} --}}
{{ $listEquipmentsProject->equipmentAssociationAmbit->ambitsEquipment->ambits_description }}
</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool"
@ -2207,7 +2213,7 @@ class="form-control card_inputs"
<div class="card ordemTasks-div">
<div class="card-header">
<h3 class="card-title">Lista de Tarefas Elementares :
{{-- {{ $listEquipmentsProject->equipmentAssociationAmbit->first()->ambitsEquipment->ambits_description }} --}}
{{ $listEquipmentsProject->equipmentAssociationAmbit->ambitsEquipment->ambits_description }}
</h3>
</div>
<!-- /.card-header -->
@ -2230,8 +2236,7 @@ class="form-control card_inputs"
<input type="hidden"
name="ordemTasks[1]" value="off">
<input type="checkbox"
name="ordemTasks[1]" value="on"
{{ old('ordemTasks[1]') == 'on' ? 'checked' : '' }}>
name="ordemTasks[1]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
@ -2251,28 +2256,15 @@ class="form-control card_inputs"
</td>
</tr>
<tr>
<td>TE3</td>
<td>Pŕe-Teste</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[3]" value="off">
<input type="checkbox"
name="ordemTasks[3]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr>
<td>TE4</td>
<td>TE4(3)</td>
<td>Abertura da válvula, análise e controle
dos
componentes</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[5]" value="off">
name="ordemTasks[7]" value="off">
<input type="checkbox"
name="ordemTasks[5]" value="on">
name="ordemTasks[7]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
@ -2291,41 +2283,29 @@ class="form-control card_inputs"
<input type="checkbox" name="">
</td>
</tr>
<tr>
<td>TE6</td>
<td>Retificação e lapidação</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[6]" value="off">
<input type="checkbox"
name="ordemTasks[6]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr>
<td>TE7</td>
<td>TE7(3)</td>
<td>Fecho da válvula e substituição de
componentes </td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[7]" value="off">
name="ordemTasks[12]" value="off">
<input type="checkbox"
name="ordemTasks[7]" value="on">
name="ordemTasks[12]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr>
<td>TE8</td>
<td>Calibrar e certificar</td>
<td>TE14</td>
<td>Ensaio</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[8]" value="off">
name="ordemTasks[20]" value="off">
<input type="checkbox"
name="ordemTasks[8]" value="on">
name="ordemTasks[20]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
@ -2336,9 +2316,9 @@ class="form-control card_inputs"
<td>Pintura</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[9]" value="off">
name="ordemTasks[14]" value="off">
<input type="checkbox"
name="ordemTasks[9]" value="on">
name="ordemTasks[14]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
@ -2350,10 +2330,10 @@ class="form-control card_inputs"
{{-- Apenas para ver se recebe um on ou off, o hidden serve para devolver valor se o checkbox nao estiver a 'checked' --}}
<td class="text-center">
<input type="hidden"
name="ordemTasks[10]"
name="ordemTasks[15]"
value="off">
<input type="checkbox"
name="ordemTasks[10]"
name="ordemTasks[15]"
value="on">
</td>
<td class="text-center">
@ -2365,16 +2345,29 @@ class="form-control card_inputs"
<td>Inspeção Final</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[11]"
name="ordemTasks[17]"
value="off">
<input type="checkbox"
name="ordemTasks[11]"
name="ordemTasks[17]"
value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr>
<td>TE15</td>
<td>Empancar (ISV)</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[21]" value="off">
<input type="checkbox"
name="ordemTasks[21]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
</tbody>
</table>
</div>
@ -2822,7 +2815,7 @@ class="form-control card_inputs"
<div class="card card-info collapsed-card">
<div class="card-header">
<h3 class="card-title">Ambito :
{{ $listEquipmentsProject->equipmentAssociationAmbit->first()->ambitsEquipment->ambits_description }}
{{ $listEquipmentsProject->equipmentAssociationAmbit->ambitsEquipment->ambits_description }}
</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool"
@ -2835,7 +2828,7 @@ class="form-control card_inputs"
<div class="card ordemTasks-div">
<div class="card-header">
<h3 class="card-title">Lista de Tarefas Elementares :
{{ $listEquipmentsProject->equipmentAssociationAmbit->first()->ambitsEquipment->ambits_description }}
{{ $listEquipmentsProject->equipmentAssociationAmbit->ambitsEquipment->ambits_description }}
</h3>
</div>
<!-- /.card-header -->
@ -2858,8 +2851,22 @@ class="form-control card_inputs"
<input type="hidden"
name="ordemTasks[1]" value="off">
<input type="checkbox"
name="ordemTasks[1]" value="on"
{{ old('ordemTasks[1]') == 'on' ? 'checked' : '' }}>
name="ordemTasks[1]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr>
<td>TE12</td>
<td>Inspeção Final</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[18]"
value="off">
<input type="checkbox"
name="ordemTasks[18]"
value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
@ -2879,23 +2886,8 @@ class="form-control card_inputs"
</td>
</tr>
<tr>
<td>TE3</td>
<td>TE3(2)</td>
<td>Pŕe-Teste</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[3]" value="off">
<input type="checkbox"
name="ordemTasks[3]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr>
<td>TE4</td>
<td>Abertura da válvula, análise e controle
dos
componentes</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[4]" value="off">
@ -2907,21 +2899,10 @@ class="form-control card_inputs"
</td>
</tr>
<tr>
<td>TE5</td>
<td>Limpeza e lavagem dos componentes</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[5]" value="off">
<input type="checkbox"
name="ordemTasks[5]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr>
<td>TE6</td>
<td>Retificação e lapidação</td>
<td>TE4(2)</td>
<td>Abertura da válvula, análise e controle
dos
componentes</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[6]" value="off">
@ -2933,22 +2914,8 @@ class="form-control card_inputs"
</td>
</tr>
<tr>
<td>TE7</td>
<td>Fecho da válvula e substituição de
componentes </td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[7]" value="off">
<input type="checkbox"
name="ordemTasks[7]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr>
<td>TE8</td>
<td>Calibrar e certificar</td>
<td>TE5</td>
<td>Limpeza e lavagem dos componentes</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[8]" value="off">
@ -2960,28 +2927,55 @@ class="form-control card_inputs"
</td>
</tr>
<tr>
<td>TE9</td>
<td>Pintura</td>
<td>TE7(2)</td>
<td>Fecho da válvula e substituição de
componentes </td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[9]" value="off">
name="ordemTasks[11]" value="off">
<input type="checkbox"
name="ordemTasks[9]" value="on">
name="ordemTasks[11]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr>
<td>TE13</td>
<td>Teste final</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[19]" value="off">
<input type="checkbox"
name="ordemTasks[19]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr>
<td>TE10</td>
<td>TE9</td>
<td>Pintura</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[14]" value="off">
<input type="checkbox"
name="ordemTasks[14]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr>
<td>TE10(2)</td>
<td>Montagem na linha</td>
{{-- Apenas para ver se recebe um on ou off, o hidden serve para devolver valor se o checkbox nao estiver a 'checked' --}}
<td class="text-center">
<input type="hidden"
name="ordemTasks[10]"
name="ordemTasks[16]"
value="off">
<input type="checkbox"
name="ordemTasks[10]"
name="ordemTasks[16]"
value="on">
</td>
<td class="text-center">
@ -2993,11 +2987,9 @@ class="form-control card_inputs"
<td>Inspeção Final</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[11]"
value="off">
name="ordemTasks[17]" value="off">
<input type="checkbox"
name="ordemTasks[11]"
value="on">
name="ordemTasks[17]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
@ -3231,9 +3223,10 @@ class="btn btn-outline-success ">Adicionar</a>
<span aria-hidden="true">x</span>
</button>
</div>
<form action="{{ route('CreateNewEquipmentFromPendingEquipment', $pendingEquipment->pending_equipment_id) }}"
<form
action="{{ route('CreateNewEquipmentFromPendingEquipment', $pendingEquipment->pending_equipment_id) }}"
method="POST">
@csrf
<div class="modal-body">
<p>Criar equipamento ?</p>
@ -3449,13 +3442,17 @@ class="btn btn-outline-success ">Adicionar</a>
$(document).ready(function() {
$('.open-modal').click(function(e) {
e.preventDefault();
// Limpa todos os checkboxes ao abrir a modal
$('input[name^="ordemTasks"]').prop('checked', false);
var equipmentId = $(this).data('equipment-id');
$.ajax({
url: '/api/equipment/' + equipmentId,
method: 'GET',
success: function(data) {
console.log(data);
data.attributes.forEach(function(item) {
// Procura o input com name igual a general_attributes_equipment_id e preenche com specific_attributes_value
$('input[name="attributes[' + item
@ -3470,50 +3467,12 @@ class="btn btn-outline-success ">Adicionar</a>
});
// Abre a modal
$('#modal-showEquipment').modal('show');
// $('#modal-showEquipment').modal('show');
}
});
});
});
</script> --}}
{{-- <script>
$(document).ready(function() {
$('.open-modal').click(function(e) {
e.preventDefault();
var equipmentId = $(this).data('equipment-id');
$.ajax({
url: '/api/equipment/' + equipmentId,
method: 'GET',
success: function(data) {
data.attributes.forEach(function(item) {
// Procura o input com name igual a general_attributes_equipment_id e preenche com specific_attributes_value
$('input[name="attributes[' + item
.general_attributes_equipment_id + ']"]').val(item
.specific_attributes_value);
});
data.OrdemTasks.forEach(function(item) {
// console.log(data.OrdemTasks);
// Procura o checkbox com name igual a elemental_tasks_id e marca como checked
var checkbox = $('input[name="ordemTasks[' + item
.elemental_tasks_id + ']"]');
checkbox.prop('checked', true);
// Adiciona a opção ao dropdown
var option = new Option('TE' + item.elemental_tasks_id,
'TE' + item.elemental_tasks_id);
console.log(option);
$('#ArrayListElementsTasks').append($(option));
});
// Abre a modal
$('#modal-showEquipment').modal('show');
}
});
});
});
</script> --}}
<script>
$(document).ready(function() {
@ -3521,8 +3480,20 @@ class="btn btn-outline-success ">Adicionar</a>
$('.open-modal').click(function(e) {
e.preventDefault();
// Limpar os campos de input para cada equipamento
$('input[name^="attributes"]').val('');
// Limpa todos os checkboxes ao abrir a modal
$('input[name^="ordemTasks"]').prop('checked', false);
var equipmentId = $(this).data('equipment-id');
console.log($(this).data());
$.ajax({
url: '/api/equipment/' + equipmentId,
method: 'GET',
@ -3543,14 +3514,21 @@ class="btn btn-outline-success ">Adicionar</a>
.elemental_tasks_id + ']"]');
checkbox.prop('checked', true);
// Adiciona a tarefa ao array de tarefas selecionadas
selectedTasks.push('TE' + item.elemental_tasks_id);
// Encontra o objeto correspondente em data.allElementalTasks
var correspondingTask = data.allElementalTasks.find(
function(task) {
return task.elemental_tasks_id == item
.elemental_tasks_id;
});
// Verifica se encontrou o objeto correspondente
if (correspondingTask) {
// Adiciona a tarefa ao array de tarefas selecionadas
selectedTasks.push(correspondingTask
.elemental_tasks_code);
}
});
console.log(selectedTasks);
// Ordena o array de tarefas selecionadas
selectedTasks.sort();
// console.log(selectedTasks);
// Limpa o select
$('#ArrayListElementsTasks').empty();
@ -3565,6 +3543,17 @@ class="btn btn-outline-success ">Adicionar</a>
$('#modal-showEquipment').modal('show');
}
});
$('#modal-showEquipment').on('hide.bs.modal', function() {
// Desmarca todos os checkboxes
$('input[name^="ordemTasks"]').prop('checked', false);
// Limpa o array de tarefas selecionadas
selectedTasks = [];
// Limpa o select
$('#ArrayListElementsTasks').empty();
});
});
// Monitora mudanças em todos os checkboxes

View File

@ -111,8 +111,9 @@ class="fas fa-plus"></i>
readonly>
@endif
</td>
<td class="text-center d-flex justify-content-around">
<a href='#' data-toggle='modal'
<td class="text-center d-flex justify-content-around ">
<a href='#' data-toggle='modal' class="open-modal"
data-workstation-id="{{ $listWorkstation->id_workstations }}"
data-target='#modal-ViewOfices-{{ $listWorkstation->id_workstations }}'>
<i class='fa-solid fa-edit text-primary'></i>
</a>
@ -140,11 +141,11 @@ class="fas fa-plus"></i>
<a href="{{ route('test2', ['id' => $numberProject]) }}"
class="btn btn-primary previous float-left">Anterior</a>
<form action="{{route('finishCreatingProject', ['numberProject' => $numberProject]) }}">
@csrf
<input type="submit" class="btn btn-success previous float-right" value="Concluir">
</form>
<form action="{{ route('finishCreatingProject', ['numberProject' => $numberProject]) }}">
@csrf
<input type="submit" class="btn btn-success previous float-right" value="Concluir">
</form>
</div>
{{-- ./container-fluid --}}
</fieldset>
@ -162,13 +163,14 @@ class="btn btn-primary previous float-left">Anterior</a>
<div class="modal-body">
<form action="{{ route('workstationsAssociationTasks') }}" method="get">
<div class="row">
<p>Nome Posto de Trabalho : </p>
<input class="form-control col-sm-6" type="text" name="nameWorkstation"
value="{{ $listWorkstation->nomenclature_workstation }}">
<input type="hidden" name="idWorkStation" value="{{ $listWorkstation->id_workstations }}">
</div>
<br>
<div class="row">
<p>Nome Posto de Trabalho : </p>
<input class="form-control col-sm-6" type="text" name="nameWorkstation"
value="{{ $listWorkstation->nomenclature_workstation }}">
<input type="hidden" name="idWorkStation"
value="{{ $listWorkstation->id_workstations }}">
</div>
<br>
<section class="content">
<div class="container-fluid">
@ -187,25 +189,34 @@ class="btn btn-primary previous float-left">Anterior</a>
<div class="card-body">
<!-- Tabela de Checkbox -->
<div>
<p>TE1 - Desmontar da linha
{{-- <p>TE1 - Desmontar da linha
<input type="checkbox" class="checkboxChoseTasksOficesPSV"
value="1" name="generalTasks[TE1]">
</p> --}}
<p>TE1 - Desmontar da linha
<input type="hidden" name="generalTasks[1]" value="off">
<input type="checkbox" class="checkboxChoseTasksOficesPSV"
value="on" name="generalTasks[1]">
</p>
<p>TE2 - Descontaminar
<input type="hidden" name="generalTasks[2]" value="off">
<input type="checkbox" class="checkboxChoseTasksOficesPSV"
value="2" name="generalTasks[TE2]">
value="on" name="generalTasks[2]">
</p>
<p>TE5 - Limpeza e lavagem dos componentes
<input type="hidden" name="generalTasks[8]" value="off">
<input type="checkbox" class="checkboxChoseTasksOficesPSV"
value="5" name="generalTasks[TE5]">
value="on" name="generalTasks[8]">
</p>
<p>TE9 - Pintura
<input type="hidden" name="generalTasks[14]" value="off">
<input type="checkbox" class="checkboxChoseTasksOficesPSV"
value="9" name="generalTasks[TE9]">
value="on" name="generalTasks[14]">
</p>
<p>TE11 - Inspeção Final
<input type="hidden" name="generalTasks[17]" value="off">
<input type="checkbox" class="checkboxChoseTasksOficesPSV"
value="11" name="generalTasks[TE11]">
value="on" name="generalTasks[17]">
</p>
</div>
</div>
@ -230,29 +241,51 @@ class="btn btn-primary previous float-left">Anterior</a>
</div>
<div class="card-body">
<p>TE3 - Pré-teste
{{-- <input type="checkbox"
class="checkboxChoseTasksOficesPSV" value="3"
name="PsvTasks[TE3]"> --}}
<input type="hidden" name="PsvTasks[3]"
value="off">
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="3" name="PsvTasks[TE3]">
class="checkboxChoseTasksOficesPSV" value="on"
name="PsvTasks[3]">
</p>
<p>TE6 - Retificação e lapidação
<p>TE4 - Abertura da válvula, análise e controle dos
componentes
<input type="hidden" name="PsvTasks[5]"
value="off">
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="6" name="PsvTasks[TE6]">
class="checkboxChoseTasksOficesPSV" value="on"
name="PsvTasks[5]">
</p>
<p>TE6 - Retificação e lapidação
<input type="hidden" name="PsvTasks[9]"
value="off">
<input type="checkbox"
class="checkboxChoseTasksOficesPSV" value="on"
name="PsvTasks[9]">
</p>
<p>TE7 - Fecho da válvula e substituição de componentes
<input type="hidden" name="PsvTasks[10]"
value="off">
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="7" name="PsvTasks[TE7]">
class="checkboxChoseTasksOficesPSV" value="7"
name="PsvTasks[10]">
</p>
<p>TE8 - Calibrar e certificar
<input type="hidden" name="PsvTasks[13]"
value="off">
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="8" name="PsvTasks[TE8]">
class="checkboxChoseTasksOficesPSV" value="8"
name="PsvTasks[13]">
</p>
<p>TE10 - Montagem na linha
<input type="hidden" name="PsvTasks[15]"
value="off">
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="10" name="PsvTasks[TE10]">
class="checkboxChoseTasksOficesPSV" value="10"
name="PsvTasks[15]">
</p>
</div>
</div>
@ -274,35 +307,47 @@ class="checkboxChoseTasksOficesPSV"
</div>
<div class="card-body">
<p>TE12 - Inspeção visual
<input type="hidden" name="CvTasks[18]"
value="off">
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="21" name="CvTasks[TE12]">
class="checkboxChoseTasksOficesPSV" value="on"
name="CvTasks[18]">
</p>
<p>TE3(2) - Pré-teste
<input type="hidden" name="CvTasks[4]"
value="off">
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="12" name="CvTasks[TE3(2)]">
class="checkboxChoseTasksOficesPSV" value="on"
name="CvTasks[4]">
</p>
<p>TE4(2) - Abertura da válvula, análise e controle dos
componentes
<input type="hidden" name="CvTasks[6]"
value="off">
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="13" name="CvTasks[TE4(2)]">
class="checkboxChoseTasksOficesPSV" value="on"
name="CvTasks[6]">
</p>
<p>TE7(2) - Fecho da válvula e substituição de componentes
<input type="hidden" name="CvTasks[11]"
value="off">
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="14" name="CvTasks[TE7(2)]">
class="checkboxChoseTasksOficesPSV" value="on"
name="CvTasks[11]">
</p>
<p>TE13 - Teste final
<input type="hidden" name="CvTasks[19]"
value="off">
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="15" name="CvTasks[TE13]">
class="checkboxChoseTasksOficesPSV" value="on"
name="CvTasks[19]">
</p>
<p>TE10(2) - Montagem na linha
<input type="hidden" name="CvTasks[16]"
value="off">
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="16" name="CvTasks[TE10(2)]">
class="checkboxChoseTasksOficesPSV" value="on"
name="CvTasks[16]">
</p>
</div>
</div>
@ -370,8 +415,8 @@ class="checkboxChoseTasksOficesPSV"
<div class="card-body">
<p>TC1 - Pintar de Verde
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="16" name="CvTasks[TE10(2)]">
class="checkboxChoseTasksOficesPSV" value="16"
name="CvTasks[TE10(2)]">
</p>
</div>
</div>
@ -387,7 +432,7 @@ class="checkboxChoseTasksOficesPSV"
<div class="modal-footer justify-content-between">
<!-- Vai ficar o Footer -->
<input type="submit" value="Guardar">
<input type="submit" class="btn btn-success" value="Guardar">
</form>
</div>
</div>
@ -429,6 +474,39 @@ class="checkboxChoseTasksOficesPSV"
@endsection
@section('scriptsTemplateAdmin')
<script>
$(document).ready(function() {
$('.open-modal').click(function(e) {
e.preventDefault();
var WorkstationId = $(this).data('workstation-id');
// Limpa todos os checkboxes ao abrir a modal
$('input[name^="generalTasks"]').prop('checked', false);
$('input[name^="PsvTasks"]').prop('checked', false);
$('input[name^="CvTasks"]').prop('checked', false);
$.ajax({
url: '/api/receveTasksWorkstationPlanning/' + WorkstationId,
method: 'GET',
success: function(data) {
console.log(data.workstationsAssociationTasks);
data.workstationsAssociationTasks.forEach(function(item) {
// Aqui estamos assumindo que os checkboxes estão nomeados exatamente como "generalTasks[elemental_tasks_id]",
// "PsvTasks[elemental_tasks_id]", e "CvTasks[elemental_tasks_id]". Se eles não estiverem, você precisará ajustar isto.
$('input[name="generalTasks[' + item.elemental_tasks_id + ']"]').prop('checked', true);
$('input[name="PsvTasks[' + item.elemental_tasks_id + ']"]').prop('checked', true);
$('input[name="CvTasks[' + item.elemental_tasks_id + ']"]').prop('checked', true);
});
}
})
});
});
</script>
<script>
$(function() {
$("#workstationTable").DataTable({

View File

@ -38,6 +38,7 @@
Route::get('/api/receiveEquipmentsProject/{receiveNumberProject}',[ProjectoDatacontroller::class,'receiveEquipmentsProject']);
Route::get('/api/receiveWorkstationProject/{receiveNumberProject}',[ProjectoDatacontroller::class,'receiveWorkstationProject' ]);
Route::get('api/receveTasksWorkstationPlanning/{WorkstationId}',[CreateProjectController::class,'receveTasksWorkstationPlanning']);
Route::get('user-data', [PreparedProjectController::class, 'getData1'])->name('getData');