Merge branch 'mod/presupuesto_admin' of https://git.imnavajas.es/jjimenez/safekat into mod/presupuesto_admin

This commit is contained in:
2025-01-03 10:59:16 +01:00
133 changed files with 8286 additions and 198 deletions

View File

@ -0,0 +1,61 @@
<form class="form-control" id="<?= $id ?>" data-id="<?= $model->id ?>">
<div class="row mb-2">
<!-- Servicio cliente nombre-->
<div class="col-xs-12 col-md-6 col-lg-6 mb-2">
<label for="servicio-cliente-nombre" class="form-label"><?= @lang("ServicioCliente.datatable.nombre") ?></label>
<input type="text" class="form-control" name="nombre" id="servicio-cliente-nombre">
</div>
<!-- Servicio cliente code-->
<div class="col-xs-12 col-md-6 col-lg-6 mb-2">
<label for="servicio-cliente-code" class="form-label"><?= @lang("ServicioCliente.datatable.code") ?></label>
<input type="text" class="form-control" name="code" id="servicio-cliente-code">
</div>
<!-- Tarifa acabado asociada a servicio -->
<div class="col-xs-12 col-md-8 col-lg-6 mb-2" id="container-tarifa-acabado-select">
<label for="servicio-cliente-tarifa-acabado" class="form-label"><?= @lang("Tarifaacabado.tarifaacabado") ?></label>
<select class="select2 form-select" name="tarifa_acabado_id" id="servicio-cliente-tarifa-acabado" placeholder="<?= @lang("Tarifaacabado.tarifasacabado") ?>">
</select>
<div class="form-text"><?= @lang("ServicioCliente.infoTarifaAcabado") ?></div>
</div>
<!-- Tarifa manipulado asociada a servicio-->
<div class="col-xs-12 col-md-8 col-lg-6 mb-2 d-none" id="container-tarifa-manipulado-select">
<label for="servicio-cliente-tarifa-manipulado" class="form-label"><?= @lang("Tarifamanipulado.tarifamanipulado") ?></label>
<select class="select2 form-select" name="tarifa_manipulado_id" id="servicio-cliente-tarifa-manipulado" placeholder="<?= @lang("Tarifamanipulado.tarifasmanipulado") ?>">
</select>
<div class="form-text"><?= @lang("ServicioCliente.infoTarifaManipulado") ?></div>
</div>
<!-- Check tarifa acabado o manipulado -->
<div class="col-xs-12 col-md-4 col-lg-6 mb-2">
<div class="text-light small fw-medium mb-2">Seleccione tipo de tarifa</div>
<div class="switches-stacked">
<label class="switch">
<input type="radio" class="switch-input" id="check-tarifa-acabado" name="switches-stacked-radio" checked />
<span class="switch-toggle-slider">
<span class="switch-on"></span>
<span class="switch-off"></span>
</span>
<span class="switch-label"><?= @lang("Tarifaacabado.tarifasacabado") ?></span>
</label>
<label class="switch">
<input type="radio" class="switch-input" id="check-tarifa-manipulado" name="switches-stacked-radio" />
<span class="switch-toggle-slider">
<span class="switch-on"></span>
<span class="switch-off"></span>
</span>
<span class="switch-label"><?= @lang("Tarifamanipulado.tarifasmanipulado") ?></span>
</label>
</div>
</div>
</div>
<div class="row mb-2">
<div class="col-md-12 d-flex justify-content-start gap-4">
<button type="button" class="btn btn-primary btn-md d-none" id="btn-new-servicio-cliente"><?= lang("App.global_save") ?></button>
<button type="button" class="btn btn-primary btn-md d-none" id="btn-update-servicio-cliente"><?= lang("App.global_save") ?></button>
<button type="button" class="btn btn-secondary btn-md"><?= lang("App.global_come_back") ?></button>
</div>
</div>
</form>

View File

@ -0,0 +1,30 @@
<div class="p-2" id="<?= $id ?>" data-id="<?= $tarifaId ?>">
<form action="" id="tarifa-maquina" class="needs-validation" novalidate>
<div class="row mb-3">
<div class="col-md-5 col-xs-12 mb-2">
<label for="select-tarifa-maquina">Máquina asociada</label>
<select id="select-tarifa-maquina" class="select2 form-select" data-allow-clear="true"></select>
</div>
<div class="col-md-5 col-xs-12 mb-2">
<label for="select-maquina-tarea">Tarea asociada</label>
<select id="select-maquina-tarea" class="select2 form-select" data-allow-clear="true"></select>
</div>
<div class="col-md-2 col-xs-12 mb-2" id="container-new-tarifa-maquina">
<br />
<button type="button" class="btn btn-md btn-primary w-100 text-truncate" id="btn-new-tarifa-maquina"><?= lang("App.notification_btn_add") ?></button>
</div>
</div>
</form>
<table id="table-tarifa-maquinas" class="table table-striped table-hover" style="width: 100%;">
<thead>
<tr>
<th><?= lang('Maquinas.maquinas') ?></th>
<th><?= lang('Maquinas.maquina_tarea') ?></th>
<th>Acción</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>

View File

@ -0,0 +1,22 @@
<div class="table-responsive">
<table id="<?= $id ?>" class="table table-striped table-hover" style="width: 100%;">
<thead>
<tr>
<th><?= lang('Produccion.datatable.pedido_id') ?></th>
<th><?= lang('Produccion.datatable.fecha_encuadernacion') ?></th>
<th><?= lang('Produccion.datatable.cliente') ?></th>
<th><?= lang('Produccion.datatable.titulo') ?></th>
<th><?= lang('Produccion.datatable.ubicacion') ?></th>
<th><?= lang('Produccion.datatable.tirada') ?></th>
<th><?= lang('Produccion.datatable.impresion') ?></th>
<th><?= lang('Produccion.datatable.logo') ?></th>
<th><?= lang('Produccion.datatable.progreso') ?></th>
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>

View File

@ -0,0 +1,20 @@
<div class="table-responsive">
<table id="<?= $id ?>" class="table table-hover">
<thead>
<tr>
<th><?= lang('Produccion.task.order') ?></th>
<th><?= lang('Produccion.task.task') ?></th>
<th><?= lang('Produccion.task.maquina_presupuesto') ?></th>
<th><?= lang('Produccion.task.maquina_actual') ?></th>
<!-- <th><?= lang('Produccion.task.imposicion_id') ?></th> -->
<th><?= lang('Produccion.task.tiempo_estimado') ?></th>
<th><?= lang('Produccion.task.tiempo') ?></th>
<th></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>

View File

@ -0,0 +1,17 @@
<div class="table-responsive">
<table id="<?= $id ?>" class="table table-striped table-hover" style="width: 100%;">
<thead>
<tr>
<th><?= lang('Produccion.datatable.papel') ?></th>
<th><?= lang('Produccion.datatable.gramaje') ?> (gr)</th>
<th><?= lang('Produccion.datatable.tareas') ?></th>
<th><?= lang('Produccion.datatable.tiradas') ?></th>
<th><?= lang('Produccion.datatable.tiempo') ?>(HH:MM)</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>

View File

