Merge branch 'main' into feat/sk-31

This commit is contained in:
amazuecos
2025-03-20 08:21:42 +01:00
26 changed files with 1895 additions and 93 deletions

View File

@ -61,6 +61,22 @@
]
) ?>
</div><!-- /.card-footer -->
<div class="container-fluid d-flex flex-md-row flex-column justify-content-between align-items-md-center gap-1 container-p-x py-3">
<div class="col-md-6">
<p>
<strong><?= lang("Presupuestos.created_by_at") ?></strong>
<span id="created_by"><?= $facturaEntity->created_by ?></span>,
<span id="created_at"><?= $facturaEntity->created_at_footer ?></span>
</p>
</div>
<div class="col-md-6">
<p>
<strong><?= lang("Presupuestos.updated_by_at") ?></strong>
<span id="updated_by"><?= $facturaEntity->updated_by ?></span>,
<span id="updated_at_footer"><?= $facturaEntity->updated_at_footer ?></span>
</p>
</div>
</div>
</form>
</div><!-- //.card -->
</div><!--//.col -->

View File

@ -251,7 +251,23 @@ $("#fecha_entrega_externo").flatpickr({
<?php if ($pedidoEntity->estado !== 'finalizado' && $pedidoEntity->estado !== 'cancelado'): ?>
$('.buton-estado').on('click', function() {
var id = <?=$pedidoEntity->id ?>;
Swal.fire({
title: '¿Estás seguro?',
text: "Esta acción no se puede deshacer",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Sí',
cancelButtonText: 'Cancelar',
customClass: {
confirmButton: 'btn btn-primary me-1',
cancelButton: 'btn btn-label-secondary'
},
buttonsStyling: false
}).then((result) => {
if (result.isConfirmed) {
var id = <?=$pedidoEntity->id ?>;
var estado = $(this).attr('id').split('_')[1];
var url = '<?= route_to('cambiarEstadoPedido') ?>';
var data = {
@ -273,6 +289,10 @@ $('.buton-estado').on('click', function() {
}
}
});
}
}).catch((err) => {
console.log(err);
});
});
<?php endif; ?>

View File

@ -36,7 +36,22 @@
<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 class="container-fluid d-flex flex-md-row flex-column justify-content-between align-items-md-center gap-1 container-p-x py-3">
<div class="col-md-6">
<p>
<strong><?= lang("Presupuestos.created_by_at") ?></strong>
<span id="created_by"><?= $pedidoEntity->created_by ?></span>,
<span id="created_at"><?= $pedidoEntity->created_at_footer ?></span>
</p>
</div>
<div class="col-md-6">
<p>
<strong><?= lang("Presupuestos.updated_by_at") ?></strong>
<span id="updated_by"><?= $pedidoEntity->updated_by ?></span>,
<span id="updated_at_footer"><?= $pedidoEntity->updated_at_footer ?></span>
</p>
</div>
</div>
</div><!-- //.card -->

View File

@ -47,6 +47,23 @@
</span>
</button>
</li>
<li class="nav-item">
<button
type="button"
class="nav-link"
role="tab"
data-bs-toggle="tab"
data-bs-target="#comentarios-presupuesto-pdf"
aria-controls="comentarios-presupuesto-pdf"
aria-selected="false">
<?= lang("Presupuestos.comentariosPresupuestoPDF") ?>
<span
id="mostrar_comentarios_pdf"
class="badge rounded-pill badge-center h-px-20 w-px-20 bg-warning ms-1 d-none">
!
</span>
</button>
</li>
<li class="nav-item">
<button
type="button"
@ -58,7 +75,7 @@
aria-selected="false">
<?= lang("Presupuestos.comentariosPresupuesto") ?>
<span
id="mostrar_comentarios_pdf"
id="mostrar_comentarios_presupuesto"
class="badge rounded-pill badge-center h-px-20 w-px-20 bg-warning ms-1 d-none">
!
</span>
@ -114,7 +131,7 @@
</div>
<div class="tab-pane fade" id="comentarios-presupuesto" role="tabpanel">
<div class="tab-pane fade" id="comentarios-presupuesto-pdf" role="tabpanel">
<div class="row">
<div class="col-md-12 col-lg-12 px-4">
<div class="mb-3">
@ -130,6 +147,22 @@
</div>
<div class="tab-pane fade" id="comentarios-presupuesto" role="tabpanel">
<div class="row">
<div class="col-md-12 col-lg-12 px-4">
<div class="mb-3">
<textarea
rows="3"
id="comentariosPresupuesto"
name="comentarios_presupuesto"
style="height: 10em;"
class="form-control"><?=old('comentarios_presupuesto', $presupuestoEntity->comentarios_presupuesto) ?></textarea>
</div>
</div>
</div>
</div>
<div class="tab-pane fade" id="comentarios-produccion" role="tabpanel">
<div class="row">
<div class="col-md-12 col-lg-12 px-4">

View File

@ -2,14 +2,14 @@
<div class="card accordion-item active">
<h2 class="accordion-header" id="headingOne">
<button type="button" class="accordion-button" data-bs-toggle="collapse"
data-bs-target="#accordionResumenTip" aria-expanded="false"
aria-controls="accordionResumenTip">
data-bs-target="#accordionResumenTip" aria-expanded="false"
aria-controls="accordionResumenTip">
<h4><?= lang("Presupuestos.resumen") ?></h4>
</button>
</h2>
<div id="accordionResumenTip" class="accordion-collapse collapse show"
data-bs-parent="#accordionResumen">
data-bs-parent="#accordionResumen">
<div class="accordion-body">
<div class="col-xl-12">
@ -36,9 +36,9 @@
<dd id="margenServicios" class="col-3 text-end py-1"></dd>
<dt class="col-5 fw-normal text-end">Coste de envío</dt>
<dd id="costeEnvios"class="col-6 text-end py-1"></dd>
<dd id="costeEnvios" class="col-6 text-end py-1"></dd>
<dt class="col-5 fw-normal text-end">Precio de envío</dt>
<dd id="totalEnvios"class="col-6 text-end py-1"></dd>
<dd id="totalEnvios" class="col-6 text-end py-1"></dd>
<dt class="col-5 fw-normal text-end">Margen envío</dt>
<dd id="margenEnvios" class="col-6 text-end py-1"></dd>
</dl>
@ -79,22 +79,31 @@
</div>
</div>
<div class="col-sm-2 mb-md-0 mb-2">
<label for="ivaReducido" class="form-label">I.V.A. reducido</label>
<select id="ivaReducido" name="iva_reducido" class="form-control select2bs2 calcular-presupuesto"
style="width: 100%;">
<option value="1" selected>
<p><?= lang('SI') ?></p>
</option>
<option value="0">
<p><?= lang('NO') ?></p>
</option>
</select>
</div>
<?php if ($presupuestoEntity->estado_id == 2): ?>
<div class="row mt-5">
<div class="mb-1">
<div class="mb-1">
<label for="totalAceptado" class="form-label">
<?= lang('Presupuestos.totalAceptado') ?>
</label>
<input disabled type="text" id="totalAceptado" name="totalAceptado" class="form-control" value="" <?php echo ($tipo_impresion_id == 21)?' max=80':'' ?>>
<input disabled type="text" id="totalAceptado" name="totalAceptado" class="form-control" value="" <?php echo ($tipo_impresion_id == 21) ? ' max=80' : '' ?>>
</div><!--//.mb-3 -->
</div>
<?php endif; ?>
</div> <!-- //.accordion-body -->
</div> <!-- //.accordion-collapse -->
</div> <!-- //.accordion-item -->
</div> <!-- //.accordion -->
</div> <!-- //.accordion-item -->
</div> <!-- //.accordion -->

View File

@ -69,6 +69,23 @@
<?php endif; ?>
<?= anchor(route_to("presupuestoAdminList", $tipo_impresion_id), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary float-start",]) ?>
</div>
<div class="container-fluid d-flex flex-md-row flex-column justify-content-between align-items-md-center gap-1 container-p-x py-3">
<div class="col-md-6">
<p>
<strong><?= lang("Presupuestos.created_by_at") ?></strong>
<span id="created_by"></span>,
<span id="created_at"></span>
</p>
</div>
<div class="col-md-6">
<p>
<strong><?= lang("Presupuestos.updated_by_at") ?></strong>
<span id="updated_by"></span>,
<span id="updated_at_footer"></span>
</p>
</div>
</div>
</form>
</div><!--//.col -->

View File

@ -0,0 +1,399 @@
<?= $this->include('themes/_commonPartialsBs/datatables') ?>
<?= $this->include("themes/_commonPartialsBs/select2bs5") ?>
<?= $this->include("themes/_commonPartialsBs/sweetalert") ?>
<?= $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">Importador de Presupuestos desde el ERP antiguo</h3>
</div><!--//.card-header -->
<div class="card-body">
<?= view('themes/_commonPartialsBs/_alertBoxes'); ?>
<div class="row align-items-end">
<div class="col-md-4">
<label id="label_clienteId" for="clienteId" class="form-label">
Cliente
</label>
<select id="clienteId" name="cliente_id" class="form-control select2bs2" style="width: 100%;">
</select>
</div>
<div class="col-md-4">
<label id="label_clienteId" for="clienteId" class="form-label">
Presupuesto
</label>
<select id="presupuesto" name="presupuesto" class="form-control select2bs2" style="width: 100%;"
disabled>
</select>
</div>
<div class="col-md-2 d-flex flex-column h-100">
<button id="openOld" class="btn btn-primary waves-effect waves-light mt-auto w-100" disabled>
Abrir original
</button>
</div>
<div class="col-md-2 d-flex flex-column h-100">
<button id="initImport" class="btn btn-primary waves-effect waves-light mt-auto w-100" disabled>
Obtener datos
</button>
</div>
</div>
<div class="card card-info mt-3 " id="cardImportador">
<div class="card-header">
<h3 class="card-title
">Detalle presupuesto</h3>
</div><!--//.card-header -->
<div class="card-body">
<div class="row">
<div class="col-md-2">
<label for="paginas" class="form-label">
Páginas
</label>
<input type="text" id="paginas" name="paginas" class="form-control" disabled>
</div>
<div class="col-md-2">
<label for="tirada" class="form-label">
Tirada
</label>
<input type="text" id="tirada" name="tirada" class="form-control" disabled>
</div>
<div class="col-md-3">
<label for="tamanio" class="form-label">
Tamaño
</label>
<select id="tamanio" name="tamanio" class="form-control select2bs2" disabled>
</select>
<div id="formatoPersonalizado" class="row justify-content-center d-none">
<div class="col-md-6 mb-1 ">
<input type="number" id="papelFormatoAncho" name="papel_formato_ancho" step="1"
class="form-control num-input" min="110" value="110" readonly>
</div>
<div class="col-md-6 mb-1 ">
<input type="number" id="papelFormatoAlto" name="papel_formato_alto" step="1"
class="form-control num-input" min="170" value="170" readonly>
</div>
</div>
<div class="form-check form-switch mt-2 mb-2">
<input class="form-check-input" type="checkbox" id="papelFormatoPersonalizado"
name="papel_formato_personalizado" value="1" disabled>
<label class="form-check-label"
for="papelFormatoPersonalizado"><?= lang('Presupuestos.papelFormatoPersonalizado') ?>
</label>
</div>
</div>
</div><!--//.row -->
<h5 class="mt-3">Encuadernación</h5>
<div class="row">
<div class="col-md-6">
<label for="encuadernacion_old" class="form-label">Encuadernación original</label>
<input type="text" id="encuadernacion_old" name="encuadernacion_old"
class="form-control" disabled>
</div>
<div class="col-md-6">
<label for="encuadernacion" class="form-label">Encuadernación propuesta</label>
<select id="encuadernacion" name="encuadernacion" class="form-control select2bs2"
style="width: 100%;">
</select>
</div>
</div><!--//.row -->
<h5 class="mt-5">Interior</h5>
<div class="row mb-3">
<div class="col-md-2">
<label for="interior_old" class="form-label">Calidad</label>
<select id="isHq" name="isHq" class="form-control">
<option value="0">Estándar</option>
<option value="1">HQ</option>
</select>
</div>
</div>
<div class="row">
<table class="table table-striped table-hover">
<thead>
<tr>
<th style="width: 10%;"></th>
<th style="width: 10%;"><?= lang("Presupuestos.numeroPaginas") ?></th>
<th style="width: 30%;">Papel Genérico original</th>
<th style="width: 30%;">Papel Genérico propuesto</th>
<th style="width: 10%;"><?= lang("Presupuestos.gramaje") ?></th>
</tr>
</thead>
<tbody>
<tr>
<td><?= lang('MaquinasTarifasImpresions.negro') ?></td>
<td>
<input type="text" id="compPaginasNegro" name="comp_paginas_negro"
placeholder="0" maxLength="5" class="form-control comp_negro_items"
value="" readonly>
</td>
<td>
<input id="compPapelNegroOrigen" name="comp_papel_negro_origen"
class="form-control comp_negro_items" value="" readonly>
</td>
<td>
<select id="compPapelNegroSelected" name="comp_papel_negro_selected"
class="form-control select2bs2 comp_negro_items" style="width: 100%;">
</select>
</td>
<td>
<input type="text" id="compGramajeNegro" name="comp_gramaje_negro"
class="form-control comp_negro_items" value="" readonly>
</td>
</tr>
<tr>
<td><?= lang('MaquinasTarifasImpresions.color') ?></td>
<td>
<input type="text" id="compPaginasColor" name="comp_paginas_color"
placeholder="0" maxLength="5" class="form-control comp_color_items"
value="">
</td>
<td>
<input type="text" id="compPapelColorOrigen" name="comp_papel_color_origen"
class="form-control comp_color_items" value="" readonly>
</td>
<td>
<select id="compPapelColorSelected" name="comp_papel_color_selected"
class="form-control select2bs2 comp_color_items" style="width: 100%;">
</select>
</td>
<td>
<input type="text" id="compGramajeColor" name="comp_gramaje_color"
class="form-control comp_color_items" value="" readonly>
</input>
</td>
</tr>
</tbody>
</table>
</div>
<h5 class="mt-5">Exteriores</h5>
<div class="row">
<table class="table table-striped table-hover">
<thead>
<tr>
<th style="width: 10%;"></th>
<th style="width: 10%;">Opciones</th>
<th style="width: 10%;">Solapas</th>
<th style="width: 25%;">Papel Genérico original</th>
<th style="width: 25%;">Papel Genérico propuesto</th>
<th style="width: 10%;"><?= lang("Presupuestos.gramaje") ?></th>
</tr>
</thead>
<tbody>
<tr>
<td>Cubierta</td>
<td>
<select id="compCarasCubierta" name="comp_paginas_cubierta"
class="form-control select2bs2 comp_cubierta_items" style="width: 100%;"
disabled>
<option value="2"><?= lang('Presupuestos.unaCara') ?></option>
<option value="4"><?= lang('Presupuestos.dosCaras') ?></option>
</select>
</td>
<td>
<input id="compSolapasCubierta" name="comp_solapas_cubierta"
class="form-control comp_cubierta_items" value="" readonly>
<td>
<input type="text" id="compPapelCubiertaOrigen"
name="comp_papel_cubierta_origen"
class="form-control comp_cubierta_items" style="width: 100%;" readonly>
</input>
</td>
<td>
<select id="compPapelCubiertaSelected" name="comp_papel_cubierta_selected"
class="form-control select2bs2 comp_cubierta_items"
style="width: 100%;">
</select>
</td>
<td>
<input type="text" id="compGramajeCubierta" name="comp_gramaje_cubierta"
class="form-control comp_cubierta_items" value="" readonly>
</td>
</tr>
<tr>
<td>Sobrecubierta</td>
<td>
<select id="compSobrecubierta" name="comp_sobrecubierta"
class="form-control select2bs2 comp_sobrecubierta_items"
style="width: 100%;" disabled>
<option value="0"><?= lang('Presupuestos.no') ?></option>
<option value="1"><?= lang('Presupuestos.si') ?></option>
</select>
</td>
<td>
<input id="compSolapasSobrecubierta" name="comp_solapas_sobrecubierta"
class="form-control comp_sobrecubierta_items" value="" readonly>
</td>
<td>
<input id="compPapelSobrecubiertaOrigen"
name="comp_papel_sobrecubierta_origen"
class="form-control comp_sobrecubierta_items" value="" readonly>
</td>
<td>
<select id="compPapelSobrecubiertaSelected"
name="comp_papel_sobrecubierta_selected"
class="form-control select2bs2 comp_sobrecubierta_items"
style="width: 100%;">
</select>
</td>
<td>
<input type="text" id="compGramajeSobrecubierta"
name="comp_gramaje_sobrecubierta"
class="form-control comp_sobrecubierta_items" value="" readonly>
</td>
</tr>
</tbody>
</table>
</div>
<h5 class="mt-5">Acabados</h5>
<div class="row">
<table class="table table-striped table-hover">
<thead>
<tr>
<th style="width: 10%;"></th>
<th style="width: 45%;">Acabado original</th>
<th style="width: 45%;">Acabado propuesto</th>
</tr>
</thead>
<tbody>
<tr>
<td>Cubierta</td>
<td>
<input type="text" id="compAcabadoCubiertaOrigen"
name="comp_acabado_cubierta_origen"
class="form-control comp_cubierta_items" value="" readonly>
</td>
<td>
<select id="compAcabadoCubiertaSelected"
name="comp_acabado_cubierta_selected"
class="form-control select2bs2 comp_cubierta_items"
style="width: 100%;">
</select>
</td>
</tr>
<tr>
<td>Sobrecubierta</td>
<td>
<input id="compAcabadoSobrecubiertaOrigen"
name="comp_acabado_sobrecubierta_origen"
class="form-control comp_sobrecubierta_items" value="" readonly>
</td>
<td>
<select id="compAcabadoSobrecubiertaSelected"
name="comp_acabado_sobrecubierta_selected"
class="form-control select2bs2 comp_sobrecubierta_items"
style="width: 100%;">
</select>
</td>
</tr>
</tbody>
</table>
</div>
<h5 class="mt-5">Servicios</h5>
<div class="row">
<div class="col-md-3 mb-3">
<div class="form-check">
<label for="ferro" class="form-check-label">
<input type="checkbox" id="ferro" name="ferro" value="1"
class="form-check-input" service="extra"
service-id=<?= $serviciosAutomaticos['ferro'] ?>>
<?= lang('Presupuestos.ferro') ?>
</label>
</div><!--//.form-check -->
</div>
<div class="col-md-3 mb-3">
<div class="form-check">
<label for="ferroDigital" class="form-check-label">
<input type="checkbox" id="ferroDigital" name="ferro_digital" value="1"
service="extra" service-id=<?= $serviciosAutomaticos['ferro_digital'] ?>
class="form-check-input">
<?= lang('Presupuestos.ferroDigital') ?>
</label>
</div><!--//.form-check -->
</div>
<div class="col-md-3 mb-3">
<div class="form-check">
<label for="prototipo" class="form-check-label">
<input type="checkbox" id="prototipo" name="prototipo" value="1"
class="form-check-input" service="extra"
service-id=<?= $serviciosAutomaticos['prototipo'] ?>>
<?= lang('Presupuestos.prototipo') ?>
</label>
</div><!--//.form-check -->
</div>
<div class="col-md-3 mb-3">
<div class="form-check">
<label for="marcapaginas" class="form-check-label">
<input type="checkbox" id="marcapaginas" name="marcapaginas" value="1"
class="form-check-input">
<?= lang('Presupuestos.marcapaginas') ?>
</label>
</div><!--//.form-check -->
</div>
</div>
<div class="row">
<div class="col-md-3 mb-3">
<button id="makeImport" class="btn btn-primary waves-effect waves-light mt-auto w-100" disabled>
Importar presupuesto
</button>
</div>
</div>
</div><!--//.card -->
</div><!--//.card-body -->
<div class="card-footer">
</div><!--//.card-footer -->
</div><!--//.card -->
</div><!--//.col -->
</div><!--//.row -->
<?= $this->endSection() ?>
<?= $this->section('css') ?>
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/sweetalert2/sweetalert2.css') ?>" />
<?= $this->endSection() ?>
<?= $this->section('additionalExternalJs') ?>
<script type="module"
src="<?= site_url('assets/js/safekat/pages/importadorPresupuestos/importador.js') ?>"></script>
<script src="<?= site_url('themes/vuexy/vendor/libs/sweetalert2/sweetalert2.js') ?>"></script>
<?= $this->endSection() ?>