updating users' profiles to add a picture to their profile

This commit is contained in:
ygbanzato 2023-10-08 11:33:26 +01:00
parent 82f5e92d6c
commit 2e32068d88
13 changed files with 920 additions and 565 deletions

View File

@ -1,5 +1,364 @@
<?php <?php
// namespace App\Http\Controllers;
// use Illuminate\Http\Request;
// use Illuminate\Support\Facades\Auth;
// use Illuminate\Support\Facades\DB;
// class WorkstationsJobsController extends Controller
// {
// public function index()
// {
// $userEmail = Auth::user()->email;
// // $equipmentsTodo= DB::select("
// // WITH equipments_multiple_rows AS (
// // SELECT
// // e.equipment_id,
// // e.equipment_tag,
// // COALESCE(MAX(oet.elemental_tasks_id), MAX(oet.further_tasks_id)) AS equipment_all_tasks
// // FROM
// // users u
// // JOIN
// // construction_workstations cw ON u.user_name = cw.name_workstations
// // JOIN
// // workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
// // JOIN
// // equipments e ON wat.company_projects_id = e.company_projects_id
// // JOIN
// // ordered_equipment_tasks oet ON e.equipment_id = oet.equipment_id
// // WHERE
// // u.email = :email
// // AND
// // oet.execution_order = 1
// // GROUP BY
// // e.equipment_id,
// // e.equipment_tag
// // ),
// // workstations_multiple_rows AS (
// // SELECT
// // cw.id_workstations,
// // cw.name_workstations,
// // COALESCE(wat.elemental_tasks_id, wat.further_tasks_id) AS all_tasks
// // FROM
// // users u
// // JOIN
// // construction_workstations cw ON u.user_name = cw.name_workstations
// // JOIN
// // workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
// // WHERE
// // u.email = :email
// // ),
// // workstations_control_all_tasks AS (
// // SELECT
// // cew.control_equipment_workstation_id,
// // cew.equipment_id,
// // CASE
// // WHEN cew.id_workstations IS NULL THEN NULL
// // WHEN cew.id_workstations IN (
// // SELECT wat.id_workstations
// // FROM workstations_association_tasks wat
// // JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
// // JOIN users u ON u.user_name = cw.name_workstations
// // WHERE u.email = :email
// // ) THEN cew.id_workstations
// // ELSE NULL
// // END AS control_id_workstations,
// // COALESCE(cew.elemental_tasks_id, cew.further_tasks_id) AS control_workstation_all_tasks,
// // cew.equipment_comments_id,
// // cew.entry_date,
// // cew.departure_date
// // FROM
// // control_equipment_workstation cew
// // WHERE
// // cew.id_workstations IS NULL
// // OR cew.id_workstations IN (
// // SELECT wat.id_workstations
// // FROM workstations_association_tasks wat
// // JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
// // JOIN users u ON u.user_name = cw.name_workstations
// // WHERE u.email = :email
// // )
// // )
// // SELECT
// // emr.equipment_id,
// // emr.equipment_tag
// // FROM
// // equipments_multiple_rows emr
// // WHERE
// // (
// // emr.equipment_all_tasks IN (SELECT all_tasks FROM workstations_multiple_rows)
// // AND NOT EXISTS (
// // SELECT 1
// // FROM workstations_control_all_tasks wc
// // WHERE wc.equipment_id = emr.equipment_id
// // AND wc.control_id_workstations IN (SELECT id_workstations FROM workstations_multiple_rows)
// // )
// // )
// // OR
// // (
// // emr.equipment_id IN (
// // SELECT equipment_id
// // FROM workstations_control_all_tasks
// // WHERE control_id_workstations IS NULL
// // AND entry_date IS NULL
// // AND departure_date IS NULL
// // AND control_workstation_all_tasks IN (SELECT all_tasks FROM workstations_multiple_rows)
// // )
// // AND NOT EXISTS (
// // SELECT 1
// // FROM workstations_control_all_tasks wc
// // WHERE wc.equipment_id = emr.equipment_id
// // AND wc.control_id_workstations IS NOT NULL
// // GROUP BY wc.equipment_id
// // HAVING COUNT(DISTINCT wc.control_id_workstations) > 1
// // )
// // )
// // GROUP BY
// // emr.equipment_id,
// // emr.equipment_tag
// // ORDER BY
// // emr.equipment_id ASC;
// // ", ['email' => $userEmail]);
// $equipmentsDone = DB::select("
// WITH equipments_multiple_rows AS (
// SELECT
// e.equipment_id,
// e.equipment_tag,
// COALESCE(MAX(oet.elemental_tasks_id), MAX(oet.further_tasks_id)) AS equipment_all_tasks
// FROM
// users u
// JOIN
// construction_workstations cw ON u.user_name = cw.name_workstations
// JOIN
// workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
// JOIN
// equipments e ON wat.company_projects_id = e.company_projects_id
// JOIN
// ordered_equipment_tasks oet ON e.equipment_id = oet.equipment_id
// WHERE
// u.email = :email
// AND
// oet.execution_order = 1
// GROUP BY
// e.equipment_id,
// e.equipment_tag
// ),
// workstations_multiple_rows AS (
// SELECT
// cw.id_workstations,
// cw.name_workstations,
// COALESCE(wat.elemental_tasks_id, wat.further_tasks_id) AS all_tasks
// FROM
// users u
// JOIN
// construction_workstations cw ON u.user_name = cw.name_workstations
// JOIN
// workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
// WHERE
// u.email = :email
// ),
// workstations_control_all_tasks AS (
// SELECT
// cew.control_equipment_workstation_id,
// cew.equipment_id,
// CASE
// WHEN cew.id_workstations IS NULL THEN NULL
// WHEN cew.id_workstations IN (
// SELECT wat.id_workstations
// FROM workstations_association_tasks wat
// JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
// JOIN users u ON u.user_name = cw.name_workstations
// WHERE u.email = :email
// ) THEN cew.id_workstations
// ELSE NULL
// END AS control_id_workstations,
// COALESCE(cew.elemental_tasks_id, cew.further_tasks_id) AS control_workstation_all_tasks,
// cew.equipment_comments_id,
// cew.entry_date,
// cew.departure_date
// FROM
// control_equipment_workstation cew
// WHERE
// cew.id_workstations IS NULL
// OR cew.id_workstations IN (
// SELECT wat.id_workstations
// FROM workstations_association_tasks wat
// JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
// JOIN users u ON u.user_name = cw.name_workstations
// WHERE u.email = :email
// )
// )
// SELECT
// emr.equipment_id,
// emr.equipment_tag
// FROM
// equipments_multiple_rows emr
// WHERE
// EXISTS (
// SELECT 1
// FROM workstations_control_all_tasks wc
// JOIN workstations_multiple_rows wmr ON wc.control_id_workstations = wmr.id_workstations
// WHERE wc.equipment_id = emr.equipment_id
// AND wc.control_workstation_all_tasks = wmr.all_tasks
// AND wc.entry_date IS NOT NULL
// AND wc.departure_date IS NOT NULL
// AND wc.control_id_workstations IS NOT NULL
// )
// AND NOT EXISTS (
// SELECT 1
// FROM workstations_control_all_tasks wc
// WHERE wc.equipment_id = emr.equipment_id
// AND wc.control_workstation_all_tasks IN (SELECT all_tasks FROM workstations_multiple_rows)
// AND wc.control_id_workstations IS NULL
// )
// GROUP BY
// emr.equipment_id,
// emr.equipment_tag
// ORDER BY
// emr.equipment_id ASC;
// ", ['email' => $userEmail]);
// $equipmentsReturned = DB::select("
// WITH equipments_multiple_rows AS (
// SELECT
// e.equipment_id,
// e.equipment_tag,
// COALESCE(MAX(oet.elemental_tasks_id), MAX(oet.further_tasks_id)) AS equipment_all_tasks
// FROM
// users u
// JOIN
// construction_workstations cw ON u.user_name = cw.name_workstations
// JOIN
// workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
// JOIN
// equipments e ON wat.company_projects_id = e.company_projects_id
// JOIN
// ordered_equipment_tasks oet ON e.equipment_id = oet.equipment_id
// WHERE
// u.email = :email
// AND
// oet.execution_order = 1
// GROUP BY
// e.equipment_id,
// e.equipment_tag
// ),
// workstations_multiple_rows AS (
// SELECT
// cw.id_workstations,
// cw.name_workstations,
// COALESCE(wat.elemental_tasks_id, wat.further_tasks_id) AS all_tasks
// FROM
// users u
// JOIN
// construction_workstations cw ON u.user_name = cw.name_workstations
// JOIN
// workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
// WHERE
// u.email = :email
// ),
// workstations_control_all_tasks AS (
// SELECT
// cew.control_equipment_workstation_id,
// cew.equipment_id,
// CASE
// WHEN cew.id_workstations IS NULL THEN NULL
// WHEN cew.id_workstations IN (
// SELECT wat.id_workstations
// FROM workstations_association_tasks wat
// JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
// JOIN users u ON u.user_name = cw.name_workstations
// WHERE u.email = :email
// ) THEN cew.id_workstations
// ELSE NULL
// END AS control_id_workstations,
// COALESCE(cew.elemental_tasks_id, cew.further_tasks_id) AS control_workstation_all_tasks,
// cew.equipment_comments_id,
// cew.entry_date,
// cew.departure_date
// FROM
// control_equipment_workstation cew
// WHERE
// cew.id_workstations IS NULL
// OR cew.id_workstations IN (
// SELECT wat.id_workstations
// FROM workstations_association_tasks wat
// JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
// JOIN users u ON u.user_name = cw.name_workstations
// WHERE u.email = :email
// )
// )
// SELECT
// emr.equipment_id,
// emr.equipment_tag
// FROM
// equipments_multiple_rows emr
// WHERE
// emr.equipment_id IN (
// SELECT equipment_id
// FROM workstations_control_all_tasks
// WHERE control_id_workstations IS NULL
// AND entry_date IS NULL
// AND departure_date IS NULL
// AND control_workstation_all_tasks IN (SELECT all_tasks FROM workstations_multiple_rows)
// AND EXISTS (
// SELECT 1
// FROM workstations_control_all_tasks wc
// WHERE wc.equipment_id = emr.equipment_id
// AND wc.control_id_workstations IS NOT NULL
// GROUP BY wc.equipment_id
// HAVING COUNT(DISTINCT wc.control_id_workstations) >= 2
// )
// )
// GROUP BY
// emr.equipment_id,
// emr.equipment_tag
// ORDER BY
// emr.equipment_id ASC;
// ", ['email' => $userEmail]);
// $workstationNameQuery = DB::select("
// SELECT construction_workstations.nomenclature_workstation
// FROM construction_workstations
// JOIN users
// WHERE construction_workstations.name_workstations = users.user_name
// AND users.email = :email;
// ", ['email' => $userEmail]);
// $workstationName = $workstationNameQuery[0]->nomenclature_workstation;
// //Counting of equipments
// // $equipmentsTodoCount = count($equipmentsTodo);
// $equipmentsDoneCount = count($equipmentsDone);
// $equipmentsReturnedCount = count($equipmentsReturned);
// //Returning values of the queries to workstations layout
// return view('workstations.index', [
// // 'equipmentsTodo' => $equipmentsTodo, 'equipmentsTodoCount' => $equipmentsTodoCount,
// 'equipmentsDone' => $equipmentsDone, 'equipmentsDoneCount' => $equipmentsDoneCount,
// 'equipmentsReturned' => $equipmentsReturned, 'equipmentsReturnedCount' => $equipmentsReturnedCount,
// 'workstationName' => $workstationName
// ]);
// }
// }
namespace App\Http\Controllers; namespace App\Http\Controllers;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@ -13,121 +372,7 @@ public function index()
{ {
$userEmail = Auth::user()->email; $userEmail = Auth::user()->email;
// $equipmentsTodo= DB::select(" $equipmentsTodo = DB::select("
// WITH equipments_multiple_rows AS (
// SELECT
// e.equipment_id,
// e.equipment_tag,
// COALESCE(MAX(oet.elemental_tasks_id), MAX(oet.further_tasks_id)) AS equipment_all_tasks
// FROM
// users u
// JOIN
// construction_workstations cw ON u.user_name = cw.name_workstations
// JOIN
// workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
// JOIN
// equipments e ON wat.company_projects_id = e.company_projects_id
// JOIN
// ordered_equipment_tasks oet ON e.equipment_id = oet.equipment_id
// WHERE
// u.email = :email
// AND
// oet.execution_order = 1
// GROUP BY
// e.equipment_id,
// e.equipment_tag
// ),
// workstations_multiple_rows AS (
// SELECT
// cw.id_workstations,
// cw.name_workstations,
// COALESCE(wat.elemental_tasks_id, wat.further_tasks_id) AS all_tasks
// FROM
// users u
// JOIN
// construction_workstations cw ON u.user_name = cw.name_workstations
// JOIN
// workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
// WHERE
// u.email = :email
// ),
// workstations_control_all_tasks AS (
// SELECT
// cew.control_equipment_workstation_id,
// cew.equipment_id,
// CASE
// WHEN cew.id_workstations IS NULL THEN NULL
// WHEN cew.id_workstations IN (
// SELECT wat.id_workstations
// FROM workstations_association_tasks wat
// JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
// JOIN users u ON u.user_name = cw.name_workstations
// WHERE u.email = :email
// ) THEN cew.id_workstations
// ELSE NULL
// END AS control_id_workstations,
// COALESCE(cew.elemental_tasks_id, cew.further_tasks_id) AS control_workstation_all_tasks,
// cew.equipment_comments_id,
// cew.entry_date,
// cew.departure_date
// FROM
// control_equipment_workstation cew
// WHERE
// cew.id_workstations IS NULL
// OR cew.id_workstations IN (
// SELECT wat.id_workstations
// FROM workstations_association_tasks wat
// JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
// JOIN users u ON u.user_name = cw.name_workstations
// WHERE u.email = :email
// )
// )
// SELECT
// emr.equipment_id,
// emr.equipment_tag
// FROM
// equipments_multiple_rows emr
// WHERE
// (
// emr.equipment_all_tasks IN (SELECT all_tasks FROM workstations_multiple_rows)
// AND NOT EXISTS (
// SELECT 1
// FROM workstations_control_all_tasks wc
// WHERE wc.equipment_id = emr.equipment_id
// AND wc.control_id_workstations IN (SELECT id_workstations FROM workstations_multiple_rows)
// )
// )
// OR
// (
// emr.equipment_id IN (
// SELECT equipment_id
// FROM workstations_control_all_tasks
// WHERE control_id_workstations IS NULL
// AND entry_date IS NULL
// AND departure_date IS NULL
// AND control_workstation_all_tasks IN (SELECT all_tasks FROM workstations_multiple_rows)
// )
// AND NOT EXISTS (
// SELECT 1
// FROM workstations_control_all_tasks wc
// WHERE wc.equipment_id = emr.equipment_id
// AND wc.control_id_workstations IS NOT NULL
// GROUP BY wc.equipment_id
// HAVING COUNT(DISTINCT wc.control_id_workstations) > 1
// )
// )
// GROUP BY
// emr.equipment_id,
// emr.equipment_tag
// ORDER BY
// emr.equipment_id ASC;
// ", ['email' => $userEmail]);
$equipmentsDone = DB::select("
WITH equipments_multiple_rows AS ( WITH equipments_multiple_rows AS (
SELECT SELECT
e.equipment_id, e.equipment_id,
@ -144,7 +389,7 @@ public function index()
JOIN JOIN
ordered_equipment_tasks oet ON e.equipment_id = oet.equipment_id ordered_equipment_tasks oet ON e.equipment_id = oet.equipment_id
WHERE WHERE
u.email = :email u.email = :email1
AND AND
oet.execution_order = 1 oet.execution_order = 1
GROUP BY GROUP BY
@ -164,7 +409,7 @@ public function index()
JOIN JOIN
workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
WHERE WHERE
u.email = :email u.email = :email2
), ),
workstations_control_all_tasks AS ( workstations_control_all_tasks AS (
@ -178,7 +423,7 @@ public function index()
FROM workstations_association_tasks wat FROM workstations_association_tasks wat
JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
JOIN users u ON u.user_name = cw.name_workstations JOIN users u ON u.user_name = cw.name_workstations
WHERE u.email = :email WHERE u.email = :email3
) THEN cew.id_workstations ) THEN cew.id_workstations
ELSE NULL ELSE NULL
END AS control_id_workstations, END AS control_id_workstations,
@ -195,7 +440,236 @@ public function index()
FROM workstations_association_tasks wat FROM workstations_association_tasks wat
JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
JOIN users u ON u.user_name = cw.name_workstations JOIN users u ON u.user_name = cw.name_workstations
WHERE u.email = :email WHERE u.email = :email4
)
)
SELECT
emr.equipment_id,
emr.equipment_tag
FROM
equipments_multiple_rows emr
WHERE
(
emr.equipment_all_tasks IN (SELECT all_tasks FROM workstations_multiple_rows)
AND NOT EXISTS (
SELECT 1
FROM workstations_control_all_tasks wc
WHERE wc.equipment_id = emr.equipment_id
AND wc.control_id_workstations IN (SELECT id_workstations FROM workstations_multiple_rows)
)
)
OR
(
emr.equipment_id IN (
SELECT equipment_id
FROM workstations_control_all_tasks
WHERE control_id_workstations IS NULL
AND entry_date IS NULL
AND departure_date IS NULL
AND control_workstation_all_tasks IN (SELECT all_tasks FROM workstations_multiple_rows)
)
AND NOT EXISTS (
SELECT 1
FROM workstations_control_all_tasks wc
WHERE wc.equipment_id = emr.equipment_id
AND wc.control_id_workstations IS NOT NULL
GROUP BY wc.equipment_id
HAVING COUNT(DISTINCT wc.control_id_workstations) > 1
)
)
GROUP BY
emr.equipment_id,
emr.equipment_tag
ORDER BY
emr.equipment_id ASC;
", [
'email1' => $userEmail,
'email2' => $userEmail,
'email3' => $userEmail,
'email4' => $userEmail
]);
$equipmentsReturned = DB::select("
WITH equipments_multiple_rows AS (
SELECT
e.equipment_id,
e.equipment_tag,
COALESCE(MAX(oet.elemental_tasks_id), MAX(oet.further_tasks_id)) AS equipment_all_tasks
FROM
users u
JOIN
construction_workstations cw ON u.user_name = cw.name_workstations
JOIN
workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
JOIN
equipments e ON wat.company_projects_id = e.company_projects_id
JOIN
ordered_equipment_tasks oet ON e.equipment_id = oet.equipment_id
WHERE
u.email = :email1
AND
oet.execution_order = 1
GROUP BY
e.equipment_id,
e.equipment_tag
),
workstations_multiple_rows AS (
SELECT
cw.id_workstations,
cw.name_workstations,
COALESCE(wat.elemental_tasks_id, wat.further_tasks_id) AS all_tasks
FROM
users u
JOIN
construction_workstations cw ON u.user_name = cw.name_workstations
JOIN
workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
WHERE
u.email = :email2
),
workstations_control_all_tasks AS (
SELECT
cew.control_equipment_workstation_id,
cew.equipment_id,
CASE
WHEN cew.id_workstations IS NULL THEN NULL
WHEN cew.id_workstations IN (
SELECT wat.id_workstations
FROM workstations_association_tasks wat
JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
JOIN users u ON u.user_name = cw.name_workstations
WHERE u.email = :email3
) THEN cew.id_workstations
ELSE NULL
END AS control_id_workstations,
COALESCE(cew.elemental_tasks_id, cew.further_tasks_id) AS control_workstation_all_tasks,
cew.equipment_comments_id,
cew.entry_date,
cew.departure_date
FROM
control_equipment_workstation cew
WHERE
cew.id_workstations IS NULL
OR cew.id_workstations IN (
SELECT wat.id_workstations
FROM workstations_association_tasks wat
JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
JOIN users u ON u.user_name = cw.name_workstations
WHERE u.email = :email4
)
)
SELECT
emr.equipment_id,
emr.equipment_tag
FROM
equipments_multiple_rows emr
WHERE
emr.equipment_id IN (
SELECT equipment_id
FROM workstations_control_all_tasks
WHERE control_id_workstations IS NULL
AND entry_date IS NULL
AND departure_date IS NULL
AND control_workstation_all_tasks IN (SELECT all_tasks FROM workstations_multiple_rows)
AND EXISTS (
SELECT 1
FROM workstations_control_all_tasks wc
WHERE wc.equipment_id = emr.equipment_id
AND wc.control_id_workstations IS NOT NULL
GROUP BY wc.equipment_id
HAVING COUNT(DISTINCT wc.control_id_workstations) >= 2
)
)
GROUP BY
emr.equipment_id,
emr.equipment_tag
ORDER BY
emr.equipment_id ASC;
", [
'email1' => $userEmail,
'email2' => $userEmail,
'email3' => $userEmail,
'email4' => $userEmail
]);
$equipmentsDone = DB::select("
WITH equipments_multiple_rows AS (
SELECT
e.equipment_id,
e.equipment_tag,
COALESCE(MAX(oet.elemental_tasks_id), MAX(oet.further_tasks_id)) AS equipment_all_tasks
FROM
users u
JOIN
construction_workstations cw ON u.user_name = cw.name_workstations
JOIN
workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
JOIN
equipments e ON wat.company_projects_id = e.company_projects_id
JOIN
ordered_equipment_tasks oet ON e.equipment_id = oet.equipment_id
WHERE
u.email = :email1
AND
oet.execution_order = 1
GROUP BY
e.equipment_id,
e.equipment_tag
),
workstations_multiple_rows AS (
SELECT
cw.id_workstations,
cw.name_workstations,
COALESCE(wat.elemental_tasks_id, wat.further_tasks_id) AS all_tasks
FROM
users u
JOIN
construction_workstations cw ON u.user_name = cw.name_workstations
JOIN
workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
WHERE
u.email = :email2
),
workstations_control_all_tasks AS (
SELECT
cew.control_equipment_workstation_id,
cew.equipment_id,
CASE
WHEN cew.id_workstations IS NULL THEN NULL
WHEN cew.id_workstations IN (
SELECT wat.id_workstations
FROM workstations_association_tasks wat
JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
JOIN users u ON u.user_name = cw.name_workstations
WHERE u.email = :email3
) THEN cew.id_workstations
ELSE NULL
END AS control_id_workstations,
COALESCE(cew.elemental_tasks_id, cew.further_tasks_id) AS control_workstation_all_tasks,
cew.equipment_comments_id,
cew.entry_date,
cew.departure_date
FROM
control_equipment_workstation cew
WHERE
cew.id_workstations IS NULL
OR cew.id_workstations IN (
SELECT wat.id_workstations
FROM workstations_association_tasks wat
JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
JOIN users u ON u.user_name = cw.name_workstations
WHERE u.email = :email4
) )
) )
@ -227,109 +701,12 @@ public function index()
emr.equipment_tag emr.equipment_tag
ORDER BY ORDER BY
emr.equipment_id ASC; emr.equipment_id ASC;
", ['email' => $userEmail]); ", [
'email1' => $userEmail,
'email2' => $userEmail,
$equipmentsReturned = DB::select(" 'email3' => $userEmail,
WITH equipments_multiple_rows AS ( 'email4' => $userEmail
SELECT ]);
e.equipment_id,
e.equipment_tag,
COALESCE(MAX(oet.elemental_tasks_id), MAX(oet.further_tasks_id)) AS equipment_all_tasks
FROM
users u
JOIN
construction_workstations cw ON u.user_name = cw.name_workstations
JOIN
workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
JOIN
equipments e ON wat.company_projects_id = e.company_projects_id
JOIN
ordered_equipment_tasks oet ON e.equipment_id = oet.equipment_id
WHERE
u.email = :email
AND
oet.execution_order = 1
GROUP BY
e.equipment_id,
e.equipment_tag
),
workstations_multiple_rows AS (
SELECT
cw.id_workstations,
cw.name_workstations,
COALESCE(wat.elemental_tasks_id, wat.further_tasks_id) AS all_tasks
FROM
users u
JOIN
construction_workstations cw ON u.user_name = cw.name_workstations
JOIN
workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
WHERE
u.email = :email
),
workstations_control_all_tasks AS (
SELECT
cew.control_equipment_workstation_id,
cew.equipment_id,
CASE
WHEN cew.id_workstations IS NULL THEN NULL
WHEN cew.id_workstations IN (
SELECT wat.id_workstations
FROM workstations_association_tasks wat
JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
JOIN users u ON u.user_name = cw.name_workstations
WHERE u.email = :email
) THEN cew.id_workstations
ELSE NULL
END AS control_id_workstations,
COALESCE(cew.elemental_tasks_id, cew.further_tasks_id) AS control_workstation_all_tasks,
cew.equipment_comments_id,
cew.entry_date,
cew.departure_date
FROM
control_equipment_workstation cew
WHERE
cew.id_workstations IS NULL
OR cew.id_workstations IN (
SELECT wat.id_workstations
FROM workstations_association_tasks wat
JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
JOIN users u ON u.user_name = cw.name_workstations
WHERE u.email = :email
)
)
SELECT
emr.equipment_id,
emr.equipment_tag
FROM
equipments_multiple_rows emr
WHERE
emr.equipment_id IN (
SELECT equipment_id
FROM workstations_control_all_tasks
WHERE control_id_workstations IS NULL
AND entry_date IS NULL
AND departure_date IS NULL
AND control_workstation_all_tasks IN (SELECT all_tasks FROM workstations_multiple_rows)
AND EXISTS (
SELECT 1
FROM workstations_control_all_tasks wc
WHERE wc.equipment_id = emr.equipment_id
AND wc.control_id_workstations IS NOT NULL
GROUP BY wc.equipment_id
HAVING COUNT(DISTINCT wc.control_id_workstations) >= 2
)
)
GROUP BY
emr.equipment_id,
emr.equipment_tag
ORDER BY
emr.equipment_id ASC;
", ['email' => $userEmail]);
$workstationNameQuery = DB::select(" $workstationNameQuery = DB::select("
SELECT construction_workstations.nomenclature_workstation SELECT construction_workstations.nomenclature_workstation
@ -342,13 +719,13 @@ public function index()
$workstationName = $workstationNameQuery[0]->nomenclature_workstation; $workstationName = $workstationNameQuery[0]->nomenclature_workstation;
//Counting of equipments //Counting of equipments
// $equipmentsTodoCount = count($equipmentsTodo); $equipmentsTodoCount = count($equipmentsTodo);
$equipmentsDoneCount = count($equipmentsDone); $equipmentsDoneCount = count($equipmentsDone);
$equipmentsReturnedCount = count($equipmentsReturned); $equipmentsReturnedCount = count($equipmentsReturned);
//Returning values of the queries to workstations layout //Returning values of the queries to workstations layout
return view('workstations.index', [ return view('workstations.start', [
// 'equipmentsTodo' => $equipmentsTodo, 'equipmentsTodoCount' => $equipmentsTodoCount, 'equipmentsTodo' => $equipmentsTodo, 'equipmentsTodoCount' => $equipmentsTodoCount,
'equipmentsDone' => $equipmentsDone, 'equipmentsDoneCount' => $equipmentsDoneCount, 'equipmentsDone' => $equipmentsDone, 'equipmentsDoneCount' => $equipmentsDoneCount,
'equipmentsReturned' => $equipmentsReturned, 'equipmentsReturnedCount' => $equipmentsReturnedCount, 'equipmentsReturned' => $equipmentsReturned, 'equipmentsReturnedCount' => $equipmentsReturnedCount,
'workstationName' => $workstationName 'workstationName' => $workstationName

View File

@ -5,6 +5,8 @@
use App\Models\TypeUser; use App\Models\TypeUser;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\File;
use Illuminate\Validation\ValidationException; use Illuminate\Validation\ValidationException;
@ -21,38 +23,55 @@
class userController extends Controller class userController extends Controller
{ {
public function EditProfile(Request $request){ public function EditProfile(Request $request)
{
// dd($request);
$messages = [
'user_logo.max' => 'O tamanho da imagem não deve ser maior que 70KB.',
];
// dump($request); $request->validate([
'user_logo' => 'image|mimes:jpeg,png,jpg,gif,svg|max:70',
'fullName' => 'required',
'email' => 'required|email|unique:users,email,' . $request->userID . ',user_id',
'phone' => 'required',
'nif' => 'required',
], $messages);
$user = User::find($request->userID); $user = User::find($request->userID);
if ($request->hasFile('user_logo')) {
$imageName = time() . '.' . $request->user_logo->extension();
// Verifica se o usuário já tem uma imagem e se é diferente da nova imagem
if ($user->user_logo && $user->user_logo != $imageName) {
// Constrói o caminho completo para o arquivo de imagem existente
$existingImagePath = public_path('user_logos/' . $user->user_logo);
// Verifica se o arquivo de imagem existente realmente existe no sistema de arquivos
if (File::exists($existingImagePath)) {
// Exclui o arquivo de imagem existente
File::delete($existingImagePath);
}
}
// Move o novo arquivo de imagem para o diretório
$request->user_logo->move(public_path('user_logos'), $imageName);
// Atualiza o campo user_logo do usuário com o nome do novo arquivo de imagem
$user->user_logo = $imageName;
}
$user->user_name = $request->fullName; $user->user_name = $request->fullName;
$user->email = $request->email; $user->email = $request->email;
$user->user_phone = $request->phone; $user->user_phone = $request->phone;
$user->user_nif = $request->nif; $user->user_nif = $request->nif;
$user->save();
// $request->validate([ return back()->with('success', "Perfil actualizado com sucesso!");
// 'name' => 'required',
// 'email' => 'required|email|unique:users,email,' . $user->user_id,
// 'password' => 'nullable|min:8|confirmed',
// 'user_type' => 'required',
// 'user_phone' => 'required',
// 'user_nif' => 'required',
// ]);
// $user->update([
// 'name' => $request->get('name'),
// 'email' => $request->get('email'),
// 'password' => $request->filled('password') ? Hash::make($request->get('password')) : $user->password,
// 'user_type' => $request->get('user_type'),
// 'user_phone' => $request->get('user_phone'),
// 'user_nif' => $request->get('user_nif'),
// ]);
return redirect('/users/listUsers')->with('success', 'Utilizadores atualizado com Sucesso!!');
} }
public function UserProfile($id) public function UserProfile($id)
{ {
$user = User::find($id); $user = User::find($id);
@ -136,28 +155,30 @@ public function edit($id)
public function update(Request $request, User $user) public function update(Request $request, User $user)
{ {
dump($request); // dump($request);
// $request->validate([
// 'name' => 'required',
// 'email' => 'required|email|unique:users,email,' . $user->user_id,
// 'password' => 'nullable|min:8|confirmed',
// 'user_type' => 'required',
// 'user_phone' => 'required',
// 'user_nif' => 'required',
// ]);
// $user->update([ $request->validate([
// 'name' => $request->get('name'), 'name' => 'required',
// 'email' => $request->get('email'), 'email' => 'required|email|unique:users,email,' . $user->user_id . ',user_id',
// 'password' => $request->filled('password') ? Hash::make($request->get('password')) : $user->password, 'password' => 'nullable|min:8|confirmed',
// 'user_type' => $request->get('user_type'), 'user_type' => 'required',
// 'user_phone' => $request->get('user_phone'), 'user_phone' => 'required',
// 'user_nif' => $request->get('user_nif'), 'user_nif' => 'required',
// ]); ]);
// $userUpdate-> $user->update([
'name' => $request->get('name'),
'email' => $request->get('email'),
'password' => $request->filled('password') ? Hash::make($request->get('password')) : $user->password,
'user_type' => $request->get('user_type'),
'user_phone' => $request->get('user_phone'),
'user_nif' => $request->get('user_nif'),
]);
return redirect('/users/listUsers')->with('success', 'Utilizadores atualizado com Sucesso!!'); $user->save();
return redirect('/users/listUsers')->with('success', 'Utilizador atualizado com Sucesso!!');
} }

View File

@ -27,7 +27,7 @@ class User extends Authenticatable
* @var array<int, string> * @var array<int, string>
*/ */
protected $fillable = ['user_name', 'email', 'password', 'user_phone', 'user_nif', 'type_users']; protected $fillable = ['user_id','user_name', 'email', 'password', 'user_phone', 'user_nif', 'type_users'];
/** /**

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

View File

@ -8,7 +8,7 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row mb-2"> <div class="row mb-2">
<div class="col-sm-6"> <div class="col-sm-6">
<h1 class="m-0" style="color:#00B0EA">Dashboard</h1> <h1 class="m-0" style="color:#09255C">Dashboard</h1>
</div><!-- /.col --> </div><!-- /.col -->
<div class="col-sm-6"> <div class="col-sm-6">
<ol class="breadcrumb float-sm-right"> <ol class="breadcrumb float-sm-right">
@ -48,7 +48,7 @@ class="info-box-number">{{ $CompanyProject->where('order_project', 1)->count() }
@if ($project->order_project == 1) @if ($project->order_project == 1)
<div class="card card-secondary card-outline"> <div class="card card-secondary card-outline">
<div class="card-header"> <div class="card-header">
<h5 class="card-title">{{ $project->company_project_description }}</h5> <h5 class="progress-description" >{{ $project->company_project_description }}</h5>
<div class="card-tools"> <div class="card-tools">
<a href="{{ route('test2', ['id' => $project->company_projects_id]) }}" <a href="{{ route('test2', ['id' => $project->company_projects_id]) }}"
class="btn btn-tool"> class="btn btn-tool">
@ -88,7 +88,7 @@ class="info-box-number">{{ $CompanyProject->where('order_project', 2)->count() }
@if ($project->order_project == 2) @if ($project->order_project == 2)
<div class="card card-secondary card-outline"> <div class="card card-secondary card-outline">
<div class="card-header"> <div class="card-header">
<h5 class="card-title">{{ $project->company_project_description }}</h5> <h5 class="progress-description">{{ $project->company_project_description }}</h5>
<div class="card-tools"> <div class="card-tools">
<a href="{{ route('preparedProject', ['ProjectId' => $project->company_projects_id]) }}" <a href="{{ route('preparedProject', ['ProjectId' => $project->company_projects_id]) }}"
class="btn btn-tool"> class="btn btn-tool">
@ -127,7 +127,7 @@ class="info-box-number">{{ $CompanyProject->where('order_project', 3)->count() }
@if ($project->order_project == 3) @if ($project->order_project == 3)
<div class="card card-secondary card-outline"> <div class="card card-secondary card-outline">
<div class="card-header"> <div class="card-header">
<h5 class="card-title">{{ $project->company_project_description }}</h5> <h5 class="progress-description">{{ $project->company_project_description }}</h5>
<div class="card-tools"> <div class="card-tools">
<a href="{{ route('ExecutionProject', ['ProjectId' => $project->company_projects_id]) }}" <a href="{{ route('ExecutionProject', ['ProjectId' => $project->company_projects_id]) }}"
class="btn btn-tool"> class="btn btn-tool">

View File

@ -1,164 +1,201 @@
@extends('Templates/templateAdmin') @extends('Templates/templateAdmin')
@section('Main-content') @section('Main-content')
@if (session('success'))
<div class="alert alert-success" role="alert" id="alert-message-success" style="transition: opacity 1s;">
{{ session('success') }}
</div>
<script>
setTimeout(function() {
$('#alert-message-success').fadeOut('slow', function() {
$(this).remove();
});
}, 5000); // A mensagem desaparecerá após 5 segundos
</script>
@endif
<section class="content"> @if ($errors->any())
<div id="errorAlert" class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
<script>
$(document).ready(function() {
setTimeout(function() {
$('#errorAlert').fadeOut('slow', function() {
$(this).remove();
});
}, 5000); // A mensagem desaparecerá após 5 segundos
});
</script>
@endif
<div class="container-fluid">
<div class="row justify-content-center">
<div class="col-md-12">
<!-- Card box User Profile -->
<br><br>
<section class="section profile">
<div class="row">
<div class="col-xl-4">
<div class="card"> <section class="content">
<div class="card-body profile-card pt-4 d-flex flex-column align-items-center">
<img src="{{ asset('/img/avatar5.png') }}" class="img-circle elevation-2 imgProfile" <div class="container-fluid">
alt="User Image"> <div class="row justify-content-center">
<h2>{{ $user->user_name }}</h2> <div class="col-md-12">
<h3>{{ $user->userType->type_user}}</h3> <!-- Card box User Profile -->
<br><br>
<section class="section profile">
<div class="row">
<div class="col-xl-4">
<div class="card">
<div class="card-body profile-card pt-4 d-flex flex-column align-items-center">
<img class="img-circle elevation-2 imgProfile"
src="{{ asset('user_logos/' . ($user->user_logo ?? 'logoISPT4.0.jpg')) }}"
alt="User Logo">
<h2>{{ $user->user_name }}</h2>
<h3>{{ $user->userType->type_user }}</h3>
</div>
</div> </div>
</div> </div>
</div> <div class="col-xl-8">
<div class="col-xl-8"> <div class="card">
<div class="card-body pt-3">
<!-- Bordered Tabs -->
<ul class="nav nav-tabs nav-tabs-bordered">
<div class="card"> <li class="nav-item">
<div class="card-body pt-3"> <button class="nav-link active" data-bs-toggle="tab"
<!-- Bordered Tabs --> data-bs-target="#profile-overview">Perfil</button>
<ul class="nav nav-tabs nav-tabs-bordered"> </li>
<li class="nav-item"> <li class="nav-item">
<button class="nav-link active" data-bs-toggle="tab" <button class="nav-link" data-bs-toggle="tab"
data-bs-target="#profile-overview">Perfil</button> data-bs-target="#profile-edit">Editar Perfil</button>
</li> </li>
<li class="nav-item"> </ul>
<button class="nav-link" data-bs-toggle="tab" <div class="tab-content pt-2">
data-bs-target="#profile-edit">Editar Perfil</button>
</li>
</ul> <div class="tab-pane fade show active profile-overview" id="profile-overview">
<div class="tab-content pt-2">
<div class="tab-pane fade show active profile-overview" id="profile-overview">
<div class="row">
<div class="col-lg-3 col-md-4 label ">Nome e Apelido </div> <div class="row">
<div class="col-lg-9 col-md-8">{{$user->user_name}}</div> <div class="col-lg-3 col-md-4 label ">Nome e Apelido </div>
<div class="col-lg-9 col-md-8">{{ $user->user_name }}</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">Nif </div>
<div class="col-lg-9 col-md-8">{{ $user->user_nif }}</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">Email </div>
<div class="col-lg-9 col-md-8">{{ $user->email }}</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">Tipo de utilizador </div>
<div class="col-lg-9 col-md-8">{{ $user->type_users }}</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">Telemóvel </div>
<div class="col-lg-9 col-md-8">{{ $user->user_phone }}</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">Conta Criada em </div>
<div class="col-lg-9 col-md-8">{{ $user->created_at }}</div>
</div>
</div> </div>
<div class="row"> <div class="tab-pane fade profile-edit pt-3" id="profile-edit">
<div class="col-lg-3 col-md-4 label">Nif </div>
<div class="col-lg-9 col-md-8">{{$user->user_nif}}</div>
</div>
<div class="row"> <!-- Profile Edit Form -->
<div class="col-lg-3 col-md-4 label">Email </div> <form action="{{ route('editProfile', $user->user_id) }}" method="POST"
<div class="col-lg-9 col-md-8">{{$user->email}}</div> enctype="multipart/form-data">
</div> @csrf
<input type="hidden" name="userID" value="{{ $user->user_id }}">
<div class="row"> <div class="row mb-3">
<div class="col-lg-3 col-md-4 label">Tipo de utilizador </div> <label for="user_logo"
<div class="col-lg-9 col-md-8">{{$user->type_users}}</div> class="col-md-4 col-lg-3 form-label">Actualizar o seu logótipo.
</div> :</label>
<div class="custom-file col-md-8 col-lg-9">
<div class="row"> <input type="file" class="custom-file-input" id="user_logo"
<div class="col-lg-3 col-md-4 label">Telemóvel </div> name="user_logo" accept="image/*">
<div class="col-lg-9 col-md-8">{{$user->user_phone}}</div> <label class="custom-file-label" for="customFile">Máximo de
</div> 70KB*</label>
<div class="row">
<div class="col-lg-3 col-md-4 label">Conta Criada em </div>
<div class="col-lg-9 col-md-8">{{$user->created_at}}</div>
</div>
</div>
<div class="tab-pane fade profile-edit pt-3" id="profile-edit">
<!-- Profile Edit Form -->
<form action="{{ route('editProfile',$user->user_id)}}">
@csrf
{{-- Quando for implementar a imagem ao Utilizador --}}
{{-- <div class="row mb-3">
<label for="profileImage"
class="col-md-4 col-lg-3 col-form-label">Profile Image</label>
<div class="col-md-8 col-lg-9">
<img src="assets/img/profile-img.jpg" alt="Profile">
<div class="pt-2">
<a href="#" class="btn btn-primary btn-sm"
title="Upload new profile image"><i
class="bi bi-upload"></i></a>
<a href="#" class="btn btn-danger btn-sm"
title="Remove my profile image"><i
class="bi bi-trash"></i></a>
</div> </div>
</div> </div>
</div> --}}
<input type="hidden" name="userID"
value="{{ $user->user_id }}">
<div class="row mb-3"> <div class="row mb-3">
<label for="fullName" class="col-md-4 col-lg-3 col-form-label">Nome e Apelido</label> <label for="fullName" class="col-md-4 col-lg-3 col-form-label">Nome
<div class="col-md-8 col-lg-9"> e Apelido</label>
<input type="text" class="form-control" id="fullName" name="fullName" value="{{ $user->user_name }}" required> <div class="col-md-8 col-lg-9">
<input type="text" class="form-control" id="fullName"
name="fullName" value="{{ $user->user_name }}" required>
</div>
</div> </div>
</div>
<div class="row mb-3"> <div class="row mb-3">
<label for="about" <label for="about"
class="col-md-4 col-lg-3 col-form-label">Nif</label> class="col-md-4 col-lg-3 col-form-label">Nif</label>
<div class="col-md-8 col-lg-9"> <div class="col-md-8 col-lg-9">
<input type="text" class="form-control" id="nif" name="nif" value="{{ $user->user_nif }}" required> <input type="text" class="form-control" id="nif"
name="nif" value="{{ $user->user_nif }}" required>
</div>
</div> </div>
</div>
<div class="row mb-3"> <div class="row mb-3">
<label for="company" <label for="company"
class="col-md-4 col-lg-3 col-form-label">Email</label> class="col-md-4 col-lg-3 col-form-label">Email</label>
<div class="col-md-8 col-lg-9"> <div class="col-md-8 col-lg-9">
<input type="text" class="form-control" id="email" name="email" value="{{ $user->email }}" required> <input type="text" class="form-control" id="email"
name="email" value="{{ $user->email }}" required>
</div>
</div> </div>
</div>
<div class="row mb-3"> <div class="row mb-3">
<label for="Country" <label for="Country"
class="col-md-4 col-lg-3 col-form-label">Telemóvel</label> class="col-md-4 col-lg-3 col-form-label">Telemóvel</label>
<div class="col-md-8 col-lg-9"> <div class="col-md-8 col-lg-9">
<input type="text" class="form-control" id="phone" name="phone" value="{{ $user->user_phone }}" > <input type="text" class="form-control" id="phone"
name="phone" value="{{ $user->user_phone }}">
</div>
</div> </div>
</div>
<div class="text-center"> <div class="float-right">
<button type="submit" class="btn btn-primary">Guardar</button> <button type="submit" class="btn btn-primary">Guardar</button>
</div> </div>
</form><!-- End Profile Edit Form --> </form><!-- End Profile Edit Form -->
</div> </div>
</div><!-- End Bordered Tabs --> </div><!-- End Bordered Tabs -->
</div>
</div> </div>
</div> </div>
{{-- col-xl-8 --}}
</div> </div>
{{-- col-xl-8 --}} </section>
</div>
</section>
</div>
{{-- ./col-md-12 --}}
</div> </div>
{{-- ./col-md-12 --}} {{-- ./row justify-content-center --}}
</div>
{{-- ./row justify-content-center --}}
</div> </div>
{{-- ./container-fluid" --}} {{-- ./container-fluid" --}}
</section> </section>
@endsection @endsection

View File

@ -69,6 +69,10 @@
<style> <style>
#isptGroupLink:hover {
color: #EAF3F6;
}
.spin { .spin {
animation: spin 1s infinite linear; animation: spin 1s infinite linear;
} }
@ -173,6 +177,13 @@
background-color: var(--prm-gray); background-color: var(--prm-gray);
} }
#editImg {
width: 215px;
height: 215px;
object-fit: cover;
/* Isso fará com que a imagem cubra completamente a área sem distorcer */
}
</style> </style>
</head> </head>
@ -224,16 +235,18 @@ class="fas fa-bars"></i></a>
<div class="sidebar"> <div class="sidebar">
<!-- Sidebar user panel (optional) --> <!-- Sidebar user panel (optional) -->
<div class="user-panel mt-3 pb-3 mb-3 d-flex"> <div class="user-panel mt-3 pb-3 mb-3 d-flex">
<div class="image"> {{-- Verifica se esta logado , se estiver , busca os dados do utilizador atual. --}}
@if (Auth::check())
<img src="{{ asset('/img/avatar5.png') }}" class="img-circle elevation-2" alt="User Image"> <div class="image">
</div> <img class="img-circle elevation-2 imgProfile editImg"
<div class="info"> src="{{ asset('user_logos/' . (Auth::user()->user_logo ?? 'logoISPT4.0.jpg')) }}"
@if (Auth::check()) alt="User Logo">
</div>
<div class="info">
<a href="{{ route('usersProfiles', ['id' => Auth::user()->user_id]) }}" <a href="{{ route('usersProfiles', ['id' => Auth::user()->user_id]) }}"
class="d-block">{{ Auth::user()->userType?->type_user }}</a> class="d-block">{{ Auth::user()->userType?->type_user }}</a>
@endif </div>
</div> @endif
</div> </div>
<!-- Sidebar Menu --> <!-- Sidebar Menu -->
@ -356,10 +369,12 @@ class="d-block">{{ Auth::user()->userType?->type_user }}</a>
<!-- ./ Wrapper --> <!-- ./ Wrapper -->
<footer class="main-footer"> <footer class="main-footer">
<strong>Copyright &copy; 2017-2022 <a href="#">ISPT - Industrial Services, SA</a>.</strong> <strong>Copyright &copy; 2017-{{ date('Y') }} <a href="https://www.isptgroup.com" id="isptGroupLink">ISPT
-
Industrial Services, SA</a>.</strong>
Todos os direitos reservados. Todos os direitos reservados.
<div class="float-right d-none d-sm-inline-block"> <div class="float-right d-none d-sm-inline-block">
<b>Versão</b> 1.0 <b>Versão</b> {{ config('app.version') }}
</div> </div>
</footer> </footer>
</body> </body>
@ -369,7 +384,6 @@ class="d-block">{{ Auth::user()->userType?->type_user }}</a>
<script src="{{ asset('assets/dist/js/bootstrap.bundle.min.js') }}"></script> <script src="{{ asset('assets/dist/js/bootstrap.bundle.min.js') }}"></script>
<script src="{{ asset('assets/plugins/jquery/jquery.min.js') }}"></script> <script src="{{ asset('assets/plugins/jquery/jquery.min.js') }}"></script>
<!-- jQuery UI 1.11.4 --> <!-- jQuery UI 1.11.4 -->
<script src="{{ asset('assets/plugins/jquery-ui/jquery-ui.min.js') }}"></script> <script src="{{ asset('assets/plugins/jquery-ui/jquery-ui.min.js') }}"></script>

View File

@ -133,19 +133,19 @@ class="brand-image img-circle elevation-3" style="opacity: .8">
<a href="#" class="nav-link text-white" style="background-color: #007BFF;"> <a href="#" class="nav-link text-white" style="background-color: #007BFF;">
<i class="nav-icon fas fa-play"></i> <i class="nav-icon fas fa-play"></i>
<p> <p>
{{-- {{ $equipmentsTodoCount }} a iniciar --}} {{ $equipmentsTodoCount }} a iniciar
<i class="right fas fa-angle-left"></i> <i class="right fas fa-angle-left"></i>
</p> </p>
</a> </a>
<ul class="nav nav-treeview"> <ul class="nav nav-treeview">
{{-- @foreach ($equipmentsTodo as $equipmentTodo) @foreach ($equipmentsTodo as $equipmentTodo)
<li class="nav-item"> <li class="nav-item">
<a href="#" class="nav-link text-white"> <a href="#" class="nav-link text-white">
<i class="fas fa-tag nav-icon"></i> <i class="fas fa-tag nav-icon"></i>
<p>{{ $equipmentTodo->equipment_tag }}</p> <p>{{ $equipmentTodo->equipment_tag }}</p>
</a> </a>
</li> </li>
@endforeach --}} @endforeach
</ul> </ul>
</li> </li>
@ -153,19 +153,19 @@ class="brand-image img-circle elevation-3" style="opacity: .8">
<a href="#" class="nav-link text-white" style="background-color: #ba9420;"> <a href="#" class="nav-link text-white" style="background-color: #ba9420;">
<i class="nav-icon fas fa-undo"></i> <i class="nav-icon fas fa-undo"></i>
<p> <p>
{{-- {{ $equipmentsReturnedCount }} retornadas --}} {{ $equipmentsReturnedCount }} retornadas
<i class="right fas fa-angle-left"></i> <i class="right fas fa-angle-left"></i>
</p> </p>
</a> </a>
<ul class="nav nav-treeview"> <ul class="nav nav-treeview">
{{-- @foreach ($equipmentsReturned as $equipmentReturned) @foreach ($equipmentsReturned as $equipmentReturned)
<li class="nav-item"> <li class="nav-item">
<a href="#" class="nav-link text-white"> <a href="#" class="nav-link text-white">
<i class="fas fa-tag nav-icon"></i> <i class="fas fa-tag nav-icon"></i>
<p>{{ $equipmentReturned->equipment_tag }}</p> <p>{{ $equipmentReturned->equipment_tag }}</p>
</a> </a>
</li> </li>
@endforeach --}} @endforeach
</ul> </ul>
</li> </li>
</ul> </ul>
@ -248,19 +248,19 @@ class="brand-image img-circle elevation-3" style="opacity: .8">
<a href="#" class="nav-link text-white" style="background-color: #28a745;"> <a href="#" class="nav-link text-white" style="background-color: #28a745;">
<i class="nav-icon fas fa-check"></i> <i class="nav-icon fas fa-check"></i>
<p> <p>
{{-- {{ $equipmentsDoneCount }} válvulas concluídas --}} {{ $equipmentsDoneCount }} válvulas concluídas
<i class="right fas fa-angle-left"></i> <i class="right fas fa-angle-left"></i>
</p> </p>
</a> </a>
<ul class="nav nav-treeview"> <ul class="nav nav-treeview">
{{-- @foreach ($equipmentsDone as $equipmentDone) @foreach ($equipmentsDone as $equipmentDone)
<li class="nav-item-right"> <li class="nav-item-right">
<a href="#" class="nav-link text-white"> <a href="#" class="nav-link text-white">
<i class="fas fa-tag nav-icon"></i> <i class="fas fa-tag nav-icon"></i>
<p>{{ $equipmentDone->equipment_tag }}</p> <p>{{ $equipmentDone->equipment_tag }}</p>
</a> </a>
</li> </li>
@endforeach --}} @endforeach
</ul> </ul>
</li> </li>
</ul> </ul>

View File

@ -30,7 +30,6 @@
<input type="hidden" value="{{ $receiveNumberProject->company_projects_id }}" id="receiveNumberProject"> <input type="hidden" value="{{ $receiveNumberProject->company_projects_id }}" id="receiveNumberProject">
<section class="content-header"> <section class="content-header">
<div class="container-fluid"> <div class="container-fluid">
<!-- Progressbar --> <!-- Progressbar -->
@ -59,16 +58,15 @@
<div class="card-body"> <div class="card-body">
<div class="card card-success collapsed-card"> <div class="card card-success collapsed-card">
<div class="card-header">
<h3 class="card-title">Criar Equipamentos Manualmente</h3>
<div class="card-header clickable">
<h3 class="card-title">Criar Equipamentos Manualmente</h3>
<div class="card-tools"> <div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse"><i <button type="button" class="btn btn-tool collapse-button" data-card-widget="collapse"><i
class="fas fa-plus"></i> class="fas fa-plus"></i></button>
</button>
</div> </div>
<!-- /.card-tools -->
</div> </div>
<!-- /.card-header --> <!-- /.card-header -->
<div class="card-body"> <div class="card-body">
<form action="{{ route('test2CreateEquipment') }}" method="POST"> <form action="{{ route('test2CreateEquipment') }}" method="POST">
@ -1058,16 +1056,15 @@ class="form-control card_inputs" id="PositionerSerialNumber"
</div> </div>
<div class="card card-primary collapsed-card"> <div class="card card-primary collapsed-card">
<div class="card-header">
<h3 class="card-title">Selecionar Equipamentos</h3>
<div class="card-header clickable">
<h3 class="card-title">Selecionar Equipamentos</h3>
<div class="card-tools"> <div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse"><i <button type="button" class="btn btn-tool collapse-button"
class="fas fa-plus"></i> data-card-widget="collapse"><i class="fas fa-plus"></i></button>
</button>
</div> </div>
<!-- /.card-tools -->
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="table-responsive"> <div class="table-responsive">
@ -1169,7 +1166,7 @@ class="btn btn-info">Baixar Template</a>
<div class="row"> <div class="row">
<div class="form-group col-sm-4"> <div class="form-group col-sm-4">
<a href='#' data-toggle='modal' data-target='#modal-pedingEquipments'> <a href='#' data-toggle='modal' data-target='#modal-pedingEquipments'>
<br> <br>
<button class="btn btn-danger"> <button class="btn btn-danger">
Pendentes : Pendentes :
@if (isset($pendingEquipments)) @if (isset($pendingEquipments))
@ -1797,57 +1794,9 @@ class="form-control card_inputs"
</div> </div>
<!-- /.card-body --> <!-- /.card-body -->
<div class="card-footer"> @livewire('articulado.additonal-task', ['equipment' => $listEquipmentsProject], key($listEquipmentsProject->equipment_id))
<!--Tarefa Complementar -->
<div class="icheck-primary d-inline">
<input type="checkbox" id="checkboxAddicionalTask"
unchecked>
<label for="checkboxAddicionalTask">
Tarefa Complementares
</label>
</div>
</div>
</div> </div>
<!-- general form elements disabled -->
<div id="descriptionAdditionalTask">
<div class="form-group">
<div class="card">
<div class="card-body">
<div class="text-center">
<p><b>Fluxo de Tarefas, Equipamento: {{$listEquipmentsProject->equipment_tag}}</b></p>
<p id="ValuesTableElementsTasks"></p>
</div>
<div class="row">
<div class="col-sm-6">
<p>Indique a tarefa complementar : </p>
<input type="text"
class="form-control">
</div>
<div class="col-sm-6">
<p>Selecione Após qual tarefa :</p>
<select id="ArrayListElementsTasks"
class="form-control">
<option value="InitTask">Tarefa
Inicial
</option>
</select>
</div>
</div>
<br>
<div class="row">
<div class="col-sm-6"></div>
<div class="col-sm-6 text-right">
<a type="button"
id="AddComplementTasks"
class="btn btn-outline-success ">Adicionar</a>
</div>
</div>
</div>
</div>
</div>
</div>
{{-- ./description --}}
</div> </div>
{{-- ./card-body --}} {{-- ./card-body --}}
</div> </div>
@ -2363,7 +2312,7 @@ class="form-control card_inputs"
</div> </div>
<!-- /.card-body --> <!-- /.card-body -->
@livewire('articulado.additonal-task',['equipment' => $listEquipmentsProject], key($listEquipmentsProject->equipment_id)) @livewire('articulado.additonal-task', ['equipment' => $listEquipmentsProject], key($listEquipmentsProject->equipment_id))
</div> </div>
{{-- ./description --}} {{-- ./description --}}
@ -2965,11 +2914,11 @@ class="form-control card_inputs"
</div> </div>
<!-- /.card-body --> <!-- /.card-body -->
<div class="card-footer"> {{-- <div class="card-footer">
{{-- @foreach ($taskExecutionOrders as $taskExecutionOrder) @foreach ($taskExecutionOrders as $taskExecutionOrder)
<p> {} <p> {}
</p> </p>
@endforeach --}} @endforeach
<!--Tarefa Complementar --> <!--Tarefa Complementar -->
<div class="icheck-primary d-inline"> <div class="icheck-primary d-inline">
<input type="checkbox" id="checkboxAddicionalTask" <input type="checkbox" id="checkboxAddicionalTask"
@ -2978,10 +2927,12 @@ class="form-control card_inputs"
Tarefa Complementares Tarefa Complementares
</label> </label>
</div> </div>
</div> </div> --}}
@livewire('articulado.additonal-task', ['equipment' => $listEquipmentsProject], key($listEquipmentsProject->equipment_id))
</div> </div>
<!-- general form elements disabled --> {{-- <!-- general form elements disabled -->
<div id="descriptionAdditionalTask"> <div id="descriptionAdditionalTask">
<div class="form-group"> <div class="form-group">
@ -3020,7 +2971,7 @@ class="btn btn-outline-success ">Adicionar</a>
</div> </div>
</div> </div>
</div> </div>
</div> </div> --}}
{{-- ./description --}} {{-- ./description --}}
</div> </div>
{{-- ./card-body --}} {{-- ./card-body --}}
@ -3095,8 +3046,9 @@ class="btn btn-outline-success ">Adicionar</a>
</div> </div>
<!-- ./Card card-Primary --> <!-- ./Card card-Primary -->
<a href="{{ route('test1', ['id' => $numberProject]) }}" class="btn btn-primary float-left">Anterior</a>
<a href="{{ route('test3', ['id' => $numberProject]) }}" class="btn btn-primary float-right">Seguinte</a> <a style="margin: 10px" href="{{ route('test1', ['id' => $numberProject]) }}" class="btn btn-primary float-left">Anterior</a>
<a style="margin: 10px" href="{{ route('test3', ['id' => $numberProject]) }}" class="btn btn-primary float-right">Seguinte</a>
</div> </div>
{{-- ./container-fluid --}} {{-- ./container-fluid --}}
@ -3390,41 +3342,6 @@ class="btn btn-outline-success ">Adicionar</a>
@endsection @endsection
@section('scriptsTemplateAdmin') @section('scriptsTemplateAdmin')
{{-- <script>
$(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) {
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
$('input[name="ordemTasks[' + item.elemental_tasks_id +
']"]').prop('checked', true);
});
// Abre a modal
// $('#modal-showEquipment').modal('show');
}
});
});
});
</script> --}}
<script> <script>
$(document).ready(function() { $(document).ready(function() {
@ -3584,39 +3501,6 @@ function(task) {
}) })
</script> </script>
{{-- <script>
$(document).ready(function() {
$('.open-modal').click(function(e) {
e.preventDefault();
var equipmentId = $(this).data('equipment-id');
$.ajax({
url: '/equipment/' +
equipmentId, // Ajuste a URL conforme a rota que você definiu
method: 'GET',
success: function(data) {
// Aqui você preenche a modal com os dados retornados
$('.modal-title').text('Equipamento : ' + data.equipment_tag);
// Remova o conteúdo anterior da modal
$('.modal-body').empty();
// Adicione os novos dados na modal
data.specificAttributes.forEach(function(attribute) {
$('.modal-body').append('<p>' + attribute
.general_attributes_equipment_description + '</p>');
$('.modal-body').append('<p>' + attribute
.specific_attributes_value + '</p>');
});
// Abre a modal
$('#modal-showEquipment').modal('show');
},
error: function(error) {
console.log(error);
}
});
});
});
</script> --}}
<script> <script>
$(function() { $(function() {
$("#ProjectEquipmentTable").DataTable({ $("#ProjectEquipmentTable").DataTable({
@ -3969,11 +3853,33 @@ function(task) {
}); });
</script> </script>
<script> <script>
$(document).ready(function() { $(document).ready(function() {
$('#mytable').DataTable(); $('#mytable').DataTable();
}); });
</script> </script>
{{-- <script type="text/javascript">
$(document).ready(function() {
$('#cardHeader').on('click', function(e) {
// Verifica se o clique não foi no botão
if (!$(e.target).is('#collapseButton') && !$(e.target).is('#collapseButton *')) {
$('#collapseButton').trigger('click');
}
});
});
</script> --}}
<script type="text/javascript">
$(document).ready(function() {
$('.clickable').on('click', function(e) {
// Verifica se o clique não foi no botão
if (!$(e.target).is('.collapse-button') && !$(e.target).is('.collapse-button *')) {
$(this).find('.collapse-button').trigger('click');
}
});
});
</script>
@endsection @endsection

View File

@ -111,7 +111,7 @@
Route::get('users/{id}/edit', 'edit')->name('users.edit'); Route::get('users/{id}/edit', 'edit')->name('users.edit');
Route::put('users/{user}', 'update')->name('users.update'); Route::put('users/{user}', 'update')->name('users.update');
Route::delete('users/{user}', 'destroy')->name('users.destroy'); Route::delete('users/{user}', 'destroy')->name('users.destroy');
Route::get('editProfile/{id}', 'EditProfile')->name('editProfile'); Route::post('editProfile/{id}', 'EditProfile')->name('editProfile');
}); });
Route::controller(CreateProjectController::class) Route::controller(CreateProjectController::class)
@ -182,7 +182,6 @@
|Crud model for the application's projects, where both their creation and the indication of project statuses are handled. |Crud model for the application's projects, where both their creation and the indication of project statuses are handled.
| |
*/ */
Route::get('/CreateUsers', [Pending_UserController::class, 'ListPendingUsers'])->name('CreateUsers');
Route::get('/CreateUsers/{id}', [Pending_UserController::class, 'ShowFormUser'])->name('ShowPendingUser'); Route::get('/CreateUsers/{id}', [Pending_UserController::class, 'ShowFormUser'])->name('ShowPendingUser');
Route::post('formulario/receive', [Pending_UserController::class, 'store'])->name('criarUser'); Route::post('formulario/receive', [Pending_UserController::class, 'store'])->name('criarUser');
@ -215,6 +214,7 @@
}); });
Route::get('/CreateUsers', [Pending_UserController::class, 'ListPendingUsers'])->name('CreateUsers');