@ -0,0 +1,38 @@
<div class="table-responsive">
<table id="<?= $id ?>" class="table table-striped table-hover" style="width: 100%;">
<thead>
<tr>
<th><?= lang('ID') ?></th>
<th><?= lang('Produccion.datatable.fecha_entrega_at') ?></th>
<th><?= lang('Produccion.datatable.titulo') ?></th>
<th><?= lang('Produccion.datatable.maquina') ?></th>
<th><?= lang('Produccion.datatable.tirada') ?></th>
<th><?= lang('Produccion.datatable.ancho') ?></th>
<th><?= lang('Produccion.datatable.alto') ?></th>
<th><?= lang('Produccion.datatable.papel') ?></th>
<th><?= lang('Produccion.datatable.gramaje') ?></th>
<!-- <th><?= lang('Produccion.datatable.corte') ?></th>
<th><?= lang('Produccion.datatable.metros_sel') ?></th>
<th><?= lang('Produccion.datatable.metros_papel') ?></th> -->
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
</tr>
<tr>
<th><input type="text" class="form-control planning-filter" name="otId" placeholder="ID"></th>
<th><input type="text" class="form-control planning-filter" name="fecha_entrega_real_at" placeholder="d/m/Y"></th>
<th><input type="text" class="form-control planning-filter" name="presupuesto_titulo" placeholder="Titulo"></th>
<th><select class="select2 form-select select-maquina" id="maquina-select-filter" name="maquina_planning_nombre"></select></th>
<th></th>
<th><input type="text" class="form-control planning-filter" name="maquina_ancho" placeholder="Ancho"></th>
<th><input type="text" class="form-control planning-filter" name="maquina_alto" placeholder="Alto"></th>
<th><select class="form-control" name=""></select></th>
<th><input type="text" class="form-control planning-filter" name=""></th>
<th></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>

View File

@ -0,0 +1,14 @@
<table id="<?= $id ?>" class="table table-striped table-hover" style="width: 100%;">
<thead>
<tr>
<th><?= lang('ServicioCliente.datatable.nombre') ?></th>
<th><?= lang('ServicioCliente.datatable.code') ?></th>
<th><?= lang('ServicioCliente.datatable.created_at') ?></th>
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
</tr>
</thead>
<tbody>
</tbody>
</table>

View File

@ -0,0 +1,37 @@
<?= $this->include('themes/_commonPartialsBs/select2bs5') ?>
<?= $this->include('themes/_commonPartialsBs/datatables') ?>
<?= $this->include('themes/_commonPartialsBs/_confirm2delete') ?>
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
<?= $this->section('content'); ?>
<div class="row">
<div class="col-md-12">
<div class="card card-info">
<div class="card-header">
<h3 class="card-title"><?= lang('ServicioCliente.cardTitle') ?></h3>
</div>
<!--//.card-header -->
<div class="card-body" id="serviciosClienteCard">
<?= view('themes/_commonPartialsBs/_alertBoxes'); ?>
<?= view('themes/vuexy/components/forms/servicio_cliente', ["id" => "formServicioCliente"]); ?>
</div>
<!--//.card-body -->
<div class="card-footer">
</div>
<!--//.card-footer -->
</div>
<!--//.card -->
</div>
<!--//.col -->
</div>
<!--//.row -->
<?= $this->endSection() ?>
<?= $this->section("additionalExternalJs") ?>
<script type="module" src="<?= site_url("assets/js/safekat/pages/configuracion/servicio_cliente/edit.js") ?>">
</script>
<?= $this->endSection() ?>

View File

@ -0,0 +1,37 @@
<?= $this->include('themes/_commonPartialsBs/select2bs5') ?>
<?= $this->include('themes/_commonPartialsBs/datatables') ?>
<?= $this->include('themes/_commonPartialsBs/_confirm2delete') ?>
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
<?= $this->section('content'); ?>
<div class="row">
<div class="col-md-12">
<div class="card card-info">
<div class="card-header">
<h3 class="card-title"><?= lang('ServicioCliente.cardTitle') ?></h3>
</div>
<!--//.card-header -->
<div class="card-body" id="serviciosClienteCard">
<?= view('themes/_commonPartialsBs/_alertBoxes'); ?>
<?= view('themes/vuexy/components/tables/servicios_cliente_table', ["id" => "tableServiciosCliente"]); ?>
</div>
<!--//.card-body -->
<div class="card-footer">
</div>
<!--//.card-footer -->
</div>
<!--//.card -->
</div>
<!--//.col -->
</div>
<!--//.row -->
<?= $this->endSection() ?>
<?= $this->section("additionalExternalJs") ?>
<script type="module" src="<?= site_url("assets/js/safekat/pages/configuracion/servicio_cliente/index.js") ?>">
</script>
<?= $this->endSection() ?>

View File

