diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php index 44432708..32085f3f 100644 --- a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php @@ -121,6 +121,52 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController $id = $this->model->db->insertID(); + // Guardar los servicios de encuadernación por defecto + $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value; + $ancho = 0; + $alto = 0; + if(isset($sanitizedData['papel_formato_personalizado']) && $sanitizedData['papel_formato_personalizado'] == '1'){ + $ancho = $sanitizedData['papel_formato_ancho']; + $alto = $sanitizedData['papel_formato_alto']; + } + else{ + $papelFormatoModel = new PapelFormatoModel(); + $papelFormato = $papelFormatoModel->find($sanitizedData['papel_formato_id']); + $ancho = $papelFormato->ancho; + $alto = $papelFormato->alto; + } + $servDefectoEnc = PresupuestoCLienteService::getServiciosEncuadernacionDefault([ + 'tipo_impresion_id' => $sanitizedData['tipo_impresion_id'], + 'tirada' => $sanitizedData['tirada'], + 'paginas' => $sanitizedData['paginas'], + 'ancho' => $ancho, + 'alto' => $alto, + 'POD' => $POD, + 'solapas' => 0, // default + 'paginasCuadernillo' => 32, // default + ]); + + $model = new PresupuestoEncuadernacionesModel(); + foreach($servDefectoEnc as $servicio){ + + $data = [ + 'presupuesto_id' => $id, + 'tarifa_encuadernado_id' => $servicio->tarifa_id, + 'proveedor_id' => $servicio->proveedor_id, + 'tiempo' => $servicio->tiempo, + 'precio_total' => round($servicio->total, 2), + 'precio_unidad' => round($servicio->precio_unidad, 2), + '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); + } + $message = lang('Basic.global.saveSuccess', [lang('Basic.global.record')]) . '.'; if ($thenRedirect): @@ -252,7 +298,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController $successfulResult = false; } else { - if ($successfulResult = $this->canValidate()): // if ($successfulResult = $this->validate($this->formValidationRules) ) + if ($successfulResult = $this->canValidate()): // if ($successfulResult = $this->validate($this->formValidationRules) ) if ($this->canValidate()): try { @@ -510,7 +556,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController $data['datosLibro']['marcapaginas'] = $presupuesto->marcapaginas; $data['datosLibro']['retractilado'] = $presupuesto->retractilado; $data['datosLibro']['retractilado5'] = $presupuesto->retractilado5; - + $data['comparador']['tipo_impresion'] = $presupuesto->comp_tipo_impresion; $data['comparador']['json_data'] = json_decode($presupuesto->comparador_json_data, true); if ($data['comparador']['json_data'] != null) { @@ -677,7 +723,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController $tipo_impresion_id = $sobrecubierta['tipo_impresion_id']; $faja = intval($sobrecubierta['faja'] ?? 0); $uso = $faja==1? 'faja' : $sobrecubierta['uso']; - + $data = array( 'cliente_id' => $cliente_id, @@ -725,7 +771,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController // guardas siempre hq $isHq = true; - + // Para el caso de Fresado y Cosido tapa dura, las guardas son un diptico // y hay que imprimirlas como "cosido" (dos hojas pegadas). En el caso de espiral // o wire-o tapa dura, las guardas se imprimen como hojas sueltas @@ -1108,14 +1154,14 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController $model = model('App\Models\Configuracion\PapelGenericoModel'); $query = $model->getPapelForComparador( - $tipo, - $cubierta, - $sobrecubierta, - $rotativa, - $guardas, - $tapa_dura, + $tipo, + $cubierta, + $sobrecubierta, + $rotativa, + $guardas, + $tapa_dura, $isPOD, - $anchoLibro, + $anchoLibro, $alto, $tirada); if ($this->request->getGet("q")) { @@ -1171,15 +1217,15 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController } $model = model('App\Models\Configuracion\PapelGenericoModel'); - $query = $model->getGramajeForComparador($tipo, - $papel_generico_id, - $cubierta, - $sobrecubierta, - $rotativa, - $guardas, - $tapa_dura, - $isPOD, - $anchoLibro, + $query = $model->getGramajeForComparador($tipo, + $papel_generico_id, + $cubierta, + $sobrecubierta, + $rotativa, + $guardas, + $tapa_dura, + $isPOD, + $anchoLibro, $alto, $tirada); if ($this->request->getGet("q")) { @@ -1417,13 +1463,13 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController /** * Duplica un presupuesto dado por su ID. * - * Esta función duplica un presupuesto y todas sus entidades relacionadas como acabados, encuadernaciones, manipulados, - * preimpresiones, direcciones y lineas. El presupuesto duplicado se marca como tal y a su título se le añade + * Esta función duplica un presupuesto y todas sus entidades relacionadas como acabados, encuadernaciones, manipulados, + * preimpresiones, direcciones y lineas. El presupuesto duplicado se marca como tal y a su título se le añade * una cadena 'duplicado'. La función devuelve un array con un estado de éxito y el ID del nuevo presupuesto. * * @param int $id El ID del presupuesto a duplicar. - * @return array Un array asociativo que contiene una clave 'success' que indica el estado de éxito de la operación, - * y una clave 'id' que contiene el ID del nuevo presupuesto si la operación fue exitosa. + * @return array Un array asociativo que contiene una clave 'success' que indica el estado de éxito de la operación, + * y una clave 'id' que contiene el ID del nuevo presupuesto si la operación fue exitosa. * Si ocurre una excepción, la clave 'success' será false y una clave 'message' contendrá el mensaje de la excepción. * @throws \Exception Si ocurre un error durante la operación. */ @@ -1553,7 +1599,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController $gramaje = $reqData['gramaje'] ?? null; $tipoLinea = $reqData['tipoLinea'] ?? null; // En este caso contiene el nombre del papel generico - // Uso: negro, negrohq, color, colorhq, rot_bn, rot_color, + // Uso: negro, negrohq, color, colorhq, rot_bn, rot_color, $model = new PapelImpresionModel(); $menu = $model->getPapelesImpresionForMenu($datos, $gramaje, $tipoLinea, $uso); @@ -1568,7 +1614,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController $ancho = $reqData['ancho'] ?? null; $alto = $reqData['alto'] ?? null; // Datos contiene la tirada - // uso: negro, negrohq, color, colorhq, + // uso: negro, negrohq, color, colorhq, $uso_tarifa = $reqData['uso_tarifa'] ?? 'interior'; $model = new MaquinaModel(); $maquinas = $model->getMaquinaImpresionForPresupuesto($is_rotativa, $uso, $uso_tarifa, $datos, $papel_impresion); diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.php index a96f9556..aaf44c33 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.php +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.php @@ -12,9 +12,11 @@ data-bs-parent="#accordionDatosServicios">