From aaa479ef327fb4b25e426a039a307ef3cbe05278 Mon Sep 17 00:00:00 2001 From: ygbanzato Date: Mon, 22 Apr 2024 12:22:41 +0100 Subject: [PATCH] Update, company sistem --- app/Http/Controllers/ClientController.php | 7 +- .../Controllers/CreateProjectController.php | 14 +- .../ExecutionProjectController.php | 33 ++-- app/Http/Controllers/LanguageController.php | 2 +- .../Controllers/PreparedProjectController.php | 30 +++- app/Http/Controllers/userController.php | 100 ++++++++++- app/Http/Middleware/CheckUserType.php | 5 +- config/app.php | 2 +- public/companies_logo/1713530987.jpg | Bin 0 -> 12412 bytes public/companies_logo/1713705484.jpg | Bin 0 -> 12412 bytes public/companies_logo/1713711791.jpg | Bin 0 -> 12412 bytes public/companies_logo/logoISPT4.0.jpg | Bin 0 -> 48720 bytes .../showCompanyDetails.blade.php | 163 +++++++++++++++++- .../views/Templates/templateAdmin.blade.php | 3 +- resources/views/email/pendingUsers.blade.php | 60 +++++-- .../projectsClients/articulated_2.blade.php | 6 +- .../projectsClients/createProject.blade.php | 33 +--- .../executionProjectNew.blade.php | 108 ++++++++++++ .../projectDetails_1.blade.php | 3 +- ...wAllEquipmentsInProjectQrCodePdf.blade.php | 2 +- ...showDetailsEquipmentForQrCodePdf.blade.php | 5 +- routes/web.php | 40 +++-- 22 files changed, 524 insertions(+), 92 deletions(-) create mode 100644 public/companies_logo/1713530987.jpg create mode 100644 public/companies_logo/1713705484.jpg create mode 100644 public/companies_logo/1713711791.jpg create mode 100755 public/companies_logo/logoISPT4.0.jpg diff --git a/app/Http/Controllers/ClientController.php b/app/Http/Controllers/ClientController.php index ce6fb724..70d01591 100644 --- a/app/Http/Controllers/ClientController.php +++ b/app/Http/Controllers/ClientController.php @@ -4,6 +4,7 @@ use App\Models\AmbitsEquipment; use App\Models\AssociationCompanyUser; +use App\Models\Company; use App\Models\Equipment; use App\Models\EquipmentAssociationAmbit; use App\Models\EquipmentWorkHistory; @@ -300,7 +301,7 @@ public function getDataProjectsClient(Request $request) //Criar Filtros para Atualizar os dados com base neles. - $allPlantsClient = Plant::where('user_id', $clientID)->pluck('plant_id')->toArray(); + $allPlantsClient = Plant::where('company_id', $clientID)->pluck('plant_id')->toArray(); $query = CompanyProject::with('plant') // Assegure-se de que a relação está correta. ->whereIn('plant_id', $allPlantsClient) @@ -444,8 +445,10 @@ public function reportingDataClient($clientID = null) $clientID = Auth::user()->user_id; } + $companyDetails = Company::where('company_id',$clientID)->first(); + // Busca todas as Instalacoes com base no id do CLIENTE - $allPlantsClient = Plant::where('user_id', $clientID)->get(); + $allPlantsClient = Plant::where('company_id', $companyDetails->company_id)->get(); // Extrai os plant_id da coleção $recevePlantClient $plantsIds = $allPlantsClient->pluck('plant_id'); diff --git a/app/Http/Controllers/CreateProjectController.php b/app/Http/Controllers/CreateProjectController.php index bebeefe3..b9825e37 100755 --- a/app/Http/Controllers/CreateProjectController.php +++ b/app/Http/Controllers/CreateProjectController.php @@ -845,7 +845,7 @@ public function CreateNewEquipmentFromPendingEquipment(Request $request, $id) public function processStep1(Request $request) { - // dd($request); + dd($request); //NAO DEVE SER CRIAR UMA NOVA EMPRESA NA CRIACAO DA OBRA (era uma boa ideia para facilitar ao Admin ter que criar a empresa para Depois a Obra, mas e necessario pelo facto da autentificao de 2 factores e envio e email , entao devido essa adicoes, nao preciso atualmente fazer sentido criar isto) // Dito isto vamos sempre pensar que o Cliente ja deve estar criado , para ser feita uma Obra para o mesmo. // dd($request); @@ -1146,7 +1146,6 @@ public function processStep2(Request $request) // Inicializa o contador para ispt_number $isptNumber = 1; - // Confirma que o arquivo foi enviado,ou seja sua existencia. // Antes de verificar o documento excel, deve ter uma forma de confirmar o mesmo como arquivo legitivo para criar dados de acordo com o nosso template. if ($file) { @@ -1218,12 +1217,10 @@ function normalize($value) foreach ($data as $i => $dataLines) { - - - // Em cada um das linhas horizontais do excel, vai se guardar a 'key' vinculada ao valor do campo preenchido ou seja a 'key' vai ter o mesmo nome de um dos dados da tabela 'general_attributes_equipaments' na coluna : general_attributes_equipment_description, assim sendo mais facil implementar na tabela : specific_attributes_equipament_types $joinArrays = array_combine($columnNames, $dataLines); + // vai guardar todos os campos de possiveis novos equipamentos, cada um em um array para multiplos inserts, na base de dados $datas = array_filter($joinArrays, function ($chave) { return !empty ($chave); @@ -1243,6 +1240,7 @@ function normalize($value) ->where('plant_id', $detailsCompanyProject->plant_id) ->first(); + //Indentifica qual o tipo de equipamento selecionado de acordo com a tabela EquipmentType $equipmentType = EquipmentType::where('equipment_type_name', $datas['equipment_type_name'])->first(); @@ -1753,17 +1751,19 @@ public function storeProject(Request $request) public function getByUserNif(Request $request) { + // dd($request); + $companyId = $request->input('company_id'); // Considerando que este ID é na verdade o ID da empresa // Busca as instalações associadas à empresa - // $installations = Plant::where('company_id', $companyId)->get(); + $installations = Plant::where('company_id', $companyId)->get(); // Busca os usuários associados à empresa $userIds = AssociationCompanyUser::where('company_id', $companyId)->pluck('user_id'); $users = User::whereIn('user_id', $userIds)->get(); return response()->json([ - // 'installations' => $installations, + 'installations' => $installations, 'users' => $users ]); } diff --git a/app/Http/Controllers/ExecutionProjectController.php b/app/Http/Controllers/ExecutionProjectController.php index 8cbb256d..795eef88 100755 --- a/app/Http/Controllers/ExecutionProjectController.php +++ b/app/Http/Controllers/ExecutionProjectController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Models\Company; use App\Models\EquipmentWorkHistory; use App\Models\Plant; use App\Models\Unit; @@ -409,16 +410,6 @@ public function getDataEquipment1(Request $request) } - - - - - - - - - - public function enterWorkstation() { return view('workstations/index'); @@ -429,12 +420,32 @@ public function receiveExecutionProject($ProjectId) $DatasProject = CompanyProject::find($ProjectId); $equipmentsTypes = EquipmentType::all(); + $receivePlant = Plant::where('plant_id', $DatasProject->plant_id)->first(); + $receiveCompany = Company::where('company_id', $receivePlant->company_id)->first(); + // return view('projectsClients/executionProject') return view('projectsClients/executionProjectNew') ->with('DatasProject', $DatasProject) - ->with('equipmentsTypes', $equipmentsTypes); + ->with('equipmentsTypes', $equipmentsTypes) + ->with('receiveCompany', $receiveCompany); + } + public function changeFromExecutionToPlanning($projectID) + { + $receiveCompanyProject = CompanyProject::where('company_projects_id', $projectID)->first(); + + if ($receiveCompanyProject) { + $receiveCompanyProject->order_project = 1; // Supondo que 1 seja 'Planeamento' + $receiveCompanyProject->save(); + return redirect()->route('articulated_2', ['projectID' => $receiveCompanyProject->company_projects_id]) + ->with('success', 'O projeto foi alterado para Planeamento.'); + } else { + return back()->with('error', 'Projeto não encontrado.'); + } + } + + public function receiveWorkstationExecutionProject($receiveNumberProject) { $model = ConstructionWorkstation::where('company_projects_id', $receiveNumberProject)->with('workstationsAssociationTasks'); diff --git a/app/Http/Controllers/LanguageController.php b/app/Http/Controllers/LanguageController.php index 46ace41f..b94f2b60 100755 --- a/app/Http/Controllers/LanguageController.php +++ b/app/Http/Controllers/LanguageController.php @@ -10,7 +10,7 @@ public function switchLanguage(Request $request) { $locale = $request->input('locale'); - if (!in_array($locale, ['en', 'pt'])) { + if (!in_array($locale, ['pt', 'en'])) { abort(400); } diff --git a/app/Http/Controllers/PreparedProjectController.php b/app/Http/Controllers/PreparedProjectController.php index d5ed39d9..31309c49 100755 --- a/app/Http/Controllers/PreparedProjectController.php +++ b/app/Http/Controllers/PreparedProjectController.php @@ -2,7 +2,9 @@ namespace App\Http\Controllers; +use App\Models\Company; use App\Models\EquipmentWorkHistory; +use App\Models\Plant; use App\Models\QrcodesAssociatedEquipment; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; @@ -74,7 +76,6 @@ class PreparedProjectController extends Controller public function showAllEquipmentsInProjectForQrCode($projectId) { $equipments = Equipment::where('company_projects_id', $projectId)->get(); - $userLogoPath = Auth::user()->user_logo ? asset('user_logos/' . Auth::user()->user_logo) : asset('user_logos/logoISPT4.0.jpg'); $equipmentData = []; foreach ($equipments as $equipment) { @@ -95,11 +96,22 @@ public function showAllEquipmentsInProjectForQrCode($projectId) ]; } + $detailsCompanyProject = CompanyProject::find($projectId); + $detailsPlant = Plant::where('plant_id', $detailsCompanyProject->plant_id)->first(); + + $detailsCompany= Company::where('company_id', $detailsPlant->company_id)->first(); + + $logoPath = public_path('companies_logo/' . ($detailsCompany->company_logo ?: 'logoISPT4.0.jpg')); + + if (!file_exists($logoPath)) { + $logoPath = public_path('companies_logo/logoISPT4.0.jpg'); + } + // dd($equipmentData); $html = view('projectsClients.showAllEquipmentsInProjectQrCodePdf', [ 'equipmentData' => $equipmentData, - 'userLogoPath' => $userLogoPath + 'logoPath' => $logoPath ])->render(); $mpdf = new \Mpdf\Mpdf([ @@ -122,7 +134,17 @@ public function showDetailsEquipmentForQrCode($equipmentId, $projectId) // Converte o QR Code para base64 para incorporar na página $qrCodeImage = 'data:image/png;base64,' . base64_encode($writer->write($qrCode)->getString()); - // $userLogoPath = Auth::user()->user_logo ? asset('user_logos/' . Auth::user()->user_logo) : asset('user_logos/logoISPT4.0.jpg'); + $detailsCompanyProject = CompanyProject::find($projectId); + $detailsPlant = Plant::where('plant_id', $detailsCompanyProject->plant_id)->first(); + + $detailsCompany= Company::where('company_id', $detailsPlant->company_id)->first(); + + $logoPath = public_path('companies_logo/' . ($detailsCompany->company_logo ?: 'logoISPT4.0.jpg')); + + if (!file_exists($logoPath)) { + $logoPath = public_path('companies_logo/logoISPT4.0.jpg'); + } + $associatedEquipments = QrcodesAssociatedEquipment::where('equipment_id', $detailsEquipment->equipment_id)->get(); @@ -133,7 +155,7 @@ public function showDetailsEquipmentForQrCode($equipmentId, $projectId) $html = view('projectsClients.showDetailsEquipmentForQrCodePdf', [ 'detailsEquipment' => $detailsEquipment, - // 'userLogoPath' => $userLogoPath, + 'logoPath' => $logoPath, 'qrCodeImage' => $qrCodeImage, 'associatedArray' => $associatedArray ])->render(); diff --git a/app/Http/Controllers/userController.php b/app/Http/Controllers/userController.php index cf66ba7a..3faa8d2a 100755 --- a/app/Http/Controllers/userController.php +++ b/app/Http/Controllers/userController.php @@ -4,6 +4,8 @@ use App\Models\AssociationCompanyUser; use App\Models\Company; +use App\Models\CompanyProject; +use App\Models\Plant; use App\Models\TypeUser; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Auth; @@ -27,6 +29,7 @@ class userController extends Controller { + public function EditProfile(Request $request) { // Verifica se um arquivo foi enviado e se o tamanho é maior que 70 KB @@ -46,7 +49,6 @@ public function EditProfile(Request $request) 'nif' => 'required', ], $messages); - // dd($messages); $user = User::find($request->userID); @@ -259,19 +261,113 @@ public function showCompany($id) // Busca os detalhes dos usuários na tabela users usando os IDs coletados $companyUsers = User::whereIn('user_id', $userIds)->get(); - return view('Admin.CrudCompanies.showCompanyDetails', compact('company','companyUsers')); + + // Para cada cliente, obtemos os plant_ids associados + $plantIds = Plant::where('company_id', $company->company_id)->pluck('plant_id'); + + // Contamos os CompanyProjects associados com datas de início e fim não nulas + $projectCount = CompanyProject::whereIn('plant_id', $plantIds) + ->whereNotNull('date_started') + ->whereNotNull('end_date') + ->count(); + + return view('Admin.CrudCompanies.showCompanyDetails', compact('company', 'companyUsers', 'projectCount')); } public function createCompany(Request $request) { + // Função interna para normalizar nomes de empresas + function normalize($value) + { + $trimmed = trim($value); + $noInnerSpaces = str_replace(' ', '', $trimmed); + $lowercase = strtolower($noInnerSpaces); + return $lowercase; + } + + // Normaliza o nome da empresa recebido + $normalizedInputName = normalize($request->company_name); + + // Verifica se já existe uma empresa com nome similar + $existingCompany = Company::whereRaw("LOWER(REPLACE(company_name, ' ', '')) = ?", [$normalizedInputName])->first(); + + if ($existingCompany) { + return back()->with('danger', 'Uma empresa com um nome similar já existe.'); + } + + $createCompany = new Company; $createCompany->company_name = $request->company_name; + + // Primeiro, verificamos se um arquivo foi enviado e se seu tamanho é maior que 70KB. + if ($request->hasFile('company_logo') && $request->file('company_logo')->getSize() > 71680) { + return back()->with('danger', 'O tamanho da imagem não deve ser maior que 70KB.'); + } + + // Processo para salvar a imagem, se tudo estiver ok + if ($request->hasFile('company_logo')) { + $imageName = time() . '.' . $request->company_logo->extension(); + + // Move o novo arquivo de imagem para o diretório + $request->company_logo->move(public_path('companies_logo'), $imageName); + $createCompany->company_logo = $imageName; + + } else { + // Se nenhuma imagem foi enviada, atribuímos uma imagem padrão. + $createCompany->company_logo = 'logoISPT4.0.jpg'; + } + $createCompany->save(); return redirect('CreateUsers')->with('status', 'A Empresa ' . $createCompany->company_name . ' foi criada com êxito. Consulte na página "Empresas".'); } + public function companyEdit(Request $request) + { + // Verifica se um arquivo foi enviado e se o tamanho é maior que 70 KB + if ($request->hasFile('company_logo') && $request->file('company_logo')->getSize() > 71680) { + return back()->with('danger', 'O tamanho da imagem não deve ser maior que 70KB, valores não alteradas.'); + } + + $messages = [ + 'user_logo.max' => 'O tamanho da imagem não deve ser maior que 70KB.', + ]; + + $companyDetails = Company::find($request->companyId); + + // Processo para salvar a imagem, se tudo estiver ok + if ($request->hasFile('company_logo')) { + + $imageName = time() . '.' . $request->company_logo->extension(); + + // Verifica se o usuário já tem uma imagem e se é diferente da nova imagem + if ($companyDetails->company_logo && $companyDetails->company_logo != $imageName) { + // Constrói o caminho completo para o arquivo de imagem existente + $existingImagePath = public_path('companies_logo/' . $companyDetails->company_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->company_logo->move(public_path('companies_logo'), $imageName); + + // Atualiza o campo user_logo do usuário com o nome do novo arquivo de imagem + $companyDetails->company_logo = $imageName; + $companyDetails->save(); + + + return back()->with('success', 'Logo atualizado com sucesso!'); + } + + return back()->with('danger', 'Erro ao carregar a imagem.'); + } } + + diff --git a/app/Http/Middleware/CheckUserType.php b/app/Http/Middleware/CheckUserType.php index 19049e08..46ae471b 100755 --- a/app/Http/Middleware/CheckUserType.php +++ b/app/Http/Middleware/CheckUserType.php @@ -64,7 +64,8 @@ protected function getAllowedRoutesForUserType($userType) //Api.s 'getDataAmbitsOfProject','getDataEquipmentsOfProject','getEquipmentsOfAmbit']; case 2: // Administrador - return ['home', + return [ + 'home', 'createProject','processStep1','articulated_2', 'showAllClientsForProjectReports', 'manageAssets', @@ -76,6 +77,8 @@ protected function getAllowedRoutesForUserType($userType) 'articulated_2CreateEquipment','processStep2','deleteEquipmentInProject','changeAmbitEquipment', 'deletePendingEquipments','CreateNewEquipmentFromPendingEquipment','removeEquipment','receiveEquipmentToAssociateTasks', 'createCompany','ShowPendingUser','register','download','projectDetails_11','editEquipment','EditprocessStep1','createWorkStations','workstationsAssociationTasks','finishCreatingProject', + 'preparedProject','EditProjectForArticulated','companyEdit','reportingDataClient','ExecutionProject', + 'changeFromExecutionToPlanning', ]; diff --git a/config/app.php b/config/app.php index 0f3e510b..bc366b83 100755 --- a/config/app.php +++ b/config/app.php @@ -83,7 +83,7 @@ | */ - 'locale' => 'en', + 'locale' => 'pt', /* |-------------------------------------------------------------------------- diff --git a/public/companies_logo/1713530987.jpg b/public/companies_logo/1713530987.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ce91928d0f401447090aff08728e76d05dcb677a GIT binary patch literal 12412 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
  • *GQ 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 literal 0 HcmV?d00001 diff --git a/resources/views/Admin/CrudCompanies/showCompanyDetails.blade.php b/resources/views/Admin/CrudCompanies/showCompanyDetails.blade.php index b21f7a76..93e450b7 100644 --- a/resources/views/Admin/CrudCompanies/showCompanyDetails.blade.php +++ b/resources/views/Admin/CrudCompanies/showCompanyDetails.blade.php @@ -1,6 +1,32 @@ @extends('Templates/templateAdmin') @section('Main-content') + @if (session('success')) + + + @endif + + @if (session('danger')) + + + @endif +
    @@ -31,13 +57,142 @@
    -
    Detalhes da Empresa
    +
    {{ $company->company_name }}
    - Foto da Empresa - Qtd de Obras + + + + + + +
    + +
    + +
    +
    + +
    +
    + Company Logo +
    +
    + +
    + +
    + {{-- Criar um numero real --}} +

    Qtd de Obra Concluidas : {{$projectCount}}

    + Visualizar Obras da empresa +
    + +
    + + + {{--

    Logo empresa

    + + Company Logo + --}} + + {{-- Company Logo --}} + + {{--
    + +
    {{ $user->user_name }}
    +
    + +
    + +
    {{ $user->user_nif }}
    +
    + +
    + +
    {{ $user->email }}
    +
    + +
    + +
    {{ $user->userType->type_user }}
    +
    + +
    + +
    {{ $user->user_phone }}
    +
    + +
    + +
    {{ $user->created_at }}
    +
    --}} + +
    + +
    + +
    + + @csrf + {{-- Deve enviar o id da empresa junto --}} + + +
    + +
    + +
    + + +
    +
    + +
    + + + +
    + +
    + +
    + + + + + + +
    - +
    diff --git a/resources/views/Templates/templateAdmin.blade.php b/resources/views/Templates/templateAdmin.blade.php index 56a99701..c4ee5a0a 100755 --- a/resources/views/Templates/templateAdmin.blade.php +++ b/resources/views/Templates/templateAdmin.blade.php @@ -243,9 +243,8 @@ class="fas fa-bars"> class="form-inline"> @csrf
  • diff --git a/resources/views/email/pendingUsers.blade.php b/resources/views/email/pendingUsers.blade.php index b105806a..ec288922 100755 --- a/resources/views/email/pendingUsers.blade.php +++ b/resources/views/email/pendingUsers.blade.php @@ -7,6 +7,21 @@ @endif + @if (session('danger')) +
    + +
    + + @endif +
    @@ -42,7 +57,7 @@
    - +
    {{ __('messages.pendingUsers.submit') }}
    -
    + @csrf
    -
    +
    - +
    - +
    -
    - + +
    +
    + + + + +
    + + +
    +
    +
    + +
    +
    +
    {{-- /.card-body --}} @@ -146,4 +180,10 @@ class="fa-solid fa-eye text-primary"> }).buttons().container().appendTo('#tableReceiveAllPendingUsers_wrapper .col-md-6:eq(0)'); }); + + @endsection diff --git a/resources/views/projectsClients/articulated_2.blade.php b/resources/views/projectsClients/articulated_2.blade.php index 705a3c63..fc2d07bb 100755 --- a/resources/views/projectsClients/articulated_2.blade.php +++ b/resources/views/projectsClients/articulated_2.blade.php @@ -97,15 +97,15 @@ class="fas fa-plus"> @break @case(1) - Linhas duplicadas no Excel + Linhas duplicadas no Excel (Criado pendentes) @break @case(2) - Referente a equipamentos ja existentes + Referente a equipamentos ja existentes (Nenhum dado criado) @break @case(3) - Equipamentos Novos + Equipamentos Novos (Criado novos equipamentos) @break diff --git a/resources/views/projectsClients/createProject.blade.php b/resources/views/projectsClients/createProject.blade.php index 7d421ae2..52abdd69 100755 --- a/resources/views/projectsClients/createProject.blade.php +++ b/resources/views/projectsClients/createProject.blade.php @@ -67,9 +67,6 @@
    - {{-- --}} @@ -101,27 +98,19 @@
    - {{--
    - - -
    --}} -
    - +
    +
    -
    @@ -173,9 +162,7 @@
    - {{-- --}} +
    - +
    - +
    @@ -496,7 +481,7 @@ function updateSubmitButtonState() { // Busca dados combinados de gestores e instalações $.get('/api/installations?company_id=' + companyId, function(response) { - console.log(response); + response.users.forEach(function(user) { userManagerSelect.append(''); diff --git a/resources/views/projectsClients/executionProjectNew.blade.php b/resources/views/projectsClients/executionProjectNew.blade.php index e179bd21..c7991ac9 100755 --- a/resources/views/projectsClients/executionProjectNew.blade.php +++ b/resources/views/projectsClients/executionProjectNew.blade.php @@ -30,6 +30,11 @@
    +
    + Detalhes +
    +
    Equipamentos @@ -38,12 +43,90 @@ Tarefas
    + {{-- --}}
    +
    +
    +

    Detalhes da Obra

    +
    +
    + + + + + + + + + + + + + + + + + + + + + {{-- --}} + + + + + + + +
    Descrição da obra:{{ $DatasProject->company_project_description }}
    N.º obra ISPT:{{ $DatasProject->project_ispt_number }}
    Resp.ISPT:{{ $DatasProject->project_ispt_responsible }}
    Empresa :{{ $receiveCompany->company_name }}
    Resp.Cliente:{{ $DatasProject->project_company_responsible }}Yuri Empresa Teste
    N.º obra Cliente :{{ $DatasProject->project_company_number }}
    + +
    +
    + +
    +
    + + + + + + +
    + + +
    +

    Equipamentos

    @@ -107,6 +190,7 @@ $("#ViewEquipmentsButton").hide(); $("#CardViewTasks").hide(); $("#CardViewWorkstations").hide(); + $("#CardViewDetails").hide(); //Visualizacao das Tarefas $("#ViewTasksButton").on('click', function() { @@ -114,7 +198,9 @@ $("#CardViewTasks").show(); $("#ViewEquipmentsButton").show(); $("#ViewWorkstationButton").show(); + $("#ViewDetailsButton").show(); + $("#CardViewDetails").hide(); $("#CardViewEquipments").hide(); $("#CardViewWorkstations").hide(); $("#ViewTasksButton").hide(); @@ -124,9 +210,12 @@ $("#ViewEquipmentsButton").on('click', function() { $("#CardViewEquipments").show(); + $("#ViewTasksButton").show(); $("#ViewWorkstationButton").show(); + $("#ViewDetailsButton").show(); + $("#CardViewDetails").hide(); $("#CardViewTasks").hide(); $("#CardViewWorkstations").hide(); $("#ViewEquipmentsButton").hide(); @@ -138,11 +227,30 @@ $("#CardViewWorkstations").show(); $("#ViewEquipmentsButton").show(); $("#ViewTasksButton").show(); + $("#ViewDetailsButton").show(); + + $("#CardViewDetails").hide(); $("#CardViewEquipments").hide(); $("#CardViewTasks").hide(); $("#ViewWorkstationButton").hide(); }) + + $("#ViewDetailsButton").on('click', function() { + + $("#CardViewDetails").show(); + + $("#ViewDetailsButton").hide(); + $("#ViewEquipmentsButton").show(); + $("#ViewTasksButton").show(); + $("#ViewWorkstationButton").show(); + + + $("#CardViewWorkstations").hide(); + $("#CardViewEquipments").hide(); + $("#CardViewTasks").hide(); + + }) }); @endsection diff --git a/resources/views/projectsClients/projectDetails_1.blade.php b/resources/views/projectsClients/projectDetails_1.blade.php index 1d6e634e..6a09351b 100755 --- a/resources/views/projectsClients/projectDetails_1.blade.php +++ b/resources/views/projectsClients/projectDetails_1.blade.php @@ -32,6 +32,7 @@ +
    @@ -166,7 +167,7 @@
    + class="form-control float-right" min="{{ now()->format('Y-m-d\TH:i') }}">
    diff --git a/resources/views/projectsClients/showAllEquipmentsInProjectQrCodePdf.blade.php b/resources/views/projectsClients/showAllEquipmentsInProjectQrCodePdf.blade.php index b2f11f25..7dd32549 100644 --- a/resources/views/projectsClients/showAllEquipmentsInProjectQrCodePdf.blade.php +++ b/resources/views/projectsClients/showAllEquipmentsInProjectQrCodePdf.blade.php @@ -163,7 +163,7 @@ alt="Logo Esquerdo">
    - Logo Esquerdo
    diff --git a/resources/views/projectsClients/showDetailsEquipmentForQrCodePdf.blade.php b/resources/views/projectsClients/showDetailsEquipmentForQrCodePdf.blade.php index 3696039a..f89368f4 100644 --- a/resources/views/projectsClients/showDetailsEquipmentForQrCodePdf.blade.php +++ b/resources/views/projectsClients/showDetailsEquipmentForQrCodePdf.blade.php @@ -163,8 +163,9 @@ Logo Esquerdo
    - Logo Esquerdo + {{-- Logo Esquerdo --}} + Logo da Empresa
    diff --git a/routes/web.php b/routes/web.php index e3762cc7..1c0dbc77 100755 --- a/routes/web.php +++ b/routes/web.php @@ -38,24 +38,27 @@ }); -Route::get('viewProjectsList/{orderProjectID}',[ProjectoDatacontroller::class,'viewProjectsList'])->name('viewProjectsList'); +Route::get('viewProjectsList/{orderProjectID}', [ProjectoDatacontroller::class, 'viewProjectsList'])->name('viewProjectsList'); -Route::get('changeStateProject/{projectId}',[CreateProjectController::class,'changeStateProject'])->name('changeStateProject'); +Route::get('changeStateProject/{projectId}', [CreateProjectController::class, 'changeStateProject'])->name('changeStateProject'); -Route::get('deleteProject/{projectId}', [CreateProjectController::class,'deleteProject'])->name('deleteProject'); +Route::get('deleteProject/{projectId}', [CreateProjectController::class, 'deleteProject'])->name('deleteProject'); -Route::get('/checkProjectIsptNumber/{projectId?}',[ProjectoDatacontroller::class,'checkProjectIsptNumber'])->name('checkProjectIsptNumber'); +Route::get('/checkProjectIsptNumber/{projectId?}', [ProjectoDatacontroller::class, 'checkProjectIsptNumber'])->name('checkProjectIsptNumber'); -Route::post('deletePendingEquipments', [CreateProjectController::class, 'deletePendingEq -uipments'])->name('deletePendingEquipments'); +Route::post('deletePendingEquipments', [ + CreateProjectController::class, + 'deletePendingEq +uipments' +])->name('deletePendingEquipments'); Route::get('showDetailsEquipmentForQrCode/{equipmentId}/{projectId}', [PreparedProjectController::class, 'showDetailsEquipmentForQrCode'])->name('showDetailsEquipmentForQrCode'); -Route::get('showAllEquipmentsInProjectForQrCode/{projectId}' , [PreparedProjectController::class,'showAllEquipmentsInProjectForQrCode'])->name('showAllEquipmentsInProjectForQrCode'); +Route::get('showAllEquipmentsInProjectForQrCode/{projectId}', [PreparedProjectController::class, 'showAllEquipmentsInProjectForQrCode'])->name('showAllEquipmentsInProjectForQrCode'); Route::get('testRelatorio', [ProjectoDatacontroller::class, 'testRelatorio'])->name('testRelatorio'); @@ -71,14 +74,15 @@ // Nao gosto que esteja neste controller, verificar mais tarde Route::get('articulated_2/{projectID}/{equipmentID}', [ProjectoDatacontroller::class, 'projectDetails_11'])->name('projectDetails_11'); Route::get('manageAssets/{equipmentID}', [ProjectoDatacontroller::class, 'articulated_22'])->name('articulated_22'); -Route::get('showAmbitDetailsProjectHistory/{projectID}/{equipmentID}',[ProjectoDatacontroller::class, 'showAmbitDetailsProjectHistory'])->name('showAmbitDetailsProjectHistory'); + +Route::get('showAmbitDetailsProjectHistory/{projectID}/{equipmentID}', [ProjectoDatacontroller::class, 'showAmbitDetailsProjectHistory'])->name('showAmbitDetailsProjectHistory'); Route::get('getDataEquipment', [ExecutionProjectController::class, 'getDataEquipment'])->name('getDataEquipment'); -Route::post('deleteEquipmentInProject',[CreateProjectController::class,'deleteEquipmentInProject'])->name('deleteEquipmentInProject'); -Route::post('changeAmbitEquipment',[CreateProjectController::class,'changeAmbitEquipment'])->name('changeAmbitEquipment'); +Route::post('deleteEquipmentInProject', [CreateProjectController::class, 'deleteEquipmentInProject'])->name('deleteEquipmentInProject'); +Route::post('changeAmbitEquipment', [CreateProjectController::class, 'changeAmbitEquipment'])->name('changeAmbitEquipment'); Route::get('getDataEquipmentClient', [ExecutionProjectController::class, 'getDataEquipmentClient'])->name('getDataEquipmentClient'); @@ -170,7 +174,7 @@ //Api Route::get('getDataAmbitsOfProject', [ClientController::class, 'getDataAmbitsOfProject'])->name('getDataAmbitsOfProject'); Route::get('getDataEquipmentsOfProject', [ClientController::class, 'getDataEquipmentsOfProject'])->name('getDataEquipmentsOfProject'); - + // Relatorio por Ambito de uma Determinada Obra. Route::get('showReportingForAmbitsProject/{ambitId}/{projectId}', [ClientController::class, 'showReportingForAmbitsProject'])->name('showReportingForAmbitsProject'); //Api @@ -207,11 +211,12 @@ Route::post('editProfile/{id}', 'EditProfile')->name('editProfile'); - Route::get('company/{id}','showCompany')->name('showCompany'); - Route::post('createCompany','createCompany')->name('createCompany'); + Route::get('company/{id}', 'showCompany')->name('showCompany'); + Route::post('createCompany', 'createCompany')->name('createCompany'); + Route::post('companyEdit', 'companyEdit')->name('companyEdit'); }); - Route::post('editEquipmentTasks/{equipmentID}/{projectId}',[ProjectoDatacontroller::class,'editEquipmentTasks'])->name('editEquipmentTasks'); + Route::post('editEquipmentTasks/{equipmentID}/{projectId}', [ProjectoDatacontroller::class, 'editEquipmentTasks'])->name('editEquipmentTasks'); /* |-------------------------------------------------------------------------- @@ -222,7 +227,7 @@ Route::controller(CreateProjectController::class) ->group(function () { - + // indication of progress bar to projects that are in 'Planning' Route::get('projectDetails_1/{id}', 'showStep1')->name('projectDetails_1'); Route::get('articulated_2/{projectID}', 'showStep2')->name('articulated_2'); @@ -268,6 +273,9 @@ Route::get('ExecutionProject/{projectID}', [ExecutionProjectController::class, 'receiveExecutionProject'])->name('ExecutionProject'); Route::get('/ReceiveEquipmentIdForShowModal/{EquipmentID}', [ExecutionProjectController::class, 'receiveEquipmentIdForShowModal'])->name('ReceiveEquipmentIdForShowModal '); + Route::post('/changeFromExecutionToPlanning/{projectID}', [ExecutionProjectController::class, 'changeFromExecutionToPlanning'])->name('changeFromExecutionToPlanning'); + + //Gerir os Ativos gerais @@ -301,7 +309,7 @@ Route::get('/api/equipment/{id}', [CreateProjectController::class, 'showJson']); Route::get('/api/installations/', [CreateProjectController::class, 'getByUserNif']); Route::get('/api/ambits/{equipmentType}', [CreateProjectController::class, 'getAmbits']); -Route::get('/api/receiveQuestionsEquipment/{equipmentID}',[WorkstationsJobsController::class,'receiveQuestionsEquipment']); +Route::get('/api/receiveQuestionsEquipment/{equipmentID}', [WorkstationsJobsController::class, 'receiveQuestionsEquipment']);