diff --git a/ci4/app/Controllers/Pdf/PrintPresupuestos.php b/ci4/app/Controllers/Pdf/PrintPresupuestos.php index 03b372ee..fe16b597 100755 --- a/ci4/app/Controllers/Pdf/PrintPresupuestos.php +++ b/ci4/app/Controllers/Pdf/PrintPresupuestos.php @@ -56,8 +56,13 @@ class PrintPresupuestos extends BaseController $options->set('isRemoteEnabled', true); $dompdf = new \Dompdf\Dompdf($options); - // Contenido HTML del documento - $dompdf->loadHtml(view(getenv('theme.path').'pdfs/presupuesto', $data)); + // Metodo que funciona en el docker + $css = file_get_contents(getenv('theme.path'). 'css/pdf.presupuesto.css'); + $html = view(getenv('theme.path') . 'pdfs/presupuesto', $data); + $html = "" . $html; + $dompdf->loadHtml($html); + + //$dompdf->loadHtml(view(getenv('theme.path') . 'pdfs/presupuesto', $data)); // Establecer el tamaño del papel $dompdf->setPaper('A4', 'portrait'); diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php index 93aa8a42..58310480 100755 --- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php @@ -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 = [ diff --git a/ci4/app/Database/Migrations/2024-11-13-161331_CheckWebClientesPapeles.php b/ci4/app/Database/Migrations/2024-11-13-161331_CheckWebClientesPapeles.php new file mode 100644 index 00000000..56decb5f --- /dev/null +++ b/ci4/app/Database/Migrations/2024-11-13-161331_CheckWebClientesPapeles.php @@ -0,0 +1,27 @@ + [ + 'type' => 'TINYINT', + 'constraint' => 1, + 'null' => false, + 'default' => 0, + ], + ]; + + $this->forge->addColumn('lg_papel_impresion', $fields); + } + + public function down() + { + $this->forge->dropColumn('lg_papel_impresion', 'show_in_client'); + } +} diff --git a/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php b/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php index 956bbe77..9e78b7a1 100755 --- a/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php +++ b/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php @@ -73,7 +73,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel $result_array = []; foreach($tarifa_value as $tarifa_proveedor){ $precio_total = floatval(1.0* $tarifa_proveedor->precio_hora* $tiempo) * (1+$tarifa_value[0]->margen/100.0); - if (!$POD){ + if ($tirada>=$POD){ $precio_total += floatval($tarifa_proveedor->tarifa_importe_fijo); } @@ -265,7 +265,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel $ret_array = []; foreach($tarifa_value as $tarifa_proveedor){ $precio_total = floatval(1.0* $tarifa_proveedor->precio_hora* $tiempo) * (1+$tarifa_value[0]->margen/100.0); - if (!$POD){ + if ($tirada>=$POD){ $precio_total += floatval($tarifa_proveedor->tarifa_importe_fijo); } diff --git a/ci4/app/Models/Presupuestos/PresupuestoModel.php b/ci4/app/Models/Presupuestos/PresupuestoModel.php index f242d25e..dc73bd25 100755 --- a/ci4/app/Models/Presupuestos/PresupuestoModel.php +++ b/ci4/app/Models/Presupuestos/PresupuestoModel.php @@ -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, diff --git a/ci4/app/Views/themes/vuexy/form/clientes/plantillaprecios/viewClienteplantillapreciosForm.php b/ci4/app/Views/themes/vuexy/form/clientes/plantillaprecios/viewClienteplantillapreciosForm.php index 0407597d..d2c26e2f 100644 --- a/ci4/app/Views/themes/vuexy/form/clientes/plantillaprecios/viewClienteplantillapreciosForm.php +++ b/ci4/app/Views/themes/vuexy/form/clientes/plantillaprecios/viewClienteplantillapreciosForm.php @@ -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: '' - } + 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: '' + } } ] } ); 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 31c46e6a..11d9093a 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/disenioLibro.js +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/disenioLibro.js @@ -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 += ''; html += ''; - $('#divTiradasPrecio').append(html); + $('.divTiradasPrecio').append(html); } } @@ -783,7 +783,7 @@ async function calcularPresupuesto() { }, error: function (error) { $('#loader').hide(); - $('#divTiradasPrecio').empty(); + $('.divTiradasPrecio').empty(); } }); } \ No newline at end of file diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_datosGenerales.php b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_datosGenerales.php index 666b1ffc..37b01331 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_datosGenerales.php +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_datosGenerales.php @@ -49,13 +49,12 @@ -
" > -