muchos cambios (y no los papeles)

This commit is contained in:
2024-11-14 20:43:13 +01:00
parent 923c283c22
commit c19d1ffae8
11 changed files with 277 additions and 207 deletions

View File

@ -296,7 +296,6 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$faja = $reqData['faja'] ?? [];
$excluirRotativa = $reqData['excluirRotativa'] ?? 0;
$excluirRotativa = intval($excluirRotativa);
$ivaReducido = intval($reqData['ivaReducido']) ?? 0;
$direcciones = $reqData['direcciones'] ?? [];
@ -401,7 +400,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_direccion = $this->getCosteEnvio(
$direccion['id'],
$return_data['peso'][$i],
!$primer_envio? intval($tirada[$i]) : $direccion['unidades'],
!$primer_envio ? intval($tirada[$i]) : $direccion['unidades'],
$direccion['entregaPalets'] == 'true' ? 1 : 0
)[0];
@ -654,6 +653,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$isHq = intval($reqData['isHq']) ?? 0;
$prototipo = intval($reqData['prototipo']) ?? 0;
$ferro = intval($reqData['ferro']) ?? 0;
$ferroDigital = intval($reqData['ferroDigital']) ?? 0;
$marcapaginas = intval($reqData['marcapaginas']) ?? 0;
$retractilado = intval($reqData['retractilado']) ?? 0;
$retractilado5 = intval($reqData['retractilado5']) ?? 0;
$interior = $reqData['interior'] ?? [];
$cubierta = $reqData['cubierta'] ?? [];
@ -857,6 +861,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
$datos_presupuesto['prototipo'] = $prototipo;
$datos_presupuesto['ferro'] = $ferro;
$datos_presupuesto['ferro_digital'] = $ferroDigital;
$datos_presupuesto['marcapaginas'] = $marcapaginas;
$datos_presupuesto['retractilado'] = $retractilado;
$datos_presupuesto['retractilado5'] = $retractilado5;
$id = $model_presupuesto->insertarPresupuestoCliente(
$id,
@ -970,6 +979,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$data['datosGenerales']['tipo'] = $this->getTipoLibro($presupuesto->tipo_impresion_id ?? null);
$data['datosGenerales']['prototipo'] = $presupuesto->prototipo;
$data['datosGenerales']['ferro'] = $presupuesto->ferro;
$data['datosGenerales']['ferroDigital'] = $presupuesto->ferro_digital;
$data['datosGenerales']['marcapaginas'] = $presupuesto->marcapaginas;
$data['datosGenerales']['retractilado'] = $presupuesto->retractilado;
$data['datosGenerales']['retractilado5'] = $presupuesto->retractilado5;
$datos_papel = $this->obtenerDatosPapel($presupuesto->id);
$data['interior'] = $datos_papel['interior'] ? $datos_papel['interior'] : [];
@ -1832,13 +1846,19 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
*/
$serviciosAutomaticos = [];
$servicios = [];
if ($datos_entrada['cubierta']['acabadosCubierta']['retractilado'] === 'true')
if ($datos_entrada['servicios']['retractilado']) // acabado
array_push($servicios, 3);
if ($datos_entrada['servicios']['prototipo'])
if ($datos_entrada['servicios']['retractilado5']) // acabado
array_push($servicios, 98);
if ($datos_entrada['servicios']['prototipo']) // extra
array_push($servicios, 9);
if ($datos_entrada['servicios']['ferro']) // extra
array_push($servicios, 30);
/*if ($datos_entrada['servicios']['ferroDigital'])
array_push($servicios, 29);*/ // Es gratis
foreach ($servicios as $servicio) {
if (intval($servicio) == 3) {
if (intval($servicio) == 3 || intval($servicio) == 98) {
// Servicios acabado
$resultado = PresupuestoCLienteService::getServiciosAcabados([
'tarifa_id' => $servicio,
@ -1853,7 +1873,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$errorModel->insertError(
$datos_entrada['id'],
auth()->user()->id,
'No se puede obtener servicio con id 3',
'No se puede obtener servicio con id ' . ((string)$servicio),
$input_data
);
$return_data = [
@ -1869,8 +1889,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$totalServicios += floatval($resultado[0]->total);
$margenServicios += floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0;
}
} else if (intval($servicio) == 9) {
// Prototipo
} else if (intval($servicio) == 9 || intval($servicio) == 30 || intval($servicio) == 29) {
// Extra
$resultado = PresupuestoCLienteService::getServiciosExtra([
'tarifa_id' => $servicio,
]);
@ -1881,7 +1901,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$errorModel->insertError(
$datos_entrada['id'],
auth()->user()->id,
'No se puede obtener servicio con id 9',
'No se puede obtener servicio con id ' . ((string)$servicio),
$input_data
);
$return_data = [

View File

@ -404,11 +404,13 @@ class PresupuestoModel extends \App\Models\BaseModel
'cliente_id' => $data['clienteId'],
'tipo_impresion_id' => $data['tipo_impresion_id'],
'pais_id' => 1,
'retractilado' => in_array("RETR", $data['cubierta']['acabadosCubierta']) ? 1 : 0,
'retractilado5' => in_array(5, $data['servicios']) ? 1 : 0,
'retractilado' => $data['retractilado'] ? 1 : 0,
'retractilado5' => $data['retractilado5'] ? 1 : 0,
'guardas' => in_array(62, $data['servicios']) ? 1 : 0,
'faja_color' => in_array(16, $data['servicios']) ? 1 : 0,
'ferro' => in_array(24, $data['servicios']) ? 1 : 0,
'ferro' => $data['ferro'] ? 1 : 0,
'ferro_digital' => $data['ferro_digital'] ? 1 : 0,
'marcapaginas' => $data['marcapaginas'] ? 1 : 0,
'prototipo' => $data['prototipo'] ? 1 : 0,
'papel_formato_id' => is_null($papel_formato_id) ? 0 : $papel_formato_id->id,
'papel_formato_personalizado' => !$papel_formato_id ? 1 : 0,

View File

@ -278,14 +278,26 @@
language: {
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
},
buttons: [ {
className: 'btn btn-primary me-sm-3 me-1',
extend: "createInline",
editor: editor,
formOptions: {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
}
buttons: [
{
extend: 'collection',
text: 'Exportar',
buttons:[
'copy', 'csv', 'excel', 'print', {
extend: 'pdfHtml5',
orientation: 'landscape',
pageSize: 'A4'
}
]
},
{
className: 'btn btn-primary me-sm-3 me-1',
extend: "createInline",
editor: editor,
formOptions: {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
}
} ]
} );

View File

@ -684,7 +684,7 @@ async function calcularPresupuesto() {
datos = Object.assign(datos, window.token_ajax)
$('#divTiradasPrecio').empty();
$('.divTiradasPrecio').empty();
$('#loader').show();
$.ajax({
@ -741,7 +741,7 @@ async function calcularPresupuesto() {
$('#loader').hide();
$('#divTiradasPrecio').empty();
$('.divTiradasPrecio').empty();
if(!error){
@ -768,7 +768,7 @@ async function calcularPresupuesto() {
html += '</a>';
html += '</div>';
$('#divTiradasPrecio').append(html);
$('.divTiradasPrecio').append(html);
}
}
@ -783,7 +783,7 @@ async function calcularPresupuesto() {
},
error: function (error) {
$('#loader').hide();
$('#divTiradasPrecio').empty();
$('.divTiradasPrecio').empty();
}
});
}

View File

@ -49,13 +49,12 @@
</div>
<div class="col-sm-5 mb-3 d-flex flex-column align-items-center <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))? " d-none" : "" ?>" >
<label <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))? " hidden" : "" ?>
id="label_clienteId" for="clienteId" class="form-label">
<div
class="col-sm-5 mb-3 d-flex flex-column align-items-center <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " d-none" : "" ?>">
<label <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " hidden" : "" ?> id="label_clienteId" for="clienteId" class="form-label">
Cliente*
</label>
<select <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))? " hidden" : "" ?>
id="clienteId" name="cliente_id" class="form-control select2bs2 calcular-presupuesto"
<select <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " hidden" : "" ?> id="clienteId" name="cliente_id" class="form-control select2bs2 calcular-presupuesto"
style="width: 100%;">
<?php if (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')): ?>
<option value="<?= $clienteId ?>" selected>cliente</option>
@ -64,13 +63,12 @@
</div>
<div class="col-sm-5 mb-3 d-flex flex-column align-items-center <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))? " d-none" : "" ?>" >
<div
class="col-sm-5 mb-3 d-flex flex-column align-items-center <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " d-none" : "" ?>">
<div class="form-check form-switch mb-2">
<input <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))? " hidden" : "" ?>
class="calcular-presupuesto form-check-input" type="checkbox" id="excluirRotativa"
<input <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " hidden" : "" ?> class="calcular-presupuesto form-check-input" type="checkbox" id="excluirRotativa"
name="excluir_rotativa" value="1">
<label <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))? " hidden" : "" ?>
class="form-check-label" for="excluirRotativa">Excluir rotativa</label>
<label <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " hidden" : "" ?> class="form-check-label" for="excluirRotativa">Excluir rotativa</label>
</div>
</div>
@ -271,10 +269,36 @@
</div>
<div class="row col-sm-9 mb-3 d-flex flex-column align-items-left">
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="prototipo" name="prototipo"
value="1">
<label class="form-check-label" for="prototipo">Prototipo</label>
<div class="row" >
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="prototipo" name="prototipo"
value="1">
<label class="form-check-label" for="prototipo">Prototipo</label>
</div>
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="ferro" name="ferro" value="1">
<label class="form-check-label" for="ferro">Ferro</label>
</div>
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="ferroDigital"
name="ferro_digital" value="1">
<label class="form-check-label" for="ferro">Ferro digital</label>
</div>
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="marcapaginas"
name="marcapaginas" value="1">
<label class="form-check-label" for="ferro">Marcapáginas</label>
</div>
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="retractilado"
name="retractilado" value="1">
<label class="form-check-label" for="ferro">Retractilado</label>
</div>
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="retractilado5"
name="retractilado5" value="1">
<label class="form-check-label" for="ferro">Retractilado de 5</label>
</div>
</div>
</div>

View File

@ -45,160 +45,10 @@
</div>
<div class="offcanvas-body">
<div class="bs-stepper-header">
<div <?= ($state == 2) ? 'hidden' : '' ?> class="step active titulos-menu" data-target="#datos-generales">
<button type="button" class="step-trigger" aria-selected="false" disabled="disabled">
<span class="bs-stepper-circle"><i class="ti ti-info-circle ti-sm"></i></span>
<span class="bs-stepper-label">
<span class="bs-stepper-title">Datos generales</span>
</span>
</button>
</div>
<div <?= ($state == 2) ? 'hidden' : '' ?> class="step titulos-menu" data-target="#interior-libro">
<button type="button" class="step-trigger" aria-selected="false" disabled="disabled">
<span class="bs-stepper-circle"><i class="ti ti-book ti-sm"></i></span>
<span class="bs-stepper-label">
<span class="bs-stepper-title">Interior</span>
</span>
</button>
</div>
<div <?= ($state == 2) ? 'hidden' : '' ?> class="step titulos-menu" data-target="#cubierta-libro">
<button type="button" class="step-trigger" aria-selected="false" disabled="disabled">
<span class="bs-stepper-circle"><i class="ti ti-books ti-sm"></i></span>
<span class="bs-stepper-label">
<span class="bs-stepper-title">Cubierta</span>
</span>
</button>
</div>
<div <?= ($state == 2) ? 'hidden' : '' ?> class="step titulos-menu" data-target="#direcciones-libro">
<button type="button" class="step-trigger" aria-selected="false" disabled="disabled">
<span class="bs-stepper-circle"><i class="ti ti-map-pins ti-sm"></i></span>
<span class="bs-stepper-label">
<span class="bs-stepper-title">Direcciones</span>
</span>
</button>
</div>
<div id="menu_resumen_button" class="step titulos-menu" data-target="#resumen-libro">
<button type="button" class="step-trigger" aria-selected="false" disabled="disabled">
<span class="bs-stepper-circle"><i class="ti ti-checkbox ti-sm"></i></span>
<span class="bs-stepper-label">
<span class="bs-stepper-title">Resumen del presupuesto</span>
</span>
</button>
</div>
<div class="line"></div>
<div id='resumenLateral' class="container align-items-center">
<div class="rl-datos-generales rl-item d-none">
<div class="row">Libro</div>
<div class="row">
<ul class="list-group list-group-timeline">
<li id="rl_tipo" class="list-group-item list-group-timeline-primary texto-resumen-lateral">Rustica
Fresado</li>
<li id="rl_tipo_cubierta" class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Tapa
dura</li>
<li id="rl_tamanio" class="list-group-item list-group-timeline-primary texto-resumen-lateral">170.0
x
240.0</li>
<li id="rl_tiradas" class="list-group-item list-group-timeline-primary texto-resumen-lateral">10,
50,
100, 200</li>
<li id="rl_paginas" class="list-group-item list-group-timeline-primary texto-resumen-lateral">340
páginas</li>
</ul>
</div>
</div>
<div class="rl-interior rl-item d-none">
<div class="row">Interior</div>
<div class="row">
<ul class="list-group list-group-timeline">
<li id="rl_tipo_interior" class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Blanco y
negro estándar</li>
<li id="rl_papel_interior"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Offset
blanco 90 gr.</li>
<li id="rl_papel_interior_color"
class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">Offset
blanco 90 gr.</li>
</ul>
</div>
</div>
<div class="rl-cubierta rl-item d-none">
<div class="row">Cubierta</div>
<div class="row">
<ul class="list-group list-group-timeline">
<li id="rl_papel_cubierta"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Estucado
Mate
300 gr.</li>
<li id="rl_caras_cubierta"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Impresa
1
cara</li>
<li id="rl_acabado_cubierta"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Plastificado brillo</li>
</ul>
</div>
</div>
<div class="rl-sobrecubierta rl-item d-none">
<div class="row">Sobrecubierta</div>
<div class="row">
<ul class="list-group list-group-timeline">
<li id="rl_no_sobrecubierta"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">
No</li>
<li id="rl_papel_sobrecubierta"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">Estucado mate 170 gr
</li>
<li id="rl_tamanio_sobrecubierta"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">
60mm</li>
<li id="rl_acabado_sobrecubierta"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Plastificado brillo</li>
</ul>
</div>
</div>
<div class="rl-servicios-extra rl-item d-none">
<div class="row">Servicios extra</div>
<div class="row">
<ul class="list-group list-group-timeline">
<li id="rl_prototipo"
class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Prototipo</li>
</ul>
</div>
</div>
</div>
<div id='divTiradasPrecio'></div>
</div> <!--//.bs-stepper-header -->
</div>
</div>
<div class="bs-stepper-header d-none d-md-flex">
<div class="bs-stepper-header col-3">
<div <?= ($state == 2) ? 'hidden' : '' ?> class="step active titulos-menu" data-target="#datos-generales">
<button type="button" class="step-trigger" aria-selected="false" disabled="disabled">
@ -332,13 +182,33 @@
<li id="rl_prototipo" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Prototipo</li>
</ul>
<ul class="list-group list-group-timeline">
<li id="rl_ferro" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Ferro</li>
</ul>
<ul class="list-group list-group-timeline">
<li id="rl_ferroDigital" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Ferro digital</li>
</ul>
<ul class="list-group list-group-timeline">
<li id="rl_marcapaginas" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Marcapáginas</li>
</ul>
<ul class="list-group list-group-timeline">
<li id="rl_retractilado" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Retractilado</li>
</ul>
<ul class="list-group list-group-timeline">
<li id="rl_retractilado5" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Retractilado de 5</li>
</ul>
</div>
</div>
</div>
<div id='divTiradasPrecio'></div>
<div class='divTiradasPrecio'></div>
</div> <!--//.bs-stepper-header -->

View File

@ -777,7 +777,7 @@ function convertirTiempo(horas){
// se convierte a formato hh:mm:ss
const h = Math.floor(seconds / 3600);
const minutos = Math.floor((seconds % 3600) / 60);
const segundos = seconds % 60;
const segundos = round(seconds % 60, 0);
return h + ':' + minutos + ':' + segundos;
}
else{

View File

@ -1,3 +0,0 @@
[ZoneTransfer]
ZoneId=3
ReferrerUrl=C:\Users\jjime\Downloads\safekat-dev-presu_cliente_v2.zip

View File

@ -1,3 +0,0 @@
[ZoneTransfer]
ZoneId=3
ReferrerUrl=C:\Users\jjime\Downloads\safekat-dev-presu_cliente_v2.zip

View File

@ -55,6 +55,11 @@ class DatosGenerales {
this.ivaReducido = this.domItem.find("#ivaReducido");
this.excluirRotativa = this.domItem.find("#excluirRotativa");
this.prototipo = this.domItem.find("#prototipo");
this.ferro = this.domItem.find("#ferro");
this.ferroDigital = this.domItem.find("#ferroDigital");
this.marcapaginas = this.domItem.find("#marcapaginas");
this.retractilado = this.domItem.find("#retractilado");
this.retractilado5 = this.domItem.find("#retractilado5");
this.rl_datos_generales = $(".rl-datos-generales");
this.rl_tipo = $("#rl_tipo");
@ -65,6 +70,11 @@ class DatosGenerales {
this.rl_servicios_extra = $(".rl-servicios-extra");
this.rl_prototipo = $("#rl_prototipo");
this.rl_ferro = $("#rl_ferro");
this.rl_ferroDigital = $("#rl_ferroDigital");
this.rl_marcapaginas = $("#rl_marcapaginas");
this.rl_retractilado = $("#rl_retractilado");
this.rl_retractilado5 = $("#rl_retractilado5");
this.initValidation();
}
@ -93,6 +103,9 @@ class DatosGenerales {
this.altoPersonalizado.on("change", this.#checkValue.bind(this));
this.titulo.on('change', () => { $(".titulo").html(this.titulo.val()); });
this.retractilado.on('change', this.#eventRetractilado.bind(this));
this.retractilado5.on('change', this.#eventRetractilado.bind(this));
}
initValidation() {
@ -466,6 +479,47 @@ class DatosGenerales {
else{
this.rl_prototipo.addClass('d-none');
}
if(this.ferro.is(':checked')){
this.rl_ferro.removeClass("d-none");
menu_off = false;
}
else{
this.rl_ferro.addClass('d-none');
}
if(this.ferroDigital.is(':checked')){
this.rl_ferroDigital.removeClass("d-none");
menu_off = false;
}
else{
this.rl_ferroDigital.addClass('d-none');
}
if(this.marcapaginas.is(':checked')){
this.rl_marcapaginas.removeClass("d-none");
menu_off = false;
}
else{
this.rl_marcapaginas.addClass('d-none');
}
if(this.retractilado.is(':checked')){
this.rl_retractilado.removeClass("d-none");
menu_off = false;
}
else{
this.rl_retractilado.addClass('d-none');
}
if(this.retractilado5.is(':checked')){
this.rl_retractilado5.removeClass("d-none");
menu_off = false;
}
else{
this.rl_retractilado5.addClass('d-none');
}
if(!menu_off){
this.rl_servicios_extra.removeClass('d-none');
}
@ -534,6 +588,12 @@ class DatosGenerales {
}
this.prototipo.prop('checked', datos.prototipo);
this.ferro.prop('checked', datos.ferro);
this.ferroDigital.prop('checked', datos.ferroDigital);
this.marcapaginas.prop('checked', datos.marcapaginas);
this.retractilado.prop('checked', datos.retractilado);
this.retractilado5.prop('checked', datos.retractilado5);
this.ivaReducido.val(datos.ivaReducido ? 1 : 0).trigger('change');
}
@ -612,6 +672,20 @@ class DatosGenerales {
}
}
#eventRetractilado(event) {
let target = event.target;
if (target.id == 'retractilado') {
if (this.retractilado5.is(':checked')) {
this.retractilado5.prop('checked', false);
}
}
else {
if (this.retractilado.is(':checked')) {
this.retractilado.prop('checked', false);
}
}
}
#handleTipolibro(event) {
// Accede al ID del elemento que disparó el evento

View File

@ -11,6 +11,38 @@ import tarjetaTiradasPrecio from './tarjetaTiradasPrecio.js';
class PresupuestoCliente {
constructor() {
/*
// Seleccionar el header y el contenedor del offcanvas
var stepperHeader = document.querySelector('#sharedStepper');
var offcanvasBody = document.querySelector('#menu-offcanvas .offcanvas-body');
// Función para verificar el tamaño de la pantalla y mover el contenido
function adjustStepperLocation() {
if (window.innerWidth < 768) {
// Si es un dispositivo móvil o tablet, mover el stepper al offcanvas
if (offcanvasBody && stepperHeader) {
// Verificar si el stepper ya está en el offcanvas
if (!offcanvasBody.contains(stepperHeader)) {
offcanvasBody.appendChild(stepperHeader); // Mover al offcanvas
}
}
} else {
// Si es un dispositivo grande, dejar el stepper en su lugar original
var originalContainer = document.querySelector('.bs-stepper-header').parentNode;
if (originalContainer && !originalContainer.contains(stepperHeader)) {
originalContainer.appendChild(stepperHeader); // Mover de vuelta al contenedor original
}
}
}
// Llamar a la función para ajustar la ubicación al cargar
adjustStepperLocation();
// También ejecutar la función cuando cambie el tamaño de la ventana
window.addEventListener('resize', function () {
adjustStepperLocation();
});
*/
this.clientePresupuestoWizard = document.querySelector('#wizard-presupuesto-cliente');
this.validationStepper = new Stepper(this.clientePresupuestoWizard, {
@ -37,7 +69,7 @@ class PresupuestoCliente {
this.direcciones = new Direcciones($("#direcciones-libro"), this.clientePresupuestoWizard, this.validationStepper);
this.resumen = new Resumen($("#resumen-libro"), this.datosGenerales, this.disenioInterior, this.disenioCubierta, this.direcciones);
this.divTiradasPrecios = $("#divTiradasPrecio");
this.divTiradasPrecios = $(".divTiradasPrecio");
this.titulosMenu = $(".titulos-menu");
@ -50,7 +82,7 @@ class PresupuestoCliente {
this.actualizarTiradasEnvio = false;
this.calcularPresupuesto = false;
if(!window.location.href.includes("edit")) {
if (!window.location.href.includes("edit")) {
this.#processResumenLateral();
}
}
@ -167,7 +199,7 @@ class PresupuestoCliente {
this.actualizarTiradasEnvio = false;
if (!this.direcciones.calcularPresupuesto) {
$('#loader').modal('hide');
return;
}
@ -226,9 +258,9 @@ class PresupuestoCliente {
else {
this.#goToForm(nextElement);
}
if(!nextElement.includes('resumen-libro'))
if (!nextElement.includes('resumen-libro'))
this.#processResumenLateral();
else{
else {
$(".rl-item").addClass('d-none');
}
}
@ -259,7 +291,6 @@ class PresupuestoCliente {
default:
break;
}
$('html, body').animate({ scrollTop: 0 }, 'slow');
}
@ -380,7 +411,7 @@ class PresupuestoCliente {
}
}
#printPresupuesto(){
#printPresupuesto() {
window.open('/printpresupuestos/generar/' + window.location.href.split("/").pop(), '_blank');
}
@ -392,7 +423,7 @@ class PresupuestoCliente {
total_unidades += parseInt(element.tirada.val());
});
if(total_unidades != parseInt(this.direcciones.getSelectedTirada())){
if (total_unidades != parseInt(this.direcciones.getSelectedTirada())) {
popErrorAlert("No se puede confirmar el presupuesto. La suma de las unidades enviadas no coincide con la tirada seleccionada.");
return;
}
@ -500,7 +531,7 @@ class PresupuestoCliente {
response.precio_u[i]
);
if (this.actualizarTiradasEnvio){
if (this.actualizarTiradasEnvio) {
this.direcciones.insertTirada(tiradas[i]);
}
@ -595,7 +626,13 @@ class PresupuestoCliente {
paginasCuadernillo: this.datosGenerales.paginasCuadernillo.val(),
tipo: this.datosGenerales.tiposLibro.filter('.selected').attr('id'),
prototipo: this.datosGenerales.prototipo.is(':checked') ? 1 : 0,
ferro: this.datosGenerales.ferro.is(':checked') ? 1 : 0,
ferroDigital: this.datosGenerales.ferroDigital.is(':checked') ? 1 : 0,
marcapaginas: this.datosGenerales.marcapaginas.is(':checked') ? 1 : 0,
retractilado: this.datosGenerales.retractilado.is(':checked') ? 1 : 0,
retractilado5: this.datosGenerales.retractilado5.is(':checked') ? 1 : 0,
isColor: this.datosGenerales.getIsColor() ? 1 : 0,
isHq: this.disenioInterior.getIsHq() ? 1 : 0,
@ -623,6 +660,11 @@ class PresupuestoCliente {
ivaReducido: this.datosGenerales.ivaReducido.find('option:selected').val(),
servicios: {
'prototipo': this.datosGenerales.prototipo.is(':checked') ? 1 : 0,
'ferro': this.datosGenerales.ferro.is(':checked') ? 1 : 0,
'ferroDigital': this.datosGenerales.ferroDigital.is(':checked') ? 1 : 0,
'marcapaginas': this.datosGenerales.marcapaginas.is(':checked') ? 1 : 0,
'retractilado': this.datosGenerales.retractilado.is(':checked') ? 1 : 0,
'retractilado5': this.datosGenerales.retractilado5.is(':checked') ? 1 : 0,
},
};
let lomoRedondo = 0;
@ -766,9 +808,40 @@ function initialize(translations) {
presupuestoCliente.init();
}
document.addEventListener('DOMContentLoaded', function () {
function moveStepperHeader() {
if ($(window).width() < 768) { // Dispositivos pequeños (menos de 768px)
if (!$('.bs-stepper-header').parent().hasClass('offcanvas-body')) {
$('.bs-stepper-header').appendTo('.offcanvas-body');
}
} else { // Dispositivos medianos y grandes (768px o más)
if ($('.bs-stepper-header').parent().hasClass('offcanvas-body')) {
$('.bs-stepper-header').insertBefore('.offcanvas-body');
}
}
}
// Ejecutar la función al cargar la página
moveStepperHeader();
// Ejecutar la función al cambiar el tamaño de la ventana
window.addEventListener('resize', function () {
moveStepperHeader();
});
function moveStepperHeader() {
if ($(window).width() < 768) { // Dispositivos pequeños (menos de 768px)
if (!$('.bs-stepper-header').parent().hasClass('offcanvas-body')) {
$('.bs-stepper-header').appendTo('.offcanvas-body');
}
} else { // Dispositivos medianos y grandes (768px o más)
if ($('.bs-stepper-header').parent().hasClass('offcanvas-body')) {
$('.bs-stepper-header').insertAfter('#menu-offcanvas');
}
}
}
const locale = document.querySelector('meta[name="locale"]').getAttribute('content');
new Ajax('/translate/getTranslation', { locale: locale, translationFile: 'Presupuestos' }, {},
@ -780,3 +853,4 @@ document.addEventListener('DOMContentLoaded', function () {
});