@ -19,15 +19,26 @@
<?= view("themes/vuexy/form/pedidos/_cabeceraItems") ?>
<?= view("themes/vuexy/form/pedidos/_lineasItems") ?>
<?php if (!(auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))) : ?>
<?= view("themes/vuexy/form/pedidos/_albaranesItems") ?>
<?= view("themes/vuexy/form/pedidos/_albaranesItems") ?>
<?php endif; ?>
<?= view("themes/vuexy/form/pedidos/_facturasItems") ?>
<?= view("themes/vuexy/components/chat_internal_pedido", data: ["modelId" => $pedidoEntity->id,"type" => "pedido"]) ?>
<?= view("themes/vuexy/components/chat_internal_pedido", data: ["modelId" => $pedidoEntity->id, "type" => "pedido"]) ?>
</div><!-- /.card-body -->
<div class="pt-4">
<?= anchor(route_to("listaPresupuestos"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary float-start"]) ?>
</div><!-- /.card-footer -->
</form>
<div class="row">
<div class="col-md-12 d-flex justify-content-between">
<div class="pt-4">
<?= anchor(route_to("listaPresupuestos"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary float-start"]) ?>
</div><!-- /.card-footer -->
<?php if ($pedidoEntity->estado == 'finalizado') : ?>
<div class="pt-4">
<button type="button" class="btn btn-primary btn-md" id="button-pedido-to-prod" data-id="<?= $pedidoEntity->id ?>"><span> <i class="ti ti-building-factory-2 ti-xs"></i> <?= lang("Produccion.btn_pedido_produccion_accion") ?> </span></button>
</div><!-- /.card-footer -->
<?php endif; ?>
</div>
</div>
</div><!-- //.card -->
</div>
<!--//.col -->
@ -43,9 +54,13 @@
<link rel="stylesheet"
href="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.bootstrap5.min.css") ?>">
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/sk-datatables.css') ?>">
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/sweetalert2/sweetalert2.css') ?>" />
<?= $this->endSection() ?>
<?= $this->section('additionalExternalJs') ?>
<script src="<?= site_url('themes/vuexy/vendor/libs/sweetalert2/sweetalert2.js') ?>"></script>
<script type="module" src="<?= site_url("assets/js/safekat/pages/produccion/to_prod.js") ?>"></script>
<script src="<?= site_url("/themes/vuexy/vendor/libs/flatpickr/flatpickr.js") ?>"></script>
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/dataTables.buttons.min.js") ?>">
</script>

View File

@ -0,0 +1,6 @@
<div class="cold-md-12 mt-3">
<!-- Comment text area-->
<label for="ot-comment" class="form-label"><h4><?= @lang("Produccion.comments") ?></h4></label>
<textarea rows=5 cols="10" type="text" class="form-control w-100" name="comentarios" id="ot-comment"></textarea>
</div>

View File

@ -0,0 +1,18 @@
<div class="accordion accordion-bordered mt-3" id="accordionOtCost">
<div class="card accordion-item active">
<h2 class="accordion-header">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionOtCostTip" aria-expanded="false" aria-controls="accordionOtCostTip">
<h4> <i class="tf-icon ti-receipt ti-xs ti">Costes producción</i> </h4>
</button>
</h2>
<div id="accordionOtCostTip" class="accordion-collapse collapse show" data-bs-parent="#accordionOtCost">
<div class="accordion-body">
<div class="row">
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,79 @@
<div class="accordion accordion-bordered mt-3" id="accordionOtDates">
<div class="card accordion-item active">
<h2 class="accordion-header">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionOtDatesTip" aria-expanded="false" aria-controls="accordionOtDatesTip">
<h4> <i class="tf-icon ti-calendar ti-xs ti">Fechas</i> </h4>
</button>
</h2>
<div id="accordionOtDatesTip" class="accordion-collapse collapse show" data-bs-parent="#accordionOtDates">
<div class="accordion-body mt-2">
<div class="row">
<!-- Date 1-->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<label for="ot-tiempo-procesamiento" class="form-label"><?= @lang("Produccion.tiempo_procesamiento") ?></label>
<input type="text" class="form-control" name="tiempo_procesamiento" placeholder="HH:MM" id="ot-tiempo-procesamiento" data-input disabled>
</div>
<!-- Date 2-->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<label for="ot-fecha-entrega" class="form-label"><?= @lang("Produccion.fecha_impresion") ?></label>
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="fecha_impresion_at" id="ot-fecha-impresion" data-input>
</div>
<!-- Date 2-->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<label for="ot-fecha-entrega" class="form-label"><?= @lang("Produccion.fecha_encuadernado") ?></label>
<input type="date" class="form-control ot-date" placeholder="DD/MM/YYYY" name="fecha_encuadernado_at" id="ot-fecha-encuadernado" data-input />
</div>
<!-- Date 4-->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<label for="ot-fecha-entrega" class="form-label"><?= @lang("Produccion.fecha_entrega_externo") ?></label>
<input type="date" class="form-control ot-date" placeholder="DD/MM/YYYY" name="fecha_entrega_externo" id="ot-fecha-entrega-externo" data-input />
</div>
<!-- Date 5-->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<div class="row d-flex flex-column">
<label for="ot-fecha-entrega" class="form-label"><?= @lang("Produccion.fecha_entrega_real") ?></label>
<input type="date" class="form-control ot-date" placeholder="DD/MM/YYYY" name="fecha_entrega_real_at" id="ot-fecha-entrega-real" data-input />
<label class="switch switch-danger switch-md mt-1">
<input type="checkbox" class="switch-input ot-preview" name="fecha_entrega_warning" />
<span class="switch-toggle-slider">
<span class="switch-on">
<i class="ti ti-alert-triangle"></i>
</span>
<span class="switch-off">
<i class="ti ti-x"></i>
</span>
</span>
<span class="switch-label">Inaplazable</span>
</label>
<label class="switch switch-md mt-1">
<input type="checkbox" class="switch-input ot-preview" name="fecha_entrega_warning_revised" />
<span class="switch-toggle-slider">
<span class="switch-on">
<i class="ti ti-check"></i>
</span>
<span class="switch-off">
<i class="ti ti-x"></i>
</span>
</span>
<span class="switch-label">Revisada</span>
</label>
</div>
</div>
<!-- Date 6-->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<label for="ot-fecha-entrega" class="form-label"><?= @lang("Produccion.fecha_entrega_estimada") ?></label>
<input type="date" class="form-control ot-date" placeholder="DD/MM/YYYY" name="fecha_entrega_estimada_at" id="ot-fecha-entrega-estimada" data-input disabled />
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,42 @@
<div class="accordion accordion-bordered mt-3" id="accordionOtDetails">
<div class="card accordion-item active">
<h2 class="accordion-header">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionOtDetailsTip" aria-expanded="false" aria-controls="accordionOtDetailsTip">
<h4> <i class="tf-icon ti-file-info ti-xs ti">Detalles</i> </h4>
</button>
</h2>
<div id="accordionOtDetailsTip" class="accordion-collapse collapse show" data-bs-parent="#accordionOtDetails">
<div class="accordion-body">
<div class="row">
<!-- Detail 1-->
<div class="col-xs-12 col-md-4 col-lg-2 mb-2">
<label for="ot-formato" class="form-label"><?= @lang("Produccion.formato") ?></label>
<input type="text" class="form-control" name="formato" id="ot-formato" disabled>
</div>
<!-- Detail 2-->
<div class="col-xs-12 col-md-4 col-lg-2 mb-2">
<label for="ot-paginas" class="form-label"><?= @lang("Produccion.paginas") ?></label>
<input type="text" class="form-control" name="paginas" id="ot-paginas" name="presupuesto.paginas" disabled>
</div>
<!-- Detail 3-->
<div class="col-xs-12 col-md-4 col-lg-2 mb-2">
<label for="ot-solapa" class="form-label"><?= @lang("Produccion.solapa") ?></label>
<input type="text" class="form-control" name="solapa" id="ot-solapa" disabled>
</div>
<!-- Detail 4-->
<div class="col-xs-12 col-md-4 col-lg-2 mb-2">
<label for="ot-tirada" class="form-label"><?= @lang("Produccion.tirada") ?></label>
<input type="text" class="form-control" name="tirada" id="ot-tirada" name="presupuesto.tirada" disabled>
</div>
<!-- Detail 5-->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<label for="ot-merma" class="form-label"><?= @lang("Produccion.merma") ?></label>
<input type="text" class="form-control" name="merma" id="ot-merma" name="presupuesto.merma" disabled>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,77 @@
<div class="row mt-3">
<div class="col-md-4 text-start">
<label for="text-avisar-comercial">
<h4>Gestión de ferros</h4>
</label>
<p class="text-start">Indica si tiene ferro y las horas de entrega del mismo. Se le enviará un mensaje a comercial asociado indicando cuando estará disponible el ferro.</p>
</div>
<div class="col-md-8">
<div class="row mb-1">
<div class="col-md-12">
<label for="select-ferro-option" class="form-label">Gestión de envíos</label>
<select name="ferro_option" id="select-ferro-option" class="form-control">
<option value="0">Sin ferro</option>
<option value="1">24h</option>
<option value="2">48h</option>
</select>
</div>
</div>
<div class="row mb-1">
<div class="col-md-2">
<label for="codigo-postal" class="form-label">CP</label>
<input class="form-control" type="text" name="cp" id="codigo-postal">
</div>
<div class="col-md-6">
<label for="codigo-seguimiento" class="form-label">Código seguimiento</label>
<input class="form-control" type="text" name="codigo_seguimiento" id="codigo-seguimiento">
</div>
<div class="col-md-4">
<label for="select-empresa-envio-ferro" class="form-label">Empresa envío</label>
<select name="empresa_envio" id="select-empresa-envio-ferro" class="form-control">
</select>
</div>
</div>
</div>
</div>
<div class="row mt-3">
<div class="col-md-12">
<button type="button" class="btn btn-success btn-md w-100">Confirmar envío ferro</button>
</div>
</div>
<div class="row mt-3">
<hr>
<div class="col-md-4 text-start">
<label for="text-avisar-comercial">
<h4>Gestión de envíos</h4>
</label>
<p class="text-start">Introduce el número de seguimiento de envío. Se le enviará un mensaje al cliente asociado indicando el envío y el tracking.</p>
</div>
<div class="col-md-8">
<div class="row mb-1">
<div class="col-md-2">
<label for="codigo-postal-envio" class="form-label">CP</label>
<input class="form-control" type="text" name="cp-envio" id="codigo-postal-envio">
</div>
<div class="col-md-6">
<label for="n-bultos" class="form-label">N bultos</label>
<input class="form-control" min="0" type="number" name="n_bultos" id="n-bultos">
</div>
<div class="col-md-4">
<label for="select-empresa-envio-envio" class="form-label">Empresa envío</label>
<select name="empresa_envio" id="select-empresa-envio-envio" class="form-control">
</select>
</div>
</div>
</div>
</div>
<div class="row mt-3">
<div class="col-md-6">
<button type="button" class="btn btn-primary btn-md w-100">Etiqueda proveedor</button>
</div>
<div class="col-md-6">
<button type="button" class="btn btn-success btn-md w-100">Confirmar envío</button>
</div>
</div>

View File

@ -0,0 +1,22 @@
<div class="accordion accordion-bordered mt-3" id="accordionOtPortada">
<div class="card accordion-item">
<h2 class="accordion-header">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionOtPortadaTip" aria-expanded="false" aria-controls="accordionOtPortadaTip">
<h4> <i class="tf-icon ti-photo ti-xs ti">Portada</i> </h4>
</button>
</h2>
<div id="accordionOtPortadaTip" class="accordion-collapse collapse show" data-bs-parent="#accordionOtPortada">
<div class="accordion-body">
<div class="mb-3">
<label for="formFile" class="form-label">Portada</label>
<input class="form-control" type="file" id="portada-file-input">
</div>
<div class="mb-3">
<button type="button" class="btn btn-primary w-100" id="btn-upload-portada"><i class="ti ti-md ti-upload"></i>Subir portada </button>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,121 @@
<div class="col-sm-4">
<div class="text-light small fw-medium mb-4 text-start">Revisión</div>
<div class="d-flex flex-column justify-content-start text-start gap-2">
<label class="switch switch-md">
<input type="checkbox" class="switch-input ot-preview" name="revisar_formato"/>
<span class="switch-toggle-slider">
<span class="switch-on">
<i class="ti ti-check"></i>
</span>
<span class="switch-off">
<i class="ti ti-x"></i>
</span>
</span>
<span class="switch-label">Revisar formato</span>
</label>
<label class="switch switch-md">
<input type="checkbox" class="switch-input ot-preview" name="revisar_lomo" />
<span class="switch-toggle-slider">
<span class="switch-on">
<i class="ti ti-check"></i>
</span>
<span class="switch-off">
<i class="ti ti-x"></i>
</span>
</span>
<span class="switch-label">Revisar lomo</span>
</label>
<label class="switch switch-md">
<input type="checkbox" class="switch-input ot-preview" name="revisar_solapa" />
<span class="switch-toggle-slider">
<span class="switch-on">
<i class="ti ti-check"></i>
</span>
<span class="switch-off">
<i class="ti ti-x"></i>
</span>
</span>
<span class="switch-label">Revisar solapa</span>
</label>
</div>
</div>
<div class="col-sm-4">
<div class="text-light small fw-medium mb-4 text-start">&nbsp;</div>
<div class="d-flex flex-column justify-content-start text-start gap-2">
<label class="switch switch-md">
<input type="checkbox" class="switch-input ot-preview" name="revisar_isbn" />
<span class="switch-toggle-slider">
<span class="switch-on">
<i class="ti ti-check"></i>
</span>
<span class="switch-off">
<i class="ti ti-x"></i>
</span>
</span>
<span class="switch-label">Revisar ISBN,D.L.</span>
</label>
<label class="switch switch-md">
<input type="checkbox" class="switch-input ot-preview" name="revisar_codigo_barras" />
<span class="switch-toggle-slider">
<span class="switch-on">
<i class="ti ti-check"></i>
</span>
<span class="switch-off">
<i class="ti ti-x"></i>
</span>
</span>
<span class="switch-label">Revisar código de barras</span>
</label>
<label class="switch switch-md">
<input type="checkbox" class="switch-input ot-preview" name="realizar_imposicion" />
<span class="switch-toggle-slider">
<span class="switch-on">
<i class="ti ti-check"></i>
</span>
<span class="switch-off">
<i class="ti ti-x"></i>
</span>
</span>
<span class="switch-label">Realizar imposición</span>
</label>
</div>
</div>
<div class="col-sm-4">
<div class="text-light small fw-medium mb-4 text-start">&nbsp;</div>
<div class="d-flex flex-column justify-content-start text-start gap-2">
<label class="switch switch-md">
<input type="checkbox" class="switch-input ot-preview" name="enviar_impresion" />
<span class="switch-toggle-slider">
<span class="switch-on">
<i class="ti ti-check"></i>
</span>
<span class="switch-off">
<i class="ti ti-x"></i>
</span>
</span>
<span class="switch-label">Enviar a imprimir</span>
</label>
</div>
</div>
<div class="row mt-3">
<hr>
<div class="col-md-6 text-start">
<label for="text-avisar-comercial">
<h4>Avisar comercial</h4>
</label>
<p class="text-start">Enviar un mensaje al comercial indicando que faltan materiales.
La orden se marcará y aparecerá en el listado: OTs pendientes de material</p>
</div>
<div class="col-md-6">
<div class="row text-start">
<label for="comercial-message" class="form-label">Mensaje al comercial</label>
<textarea class="form-control" rows="5" cols="5" style="resize: none;" placeholder="Escriba un mensaje"></textarea>
</div>
<div class="row mt-3">
<button type="button" class="btn btn-primary btn-md p-2">Avisar comercial</button>
</div>
</div>
</div>

View File

@ -0,0 +1,95 @@
<div class="accordion accordion-bordered mt-3" id="accordionOtProgress">
<div class="card accordion-item active">
<h2 class="accordion-header">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionOtProgressTip" aria-expanded="false" aria-controls="accordionOtProgressTip">
<h4> <i class="tf-icon ti-hourglass ti-xs ti">Progreso</i> </h4>
</button>
</h2>
<div id="accordionOtProgressTip" class="accordion-collapse collapse show" data-bs-parent="#accordionOtProgress">
<div class="accordion-body">
<div class="row">
<div class="col-md-12 mb-3">
<label class="form-label" for="ot-progress-bar-parent"><?=@lang("App.progress") ?></label>
<div class="progress" id="ot-progress-bar-parent">
<div id="ot-progress-bar" class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</div>
</div>
<div class="row">
<!-- Progress -->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<label for="ot-pendiente-ferro" class="form-label"><?= @lang("Produccion.pendiente_ferro") ?></label>
<input type="text" class="form-control ot-date" name="pendiente_ferro_at" placeholder="DD/MM/YYYY" id="ot-pendiente-ferro">
</div>
<!-- Progress -->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<label for="ot-ferro-cliente" class="form-label"><?= @lang("Produccion.ferro_cliente") ?></label>
<input type="text" class="form-control ot-date" name="ferro_en_cliente_at" placeholder="DD/MM/YYYY" id="ot-ferro-cliente">
</div>
<!-- Progress -->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<label for="ot-ferro-ok" class="form-label"><?= @lang("Produccion.ferro_ok") ?></label>
<input type="text" class="form-control ot-date" name="ferro_ok_at" placeholder="DD/MM/YYYY" id="ot-ferro-ok">
</div>
<!-- Progress -->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<label for="ot-plakene-traslucido" class="form-label"><?= @lang("Produccion.plakene_traslucido") ?></label>
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="plakene_taslucido_at" id="ot-plakene-traslucido">
</div>
<!-- Progress -->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<label for="ot-impresion-color" class="form-label"><?= @lang("Produccion.impresion_color") ?></label>
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="interior_color_at" id="ot-impresion-color">
</div>
<!-- Progress -->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<label for="ot-portada" class="form-label"><?= @lang("Produccion.portada") ?></label>
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="cubierta_at" id="ot-portada">
</div>
<!-- Progress -->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<label for="ot-plastificado-mate" class="form-label"><?= @lang("Produccion.plastificado_mate") ?></label>
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="plastificado_at" id="ot-plastificado-mate">
</div>
<!-- Progress -->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<label for="ot-prep-guillotina" class="form-label"><?= @lang("Produccion.guillotina") ?></label>
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="corte_at" id="ot-prep-guillotina">
</div>
<!-- Progress -->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<label for="ot-espiral" class="form-label"><?= @lang("Produccion.espiral") ?></label>
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="espiral_at" id="ot-espiral">
</div>
<!-- Progress -->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<label for="ot-embalaje" class="form-label"><?= @lang("Produccion.embalaje") ?></label>
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="embalaje_at" id="ot-embalaje">
</div>
<!-- Progress -->
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
<label for="ot-envio" class="form-label"><?= @lang("Produccion.envio") ?></label>
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="envio_at" id="ot-envio">
</div>
</div>
<div class="row">
<div class="row">
<p><?= @lang("Produccion.tiempo_estimado") ?> :</p>
</div>
<div class="row">
<p><?= @lang("Produccion.tiempo_consumido") ?> :</p>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="d-grip">
<button type="button" id="btn-finalizar-orden-pedido" class="btn btn-primary btn-block w-100" <?=$ot->estado == "F" ? "disabled" : "" ?>><?=@lang("Produccion.finalizar_orden")?></button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,72 @@
<div class="accordion accordion-bordered mt-3" id="accordionOtTasks">
<div class="card accordion-item active">
<h2 class="accordion-header">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionOtTasksTip" aria-expanded="false" aria-controls="accordionOtTasksTip">
<h4> <i class="tf-icon ti-list-check ti-xs ti">Tareas</i> </h4>
</button>
</h2>
<div id="accordionOtTasksTip" class="accordion-collapse collapse show" data-bs-parent="#accordionOtTasks">
<div class="accordion-body">
<div class="card text-center">
<div class="card-header">
<div class="nav-align-top">
<ul class="nav nav-pills" role="tablist">
<li class="nav-item">
<button type="button" class="nav-link d-flex flex-column gap-1 active" role="tab" data-bs-toggle="tab" data-bs-target="#nav-ot-task-general" aria-controls="nav-ot-task-general-active" aria-selected="true">Tareas</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link d-flex flex-column gap-1" role="tab" data-bs-toggle="tab" data-bs-target="#nav-ot-task-preimpresion" aria-controls="nav-ot-task-preimpresion" aria-selected="false">Preimpresion</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link d-flex flex-column gap-1" role="tab" data-bs-toggle="tab" data-bs-target="#nav-ot-task-ferro-envio" aria-controls="nav-ot-task-ferro-envio" aria-selected="false">Ferros y envíos</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link d-flex flex-column gap-1" role="tab" data-bs-toggle="tab" data-bs-target="#nav-ot-task-messages" aria-controls="nav-ot-task-messages" aria-selected="false">Mensajes</button>
</li>
</ul>
</div>
</div>
<!-- CARD BODY -->
<div class="card-body">
<div class="tab-content p-0">
<!-- TAREAS -->
<div class="tab-pane fade show active" id="nav-ot-task-general" role="tabpanel">
<div class="row text-start">
<div class="col-md-12">
<?= view("themes/vuexy/components/tables/ot_task_table", ["id" => "ot-task-table"]) ?>
</div>
</div>
<div class="row text-end mt-2">
<div class="col-md-12">
<button type="button" class="btn btn-danger btn-md" id="btn-reset-tareas"><i class="ti ti-trash ti-xs"></i> Reiniciar tareas</button>
</div>
</div>
</div>
<!-- PREIMPRESION -->
<div class="tab-pane fade" id="nav-ot-task-preimpresion" role="tabpanel">
<div class="row text-start">
<?= view("themes/vuexy/form/produccion/ot/otPreimpresionReview") ?>
</div>
</div>
<!-- FERROS Y ENVIOS -->
<div class="tab-pane fade" id="nav-ot-task-ferro-envio" role="tabpanel">
<div class="row text-start">
<?= view("themes/vuexy/form/produccion/ot/otFerrosEnvios") ?>
</div>
</div>
<!-- MENSAJES -->
<div class="tab-pane fade" id="nav-ot-task-messages" role="tabpanel">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,45 @@
<?= $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="planning-rotativa-page">
<div class="col-md-12">
<div class="nav-tabs-shadow nav-align-top">
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item">
<button type="button" class="nav-link active" role="tab" id="navs-top-align-prot-tab" data-bs-toggle="tab" data-bs-target="#navs-top-align-prot"><?= lang("Produccion.planning_rotativa") ?></button>
</li>
<li class="nav-item">
<button type="button" class="nav-link" role="tab" id="navs-top-align-papel-gramaje-tab" data-bs-toggle="tab" data-bs-target="#navs-top-align-papel-gramaje"><?= lang("Produccion.papel_gramajes") ?></button>
</li>
</ul>
<div class="tab-content" id="prot-datatables-container">
<div class="tab-pane fade show active" id="navs-top-align-prot">
<?= view("themes/vuexy/components/tables/planning_rot_table.php", ["id" => "planning-rotativa-datatable"]) ?>
</div>
<div class="tab-pane fade show" id="navs-top-align-papel-gramaje">
<?= view("themes/vuexy/components/tables/planning_papel_gramaje_table.php", ["id" => "planning-papel-datatable"]) ?>
</div>
</div>
<!--//.card -->
</div>
</div>
<!--//.col -->
</div>
<?= $this->endSection() ?>
<?= $this->section('css') ?>
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/formvalidation/dist/css/formValidation.min.css') ?>" />
<?= $this->endSection() ?>
<?= $this->section("additionalExternalJs") ?>
<script type="module" src="<?= site_url("assets/js/safekat/pages/produccion/planning_rotativa/index.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>
<?= $this->endSection() ?>

View File

@ -0,0 +1,156 @@
<?= $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'); ?>
<div id="ot-edit" data-id="<?= $modelId ?>">
<div class="row">
<div class="col-md-2 d-flex align-items-center justify-content-center">
<div class="sk-wave sk-primary portada-loader">
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
</div>
<img class="rounded" id="portada-orden-trabajo" src="" width="100%" height="100%" hidden>
</div>
<div class="col-md-10">
<div class="alert alert-info h-100" role="alert" id="alert-orden-trabajo">
<div class="row">
<div class="col-md-10">
<div class="d-flex flex-row bd-highlight gap-2">
<div class="bd-highlight">
<h4>OT : </h4>
</div>
<div class="bd-highlight">
<h4><?= $ot->id ?></h4>
</div>
</div>
</div>
<div class="col-md-2">
<div class="d-flex flex-row bd-highlight justify-content-end">
<h4><?= $ot->progreso ?> %</h4>
</div>
</div>
</div>
<div class="row">
<div class="col-md-10">
<div class="d-flex flex-row bd-highlight gap-2">
<div class="bd-highlight">
<span><i class="tf-icons ti-md ti ti-building-factory-2"></i></span>
</div>
<div class="bd-highlight">
<h4><?= $presupuesto->titulo ?></h4>
</div>
</div>
</div>
<div class="col-md-2">
<div class="d-flex flex-row bd-highlight justify-content-end">
<button class="btn btn-sm btn-warning w-100">Presupuesto</button>
</div>
</div>
</div>
<div class="row">
<div class="col-md-10">
<div class="d-flex flex-row bd-highlight">
<div class="bd-highlight">
<span><i class="tf-icons ti-md ti ti-user"></i></span>
</div>
<div>
<h4><?= $cliente->nombre ?></h4>
</div>
</div>
</div>
<div class="col-md-2 ">
<div class="d-flex flex-row bd-highlight justify-content-end">
<button class="btn btn-sm btn-warning w-100">Pedido</button>
</div>
</div>
</div>
</div>
</div><!--//.col -->
</div><!--//.row -->
<div class="row">
<form id="ot-edit-form">
<div class="col-md-12">
<?= view("themes/vuexy/form/produccion/ot/otPortada") ?>
</div>
<div class="col-md-12">
<?= view("themes/vuexy/form/produccion/ot/otDates") ?>
</div>
<div class="col-md-12">
<?= view("themes/vuexy/form/produccion/ot/otDetails") ?>
</div>
<div class="col-md-12">
<?= view("themes/vuexy/form/produccion/ot/otProgress") ?>
</div>
<div class="col-md-12">
<?= view("themes/vuexy/form/produccion/ot/otTask") ?>
</div>
<div class="col-md-12">
<?= view("themes/vuexy/form/produccion/ot/otCosts") ?>
</div>
<div class="col-md-12">
<?= view("themes/vuexy/form/produccion/ot/otComments") ?>
</div>
</form>
<div class="col-md-12 mt-3">
<div class="d-grip gap-2">
<a type="button" class="btn btn-primary btn-block w-100 mb-1" target="__blank" href="<?= "/produccion/ordentrabajo/pdf/" . $modelId ?>"><?= @lang("Produccion.preview_pdf") ?></a>
<button type="button" class="btn btn-primary btn-block w-100 mb-1"><?= @lang("Produccion.imprimir_ferro") ?></button>
<button type="button" class="btn btn-secondary btn-block w-100 mb-1"><?= @lang("Produccion.imprimir_codigo_safekat") ?></button>
</div>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="modalCommentTarea" tabindex="-1" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel1"><?= lang('Produccion.tarea') ?></h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<label for="comment-tarea" class="form-label d-flex text-start w-100">Comentario &nbsp;<p id="comment-type"></p></label>
<textarea name="comment" class="form-control" id="comment-tarea" rows="5" cols="5"></textarea>
</div>
<div class="modal-footer">
<button type="button" id="btn-update-tarea-comment" class="btn btn-primary"><?= lang('Chat.modal.btn_send') ?></button>
<button type="button" class="btn btn-label-secondary" data-bs-dismiss="modal"><?= lang('App.global_come_back') ?></button>
</div>
</div>
</div>
<?= $this->endSection() ?>
<?= $this->section('css') ?>
<link rel="stylesheet" href="<?= site_url("themes/vuexy/vendor/libs/dropzone/dropzone.css") ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/spinkit/spinkit.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/sweetalert2/sweetalert2.css') ?>" />
<?= $this->endSection() ?>
<?= $this->section('additionalExternalJs') ?>
<script src="<?= site_url("themes/vuexy/vendor/libs/dropzone/dropzone.js") ?>"></script>
<script src="<?= site_url("themes/vuexy/vendor/libs/bs-stepper/bs-stepper.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/autosize/autosize.js') ?>"></script>
<script src="<?= site_url('themes/vuexy/vendor/libs/two/two.js') ?>"></script>
<script src="<?= site_url('themes/vuexy/vendor/libs/sweetalert2/sweetalert2.js') ?>"></script>
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>
<script type="module" src="<?= site_url('assets/js/safekat/pages/produccion/edit.js') ?>"></script>
<?= $this->endSection() ?>

View File

@ -0,0 +1,62 @@
<?= $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->include('themes/_commonPartialsBs/select2bs5') ?>
<?= $this->include('themes/_commonPartialsBs/datatables') ?>
<?= $this->include('themes/_commonPartialsBs/_confirm2delete') ?>
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
<?= $this->section('content'); ?>
<!--Content Body-->
<div class="row">
<div class="col-md-12">
<div class="nav-tabs-shadow nav-align-top">
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item">
<button type="button" class="nav-link active" role="tab" id="navs-top-align-finalizados-tab" data-bs-toggle="tab" data-bs-target="#navs-top-align-finalizados"><?= lang("Produccion.finalizadas") ?></button>
</li>
<li class="nav-item">
<button type="button" class="nav-link" role="tab" id="navs-top-align-pendientes-tab" data-bs-toggle="tab" data-bs-target="#navs-top-align-pendientes"><?= lang("Produccion.pendientes") ?></button>
</li>
<li class="nav-item">
<button type="button" class="nav-link" role="tab" id="navs-top-align-ferro-pendiente-tab" data-bs-toggle="tab" data-bs-target="#navs-top-align-ferro-pendiente"><?= lang("Produccion.pendiente_ferro") ?></button>
</li>
<li class="nav-item">
<button type="button" class="nav-link" role="tab" id="navs-top-align-ferro-ok-tab" data-bs-toggle="tab" data-bs-target="#navs-top-align-ferro-ok"><?= lang("Produccion.ferro_ok") ?></button>
</li>
</ul>
<div class="tab-content" id="ots-datatables-container">
<div class="tab-pane fade show active" id="navs-top-align-finalizados">
<?= view("themes/vuexy/components/tables/ot_table.php", ["id" => "ot-datatable-finalizados"]) ?>
</div>
<div class="tab-pane fade show" id="navs-top-align-pendientes">
<?= view("themes/vuexy/components/tables/ot_table.php", ["id" => "ot-datatable-pendientes"]) ?>
</div>
<div class="tab-pane fade show" id="navs-top-align-ferro-pendiente">
<?= view("themes/vuexy/components/tables/ot_table.php", ["id" => "ot-datatable-ferro-pendiente"]) ?>
</div>
<div class="tab-pane fade show" id="navs-top-align-ferro-ok">
<?= view("themes/vuexy/components/tables/ot_table.php", ["id" => "ot-datatable-ferro-ok"]) ?>
</div>
</div>
<!--//.card -->
</div>
</div>
<!--//.col -->
</div>
<?= $this->endSection() ?>
<?= $this->section('css') ?>
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/formvalidation/dist/css/formValidation.min.css') ?>" />
<?= $this->endSection() ?>
<?= $this->section("additionalExternalJs") ?>
<script type="module" src="<?= site_url("assets/js/safekat/pages/produccion/index.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>
<?= $this->endSection() ?>

View File

@ -74,5 +74,6 @@
</div><!--//.mb-3 -->
</div><!--//.col -->
</div><!-- //.row -->

View File

@ -51,7 +51,7 @@
<th><?= lang('TarifaAcabadoLineas.tiradaMax') ?></th>
<th><?= lang('TarifaAcabadoLineas.precioMin') ?></th>
<th><?= lang('TarifaAcabadoLineas.margen') ?></th>
<th class="noFilter" style="min-width:100px"></th>
<th class="noFilter" ></th>
</tr>
</thead>
<tbody>
@ -62,11 +62,27 @@
</div>
</div> <!-- //.accordion -->
<div class="accordion mt-3" id="accordionTarifaMaquinas" style="visibility:visible">
<div class="card accordion-item active">
<h2 class="accordion-header" id="headingTwo">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionTipTarifaMaquina" aria-expanded="false" aria-controls="accordionTipTarifaMaquina">
<h3>Tarifa máquinas</h3>
</button>
</h2>
<div id="accordionTipTarifaMaquina" class="accordion-collapse collapse show" data-bs-parent="#accordionTarifaMaquinas">
<div class="accordion-body">
<?= view("themes/vuexy/components/forms/tarifa_maquinas",["id" => "tarifa_maquina_component","tarifaId" => $tarifaacabadoEntity->id ]) ?>
</div>
</div>
</div>
</div> <!-- //.accordion -->
</div><!--//.row -->
<?= $this->endSection() ?>
<?= $this->section("additionalExternalJs") ?>
<script type="module" src="<?= site_url('assets/js/safekat/pages/tarifas/maquinas/acabado/index.js') ?>"></script>
<?= $this->endSection() ?>
<?= $this->section("additionalInlineJs") ?>
const lastColNr = $('#tableOfTarifasacabado').find("tr:first th").length - 1;

View File

@ -124,14 +124,29 @@
</div>
</div>
</div> <!-- //.accordion -->
<div class="accordion mt-3" id="accordionTarifaMaquinas" style="visibility:visible">
<div class="card accordion-item active">
<h2 class="accordion-header" id="headingTwo">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionTipTarifaMaquina" aria-expanded="false" aria-controls="accordionTipTarifaMaquina">
<h3>Tarifa máquinas</h3>
</button>
</h2>
<div id="accordionTipTarifaMaquina" class="accordion-collapse collapse show" data-bs-parent="#accordionTarifaMaquinas">
<div class="accordion-body">
<?= view("themes/vuexy/components/forms/tarifa_maquinas",["id" => "tarifa_maquina_component","tarifaId" => $tarifaEncuadernacionEntity->id ]) ?>
</div>
</div>
</div>
</div> <!-- //.accordion -->
<?= view("themes/_commonPartialsBs/_modalConfirmDialog") ?>
<?php endif; ?>
</div><!--//.row -->
<?= $this->endSection() ?>
<?= $this->section("additionalExternalJs") ?>
<script type="module" src="<?= site_url('assets/js/safekat/pages/tarifas/maquinas/encuadernacion/index.js') ?>"></script>
<?= $this->endSection() ?>
<!------------------------------------------->
<!-- Código JS para general -->
<!------------------------------------------->

View File

@ -62,8 +62,25 @@
</div>
</div>
</div> <!-- //.accordion -->
<div class="accordion mt-3" id="accordionTarifaMaquinas" style="visibility:visible">
<div class="card accordion-item active">
<h2 class="accordion-header" id="headingTwo">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionTipTarifaMaquina" aria-expanded="false" aria-controls="accordionTipTarifaMaquina">
<h3>Tarifa máquinas</h3>
</button>
</h2>
<div id="accordionTipTarifaMaquina" class="accordion-collapse collapse show" data-bs-parent="#accordionTarifaMaquinas">
<div class="accordion-body">
<?= view("themes/vuexy/components/forms/tarifa_maquinas",["id" => "tarifa_maquina_component","tarifaId" => $tarifaManipuladoEntity->id ]) ?>
</div>
</div>
</div>
</div> <!-- //.accordion -->
</div><!--//.row -->
<?= $this->endSection() ?>
<?= $this->section("additionalExternalJs") ?>
<script type="module" src="<?= site_url('assets/js/safekat/pages/tarifas/maquinas/manipulado/index.js') ?>"></script>
<?= $this->endSection() ?>
<?= $this->section("additionalInlineJs") ?>

View File

@ -15,11 +15,10 @@
<?= view("themes/vuexy/form/tarifas/preimpresion/_tarifapreimpresionFormItems") ?>
<div class="pt-4">
<input
type="submit"
class="btn btn-primary float-start me-sm-3 me-1"
name="save"
value="<?= lang("Basic.global.Save") ?>"
/>
type="submit"
class="btn btn-primary float-start me-sm-3 me-1"
name="save"
value="<?= lang("Basic.global.Save") ?>" />
<?= anchor(route_to("tarifapreimpresionList"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary"]) ?>
</div><!-- /.card-footer -->
@ -27,4 +26,21 @@
</div><!-- //.card -->
</div><!--//.col -->
</div><!--//.row -->
<div class="accordion mt-3" id="accordionTarifaMaquinas" style="visibility:visible">
<div class="card accordion-item active">
<h2 class="accordion-header" id="headingTwo">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionTipTarifaMaquina" aria-expanded="false" aria-controls="accordionTipTarifaMaquina">
<h3>Tarifa máquinas</h3>
</button>
</h2>
<div id="accordionTipTarifaMaquina" class="accordion-collapse collapse show" data-bs-parent="#accordionTarifaMaquinas">
<div class="accordion-body">
<?= view("themes/vuexy/components/forms/tarifa_maquinas", ["id" => "tarifa_maquina_component", "tarifaId" => $tarifapreimpresionEntity->id]) ?>
</div>
</div>
</div>
</div> <!-- //.accordion -->
<?= $this->endSection() ?>
<?= $this->section("additionalExternalJs") ?>
<script type="module" src="<?= site_url('assets/js/safekat/pages/tarifas/maquinas/preimpresion/index.js') ?>"></script>
<?= $this->endSection() ?>

View File

@ -69,6 +69,7 @@ $picture = "/assets/img/default-user.png";
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/rtl/theme-semi-dark.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/safekat.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/flatpickr/flatpickr.css') ?>"/>
@ -80,6 +81,7 @@ $picture = "/assets/img/default-user.png";
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/safekat.css') ?>" />
<!-- Helpers -->
<script src="<?= site_url('themes/vuexy/vendor/js/helpers.js') ?>"></script>
<script src="<?= site_url('themes/vuexy/js/config.js') ?>"></script>
@ -343,9 +345,11 @@ $picture = "/assets/img/default-user.png";
<script src="<?= site_url('themes/vuexy/vendor/libs/jquery/jquery.js') ?>"></script>
<script src="<?= site_url('themes/vuexy/vendor/libs/popper/popper.js') ?>"></script>
<script src="<?= site_url('themes/vuexy/vendor/js/bootstrap.js') ?>"></script>
<script src="<?= site_url('themes/vuexy/vendor/libs/flatpickr/flatpickr.js') ?>"></script>
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>
<script src="<?= site_url('themes/vuexy/vendor/libs/hammer/hammer.js') ?>"></script>
<script src="<?= site_url('themes/vuexy/vendor/js/menu.js') ?>"></script>
<script type="module" src="<?= site_url('assets/js/safekat/pages/chatNotification.js') ?>"></script>
<!-- endbuild -->

View File

@ -99,6 +99,13 @@ if (
</li>
<?php } ?>
<?php if (auth()->user()->inGroup('admin') || auth()->user()->inGroup('beta')) { ?>
<li class="menu-item">
<a href="<?= route_to("servicioClienteList") ?>" class="menu-link">
<?= lang("App.menu_servicios_cliente") ?>
</a>
</li>
<?php } ?>
<?php if (auth()->user()->inGroup('admin') || auth()->user()->inGroup('beta')) { ?>
<li class="menu-item">
<a href="<?= route_to('erroresPresupuestoIndex') ?>" class="menu-link">
<?= lang("App.menu_error_presupuesto") ?>

View File

@ -16,7 +16,7 @@ if (auth()->user()->inGroup('beta')) {
<?= lang("App.menu_orden_trabajo") ?>
</a>
</li>
<li class="menu-item">
<!-- <li class="menu-item">
<a href="<?= site_url("produccion/ordentrabajo/cien") ?>" class="menu-link">
<?= lang("App.menu_orden_trabajo_100") ?>
</a>
@ -30,6 +30,11 @@ if (auth()->user()->inGroup('beta')) {
<a href="<?= site_url("produccion/ordentrabajo/pendiente") ?>" class="menu-link">
<?= lang("App.menu_orden_trabajo_pendientes") ?>
</a>
</li> -->
<li class="menu-item">
<a href="<?= site_url("produccion/ordentrabajo/planning/rotativa") ?>" class="menu-link">
<?= lang("App.menu_planning_rotativa") ?>
</a>
</li>
</ul>
</li>

View File

@ -0,0 +1,322 @@
<?php
use CodeIgniter\I18n\Time;
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/pdf.ot.css') ?>">
<title>Rotativa</title>
</head>
<body>
<div>
<div class="header">
<div class="title"><?= $presupuesto->titulo ?></div>
<div><?= Time::now()->format("d/m/Y H:i:s") ?></div>
</div>
<div class="section">
<div class="cover">
<div class="portada">
<img class="portada-img" src="<?= "data:image/png;base64," . base64_encode(file_get_contents(WRITEPATH . "uploads/" . $ot->portada_path)) ?>">
</div>
<div class="portada-info">
<div class="portada-row">
<p class="portada-text pl-2"><strong><?= $dates->fecha_encuadernado_at ? week_day_humanize(Time::createFromFormat("Y-m-d", $dates->fecha_encuadernado_at)->getDayOfWeek(),true) : "" ?></strong></p>
<div class="portada-text pr-2"><strong>Comercial:</strong> <?= $cliente->first_name . " " . $cliente->comercial()->last_name ?> </div>
</div>
<div class="portada-row-2">
<div style="display: flex;flex-direction:column;height:100%;width:25%">
<p class="portada-text date" id="fecha_encuadernado_at"><?= $dates->fecha_encuadernado_at ? Time::createFromFormat("Y-m-d", $dates->fecha_encuadernado_at)?->format("d/m/Y") : "" ?></p>
<!-- <div style="width: 100%;height: 100%;background-color:white;margin-left:0.5rem;margin-bottom:0.5rem">
</div> -->
<div class="pl-2">
<table id="table-portada-ubicacion">
<tr class="t-row">
<th class="t-header">IN</th>
<td class="t-cell"><?= $ubicacion ?></td>
</tr>
<tr class="t-row">
<th class="t-header">PO</th>
<td class="t-cell"><?= $ubicacion ?></td>
</tr>
<tr class="t-row">
<th class="t-header">PL</th>
<td class="t-cell"><?= $ubicacion ?></td>
</tr>
<tr class="t-row">
<th class="t-header">EN</th>
<td class="t-cell"><?= $ubicacion ?></td>
</tr>
<tr class="t-row">
<th class="t-header">MA</th>
<td class="t-cell"><?= $ubicacion ?></td>
</tr>
</table>
</div>
</div>
<div style="display: flex;flex-direction:column;height:100%;width:10%" class="pt-2">
<div class="pl-2 pt-2">
<table id="table-portada-ubicacion">
<tr class="t-row">
<th class="t-header" style="font-size: large;">RF</th>
</tr>
</table>
</div>
</div>
<div class="square-wrapper">
<div class="square bg-white">
BCLF 100
</div>
<div class="square bg-white">
0:3
</div>
<div class="square bg-gray">
EM 300
</div>
<div class="square bg-blue">
BRILLO
</div>
</div>
<div class="cod">
<div class="code-code">
<p style="line-height: 0px;font-size:20px"><?= $ot->id ?></p>
</div>
<div class="cod-barras"></div>
</div>
</div>
</div>
</div>
</div>
<div class="section">
<div class="flex-row">
<div class="flex-col" id="presupuesto-section">
<table>
<tr>
<th>Cliente</th>
<td class="t-cell ">
<p class="cliente-title"><?= $cliente->nombre ?></p>
</td>
</tr>
<tr>
<th>Titulo</th>
<td class="t-cell ">
<p class="presupuesto-title"><?= $presupuesto->titulo ?></p>
</td>
</tr>
<tr>
<th>ISBN</th>
<td class="t-cell"><?= $presupuesto->isbn ?></td>
</tr>
<tr>
<th>CIF</th>
<td class="t-cell"><?= $cliente->cif ?></td>
</tr>
</table>
</div>
<div class="esquema-imposicion-wrapper">
<div class="esquema">
<div class="pagina-imposicion-outer-start">
<div class="pagina-imposicion-inner">
A
</div>
</div>
<div class="pagina-imposicion-outer">
<div class="pagina-imposicion-inner">
A
</div>
</div>
<div class="pagina-imposicion-outer">
<div class="pagina-imposicion-inner">
A
</div>
</div>
<div class="pagina-imposicion-outer-end">
<div class="pagina-imposicion-inner">
A
</div>
</div>
</div>
<div class="imposicion">
<table style="width: 400%;">
<tr>
<th>Imposicion</th>
<td>400x400</td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div class="section">
<div class="section-title impresion">IMP. INTERIOR</div>
<table>
<tr>
<td rowspan="3" class="row-logo-impresion"><img src="<?= site_url($linea_impresion->get_impresion_logo()) ?>" width="35px" height="35px"></td>
<th>Páginas</th>
<th>Ejemplares</th>
<th>Tintas</th>
<th>Formas</th>
<th>Máquina</th>
<th>Clics</th>
<th>Tiempo</th>
</tr>
<tr>
<td><?= $presupuesto->paginas ?></td>
<td><?= $presupuesto->tirada ?></td>
<td>??</td>
<td><?= json_decode($linea_impresion->formas)->formas ?></td>
<td><strong><?= $linea_impresion->maquina()->nombre ?></strong></td>
<td><?= $linea_impresion->rotativa_clicks_total ?></td>
<td><?= float_seconds_to_hhmm_string($linea_impresion->horas_maquina * 3600) ?></td>
</tr>
<tr>
<td colspan="4"><?= $linea_impresion->papel_impresion ?></td>
<td><?= $linea_impresion->papel_impresion()->gramaje . " " . "gr" ?></td>
<td colspan="2">_________ metros</td>
</tr>
</table>
<div class="comments">
<div class="flex-row impresion">Comentarios impresión interior</div>
<div class="comment-content">
<p>
</p>
<br />
<p>
</p>
</div>
</div>
</div>
<div class="section">
<div class="section-title cubierta">IMP. CUBIERTA</div>
<table>
<tr>
<td rowspan="3" class="row-logo-impresion"><img src="<?= site_url($linea_cubierta->get_impresion_logo()) ?>" width="35px" height="35px"></td>
<th>Tintas</th>
<th>Ejemplares</th>
<th>Maquina</th>
<th>Marcapaginas</th>
<th>Tiempo</th>
</tr>
<tr>
<td>??</td>
<td><?= $presupuesto->tirada ?></td>
<td><strong><?= $linea_cubierta->maquina()->nombre ?></strong></td>
<td><?= $presupuesto->marcapaginas ? "SI" : "NO" ?></td>
<td><?= float_seconds_to_hhmm_string($linea_cubierta->horas_maquina * 3600) ?></td>
</tr>
<tr>
<td colspan="1"><?= json_decode($linea_cubierta->formas)->maquina_ancho ?>x<?= json_decode($linea_cubierta->formas)->maquina_alto ?></td>
<td colspan="1"><?= $papel_formato->ancho ?>x<?= $papel_formato->alto ?></td>
<td colspan="2"><?= $linea_cubierta->papel_impresion ?></td>
<td colspan="2"><?= $linea_cubierta->papel_impresion()->gramaje . " " . "gr" ?></td>
</tr>
</table>
<div class="comments">
<div class="flex-row cubierta">Comentarios cubierta</div>
<div class="comment-content">
<p>
</p>
</div>
</div>
</div>
<div class="section">
<div class="section-title encuadernacion">ENCUADERNACIÓN</div>
<table>
<tr>
<th class="t-header">Plastificado</th>
<td class="t-cell"><?= $acabados[0]->tarifa()->nombre ?></td>
<th class="t-header" style="width: 10%;">UVI</th>
<td class="t-cell"> ?? </td>
</tr>
</table>
<table>
<tr>
<th class="t-header">MAQUINA</th>
<td class="t-cell"> ?? </td>
</tr>
</table>
<table>
<tr>
<th class="t-header">OPERARIO</th>
<td class="t-cell"> ?? </td>
</tr>
</table>
<?php if (count($encuadernaciones) > 0): ?>
<table>
<tr>
<th>Encuadernacion</th>
<th>Solapas</th>
<th>Sobrecubierta</th>
<th>Plegado</th>
<th>Guardas</th>
<th>Retractilado</th>
<th>Marcapáginas</th>
</tr>
<?php foreach ($encuadernaciones as $key => $value): ?>
<tr>
<td><?= $value->tarifa()->nombre ?></td>
<td><?= $presupuesto->solapas ? "SI" : "NO" ?></td>
<td><?= $presupuesto->hasSobrecubierta() ? "SI" : "NO" ?></td>
<td> ______ pliegos de ______ </td>
<td><?= $presupuesto->guardas ? "SI" : "NO" ?></td>
<td><?= $presupuesto->retractilado ? "SI" : "NO" ?></td>
<td><?= $presupuesto->marcapaginas ? "SI" : "NO" ?></td>
</tr>
<?php endforeach; ?>
</table>
<div class="comments">
<div class="flex-row encuadernacion">Comentarios encuadernacion:</div>
<div class="comment-content">
<p>
</p>
</div>
</div>
<?php endif; ?>
</div>
<div class="section">
<div class="section-title">LOGISTICA</div>
<table>
<tr>
<th>Peso Unidad</th>
<th>Peso Pedido</th>
<th>Cajas</th>
<th>Corte Pie</th>
</tr>
<tr>
<td><?= $peso_unidad ?>gr</td>
<td><?= $peso_pedido ?>gr</td>
<td>-</td>
<td>-</td>
</tr>
</table>
<div class="comments">
<div class="flex-row">Comentarios logistica:</div>
<div class="comment-content">
<p>
</p>
</div>
</div>
</div>
<div class="footer">
&copy; 2024 SAFEKAT. Todos los derechos reservados.
</div>
</div>
</body>
</html>