fichaje automatico y escaneo

This commit is contained in:
amazuecos
2025-05-05 00:47:00 +02:00
parent fb7f2a28d9
commit 305eea00e6
19 changed files with 821 additions and 25 deletions

View File

@ -0,0 +1,55 @@
<div class="card h-100">
<div class="card-body">
<div class="row h-100">
<div class="col-6">
<div class="d-flex flex-column justify-content-evenly gap-2 h-100">
<div class="row mb-2">
<div class="col-md-6 mb-2">
<p class="mb-0">Tirada</p>
<h5 class="mb-0" id="tirada-info"></h5>
</div>
<div class="col-md-6 mb-2 <?= $maquinaEntity->tipo != "impresion" ? "d-none" : "" ?>" >
<p class="mb-0">Clicks</p>
<h5 class="mb-0" id="clicks-info"></h5>
</div>
</div>
<div class="row mb-2">
<div class="col-md-6">
<p class="mb-0 text-truncate">Tiempo estimado</p>
<h5 class="mb-0" id="tiempo-estimado-info"></h5>
</div>
<div class="col-md-6">
<p class="mb-0 text-truncate">Tiempo real</p>
<h5 class="mb-0" id="tiempo-real-info"></h5>
</div>
</div>
<div class="row" <?= $maquinaEntity->tipo != "impresion" ? "disabled" : "" ?>>
<div class="col-md-12 form-group form-group-lg">
<label for="input-click-init" class="form-label"><?= lang('Produccion.click_init') ?></label>
<input class="form-control input-lg ot-tarea-click" min="0" name="click_init" id="input-click-init" placeholder="<?= lang('Produccion.click_init') ?>" value="0">
</div>
<div class="col-md-12 form-group form-group-lg">
<label for="input-click-init" class="form-label input-lg"><?= lang('Produccion.click_end') ?></label>
<input class="form-control ot-tarea-click" min="0" name="click_end" id="input-click-end" placeholder="<?= lang('Produccion.click_end') ?>" value="0">
</div>
</div>
</div>
</div>
<div class="col-6 h-100">
<div class="d-flex flex-column justify-content-evenly gap-2 h-100">
<button type="button" data-estado="I" id="btn-start-tarea" class="maquina-btn btn btn-success w-100 d-flex justify-content-evenly action-btn"><span class="ti ti-player-play ti-lg"></span><?= lang('Produccion.maquinista.play_tarea') ?></button>
<button type="button" data-estado="S" id="btn-pause-tarea" class="maquina-btn btn btn-info w-100 d-flex justify-content-evenly d-none action-btn"><span class="ti ti-player-pause ti-lg"></span><?= lang('Produccion.maquinista.play_pause') ?></button>
<button type="button" data-estado="D" id="btn-stop-tarea" class="maquina-btn btn btn-warning w-100 d-flex justify-content-evenly"><span class="ti ti-player-stop ti-lg"></span><?= lang('Produccion.maquinista.play_stop') ?></button>
<button type="button" data-estado="F" id="btn-finish-tarea" class="maquina-btn btn btn-primary w-100 d-flex justify-content-evenly action-btn d-none"><span class="ti ti-player-eject ti-lg"></span><?= lang('Produccion.maquinista.play_end') ?></button>
<button type="button" id="btn-delete-tarea" class="maquina-btn btn btn-danger w-100 d-flex justify-content-evenly"><span class="ti ti-square-x ti-lg"></span><?= lang('Produccion.maquinista.cancel') ?></button>
</div>
</div>
</div>
</div>
</div>

View File

@ -18,7 +18,7 @@
<div class="row" id="maquinas-impresion">
<?php foreach ($maquinas["impresion"] as $key => $maquina): ?>
<div class="col-md-4 col-sm-2 col-lg-3 col-xs-12 mb-2 h-100 p-2">
<a href="<?= route_to("viewProduccionMaquinaTareasList", $maquina["maquinaId"]) ?>" type="button" class="maquina-btn btn btn-outline-primary w-100">
<a href="<?= route_to("viewProduccionMaquinaTareasList", $maquina["maquinaId"]) ?>" type="button" class="maquina-btn btn btn-outline-<?= $maquina['countMaquinaTareas'] > 0 ? "danger" : "primary" ?> w-100">
<span class="d-sm-inline-flex justify-content-between align-items-center gap-2">
<?= $maquina["nombre"] ?>
<?php if ($maquina["countTareas"] > 0): ?>
@ -39,7 +39,7 @@
<div class="row" id="maquinas-acabado">
<?php foreach ($maquinas["acabado"] as $key => $maquina): ?>
<div class="col-md-4 col-sm-2 col-lg-3 col-xs-12 mb-2 h-100 p-2">
<a href="<?= route_to("viewProduccionMaquinaTareasList", $maquina["maquinaId"]) ?>" type="button" class="maquina-btn btn btn-outline-primary w-100">
<a href="<?= route_to("viewProduccionMaquinaTareasList", $maquina["maquinaId"]) ?>" type="button" class="maquina-btn btn btn-outline-<?= $maquina['countMaquinaTareas'] > 0 ? "danger" : "primary" ?> w-100">
<span class="d-sm-inline-flex justify-content-between align-items-center gap-2">
<?= $maquina["nombre"] ?>
<?php if ($maquina["countTareas"] > 0): ?>
@ -60,7 +60,7 @@
<div class="row" id="maquinas-manipulado">
<?php foreach ($maquinas["manipulado"] as $key => $maquina): ?>
<div class="col-md-4 col-sm-2 col-lg-3 col-xs-12 mb-2 h-100 p-2">
<a href="<?= route_to("viewProduccionMaquinaTareasList", $maquina["maquinaId"]) ?>" type="button" class="maquina-btn btn btn-outline-primary w-100">
<a href="<?= route_to("viewProduccionMaquinaTareasList", $maquina["maquinaId"]) ?>" type="button" class="maquina-btn btn btn-outline-<?= $maquina['countMaquinaTareas'] > 0 ? "danger" : "primary" ?> w-100">
<span class="d-sm-inline-flex justify-content-between align-items-center gap-2">
<?= $maquina["nombre"] ?>
<?php if ($maquina["countTareas"] > 0): ?>

