From b9a742a7a7b11509c48b7d30b8faaceb0272f808 Mon Sep 17 00:00:00 2001 From: Jaime Jimenez Date: Wed, 19 Mar 2025 12:19:08 +0100 Subject: [PATCH 1/6] solucionados algunos problemas con las tiradas alternativas --- .../Presupuestotiradasalternativas.php | 12 +++++++----- .../pages/presupuestoAdmin/sections/resumen.js | 12 +++++++----- .../sections/tiradasAlternativas.js | 17 +++++++++++------ 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/ci4/app/Controllers/Presupuestos/Presupuestotiradasalternativas.php b/ci4/app/Controllers/Presupuestos/Presupuestotiradasalternativas.php index 616a6ef4..96d6c079 100644 --- a/ci4/app/Controllers/Presupuestos/Presupuestotiradasalternativas.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestotiradasalternativas.php @@ -378,14 +378,16 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro $json_data_extra = json_decode($json_data_extra, true); if (count($json_data_extra) > 0) { $extra = new Presupuestoserviciosextra(); - $POD = (new \App\Models\Configuracion\ConfigVariableModel())->getVariable('POD')->value; - $result = $extra->getServiciosExtra($json_data_extra, $reqData['tirada'], $POD); + $json_data_extra = array_map(function($item) { + return $item['tarifa_id']; + }, $json_data_extra); + $result = $extra->getServiciosExtra($json_data_extra); if (count($result) > 0) { foreach ($result as $servicio) { - $servicios->coste += round(floatval($servicio->total), 2); - $base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2); + $servicios->coste += round(floatval($servicio->precio), 2); + $base = round(floatval($servicio->precio / (1 + floatval($servicio->margen) / 100.0)), 2); $base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada; - $servicios->margen += round(floatval($servicio->total - $base), 2); + $servicios->margen += round(floatval($servicio->precio - $base), 2); } } } diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js index 08d0b3f2..8384c70c 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js @@ -208,9 +208,10 @@ class Resumen { $('#tableOfServiciosPreimpresion').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { let rowData = this.data(); let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio)); - let coste_servicio = self.roundToTwoDecimals(parseFloat(rowData.coste)); + let base = (parseFloat(rowData.precio / (1 + parseFloat(rowData.margen) / 100.0)).toFixed(2)); + base = self.roundToTwoDecimals(base / parseInt($('#tirada').val()))*parseInt($('#tirada').val()); + margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base)); totalServicios += total_servicio - margenServicios += total_servicio - coste_servicio; }); } @@ -218,9 +219,10 @@ class Resumen { $('#tableOfServiciosExtra').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { let rowData = this.data(); let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio)); - let coste_servicio = self.roundToTwoDecimals(parseFloat(rowData.margen)); - totalServicios += total_servicio - margenServicios += total_servicio - coste_servicio; + let base = (parseFloat(rowData.precio / (1 + parseFloat(rowData.margen) / 100.0)).toFixed(2)); + base = self.roundToTwoDecimals(base / parseInt($('#tirada').val()))*parseInt($('#tirada').val()); + margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base)); + totalServicios += total_servicio; }); } diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/tiradasAlternativas.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/tiradasAlternativas.js index 85ad2b67..71035644 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/tiradasAlternativas.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/tiradasAlternativas.js @@ -172,7 +172,7 @@ class TiradasAlernativas { let datos = { id: id, - tirada: this.tirada.val(), + tirada: tirada, peso_libro: this.get_peso_libro(), tirada_base: $('#tirada').val(), paginas: $('#paginas').val(), @@ -225,18 +225,23 @@ class TiradasAlernativas { } + /* $('#tableOfServiciosPreimpresion').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { var rowData = this.data(); - costes_servicios += parseFloat(rowData.coste); - margen_servicios += parseFloat(rowData.precio) - parseFloat(rowData.coste); + var base = (parseFloat(rowData.precio / (1 + parseFloat(rowData.margen) / 100.0)).toFixed(2)); + base = parseFloat((parseFloat(base) / datos.tirada).toFixed(2)) * datos.tirada; + costes_servicios += parseFloat(rowData.precio); + margen_servicios += parseFloat(rowData.precio) - base; }); $('#tableOfServiciosExtra').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { var rowData = this.data(); - costes_servicios += parseFloat(rowData.coste); - margen_servicios += parseFloat(rowData.precio) - parseFloat(rowData.coste); + var base = (parseFloat(rowData.precio / (1 + parseFloat(rowData.margen) / 100.0)).toFixed(2)); + base = parseFloat((parseFloat(base) / datos.tirada).toFixed(2)) * datos.tirada; + costes_servicios += parseFloat(rowData.precio); + margen_servicios += parseFloat(rowData.precio) - base; }); - + */ if (data.envios) { coste_envio += data.envios.coste; margen_envio += data.envios.margen; From 7106d461066d15baabba47a10c790100b708540d Mon Sep 17 00:00:00 2001 From: Jaime Jimenez Date: Wed, 19 Mar 2025 14:41:13 +0100 Subject: [PATCH 2/6] =?UTF-8?q?se=20ha=20a=C3=B1adido=20el=20iva=20reducid?= =?UTF-8?q?o=20en=20el=20presupuesto=20de=20administrador?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Presupuestos/Presupuestoadmin.php | 3 ++ .../admin/_resumenPresupuestoItems.php | 35 ++++++++++++------- .../presupuestoAdmin/sections/resumen.js | 6 +++- .../sections/tiradasAlternativas.js | 19 +--------- 4 files changed, 31 insertions(+), 32 deletions(-) diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php index 2fa7a3cf..4865dfc0 100644 --- a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php @@ -614,6 +614,9 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController $data['resumen']['total_precio_unidad'] = $presupuesto->total_precio_unidad; $data['resumen']['total_factor'] = is_numeric($presupuesto->total_factor) ? $presupuesto->total_factor : 0; $data['resumen']['total_factor_ponderado'] = is_numeric($presupuesto->total_factor_ponderado) ? $presupuesto->total_factor_ponderado : 0; + + $data['resumen']['iva_reducido'] = $presupuesto->iva_reducido; + if ($presupuesto->estado_id == 2) { $data['resumen']['total_aceptado'] = $presupuesto->total_aceptado; } diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_resumenPresupuestoItems.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_resumenPresupuestoItems.php index 4eb6c8a2..028d0fe5 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_resumenPresupuestoItems.php +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_resumenPresupuestoItems.php @@ -2,14 +2,14 @@

+ data-bs-parent="#accordionResumen">
@@ -36,9 +36,9 @@
Coste de envío
-
+
Precio de envío
-
+
Margen envío
@@ -79,22 +79,31 @@
+
+ + +
+ estado_id == 2): ?>
-
+
- > + >
-
- - - - - + + \ No newline at end of file diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js index 8384c70c..cbc1c042 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js @@ -56,6 +56,8 @@ class Resumen { $("#totalAceptado").val(resumen.total_aceptado.toString().replace('.', ',') + "€" || "0€"); } + $('#ivaReducido').val(resumen.iva_reducido ? 1: 0); + } update() { @@ -347,7 +349,9 @@ class Resumen { 'total_precio_unidad': $('#precioUnidadPresupuesto').text().replace('€', '').replace(',', '.'), 'total_factor': $('#factor').text().replace(/,/g, '.'), - 'total_factor_ponderado': $('#factor_ponderado').text().replace(/,/g, '.') + 'total_factor_ponderado': $('#factor_ponderado').text().replace(/,/g, '.'), + + 'iva_reducido': $('#ivaReducido').val() }; if($('#confirmar_presupuesto').prop('checked')){ diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/tiradasAlternativas.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/tiradasAlternativas.js index 71035644..cb35c80e 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/tiradasAlternativas.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/tiradasAlternativas.js @@ -224,24 +224,7 @@ class TiradasAlernativas { margen_servicios += data.servicios.margen; } - - /* - $('#tableOfServiciosPreimpresion').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { - var rowData = this.data(); - var base = (parseFloat(rowData.precio / (1 + parseFloat(rowData.margen) / 100.0)).toFixed(2)); - base = parseFloat((parseFloat(base) / datos.tirada).toFixed(2)) * datos.tirada; - costes_servicios += parseFloat(rowData.precio); - margen_servicios += parseFloat(rowData.precio) - base; - }); - - $('#tableOfServiciosExtra').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { - var rowData = this.data(); - var base = (parseFloat(rowData.precio / (1 + parseFloat(rowData.margen) / 100.0)).toFixed(2)); - base = parseFloat((parseFloat(base) / datos.tirada).toFixed(2)) * datos.tirada; - costes_servicios += parseFloat(rowData.precio); - margen_servicios += parseFloat(rowData.precio) - base; - }); - */ + if (data.envios) { coste_envio += data.envios.coste; margen_envio += data.envios.margen; From 8f6c86bad55fb8c173c2b2d1180cf2e078f67609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Wed, 19 Mar 2025 17:39:51 +0100 Subject: [PATCH 3/6] =?UTF-8?q?a=C3=B1adido=20footer=20de=20modificaciones?= =?UTF-8?q?=20en=20presupuesto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Presupuestos/Presupuestoadmin.php | 5 +++++ ci4/app/Language/es/Presupuestos.php | 3 +++ .../admin/viewPresupuestoadminForm.php | 17 +++++++++++++++++ .../presupuestoAdmin/presupuestoAdminEdit.js | 6 ++++++ 4 files changed, 31 insertions(+) diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php index 4865dfc0..7d6765ca 100644 --- a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php @@ -617,6 +617,11 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController $data['resumen']['iva_reducido'] = $presupuesto->iva_reducido; + $data['created_by'] = model('App\Models\UserModel')->getFullName($presupuesto->user_created_id); + $data['updated_by'] = model('App\Models\UserModel')->getFullName($presupuesto->user_update_id); + $data['created_at'] = date(' H:i d/m/Y', strtotime($presupuesto->created_at)); + $data['updated_at'] = date(' H:i d/m/Y', strtotime($presupuesto->updated_at)); + if ($presupuesto->estado_id == 2) { $data['resumen']['total_aceptado'] = $presupuesto->total_aceptado; } diff --git a/ci4/app/Language/es/Presupuestos.php b/ci4/app/Language/es/Presupuestos.php index d8e63cb1..3f73d4f5 100755 --- a/ci4/app/Language/es/Presupuestos.php +++ b/ci4/app/Language/es/Presupuestos.php @@ -264,6 +264,9 @@ return [ 'totalAceptado' => 'Total aceptado', + 'created_by_at' => 'Creado: ', + 'updated_by_at' => 'Actualizado: ', + // Placeholders 'formatoLibro' => "Formato libro", 'selectCliente' => "Seleccione cliente", diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/viewPresupuestoadminForm.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/viewPresupuestoadminForm.php index 5d95c2f2..5a2e0ec7 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/viewPresupuestoadminForm.php +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/viewPresupuestoadminForm.php @@ -69,6 +69,23 @@ "btn btn-secondary float-start",]) ?> + +
+
+

+ + , + +

+
+
+

+ + , + +

+
+
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js index 11511be1..60ffaa21 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js @@ -370,6 +370,11 @@ class PresupuestoAdminEdit { self.tipo_impresion.val(response.data.tipo_impresion); self.POD.val(response.data.POD); + $('#created_by').html(response.data.created_by); + $('#updated_by').html(response.data.updated_by); + $('#created_at').html(response.data.created_at); + $('#updated_at_footer').html(response.data.updated_at); + self.calcularPresupuesto = false; self.datosGenerales.cargarDatos(response.data.datosGenerales); @@ -392,6 +397,7 @@ class PresupuestoAdminEdit { self.tiradasAlternativas.cargar(response.data.tiradasAlternativas); self.resumen.cargar(response.data.resumen); + self.datosLibro.calcular_mermas(); setTimeout(() => { From 63ec2c8bf0c6c253b0d119780d8e4a13bddcd62d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Wed, 19 Mar 2025 19:38:05 +0100 Subject: [PATCH 4/6] =?UTF-8?q?a=C3=B1adido=20footer=20con=20los=20usuario?= =?UTF-8?q?s=20en=20facturas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ci4/app/Controllers/Facturacion/Facturas.php | 7 ++++++- .../vuexy/form/facturas/viewFacturaForm.php | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/ci4/app/Controllers/Facturacion/Facturas.php b/ci4/app/Controllers/Facturacion/Facturas.php index b12c6506..e2755e8e 100755 --- a/ci4/app/Controllers/Facturacion/Facturas.php +++ b/ci4/app/Controllers/Facturacion/Facturas.php @@ -208,8 +208,13 @@ class Facturas extends \App\Controllers\BaseResourceController ['title' => lang("Facturas.facturaList"), 'route' => route_to('facturasList'), 'active' => true] ]; + $userModel = model('App\Models\UserModel'); + $factura->created_by = $userModel->getFullName($factura->user_created_id); + $factura->updated_by = $userModel->getFullName($factura->user_updated_id); + $factura->created_at_footer = $factura->created_at ? date(' H:i d/m/Y', strtotime($factura->created_at)) : ''; + $factura->updated_at_footer = $factura->updated_at ? date(' H:i d/m/Y', strtotime($factura->updated_at)) : ''; $this->viewData['facturaEntity'] = $factura; - + $this->viewData['boxTitle'] = lang('Basic.global.edit2') . ' ' . lang('Facturas.factura') . ' ' . lang('Basic.global.edit3'); return $this->displayForm(__METHOD__, $id); diff --git a/ci4/app/Views/themes/vuexy/form/facturas/viewFacturaForm.php b/ci4/app/Views/themes/vuexy/form/facturas/viewFacturaForm.php index 2fbf6ea1..297cb26e 100644 --- a/ci4/app/Views/themes/vuexy/form/facturas/viewFacturaForm.php +++ b/ci4/app/Views/themes/vuexy/form/facturas/viewFacturaForm.php @@ -61,6 +61,22 @@ ] ) ?> +
+
+

+ + created_by ?>, + created_at_footer ?> +

+
+
+

+ + updated_by ?>, + updated_at_footer ?> +

+
+
From 756578a25105c1f71d7078613d2f25697edaad47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Wed, 19 Mar 2025 19:41:17 +0100 Subject: [PATCH 5/6] =?UTF-8?q?a=C3=B1adido=20footer=20con=20los=20usuario?= =?UTF-8?q?s=20en=20pedidos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ci4/app/Controllers/Pedidos/Pedido.php | 8 +++++++- .../vuexy/form/pedidos/viewPedidoForm.php | 17 ++++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/ci4/app/Controllers/Pedidos/Pedido.php b/ci4/app/Controllers/Pedidos/Pedido.php index 4cfa2a1d..864933e1 100755 --- a/ci4/app/Controllers/Pedidos/Pedido.php +++ b/ci4/app/Controllers/Pedidos/Pedido.php @@ -273,8 +273,8 @@ class Pedido extends \App\Controllers\BaseResourceController $this->obtenerDatosFormulario($pedidoEntity); - $this->viewData['pedidoEntity'] = $pedidoEntity; + $this->viewData['pedidoEntity'] = $pedidoEntity; $this->viewData['boxTitle'] = lang('Basic.global.edit2') . ' ' . lang('Pedidos.moduleTitle') . ' ' . lang('Basic.global.edit3'); @@ -382,6 +382,12 @@ class Pedido extends \App\Controllers\BaseResourceController $pedidoEntity->fecha_impresion_text = $pedidoEntity->fecha_impresion ? date('d/m/Y', strtotime($pedidoEntity->fecha_impresion)) : ''; $pedidoEntity->fecha_encuadernado_text = $pedidoEntity->fecha_encuadernado ? date('d/m/Y', strtotime($pedidoEntity->fecha_encuadernado)) : ''; $pedidoEntity->fecha_entrega_externo_text = $pedidoEntity->fecha_entrega_externo ? date('d/m/Y', strtotime($pedidoEntity->fecha_entrega_externo)) : ''; + + $userModel = model('App\Models\UserModel'); + $pedidoEntity->created_by = $userModel->getFullName($pedidoEntity->user_created_id); + $pedidoEntity->updated_by = $userModel->getFullName($pedidoEntity->user_updated_id); + $pedidoEntity->created_at_footer = $pedidoEntity->created_at ? date(' H:i d/m/Y', strtotime($pedidoEntity->created_at)) : ''; + $pedidoEntity->updated_at_footer = $pedidoEntity->updated_at ? date(' H:i d/m/Y', strtotime($pedidoEntity->updated_at)) : ''; } public function get_xml_pedido($pedido_id) { diff --git a/ci4/app/Views/themes/vuexy/form/pedidos/viewPedidoForm.php b/ci4/app/Views/themes/vuexy/form/pedidos/viewPedidoForm.php index a0a9bf5f..d9c4e92c 100644 --- a/ci4/app/Views/themes/vuexy/form/pedidos/viewPedidoForm.php +++ b/ci4/app/Views/themes/vuexy/form/pedidos/viewPedidoForm.php @@ -36,7 +36,22 @@ - + + +
+
+

+ + created_by ?>, + created_at_footer ?> +

+
+
+

+ + updated_by ?>, + updated_at_footer ?> +

From f6c2e608cf034cca2f6b23debfab0574e705830e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Wed, 19 Mar 2025 20:55:08 +0100 Subject: [PATCH 6/6] =?UTF-8?q?corregidos=20varios=20fallos=20en=20el=20im?= =?UTF-8?q?portador.=20A=C3=B1adidos=20avisos=20de=20error=20y=20success?= =?UTF-8?q?=20al=20importar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Presupuestos/Importadorpresupuestos.php | 2 +- .../Presupuestos/Presupuestocliente.php | 33 +++++---- .../vuexy/form/pedidos/_cabeceraItems.php | 22 +++++- .../importador/viewImportadorPresupuestos.php | 37 +++++----- .../importadorPresupuestos/importador.js | 67 ++++++++++++++----- 5 files changed, 110 insertions(+), 51 deletions(-) diff --git a/ci4/app/Controllers/Presupuestos/Importadorpresupuestos.php b/ci4/app/Controllers/Presupuestos/Importadorpresupuestos.php index 163cd0b0..9e2ed6c0 100644 --- a/ci4/app/Controllers/Presupuestos/Importadorpresupuestos.php +++ b/ci4/app/Controllers/Presupuestos/Importadorpresupuestos.php @@ -201,7 +201,7 @@ class Importadorpresupuestos extends \App\Controllers\BaseResourceController 'libroFresadoTapaDura' => 'Tapa Dura al Cromo Fresada', 'libroFresadoTapaBlanda' => 'Rústica Fresada', 'libroCosidoTapaDura' => 'Tapa Dura al Cromo Cosida Hilo', - 'libroCosidoTapaBlanda' => 'Rústica Cosida Hilo vegetal', + 'libroCosidoTapaBlanda' => 'Rústica Cosido Hilo vegetal', 'libroEspiralTapaDura' => 'Espiral', 'libroGrapado' => 'Cosido a caballete 2 grapas' ]; diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php index 5200ba84..e7741ab0 100755 --- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php @@ -478,7 +478,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $direcciones = $reqData['direcciones'] ?? []; - $tipo_impresion_id = intval($reqData['tipo_presupuesto_id'] ?? 0) == 0? + $tipo_impresion_id = intval($reqData['tipo_presupuesto_id'] ?? 0) == 0 ? $this->getTipoImpresion($tipo, $cubierta['tipoCubierta']) : intval($reqData['tipo_presupuesto_id']); $lomoRedondo = $cubierta['lomoRedondo'] ?? 0; @@ -1002,7 +1002,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $direcciones = $reqData['direcciones'] ?? []; - if($tipo != "") + if ($tipo != "") $tipo_impresion_id = $this->getTipoImpresion($tipo, $cubierta['tipoCubierta']); else $tipo_impresion_id = $reqData['tipo_presupuesto_id'] ?? 0; @@ -1087,18 +1087,27 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $errors = $resultado_presupuesto['errors']; foreach ($errors as $error) { if (!empty($error)) { - return $this->respond([ - 'error' => $error, - ]); + if ($this->request) { + return $this->respond([ + 'error' => $error, + ]); + } else { + return $error; + } } } } else if (isset($resultado_presupuesto['exception'])) { - return $this->respond([ - 'error' => $resultado_presupuesto['exception'], - 'file' => $resultado_presupuesto['file'], - 'line' => $resultado_presupuesto['line'], - ]); + if($this->request) { + return $this->respond([ + 'error' => $resultado_presupuesto['exception'], + 'file' => $resultado_presupuesto['file'], + 'line' => $resultado_presupuesto['line'], + ]); + } else { + return $resultado_presupuesto['exception']; + } } + // seleccionamos el peso de la tirada seleccionada $peso_libro = $resultado_presupuesto['peso'][array_search($selected_tirada, $tirada)]; @@ -1893,14 +1902,14 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController return $current->precio < $previous->precio ? $current : $previous; }); } else { - if (count($tarifas_envio) > 0){ + if (count($tarifas_envio) > 0) { $tarifa_envio_final = $tarifas_envio[0]; } } $coste = $tarifa_envio_final->precio; $margen = $tarifa_envio_final->margen; - if(!isset($return_data['id'])){ + if (!isset($return_data['id'])) { $return_data['id'] = $tarifa_envio_final->id; } diff --git a/ci4/app/Views/themes/vuexy/form/pedidos/_cabeceraItems.php b/ci4/app/Views/themes/vuexy/form/pedidos/_cabeceraItems.php index d85b0047..3f255b31 100644 --- a/ci4/app/Views/themes/vuexy/form/pedidos/_cabeceraItems.php +++ b/ci4/app/Views/themes/vuexy/form/pedidos/_cabeceraItems.php @@ -251,7 +251,23 @@ $("#fecha_entrega_externo").flatpickr({ estado !== 'finalizado' && $pedidoEntity->estado !== 'cancelado'): ?> $('.buton-estado').on('click', function() { - var id = 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 = id ?>; var estado = $(this).attr('id').split('_')[1]; var url = ''; var data = { @@ -273,6 +289,10 @@ $('.buton-estado').on('click', function() { } } }); + } + }).catch((err) => { + console.log(err); + }); }); diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/importador/viewImportadorPresupuestos.php b/ci4/app/Views/themes/vuexy/form/presupuestos/importador/viewImportadorPresupuestos.php index c4ca1e37..2d79f7e7 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/importador/viewImportadorPresupuestos.php +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/importador/viewImportadorPresupuestos.php @@ -1,7 +1,6 @@ include('themes/_commonPartialsBs/datatables') ?> include("themes/_commonPartialsBs/select2bs5") ?> include("themes/_commonPartialsBs/sweetalert") ?> - extend('themes/vuexy/main/defaultlayout') ?> @@ -370,33 +369,31 @@
-
- + - + - + - - - + + + - endSection() ?> + endSection() ?> + section('css') ?> + + endSection() ?> - - section('css') ?> - - endSection() ?> - - - section('additionalExternalJs') ?> - - endSection() ?> \ No newline at end of file + section('additionalExternalJs') ?> + + + endSection() ?> \ No newline at end of file diff --git a/httpdocs/assets/js/safekat/pages/importadorPresupuestos/importador.js b/httpdocs/assets/js/safekat/pages/importadorPresupuestos/importador.js index 30667892..5b76c33f 100644 --- a/httpdocs/assets/js/safekat/pages/importadorPresupuestos/importador.js +++ b/httpdocs/assets/js/safekat/pages/importadorPresupuestos/importador.js @@ -70,7 +70,7 @@ class Importador { } ); - + this.openBtn = $('#openOld'); this.initImport = $('#initImport'); this.makeImport = $('#makeImport'); @@ -83,7 +83,7 @@ class Importador { $(document).on('select2:open', () => { document.querySelector('.select2-search__field').focus(); }); - + this.cliente.init(); this.presupuesto.init(); this.encuadernacion.init(); @@ -126,7 +126,7 @@ class Importador { this.makeImport.on('click', this.importPresupuesto.bind(this)); } - importPresupuesto(){ + importPresupuesto() { if ($("#clienteId").val() != '' && $("#presupuesto").val() != '') { let data = this.collectData(); @@ -137,11 +137,45 @@ class Importador { (response) => { if (response.success) { const urlObj = new URL(window.location.href); - window.open(`${urlObj.origin}` + '/presupuestoadmin/edit/' + response.id); + Swal.fire({ + title: 'Atención!', + text: 'Esto es una importación básica, por favor revisa los datos para comprobar que no hay errores. ' + + 'Tenga en cuenta que no todos los servicios se pueden importar.', + icon: 'warning', + showCancelButton: false, + confirmButtonColor: '#3085d6', + confirmButtonText: 'Ok', + customClass: { + confirmButton: 'btn btn-primary me-1', + }, + buttonsStyling: false + }).then(() => { + window.open(`${urlObj.origin}` + '/presupuestoadmin/edit/' + response.id); + }); + } + else { + Swal.fire({ + title: 'Error', + text: 'No ha sido posible importar el presupuesto. Póngase en contacto con el administrador.', + icon: 'error', + customClass: { + confirmButton: 'btn btn-primary' + }, + buttonsStyling: false + }); + } }, (error) => { - console.error(error); + Swal.fire({ + title: 'Error', + text: 'Ha habido un error al intentar importar el presupuesto. Asegúrese de que están todos los campos rellenos.', + icon: 'error', + customClass: { + confirmButton: 'btn btn-primary' + }, + buttonsStyling: false + }); } ).post(); } @@ -154,11 +188,11 @@ class Importador { data.id = $("#presupuesto").val(); data.cliente_id = $("#clienteId").val(); - + data.paginas = $('#paginas').val(); data.tirada = $('#tirada').val(); data.papel_formato_id = $('#tamanio').val(); - data.papel_formato_personalizado = $('#papelFormatoPersonalizado').prop('checked')?1:0; + data.papel_formato_personalizado = $('#papelFormatoPersonalizado').prop('checked') ? 1 : 0; data.papel_formato_ancho = $('#papelFormatoAncho').val(); data.papel_formato_alto = $('#papelFormatoAlto').val(); @@ -166,9 +200,9 @@ class Importador { data.isHq = $('#hq').val(); data.paginas_bn = $('#compPaginasNegro').val(); - data.papel_bn = this.compPapelNegroSelected.getVal(); + data.papel_bn = this.compPapelNegroSelected.getVal(); data.gramaje_bn = $('#compGramajeNegro').val(); - + data.paginas_color = $('#compPaginasColor').val(); data.papel_color = this.compPapelColorSelected.getVal(); data.gramaje_color = $('#compGramajeColor').val(); @@ -186,20 +220,20 @@ class Importador { data.acabado_sobrecubierta = this.acabadosSobrecubierta.getVal(); data.servicios = { - marcapaginas: $('#marcapaginas').prop('checked')?1:0, + marcapaginas: $('#marcapaginas').prop('checked') ? 1 : 0, serviciosExtra: [] }; - - if($('#ferro').prop('checked')){ + + if ($('#ferro').prop('checked')) { data.servicios.serviciosExtra.push(30); } - if($('#ferroDigital').prop('checked')){ + if ($('#ferroDigital').prop('checked')) { data.servicios.serviciosExtra.push(29); } - if($('#prototipo').prop('checked')){ + if ($('#prototipo').prop('checked')) { data.servicios.serviciosExtra.push(9); } - + return data; } @@ -242,7 +276,6 @@ class Importador { fillInitialData(data) { - console.log(data); $('#paginas').val(data.datosGenerales.paginas); $('#tirada').val(data.datosGenerales.tirada); if (data.datosGenerales.papel_formato_personalizado) { @@ -386,8 +419,8 @@ class Importador { $('#prototipo').prop('checked', false); } } + this.makeImport.prop('disabled', false); } - } document.addEventListener('DOMContentLoaded', function () {