updating the visualization and creation of qrcodes by type of equipment, creation of a qrcode visualization modal with livewire component

This commit is contained in:
ygbanzato 2023-09-25 15:48:43 +01:00
parent f9c6cec070
commit 2ddc55eeed
13 changed files with 588 additions and 225 deletions

View File

@ -27,6 +27,8 @@
use App\Models\FurtherTasks; use App\Models\FurtherTasks;
use App\Models\WorkstationsAssociationTasks; use App\Models\WorkstationsAssociationTasks;
use App\Models\TasksAssociationAmbits; use App\Models\TasksAssociationAmbits;
use App\Models\QrcodesAssociatedEquipment;
use LengthException; use LengthException;
// use DataTables; // use DataTables;
@ -189,7 +191,6 @@ function () use ($writer) {
return $response; return $response;
} }
public function finishCreatingProject($numberProject) public function finishCreatingProject($numberProject)
{ {
// recebe atraves de sessao toda a vez quem entra no componente 'SelectElementalTasksInWonkstation' para selecionar as tarefas de cada Workstation // recebe atraves de sessao toda a vez quem entra no componente 'SelectElementalTasksInWonkstation' para selecionar as tarefas de cada Workstation
@ -1000,11 +1001,50 @@ public function processStep2(Request $request)
public function showStep3($company_projects_id) public function showStep3($company_projects_id)
{ {
//Sempre que entrar na view ja verifica se existe 'Workstations' preparadas para esta obra.
$listWorkstations = ConstructionWorkstation::where('company_projects_id', $company_projects_id)->get();
$equipments = Equipment::where('company_projects_id', $company_projects_id) $equipments = Equipment::where('company_projects_id', $company_projects_id)
->get(); ->get();
foreach ($equipments as $equipment) {
$tags = [];
if ($equipment->equipment_type_id == 3) {
$tags = ['@Corpo', '@Flange', '@Obturador'];
} elseif ($equipment->equipment_type_id == 1) {
$tags = ['@Corpo', '@Flange'];
}
foreach ($tags as $tag) {
$associatedEquipment = QrcodesAssociatedEquipment::where('equipment_id', $equipment->equipment_id)
->where('component_tag', 'LIKE', '%' . $tag)
->first();
if ($associatedEquipment) {
// Atualizar a coluna component_tag para ser igual à equipment_tag, mantendo a parte após o "@"
$newComponentTag = $equipment->equipment_tag . $tag;
$associatedEquipment->component_tag = $newComponentTag;
$associatedEquipment->save();
} else {
// Criar uma nova entrada
QrcodesAssociatedEquipment::create([
'equipment_id' => $equipment->equipment_id,
'component_tag' => $equipment->equipment_tag . $tag
]);
}
}
}
// 3. Verificar se há algum equipment_id em QrcodesAssociatedEquipment que não existe mais em Equipment e, se sim, excluí-lo.
$allEquipmentIds = Equipment::where('company_projects_id', $company_projects_id)->pluck('equipment_id')->toArray();
$orphanedEntries = QrcodesAssociatedEquipment::whereNotIn('equipment_id', $allEquipmentIds)->get();
foreach ($orphanedEntries as $orphanedEntry) {
$orphanedEntry->delete();
}
//Sempre que entrar na view ja verifica se existe 'Workstations' preparadas para esta obra.
$listWorkstations = ConstructionWorkstation::where('company_projects_id', $company_projects_id)->get();
$futherTasks = FurtherTasks::where('company_projects_id', $company_projects_id) $futherTasks = FurtherTasks::where('company_projects_id', $company_projects_id)
->get(); ->get();

View File

@ -0,0 +1,68 @@
<?php
namespace App\Livewire\ManagementDashboard;
use Livewire\Component;
use App\Models\Equipment;
use App\Models\ControlEquipmentWorkstation;
use App\Models\OrderEquipmentTasks;
class WorkManagement extends Component
{
public $totalEquipments;
public $type1Count;
public $type2Count;
public $type3Count;
public function mount()
{
$this->refreshData();
}
public function refreshData()
{
$this->totalEquipments = Equipment::count();
// Inicializar type3Count como 0
$this->type3Count = 0;
// Obter todos os equipamentos
$equipments = Equipment::all();
foreach ($equipments as $equipment) {
// conta quantos dados existem na model OrderEquipmentTasks, referente ao equipamento indicado
$tasksCount = OrderEquipmentTasks::where('equipment_id', $equipment->equipment_id)->count();
// Verifica quantos dados tem ao mesmo equipamento
$controlCount = ControlEquipmentWorkstation::where('equipment_id', $equipment->equipment_id)->count();
if ($controlCount >= $tasksCount) {
$isValid = ControlEquipmentWorkstation::where('equipment_id', $equipment->equipment_id)
->whereNotNull('entry_date')
->whereNotNull('departure_date')
->count() >= $tasksCount;
if ($isValid) {
$this->type3Count++;
$type3EquipmentIds[] = $equipment->equipment_id;
}
}
}
// Atualizar type2Count
$this->type2Count = Equipment::whereIn('equipment_id', ControlEquipmentWorkstation::select('equipment_id'))
->whereNotIn('equipment_id', $type3EquipmentIds)
->count();
// Contar equipamentos que NÃO estão em ControlEquipmentWorkstation
$this->type1Count = Equipment::whereNotIn('equipment_id', ControlEquipmentWorkstation::select('equipment_id'))->count();
}
public function render()
{
return view('livewire.management-dashboard.work-management');
}
}

View File

@ -5,19 +5,33 @@
use Livewire\Component; use Livewire\Component;
use App\Models\Equipment; use App\Models\Equipment;
use App\Models\QrcodesAssociatedEquipment;
class ShowQrcodeAndDetallsEquipment extends Component class ShowQrcodeAndDetallsEquipment extends Component
{ {
public $equipment; public $equipment;
public function mount($equipment){ public function mount($equipment)
{
$this->equipment = $equipment; $this->equipment = $equipment;
} }
public function render() public function render()
{ {
// $this->equipment = Equipment::find($this->equipment->id); // $this->equipment = Equipment::find($this->equipment->id);
return view('livewire.preparadas.show-qrcode-and-detalls-equipment'); // return view('livewire.preparadas.show-qrcode-and-detalls-equipment');
// $associatedEquipments = QrcodesAssociatedEquipment::where('equipment_id', $this->equipment->equipment_id)->get();
// return view('livewire.preparadas.show-qrcode-and-detalls-equipment', ['associatedEquipments' => $associatedEquipments]);
$associatedEquipments = QrcodesAssociatedEquipment::where('equipment_id', $this->equipment->equipment_id)->get();
$associatedArray = [];
foreach ($associatedEquipments as $associatedEquipment) {
$associatedArray[$associatedEquipment->id] = $associatedEquipment->component_tag;
} }
return view('livewire.preparadas.show-qrcode-and-detalls-equipment', ['associatedArray' => $associatedArray,'associatedEquipments' => $associatedEquipments]);
}
} }

View File

@ -63,5 +63,8 @@ public function hasInspectionYes()
return $this->orderEquipmentTasks()->where('inspection', 'Sim')->exists(); return $this->orderEquipmentTasks()->where('inspection', 'Sim')->exists();
} }
public function QrcodesAssociatedEquipment(){
return $this->hasMany(QrcodesAssociatedEquipment::class,'equipment_id','equipment_id');
}
} }