View File

@ -10,12 +10,21 @@
<div class="d-flex flex-row justify-content-end align-items-stretch mb-2 gap-2">
<a type="button" id="tarea-list-link" class="btn btn-primary" href="<?= route_to('viewProduccionMaquinaTareasList', $maquinaEntity->id) ?>"><span class="icon-base ti ti-list ti-xs me-1"></span> <?= lang('Produccion.maquinista.tarea_list') ?></a>
</div>
<div class="card">
<div class="card section-block">
<div class="card-body">
<h4 class="alert-heading d-flex align-items-center gap-1"><span style="color:red">ESCANEAR: </span><span class="fs-bold"><?= $maquinaEntity->nombre ?></span></h4>
<div class="row mb-2">
<?= view('themes/_commonPartialsBs/_alertBoxes'); ?>
<?= view('themes/_commonPartialsBs/_alertBoxes'); ?>
<div class="row ot-scan-wrapper">
<div class="col-md-4">
<button type="button" class="btn btn-danger" id="btn-reset-ots">
<span class="icon-base ti ti-trash me-1"></span>
<?= lang('Produccion.maquinista.reset') ?>
</button>
</div>
</div>
<div class="row mb-2 ot-scan-wrapper">
<div class="col-md-8 mb-2">
<div class="table-responsive">
<table id="table-scanned-ots" class="table-maquinista table table-hover table-sm">
<thead>
@ -38,16 +47,23 @@
<div class="fs-medium fs-bold mt-2"><?= lang('Produccion.maquinista.scan_ot_input_form_text') ?></div>
</div>
<div class="col-md-12 mb-2">
<button type="button" class="maquina-btn btn btn-primary w-100">
<button type="button" class="maquina-btn btn btn-primary w-100" id="btn-save-maquina-ots" disabled>
<span class="icon-base ti ti-arrow-big-right me-1"></span>
<?= lang('Produccion.maquinista.next_scan_ot') ?>
</button>
</div>
</div>
</div>
<div class="col-md-12 d-none" id="ot-maquina-tareas-link">
<a class="maquina-btn btn btn-primary w-100" href="<?= route_to('viewProduccionMaquinistaOtTareasView', $maquinaEntity->id) ?>">
<span class="icon-base ti ti-arrow-big-right me-1"></span>
<?= lang('Produccion.maquinista.next_scan_ot') ?>
</a>
</div>
</div>
</div>
</div>
</div>
<?= $this->endSection() ?>

View File

@ -0,0 +1,81 @@
<?= $this->include('themes/_commonPartialsBs/select2bs5') ?>
<?= $this->include('themes/_commonPartialsBs/datatables') ?>
<?= $this->include('themes/_commonPartialsBs/sweetalert') ?>
<?= $this->include('themes/_commonPartialsBs/_confirm2delete') ?>
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
<?= $this->section('content'); ?>
<!--Content Body-->
<div class="row" id="viewProduccionMaquinistaOtTareasView" data-id="<?= $maquinaEntity->id ?>">
<div class="nav-align-top">
<ul class="nav nav-pills mb-4 nav-fill" role="tablist">
<li class="nav-item mb-1 mb-sm-0">
<button
type="button"
class="nav-link active"
role="tab"
data-bs-toggle="tab"
data-bs-target="#navs-tarea"
aria-controls="navs-tarea"
aria-selected="true">
<span class="d-none d-sm-inline-flex align-items-center">
<?= lang('Produccion.ots') ?>
</span>
<i class="icon-base ti tabler-home icon-sm d-sm-none"></i>
</button>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade show active" id="navs-tarea">
<div class="container-fluid h-100">
<?= view('themes/_commonPartialsBs/_alertBoxes'); ?>
<div class="row tarea-card-action-block">
<div class="col-md-6 mb-2">
<div class="table-responsive">
<table id="table-scanned-ots" class="table-maquinista table table-hover table-sm">
<thead>
<tr>
<th class="w-20"><?= lang('Produccion.datatable.ot_id') ?></th>
<th class="w-30"><?= lang('Produccion.datatable.titulo') ?></th>
<th class="w-40"><?= lang('Produccion.datatable.barcode') ?></th>
<th class="w-10"></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<div class="col-md-6 mb-2">
<?= view("/themes/vuexy/components/cards/tarea_multiple_card_actions.php") ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?= $this->endSection() ?>
<?= $this->section('css') ?>
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/formvalidation/dist/css/formValidation.min.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/maquinista.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/notiflix/notiflix.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/sweetalert2/sweetalert2.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/spinkit/spinkit.css') ?>" />
<?= $this->endSection() ?>
<?= $this->section("additionalExternalJs") ?>
<script src="<?= site_url("themes/vuexy/vendor/libs/notiflix/notiflix.js") ?>"></script>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/FormValidation.js") ?>"></script>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/Bootstrap5.min.js") ?>"></script>
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/AutoFocus.min.js") ?>"></script>
<script src="<?= site_url('themes/vuexy/vendor/libs/sweetalert2/sweetalert2.js') ?>"></script>
<script type="module" src="<?= site_url("/assets/js/safekat/pages/configuracion/maquinista/viewTareaMultipleView.js") ?>"></script>
<?= $this->endSection() ?>