diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php index 03ff9410..cfd405ad 100755 --- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php @@ -118,7 +118,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $datosPresupuesto->tapa = 'blanda'; $datosPresupuesto->clienteList = $this->getClienteListItems($clienteId ?? null); + $datosPresupuesto->paginasCuadernillo = [32, 28, 24, 20 , 16]; $presupuestoEntity->estado_id = 1; + $presupuestoEntity->paginas_por_cuadernillo = 32; $this->viewData['formAction'] = 'add'; @@ -185,6 +187,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController if($presupuestoEntity->estado_id == 2){ $this->generarResumen($presupuestoEntity); } + + $datosPresupuesto->paginasCuadernillo = [32, 28, 24, 20 , 16]; + $presupuestoEntity->paginas_por_cuadernillo = $this->obtenerPaginasCuadernillo($presupuestoEntity); $this->viewData['formAction'] = 'edit'; @@ -371,6 +376,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $servicios = $reqData['servicios'] ?? []; + $paginasCuadernillo = $reqData['paginasCuadernillo'] ?? null; + $datos_presupuesto = array( 'tirada' => $tirada, 'tamanio' => $tamanio, @@ -378,6 +385,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController 'clienteId' => $cliente_id, 'isColor' => $isColor, 'isHq' => $isHq, + 'paginasCuadernillo' => $paginasCuadernillo, 'interior' => array( 'papel_generico' => $papel_generico, @@ -600,6 +608,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $cliente_id = $reqData['datos_libro']['clienteId'] ?? -1; $isColor = intval($reqData['datos_libro']['isColor']) ?? 0; $isHq = intval($reqData['datos_libro']['isHq']) ?? 0; + $paginasCuadernillo = $reqData['datos_libro']['paginasCuadernillo'] ?? null; // Interior $papel_generico = [ @@ -637,6 +646,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController 'clienteId' => $cliente_id, 'isColor' => $isColor, 'isHq' => $isHq, + 'paginasCuadernillo' => $paginasCuadernillo, 'interior' => array( 'papel_generico' => $papel_generico, @@ -983,6 +993,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController 'precio_unidad' => $servicio->precio_unidad, 'margen' => $servicio->margen, ]; + + // Se comprueba que $servicio tiene paginasCuadernillo + if (isset($servicio->paginas_por_cuadernillo)) { + $data['paginas_por_cuadernillo'] = $servicio->paginas_por_cuadernillo; + } + $model->insert($data); } else if ($tipo == 'extra') { $model = new PresupuestoServiciosExtraModel(); @@ -1086,6 +1102,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $cliente_id = $datos_entrada['clienteId'] ?? -1; $isColor = $datos_entrada['isColor']; $isHq = $datos_entrada['isHq']; + $paginasCuadernillo = $datos_entrada['paginasCuadernillo'] ?? null; // Interior $papel_generico = $datos_entrada['interior']['papel_generico']; @@ -1429,6 +1446,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController 'alto' => $datosPedido->alto, 'POD' => $POD, 'solapas' => intval($solapasCubierta) > 0 ? 1 : 0, + 'paginasCuadernillo' => $paginasCuadernillo, ]); $costeServiciosDefecto = 0.0; foreach ($servDefecto as $servicio) { @@ -1996,4 +2014,17 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $tipo = "" . ($isColor ? "Color" : "Negro") . " " . ($isHq ? "premium" : "estándar"); return $tipo; } + + protected function obtenerPaginasCuadernillo($presupuestoEntity){ + + $model = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel'); + $lineas = $model->getResource($presupuestoEntity->id)->get()->getResultObject(); + + foreach ($lineas as $linea){ + // check if exist + if($linea->paginas_por_cuadernillo != null) + return $linea->paginas_por_cuadernillo; + } + return 32; // valor por defecto + } } diff --git a/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php b/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php index 0a3d21df..3958b2ec 100755 --- a/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php +++ b/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php @@ -48,7 +48,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel - public function initPresupuesto($tipo_presupuesto, $solapas, $tirada, $paginas, $ancho, $alto, $POD){ + public function initPresupuesto($tipo_presupuesto, $solapas, $tirada, $paginas, $ancho, $alto, $POD, $paginasCuadernillo = 32){ $model = model('App\Models\Presupuestos\TipoPresupuestoServiciosDefectoModel'); $tarifas_procesar = $model->get_tarifas($tipo_presupuesto, $solapas, "encuadernacion"); @@ -61,7 +61,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel if($modelTarifa->isTarifaPorHoras($tarifa['tarifa_id'])){ if($tarifa['tarifa_id'] == 2 || $tarifa['tarifa_id'] == 14){ // Rústica cosido hilo vegetal y Rústica cosido hilo vegetal solapas - $tiempo = $this->calcularTiempoCosido(16, $paginas, $tirada); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos + $tiempo = $this->calcularTiempoCosido(16, $paginas, $tirada, $paginasCuadernillo); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos } else{ $tiempo = $this->calcularTiempo(16, $paginas, $tirada); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos @@ -93,7 +93,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel ]; if($tarifa['tarifa_id'] == 2 || $tarifa['tarifa_id'] == 14){ - $datos['paginas_por_cuadernillo'] = 32; // valor por defecto + $datos['paginas_por_cuadernillo'] = $paginasCuadernillo; } array_push($result_array, diff --git a/ci4/app/Services/PresupuestoClienteService.php b/ci4/app/Services/PresupuestoClienteService.php index d4e91877..ecb1f1ad 100644 --- a/ci4/app/Services/PresupuestoClienteService.php +++ b/ci4/app/Services/PresupuestoClienteService.php @@ -341,9 +341,10 @@ class PresupuestoClienteService extends BaseService $alto = $data['alto'] ?? -1; $POD = $data['POD'] ?? -1; $solapas = $data['solapas'] ?? -1; + $paginasCuadernillo = $data['paginasCuadernillo'] ?? null; $model = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel'); - $values = $model->initPresupuesto($tipo_impresion_id, $solapas, $tirada, $paginas, $ancho, $alto, $POD); + $values = $model->initPresupuesto($tipo_impresion_id, $solapas, $tirada, $paginas, $ancho, $alto, $POD, $paginasCuadernillo); return $values; } diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/_disenioLibroItems.php b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/_disenioLibroItems.php index 442b8694..a646b22d 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/_disenioLibroItems.php +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/_disenioLibroItems.php @@ -128,6 +128,21 @@ +
+ + +
+
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/disenioLibro.js b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/disenioLibro.js index c5dcd30e..31c46e6a 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/disenioLibro.js +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/disenioLibro.js @@ -646,11 +646,18 @@ async function calcularPresupuesto() { clienteId: $('#clienteId').val(), servicios: servicios, } + + // Si es cosido, se añade el número de páginas del cuadernillo + if ($('#cosidoDiv').hasClass('checked')) { + datos.paginasCuadernillo = $('#paginasCuadernillo').val(); + } // Si hay solapas de cubierta if ($('#solapasCubierta').is(':checked')) { datos.solapasCubierta = $('#anchoSolapasCubierta').val() } + + // Si hay sobrecubierta if ($('#enableSobrecubierta').is(':checked')) { if($('#papelSobrecubierta option:selected').val()>0 && $('#gramajeSobrecubierta option:selected').val()>0){ diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/resumen.js b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/resumen.js index d9350ae2..956eb8fa 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/resumen.js +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/resumen.js @@ -218,6 +218,12 @@ function finalizarPresupuesto(confirmar){ clienteId: $('#clienteId').val(), servicios: servicios, }; + + // Si es cosido, se añade el número de páginas del cuadernillo + if ($('#cosidoDiv').hasClass('checked')) { + datos_libro.paginasCuadernillo = $('#paginasCuadernillo').val(); + } + // Si hay solapas de cubierta if ($('#solapasCubierta').is(':checked')) { datos_libro.solapasCubierta = $('#anchoSolapasCubierta').val() diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/tipoLibroItems.js b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/tipoLibroItems.js index d345dbdb..11ee90da 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/tipoLibroItems.js +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/tipoLibroItems.js @@ -33,6 +33,12 @@ function updateTipoLibroCheck(el) else { $('#tapaDuraDiv').show(); } + if(el.closest('.custom-option-tipo').id == 'cosidoDiv') { + $('#div_pagCuadernillo').show(); + } + else { + $('#div_pagCuadernillo').hide(); + } } else { el.closest('.custom-option-tipo').classList.remove('checked') }