View File

@ -0,0 +1,26 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class QrcodesAssociatedEquipment extends Model
{
protected $fillable = ['equipment_id', 'component_tag'];
public $timestamps = false;
protected $table = 'qrcodes_associated_equipment';
protected $primaryKey = 'id';
use HasFactory;
public function equipment()
{
return $this->belongsTo(Equipment::class, 'equipment_id', 'equipment_id');
}
}

View File

@ -83,10 +83,13 @@ @font-face {
/* Estilo para dimencionar o cartao do qrcode */ /* Estilo para dimencionar o cartao do qrcode */
.modal-content-center { .modal-content-center {
display: flex; display: flex;
flex-direction: row;
/* Isso garante que os cartões sejam exibidos em uma linha horizontal */
flex-wrap: wrap;
/* Isso permite que os cartões se envolvam para a próxima linha se não houver espaço suficiente */
justify-content: center; justify-content: center;
align-items: center; align-items: center;
height: 100%; height: 100%;
/* Isso garante que o container ocupe toda a altura da modal */
} }
.card-to-print { .card-to-print {
@ -97,6 +100,8 @@ .card-to-print {
border: 1px solid #09255C; border: 1px solid #09255C;
box-sizing: border-box; box-sizing: border-box;
transform-origin: top left; transform-origin: top left;
margin: 10px;
/* Isso adiciona uma margem ao redor de cada cartão */
} }
.custom-row { .custom-row {
@ -114,7 +119,6 @@ .custom-row {
/* Remove a margem negativa padrão da classe row do Bootstrap */ /* Remove a margem negativa padrão da classe row do Bootstrap */
} }
.top { .top {
display: flex; display: flex;
justify-content: center; justify-content: center;
@ -154,15 +158,69 @@ .custom-rowAll {
/* Estilos para impressão */ /* Estilos para impressão */
@media print { @media print {
body * {
visibility: hidden;
}
/* body, /* body,
html { html {
margin: 0; margin: 0;
padding: 0; padding: 0;
} */ } */
body * {
visibility: hidden;
}
/* .modal,
.modal * {
visibility: visible !important;
}
.modal-content-center,
.modal-content-center * {
visibility: visible !important;
}
.card-to-print,
.card-to-print * {
visibility: visible !important;
}
.modal-content-center {
position: absolute;
top: 0;
left: 0;
width: auto;
height: auto;
}
.card-to-print {
display: inline-block;
margin-right: 2mm;
margin-bottom: 3mm;
} */
/* Mostra apenas o conteúdo da div .modal-content-center dentro de modais que têm um ID que começa com 'yourModalId-' */
[id^="yourModalId-"] .modal-content-center,
[id^="yourModalId-"] .modal-content-center .card-to-print,
[id^="yourModalId-"] .modal-content-center .card-to-print * {
visibility: visible !important;
}
[id^="yourModalId-"] .modal-content-center {
position: absolute;
top: 0;
left: 0;
width: auto;
height: auto;
}
[id^="yourModalId-"] .modal-content-center .card-to-print {
display: inline-block;
margin-right: 2mm;
margin-bottom: 3mm;
}
.print-container, .print-container,
.print-container * { .print-container * {
visibility: visible !important; visibility: visible !important;
@ -180,7 +238,13 @@ @media print {
page-break-inside: avoid; page-break-inside: avoid;
} }
.card-to-print, /* .card-to-print {
display: inline-block;
margin-right: 2mm;
margin-bottom: 3mm;
} */
/* .card-to-print,
.card-to-print * { .card-to-print * {
visibility: visible; visibility: visible;
} }
@ -189,7 +253,7 @@ @media print {
position: absolute; position: absolute;
left: 0; left: 0;
top: 0; top: 0;
} } */
} }

View File

@ -0,0 +1,39 @@
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<div>
<h1>Total de Equipamentos: {{ $totalEquipments }}</h1>
<canvas id="myPieChart" width="400" height="400"></canvas>
</div>
<script>
// Obtenha o contexto do elemento canvas
var ctx = document.getElementById('myPieChart').getContext('2d');
// Dados do componente Livewire
var type1Count = {{ $type1Count }};
var type2Count = {{ $type2Count }};
var type3Count = {{ $type3Count }};
// Crie um novo gráfico circular
var myPieChart = new Chart(ctx, {
type: 'doughnut',
data: {
labels: ['Nao Iniciados', 'Em progresso', 'Finalizadas'],
datasets: [{
data: [type1Count, type2Count, type3Count], // Dados do componente Livewire
backgroundColor: [
'rgba(255, 99, 132, 0.5)',
'rgba(54, 162, 235, 0.5)',
'rgba(255, 206, 86, 0.5)'
],
borderColor: [
'rgba(255, 99, 132, 1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)'
],
borderWidth: 1
}]
}
});
</script>

View File

@ -1,4 +1,4 @@
{{-- <script src="{{ asset('assets/dist/js/qrcode.js') }}"></script> --}} <script src="https://cdn.rawgit.com/davidshimjs/qrcodejs/gh-pages/qrcode.min.js"></script>
<div> <div>
<td><a href="#" data-toggle="modal" data-target="#yourModalId-{{ $equipment->equipment_id }}" <td><a href="#" data-toggle="modal" data-target="#yourModalId-{{ $equipment->equipment_id }}"
@ -7,8 +7,10 @@
</a> </a>
</td> </td>
<div class="modal fade" id="yourModalId-{{ $equipment->equipment_id }}" tabindex="-1" role="dialog"> {{-- <div class="modal fade" id="yourModalId-{{ $equipment->equipment_id }}" tabindex="-1" role="dialog" data-equipment-id="{{ $equipment->equipment_id }}"> --}}
<div class="modal-dialog"> <div class="modal fade" id="yourModalId-{{ $equipment->equipment_id }}" tabindex="-1" role="dialog"
data-equipment-id="{{ $equipment->equipment_id }}">
<div class="modal-dialog modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
@ -19,7 +21,16 @@
<div class="modal-body"> <div class="modal-body">
{{-- ID do Equipamento: <span>{{ $equipment->equipment_id }}</span> --}} {{-- ID do Equipamento: <span>{{ $equipment->equipment_id }}</span> --}}
<input hidden type="text" id="valor" value="{{ $equipment->equipment_tag }}"> <input hidden type="text" id="valor" value="{{ $equipment->equipment_tag }}">
{{-- Para guardar id sem mostrar no HTML --}}
<div id="associatedData" style="display: none;"
data-associated="{{ json_encode($associatedArray) }}">
</div>
<div class="modal-content-center"> <div class="modal-content-center">
@foreach ($associatedEquipments as $associatedEquipment)
<div class="card-to-print"> <div class="card-to-print">
<div class="top"> <div class="top">
</div> </div>
@ -40,10 +51,13 @@
<div class="custom-row" style="margin-top: 10px;"> <div class="custom-row" style="margin-top: 10px;">
<div class="col-sm qrcode-output" style="padding-left: 13px;" <div class="col-sm qrcode-output" style="padding-left: 13px;"
data-equipment-id="{{ $equipment->equipment_id }}"> data-equipment-id="{{ $associatedEquipment->id }}"
data-component-tag="{{ $associatedEquipment->component_tag }}">
</div> </div>
</div> </div>
<div class="custom-row"> <div class="custom-row">
<div class="col-sm text-center"> <div class="col-sm text-center">
<div style="margin-bottom: 13px;font-size: 1.1rem;color: #00B0EA"><b>TAG</b> <div style="margin-bottom: 13px;font-size: 1.1rem;color: #00B0EA"><b>TAG</b>
@ -51,6 +65,15 @@
</div> </div>
</div> </div>
{{-- Serve para receber o conteudo que tem apos a @ --}}
<div class="custom-row">
<div class="col-sm text-center">
<div style="font-size: 1.1rem;color: #00B0EA">
{{ explode('@', $associatedEquipment->component_tag)[1] }}
</div>
</div>
</div>
<div class="custom-row"> <div class="custom-row">
<div class="col-sm text-center"> <div class="col-sm text-center">
<h6 style="line-height: 2.5;margin-block-end: 0;color: #00B0EA;"> <h6 style="line-height: 2.5;margin-block-end: 0;color: #00B0EA;">
@ -62,18 +85,23 @@
</div> </div>
</div> </div>
<div class="custom-row" style="margin-top: 23px;"> <div class="custom-row" style="margin-top: 10px;">
<div class="col-sm text-center"> <div class="col-sm text-center">
<img style="width: 35px;" src="{{ asset('img/ispt/4.0/galpLogo1.png') }}" <img style="width: 25px;" src="{{ asset('img/ispt/4.0/galpLogo1.png') }}"
alt="Imagem nao encontrada galp "> alt="Imagem nao encontrada galp ">
</div> </div>
<div class="col-sm text-center"> <div class="col-sm text-center">
<img style="width: 30px;" src="{{ asset('img/ispt/4.0/isptLogoVertical.png') }}" <img style="width: 20px;"
src="{{ asset('img/ispt/4.0/isptLogoVertical.png') }}"
alt="Imagem nao contrada Ispt"> alt="Imagem nao contrada Ispt">
</div> </div>
</div> </div>
</div> </div>
@endforeach
</div> </div>
<br> <br>
<div class="text-center"> <div class="text-center">
<button class="btn btn-outline-secondary " onclick="printCard()">Imprimir Cartão</button> <button class="btn btn-outline-secondary " onclick="printCard()">Imprimir Cartão</button>
@ -88,3 +116,46 @@
</div> </div>
</div> </div>
</div> </div>
<script>
$(document).ready(function() {
$('#yourModalId-{{ $equipment->equipment_id }}').on('shown.bs.modal', function() {
// Limpar QR codes antigos
$('.qrcode-output').empty();
// Para cada associatedEquipmentId na modal
$('.qrcode-output', this).each(function() {
var associatedEquipmentId = $(this).data('equipment-id');
var componentTag = $(this).data('component-tag');
console.log("associatedEquipmentId:",
associatedEquipmentId); // Log para verificar
console.log("componentTag:", componentTag); // Log para verificar
// Se o componentTag existir, crie o QR code
if (componentTag) {
new QRCode(this, {
text: componentTag,
width: 140,
height: 140,
colorDark: '#09255C',
colorLight: "white",
correctLevel: QRCode.CorrectLevel.H
});
}
});
});
});
function printEquipments() {
// Acione a impressão
window.print();
}
function printCard() {
window.print();
}
</script>

View File

@ -1774,6 +1774,9 @@ class="form-control card_inputs"
<input type="checkbox" name=""> <input type="checkbox" name="">
</td> </td>
</tr> </tr>
<tr> <tr>
<td>TE11</td> <td>TE11</td>
<td>Inspeção Final</td> <td>Inspeção Final</td>
@ -2924,6 +2927,24 @@ class="form-control card_inputs"
<input type="checkbox" name=""> <input type="checkbox" name="">
</td> </td>
</tr> </tr>
<tr>
<td>TE10.1</td>
<td>Confirmação de ligação</td>
{{-- Apenas para ver se recebe um on ou off, o hidden serve para devolver valor se o checkbox não estiver a 'checked' --}}
<td class="text-center">
<input type="hidden"
name="ordemTasks[24]"
value="off">
<input type="checkbox"
name="ordemTasks[24]" value="on"
{{ old('ordemTasks[24]') == 'on' ? 'checked' : '' }}>
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr> <tr>
<td>TE11</td> <td>TE11</td>
<td>Inspeção Final</td> <td>Inspeção Final</td>

View File

@ -24,8 +24,8 @@
<!-- Main content --> <!-- Main content -->
<section class="content"> <section class="content">
{{-- Foreach para criar varios qrcodes para os equipamentos --}}
@foreach ($equipmentsProjects as $equipment) {{-- @foreach ($equipmentsProjects as $equipment)
<div class="print-container"> <div class="print-container">
<div class="card-to-printAll"> <div class="card-to-printAll">
@ -51,8 +51,7 @@
<div class="custom-rowAll"> <div class="custom-rowAll">
<div class="col-sm text-center"> <div class="col-sm text-center">
<div <div style="margin-bottom: 13px;font-size: 1.1rem;color: #00B0EA">
style="margin-bottom: 13px;font-size: 1.1rem;color: #00B0EA">
<b>TAG</b> <b>TAG</b>
{{ $equipment->equipment_tag }} {{ $equipment->equipment_tag }}
</div> </div>
@ -61,33 +60,29 @@
<div class="custom-rowAll"> <div class="custom-rowAll">
<div class="col-sm text-center"> <div class="col-sm text-center">
<h6 <h6 style="line-height: 2.5;margin-block-end: 0;color: #00B0EA;">
style="line-height: 2.5;margin-block-end: 0;color: #00B0EA;">
{{ $equipment->equipmentType->equipment_type_name }} {{ $equipment->equipmentType->equipment_type_name }}
</h6> </h6>
</div> </div>
<div class="col-sm text-center"> <div class="col-sm text-center">
<h6 <h6 style="line-height: 2.5;margin-block-end: 0; color: #00B0EA;">
style="line-height: 2.5;margin-block-end: 0; color: #00B0EA;">
{{ $equipment->unit->unit_name }}</h6> {{ $equipment->unit->unit_name }}</h6>
</div> </div>
</div> </div>
<div class="custom-rowAll" style="margin-top: 23px;"> <div class="custom-rowAll" style="margin-top: 23px;">
<div class="col-sm text-center"> <div class="col-sm text-center">
<img style="width: 35px;" <img style="width: 35px;" src="{{ asset('img/ispt/4.0/galpLogo1.png') }}"
src="{{ asset('img/ispt/4.0/galpLogo1.png') }}"
alt="Imagem nao encontrada galp "> alt="Imagem nao encontrada galp ">
</div> </div>
<div class="col-sm text-center"> <div class="col-sm text-center">
<img style="width: 30px;" <img style="width: 30px;" src="{{ asset('img/ispt/4.0/isptLogoVertical.png') }}"
src="{{ asset('img/ispt/4.0/isptLogoVertical.png') }}"
alt="Imagem nao contrada Ispt"> alt="Imagem nao contrada Ispt">
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@endforeach @endforeach --}}
<div class="container-fluid"> <div class="container-fluid">
<div class="row justify-content-center"> <div class="row justify-content-center">
@ -122,14 +117,7 @@ class="btn btn-block bg-gradient-primary btn-lg">Articulado</a>
<div class="card-body p-0"> <div class="card-body p-0">
{{-- Nao tem motivos para funcionar nestas sutiacao, MAS FUNCIONA SEM ELE NAO APARECE OS QRCODES !!!! --}} {{-- Nao tem motivos para funcionar nestas sutiacao, MAS FUNCIONA SEM ELE NAO APARECE OS QRCODES !!!! --}}
<script>
// Gere os QR Codes automaticamente assim que a página é carregada
document.addEventListener("DOMContentLoaded", function() {
@foreach ($equipmentsProjects as $equipment)
createQrCode('{{ $equipment->equipment_id }}');
@endforeach
});
</script>
<table class="table table-striped text-center"> <table class="table table-striped text-center">
<tbody> <tbody>
@ -327,18 +315,10 @@ class="btn btn-secondary"
@endforeach @endforeach
</div> </div>
<!-- Botão para acionar a impressão --> <!-- Botão para acionar a impressão -->
{{-- <button onclick="printEquipments()">Imprimir Equipamentos</button> --}} {{-- <button onclick="printEquipments()">Imprimir Equipamentos</button> --}}
{{-- <script src="https://cdn.rawgit.com/davidshimjs/qrcodejs/gh-pages/qrcode.min.js"></script>
<script src="https://cdn.rawgit.com/davidshimjs/qrcodejs/gh-pages/qrcode.min.js"></script>
<script> <script>
function createQrCode(equipmentId) { function createQrCode(equipmentId) {
var userInput = document.querySelector('.valor-input[data-equipment-id="' + equipmentId + '"]').value; var userInput = document.querySelector('.valor-input[data-equipment-id="' + equipmentId + '"]').value;
@ -361,6 +341,15 @@ function createQrCode(equipmentId) {
}); });
</script> </script>
<script>
// Gere os QR Codes automaticamente assim que a página é carregada
document.addEventListener("DOMContentLoaded", function() {
@foreach ($equipmentsProjects as $equipment)
createQrCode('{{ $equipment->equipment_id }}');
@endforeach
});
</script>
<script> <script>
function printEquipments() { function printEquipments() {
// Acione a impressão // Acione a impressão
@ -370,7 +359,10 @@ function printEquipments() {
function printCard() { function printCard() {
window.print(); window.print();
} }
</script> </script> --}}
</tbody> </tbody>
@ -382,10 +374,12 @@ function printCard() {
</div> </div>
<!-- /.card-body --> <!-- /.card-body -->
<div class="card-footer"> <div class="card-footer">
<div class="float-left"> {{-- Botao para criar os Multiplos Qrcodes nas Folhas --}}
<button class="btn btn-outline-secondary " onclick="printCard()">Imprimir Códigos QR</button> {{-- <div class="float-left">
<button class="btn btn-outline-secondary " onclick="printCard()">Imprimir Códigos
QR</button>
</div> </div> --}}
<div class="float-right"> <div class="float-right">
<button type="button" class="btn btn-primary" data-toggle="modal" <button type="button" class="btn btn-primary" data-toggle="modal"
data-target="#ModalTransferForArticulated"> data-target="#ModalTransferForArticulated">

View File

@ -274,6 +274,9 @@
{{-- <script src="{{ asset('assets/plugins/bootstrap/js/bootstrap.bundle.min.js') }}"></script> --}} {{-- <script src="{{ asset('assets/plugins/bootstrap/js/bootstrap.bundle.min.js') }}"></script> --}}
@livewire('management-dashboard.work-management')
</body> </body>
</html> </html>

View File

@ -30,7 +30,11 @@
use App\Http\Controllers\WorkstationsJobsController; use App\Http\Controllers\WorkstationsJobsController;
Route::post('/register', [CustomRegistrationController::class, 'store'])->name('register');
route::get('testt', function () {
return view('test');
});
@ -38,27 +42,8 @@
Route::get('/CreateUsers', [Pending_UserController::class, 'ListPendingUsers'])->name('CreateUsers');
Route::get('/CreateUsers/{id}', [Pending_UserController::class, 'ShowFormUser'])->name('ShowPendingUser');
Route::post('formulario/receive', [Pending_UserController::class, 'store'])->name('criarUser');
/*
|--------------------------------------------------------------------------
| CRUD -Instalation
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/
Route::get('manageAssets', [ProjectoDatacontroller::class, 'ManageAssets'])->name('manageAssets');
// Mostrar Instalação click
Route::get('units/{id}', [ProjectoDatacontroller::class, 'showUnit'])->name('showUnit');
Route::get('/', [ProjectoDatacontroller::class, ('HomePage')])->name('home');
Route::get('user-data', [PreparedProjectController::class, 'getData1'])->name('getData'); Route::get('user-data', [PreparedProjectController::class, 'getData1'])->name('getData');
@ -142,6 +127,26 @@
Route::put('editProfile/{id}', 'EditProfile')->name('editProfile'); Route::put('editProfile/{id}', 'EditProfile')->name('editProfile');
}); });
/*
|--------------------------------------------------------------------------
| Create Users with Super Admin
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/
Route::middleware(['auth', 'checkUserType'])->group(function () {
// Rotas protegidas que exigem verificação de e-mail
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Create Projects with Super Admin and Admin | Create Projects with Super Admin and Admin
@ -185,18 +190,27 @@
Route::post('create-equipament-project', 'createEquipamentProject')->name('createEquipamentProject'); Route::post('create-equipament-project', 'createEquipamentProject')->name('createEquipamentProject');
Route::get('equipments/{id}/attributes', 'getAttributes'); Route::get('equipments/{id}/attributes', 'getAttributes');
}); });
// });
Route::get('/CreateUsers', [Pending_UserController::class, 'ListPendingUsers'])->name('CreateUsers');
Route::get('/CreateUsers/{id}', [Pending_UserController::class, 'ShowFormUser'])->name('ShowPendingUser');
Route::post('formulario/receive', [Pending_UserController::class, 'store'])->name('criarUser');
Route::post('/register', [CustomRegistrationController::class, 'store'])->name('register');
Route::get('formulario', function () {
return view('email/FormAdmin');
})->name('formulario');
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Create Users with Super Admin | CRUD -Instalation
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| |
| Here is where you can register web routes for your application. These | Here is where you can register web routes for your application. These
@ -204,14 +218,17 @@
| be assigned to the "web" middleware group. Make something great! | be assigned to the "web" middleware group. Make something great!
| |
*/ */
Route::get('manageAssets', [ProjectoDatacontroller::class, 'ManageAssets'])->name('manageAssets');
// Mostrar Instalação click
Route::get('units/{id}', [ProjectoDatacontroller::class, 'showUnit'])->name('showUnit');
Route::middleware(['auth', 'checkUserType'])->group(function () { Route::get('/', [ProjectoDatacontroller::class, ('HomePage')])->name('home');
// Rotas protegidas que exigem verificação de e-mail
}); });
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Template Excel | Template Excel
@ -222,6 +239,9 @@
| be assigned to the "web" middleware group. Make something great! | be assigned to the "web" middleware group. Make something great!
| |
*/ */
Route::get('formulario', function () {
return view('email/FormAdmin');
})->name('formulario');