diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php index 8b1f6744..27892c87 100755 --- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php @@ -1244,7 +1244,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $resultado_presupuesto['info']['merma'] = $this->calcular_merma($selected_tirada, $POD); $datos_presupuesto['faja'] = $faja; - + $id = $model_presupuesto->insertarPresupuestoCliente( $id, $selected_tirada, @@ -1961,7 +1961,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $peso_interior = 0.0; foreach ($interior as $linea) { if (count($linea) > 0) { - $costeInterior += floatval($linea['total_impresion']); + $costeInterior += round(floatval($linea['total_impresion']), 2); $peso_interior += floatval($linea['peso']); $lomo += floatval($linea['mano']); $info['lomo_interior'] += floatval($linea['mano']); @@ -2021,7 +2021,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController } foreach ($interior as $linea) { if (count($linea) > 0) { - $costeInterior += floatval($linea['total_impresion']); + $costeInterior += round(floatval($linea['total_impresion']),2); $peso_interior += floatval($linea['peso']); $lomo += floatval($linea['mano']); if ($extra_info) { @@ -2073,7 +2073,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $coste_cubierta = 0.0; $peso_cubierta = 0.0; if (count($cubierta) > 0) { - $coste_cubierta += floatval($cubierta['total_impresion']); + $coste_cubierta += round(floatval($cubierta['total_impresion']), 2); $peso_cubierta += floatval($cubierta['peso']); $lomo += floatval($cubierta['mano']); if ($extra_info) { @@ -2130,7 +2130,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController ]; return $return_data; } - $coste_servicios += floatval($acabadoCubierta[0]->total); + $coste_servicios += round(floatval($acabadoCubierta[0]->total), 2); } } @@ -2157,7 +2157,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $linea_sobrecubierta = PresupuestoClienteService::obtenerSobrecubierta($input_data); if (count($linea_sobrecubierta) > 0) { - $coste_sobrecubierta += floatval($linea_sobrecubierta['total_impresion']); + $coste_sobrecubierta += round(floatval($linea_sobrecubierta['total_impresion']),2); $peso_sobrecubierta += floatval($linea_sobrecubierta['peso']); if ($extra_info) { @@ -2215,7 +2215,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController return $return_data; } - $coste_servicios += floatval($acabadoSobrecubierta[0]->total); + $coste_servicios += round(floatval($acabadoSobrecubierta[0]->total), 2); } } } @@ -2251,7 +2251,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $guardas = PresupuestoClienteService::obtenerGuardas($input_data); if (count($guardas) > 0) { - $coste_guardas += floatval($guardas['total_impresion']); + $coste_guardas += round(floatval($guardas['total_impresion']), 2); $peso_guardas += floatval($guardas['peso']); if ($extra_info) { @@ -2305,7 +2305,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController if (count($linea_faja) > 0) { $linea_faja['tipo_linea'] = 'lp_faja'; - $coste_faja += floatval($linea_faja['total_impresion']); + $coste_faja += round(floatval($linea_faja['total_impresion']), 2); $peso_faja += floatval($linea_faja['peso']); if ($extra_info) { @@ -2335,7 +2335,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController ]; return $return_data; } - + // Acabado faja if (intval($faja['acabado']) != 0) { @@ -2362,7 +2362,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController return $return_data; } - $coste_servicios += floatval($acabadoFaja[0]->total); + $coste_servicios += round(floatval($acabadoFaja[0]->total), 2); } } } @@ -2410,10 +2410,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController } - $costeServiciosDefecto += floatval($servicio->total); + $costeServiciosDefecto += round(floatval($servicio->total), 2); if ($extra_info) { - $totalServicios += floatval($servicio->total); - $margenServicios += floatval($servicio->total) * floatval($servicio->margen) / 100.0; + $totalServicios += round(floatval($servicio->total), 2); + $margenServicios += round(floatval($servicio->total) * floatval($servicio->margen) / 100.0, 2); } } @@ -2445,10 +2445,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController } - $costeServiciosDefecto += floatval($servicio->total); + $costeServiciosDefecto += round(floatval($servicio->total), 2); if ($extra_info) { - $totalServicios += floatval($servicio->total); - $margenServicios += floatval($servicio->total) * floatval($servicio->margen) / 100.0; + $totalServicios += round(floatval($servicio->total), 2); + $margenServicios += round(floatval($servicio->total) * floatval($servicio->margen) / 100.0, 2); } } @@ -2528,7 +2528,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController array_push($servicios, $servicio_solapas_cubierta); if (!is_null($sobreCubierta) && $sobreCubierta) // Si hay sobrecubierta, siempre con solapas array_push($servicios, $servicio_solapas_sobrecubierta); - if(!is_null($faja) && $faja && $faja != false) // Si hay faja, siempre con solapas + if (!is_null($faja) && $faja && $faja != false) // Si hay faja, siempre con solapas array_push($servicios, $servicio_solapas_faja); @@ -2560,10 +2560,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController return $return_data; } - $coste_servicios += floatval($resultado[0]->total); + $coste_servicios += round(floatval($resultado[0]->total), 2); if ($extra_info) { - $totalServicios += floatval($resultado[0]->total); - $margenServicios += floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0; + $totalServicios += round(floatval($resultado[0]->total), 2); + $margenServicios += round(floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0, 2); } } else if ($servicio->nombre == "ferro" || $servicio->nombre == "prototipo") { // Extra @@ -2590,10 +2590,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController array_push($serviciosAutomaticos, $resultado[0]); - $coste_servicios += floatval($resultado[0]->precio); + $coste_servicios += round(floatval($resultado[0]->precio), 2); if ($extra_info) { - $totalServicios += floatval($resultado[0]->precio); - $margenServicios += floatval($resultado[0]->precio) * floatval($resultado[0]->margen) / 100.0; + $totalServicios += round(floatval($resultado[0]->precio), 2); + $margenServicios += round(floatval($resultado[0]->precio) * floatval($resultado[0]->margen) / 100.0, 2); } } else if ($servicio->nombre == 'solapas_cubierta' || $servicio->nombre == 'solapas_sobrecubierta' || $servicio->nombre == 'solapas_faja') { // Servicios manipulado @@ -2622,10 +2622,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController array_push($serviciosAutomaticos, $resultado[0]); } - $coste_servicios += floatval($resultado[0]->total); + $coste_servicios += round(floatval($resultado[0]->total), 2); if ($extra_info) { - $totalServicios += floatval($resultado[0]->total); - $margenServicios += floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0; + $totalServicios += round(floatval($resultado[0]->total), 2); + $margenServicios += round(floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0, 2); } } } @@ -2658,10 +2658,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController array_push($serviciosAutomaticos, $resultado[0]); } - $coste_servicios += floatval($resultado[0]->total); + $coste_servicios += round(floatval($resultado[0]->total), 2); if ($extra_info) { - $totalServicios += floatval($resultado[0]->total); - $margenServicios += floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0; + $totalServicios += round(floatval($resultado[0]->total), 2); + $margenServicios += round(floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0, 2); } } @@ -2693,14 +2693,58 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController array_push($serviciosAutomaticos, $resultado[0]); } - $coste_servicios += floatval($resultado[0]->total); + $coste_servicios += round(floatval($resultado[0]->total), 2); if ($extra_info) { - $totalServicios += floatval($resultado[0]->total); - $margenServicios += floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0; + $totalServicios += round(floatval($resultado[0]->total), 2); + $margenServicios += round(floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0, 2); } } - array_push($precio_u, round(($costeInterior + $coste_cubierta + $coste_sobrecubierta + $costeServiciosDefecto + $coste_servicios) / $tirada[$t], 4)); + if (is_array($faja) && ($faja['solapas'] > 0 && intval($linea_faja['dimension_desarrollo']['ancho']) > 630)) { + + // Servicios manipulado + $resultado = PresupuestoCLienteService::getServiciosManipulado([ + 'tarifa_id' => intval($servicio_solapas_grandes_faja->id), + 'tirada' => $datosPedido->tirada, + 'POD' => $POD, + ]); + + if ($resultado[0]->total <= 0) { + + $errorModel = new ErrorPresupuesto(); + $errorModel->insertError( + $datos_entrada['id'], + auth()->user()->id, + 'No se puede obtener servicio de manupulado ' . ((string) $servicio->nombre), + $input_data + ); + $return_data = [ + 'errors' => (object) ([ + 'status' => 1 + ]), + ]; + return $return_data; + } else { + array_push($serviciosAutomaticos, $resultado[0]); + } + + $coste_servicios += round(floatval($resultado[0]->total), 2); + if ($extra_info) { + $totalServicios += round(floatval($resultado[0]->total), 2); + $margenServicios += round(floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0, 2); + } + } + + $total_por_tirada = $costeInterior + + $coste_cubierta + + $coste_sobrecubierta + + $coste_guardas + + $coste_faja + + $costeServiciosDefecto + $coste_servicios; + array_push( + $precio_u, + round(($total_por_tirada) / $tirada[$t], 4) + ); array_push($peso, round($peso_interior + $peso_cubierta + $peso_sobrecubierta + $peso_guardas, 2)); if ($extra_info) { @@ -2782,25 +2826,25 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController { if (count($linea) == 0) return; - $totalPapel += $linea['precio_pedido']; - $margenPapel += $linea['margen_papel_pedido']; - $sumForFactor += $linea['precio_pedido']; - $sumForFactor -= $linea['precio_pedido']; + $totalPapel += round($linea['precio_pedido'], 2); + $margenPapel += round($linea['margen_papel_pedido'], 2); + $sumForFactor += round($linea['precio_pedido'], 2); + $sumForFactor -= round($linea['precio_pedido'], 2); - $totalImpresion += $linea['precio_impresion_horas']; - $totalImpresion += $linea['precio_click_pedido']; - $sumForFactor += $linea['precio_click_pedido']; + $totalImpresion += round($linea['precio_impresion_horas'], 2); + $totalImpresion += round($linea['precio_click_pedido'], 2); + $sumForFactor += round($linea['precio_click_pedido'], 2); if ($linea['tipo_maquina'] == 'inkjet') { - $totalImpresion += $linea['precio_tinta']; + $totalImpresion += round($linea['precio_tinta'], 2); if (array_key_exists('total_corte', $linea)) { - $totalImpresion += $linea['total_corte']; - $sumForFactor += $linea['total_corte']; + $totalImpresion += round($linea['total_corte'], 2); + $sumForFactor += round($linea['total_corte'], 2); } } - $margenImpresion += $linea['margen_impresion_horas']; - $margenImpresion += $linea['margen_click_pedido']; - $sumForFactor -= $linea['margen_click_pedido']; + $margenImpresion += round($linea['margen_impresion_horas'], 2); + $margenImpresion += round($linea['margen_click_pedido'], 2); + $sumForFactor -= round($linea['margen_click_pedido'], 2); } protected function calcular_lomo($lineas, $lomo_inicial) diff --git a/ci4/app/Services/PresupuestoService.php b/ci4/app/Services/PresupuestoService.php index d3d377f4..2f50418d 100755 --- a/ci4/app/Services/PresupuestoService.php +++ b/ci4/app/Services/PresupuestoService.php @@ -1826,7 +1826,7 @@ class PresupuestoService extends BaseService } } - if ($uso == 'cubierta' || $uso == 'sobrecubierta') { + if ($uso == 'cubierta' || $uso == 'sobrecubierta' || $uso == 'faja') { $linea['fields']['dimension_desarrollo']['ancho'] = $datosPedido->anchoExteriores; $linea['fields']['dimension_desarrollo']['alto'] = $datosPedido->altoExteriores; diff --git a/ci4/app/Views/themes/vuexy/form/tarifas/encuadernacion/viewTarifaEncuadernacionForm.php b/ci4/app/Views/themes/vuexy/form/tarifas/encuadernacion/viewTarifaEncuadernacionForm.php index 134679e5..2cad126a 100644 --- a/ci4/app/Views/themes/vuexy/form/tarifas/encuadernacion/viewTarifaEncuadernacionForm.php +++ b/ci4/app/Views/themes/vuexy/form/tarifas/encuadernacion/viewTarifaEncuadernacionForm.php @@ -370,8 +370,7 @@ id = -1; searching: false, paging: true, info: false, - dom: '<"mt-4"><"float-end"B><"float-start"l> - <"mt-4 mb-3"p>', + dom: '<"mt-4"><"float-end"B><"float-start"l><"mt-4 mb-3"p>', ajax : $.fn.dataTable.pipeline( { url: '', data: function ( d ) { @@ -570,8 +569,7 @@ id = -1; searching: false, paging: true, info: false, - dom: '<"mt-4"><"float-end"B><"float-start"l> - <"mt-4 mb-3"p>', + dom: '<"mt-4"><"float-end"B><"float-start"l><"mt-4 mb-3"p>', ajax : $.fn.dataTable.pipeline( { url: '', data: function ( d ) { @@ -776,8 +774,7 @@ id = -1; paging: true, select: true, info: false, - dom: '<"mt-4"><"float-end"B><"float-start"l> - <"mt-4 mb-3"p>', + dom: '<"mt-4"><"float-end"B><"float-start"l><"mt-4 mb-3"p>', ajax : $.fn.dataTable.pipeline( { url: '', data: { diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js index b62fcbd8..18b69fcb 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js @@ -89,8 +89,8 @@ class Resumen { let totalImpresionforMargen = 0; let margenImpresion = 0; - let totalServicios = 0; - let margenServicios = 0; + let totalServicios = parseFloat(0); + let margenServicios = parseFloat(0); let totalEnvios = 0; let margenEnvios = 0; @@ -177,11 +177,11 @@ class Resumen { if (typeof $("#tableOfServiciosEncuadernacion").DataTable() !== 'undefined' && $("#tableOfServiciosEncuadernacion").DataTable().rows().count() > 0) { $('#tableOfServiciosEncuadernacion').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { let rowData = this.data(); - let total_servicio = parseFloat(rowData.precio_total); + let total_servicio = parseFloat(rowData.precio_total); let margen_servicio = parseFloat(rowData.margen); totalServicios += total_servicio let base = total_servicio / (1 + margen_servicio / 100.0); - margenServicios = total_servicio - base; + margenServicios += parseFloat(total_servicio - base); }); } @@ -192,7 +192,7 @@ class Resumen { let margen_servicio = parseFloat(rowData.margen); totalServicios += total_servicio let base = total_servicio / (1 + margen_servicio / 100.0); - margenServicios = total_servicio - base; + margenServicios += parseFloat(total_servicio - base); }); } @@ -202,7 +202,7 @@ class Resumen { let total_servicio = parseFloat(rowData.precio); let coste_servicio = parseFloat(rowData.coste); totalServicios += total_servicio - margenServicios = total_servicio - coste_servicio; + margenServicios += total_servicio - coste_servicio; }); } @@ -212,7 +212,7 @@ class Resumen { let total_servicio = parseFloat(rowData.precio); let coste_servicio = parseFloat(rowData.coste); totalServicios += total_servicio - margenServicios = total_servicio - coste_servicio; + margenServicios += total_servicio - coste_servicio; }); } @@ -223,7 +223,7 @@ class Resumen { let margen_servicio = parseFloat(rowData.margen); totalServicios += total_servicio let base = total_servicio / (1 + margen_servicio / 100.0); - margenServicios = total_servicio - base; + margenServicios += parseFloat(total_servicio - base); }); } diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/tiradasAlternativas.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/tiradasAlternativas.js index f8795a0d..235ff11f 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/tiradasAlternativas.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/tiradasAlternativas.js @@ -96,8 +96,9 @@ class TiradasAlernativas { self.table.row(row).remove().draw(); - $(document).trigger('update-envios', { tirada_inicial: $('#tirada').val(), tirada: data.tirada }); + $('#tirada').val(data.tirada).trigger('change'); + $(document).trigger('update-envios', { tirada_inicial: $('#tirada').val(), tirada: data.tirada }); }); $(document).on('update-tiradas-alternativas', async function () {