corregidos varios problemas con los presupuestos (calculo envio base debido al peso de las guardas, resumen, etc)

This commit is contained in:
2025-06-16 20:19:39 +02:00
parent b2652fc277
commit 018119a3c3
5 changed files with 90 additions and 37 deletions

View File

@ -565,7 +565,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'servicios' => $reqData['servicios'] ?? [], 'servicios' => $reqData['servicios'] ?? [],
); );
$return_data = $this->calcular_presupuesto($datos_presupuesto, 0, false); //TRUE FOR DEBUG $develoment_mode = getenv('SK_ENVIRONMENT') !== 'production';
$return_data = $this->calcular_presupuesto($datos_presupuesto, 0, $develoment_mode); //TRUE FOR DEBUG
if (array_key_exists('errors', $return_data)) { if (array_key_exists('errors', $return_data)) {
if ($return_data['errors']->status == 1) { if ($return_data['errors']->status == 1) {
$return_data = [ $return_data = [
@ -1200,12 +1201,14 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
// para el calculo del precio unidad, sólo se tiene en cuenta el envío base // para el calculo del precio unidad, sólo se tiene en cuenta el envío base
for ($i = 0; $i < count($tirada); $i++) { for ($i = 0; $i < count($tirada); $i++) {
$coste_envio = 0.0;
$coste_envio += ($resultado_presupuesto['eb'][$i] / $tirada[$i]);
$resultado_presupuesto['info']['totales'][$i]['envio_base_margen'] = $resultado_presupuesto['info']['totales'][$i]['envio_base_margen'] =
floatval($resultado_presupuesto['eb'][$i]) * (floatval($resultado_presupuesto['eb_margen'][$i]) / 100.0); floatval($resultado_presupuesto['eb'][$i]) * (floatval($resultado_presupuesto['eb_margen'][$i]) / 100.0);
$resultado_presupuesto['info']['totales'][$i]['envio_base_coste'] = $resultado_presupuesto['eb'][$i]; $resultado_presupuesto['info']['totales'][$i]['envio_base_coste'] = $resultado_presupuesto['eb'][$i];
$coste_envio = round(round($resultado_presupuesto['info']['totales'][$i]['envio_base_margen'] +
$resultado_presupuesto['info']['totales'][$i]['envio_base_coste'], 2) / 50, 4);
$resultado_presupuesto['precio_u'][$i] = round(floatval($resultado_presupuesto['precio_u'][$i]) + $coste_envio, 4); $resultado_presupuesto['precio_u'][$i] = round(floatval($resultado_presupuesto['precio_u'][$i]) + $coste_envio, 4);
} }
@ -2125,7 +2128,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
foreach ($interior as $linea) { foreach ($interior as $linea) {
if (count($linea) > 0) { if (count($linea) > 0) {
$costeInterior += round(floatval($linea['total_impresion']), 2); $costeInterior += round(floatval($linea['total_impresion']), 2);
$peso_interior += floatval($linea['peso']); $peso_interior += round(floatval($linea['peso']), 2);
$lomo += floatval($linea['mano']); $lomo += floatval($linea['mano']);
$info['lomo_interior'] += floatval($linea['mano']); $info['lomo_interior'] += floatval($linea['mano']);
if ($extra_info) { if ($extra_info) {
@ -2238,7 +2241,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$peso_cubierta = 0.0; $peso_cubierta = 0.0;
if (count($cubierta) > 0) { if (count($cubierta) > 0) {
$coste_cubierta += round(floatval($cubierta['total_impresion']), 2); $coste_cubierta += round(floatval($cubierta['total_impresion']), 2);
$peso_cubierta += floatval($cubierta['peso']); $peso_cubierta += round(floatval($cubierta['peso']), 2);
$lomo += floatval($cubierta['mano']); $lomo += floatval($cubierta['mano']);
if ($extra_info) { if ($extra_info) {
@ -2302,9 +2305,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
} }
$coste_servicios += round(floatval($acabadoCubierta[0]->total), 2); $coste_servicios += round(floatval($acabadoCubierta[0]->total), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += round(floatval($acabadoCubierta[0]->total), 2); //$totalServicios += round(floatval($acabadoCubierta[0]->total), 2);
$base = round(floatval($acabadoCubierta[0]->total / (1 + $acabadoCubierta[0]->margen / 100.0)), 2); $base = round(floatval($acabadoCubierta[0]->total / (1 + $acabadoCubierta[0]->margen / 100.0)), 2);
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total; $base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$totalServicios += $base;
$margenServicios += round(floatval($acabadoCubierta[0]->total - $base), 2); $margenServicios += round(floatval($acabadoCubierta[0]->total - $base), 2);
} }
} }
@ -2341,9 +2345,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
} }
$coste_servicios += round(floatval($resultado[0]->total), 2); $coste_servicios += round(floatval($resultado[0]->total), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2); //$totalServicios += round(floatval($resultado[0]->total), 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2); $base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total; $base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$totalServicios += $base;
$margenServicios += round(floatval($resultado[0]->total - $base), 2); $margenServicios += round(floatval($resultado[0]->total - $base), 2);
} }
@ -2374,7 +2379,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if (count($linea_sobrecubierta) > 0) { if (count($linea_sobrecubierta) > 0) {
$coste_sobrecubierta += round(floatval($linea_sobrecubierta['total_impresion']), 2); $coste_sobrecubierta += round(floatval($linea_sobrecubierta['total_impresion']), 2);
$peso_sobrecubierta += floatval($linea_sobrecubierta['peso']); $peso_sobrecubierta += round(floatval($linea_sobrecubierta['peso']), 2);
if ($extra_info) { if ($extra_info) {
$this->calcular_coste_linea( $this->calcular_coste_linea(
@ -2437,9 +2442,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_servicios += round(floatval($acabadoSobrecubierta[0]->total), 2); $coste_servicios += round(floatval($acabadoSobrecubierta[0]->total), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += round(floatval($acabadoSobrecubierta[0]->total), 2); //$totalServicios += round(floatval($acabadoSobrecubierta[0]->total), 2);
$base = round(floatval($acabadoSobrecubierta[0]->total / (1 + $acabadoSobrecubierta[0]->margen / 100.0)), 2); $base = round(floatval($acabadoSobrecubierta[0]->total / (1 + $acabadoSobrecubierta[0]->margen / 100.0)), 2);
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total; $base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$totalServicios += $base;
$margenServicios += round(floatval($acabadoSobrecubierta[0]->total - $base), 2); $margenServicios += round(floatval($acabadoSobrecubierta[0]->total - $base), 2);
} }
} }
@ -2479,7 +2485,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if (count($guardas) > 0) { if (count($guardas) > 0) {
$coste_guardas += round(floatval($guardas['total_impresion']), 2); $coste_guardas += round(floatval($guardas['total_impresion']), 2);
$peso_guardas += floatval($guardas['peso']); $peso_guardas += round(floatval($guardas['peso']), 2);
if ($extra_info) { if ($extra_info) {
$this->calcular_coste_linea( $this->calcular_coste_linea(
@ -2595,9 +2601,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_servicios += round(floatval($acabadoFaja[0]->total), 2); $coste_servicios += round(floatval($acabadoFaja[0]->total), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += round(floatval($acabadoFaja[0]->total), 2); //$totalServicios += round(floatval($acabadoFaja[0]->total), 2);
$base = round(floatval($acabadoFaja[0]->total / (1 + $acabadoFaja[0]->margen / 100.0)), 2); $base = round(floatval($acabadoFaja[0]->total / (1 + $acabadoFaja[0]->margen / 100.0)), 2);
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total; $base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$totalServicios += $base;
$margenServicios += round(floatval($acabadoFaja[0]->total - $base), 2); $margenServicios += round(floatval($acabadoFaja[0]->total - $base), 2);
} }
} }
@ -2649,9 +2656,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$costeServiciosDefecto += round(floatval($servicio->total), 2); $costeServiciosDefecto += round(floatval($servicio->total), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += round(floatval($servicio->total), 2); //$totalServicios += round(floatval($servicio->total), 2);
$base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2); $base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total; $base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$totalServicios += $base;
$margenServicios += round(floatval($servicio->total - $base), 2); $margenServicios += round(floatval($servicio->total - $base), 2);
} }
} }
@ -2686,9 +2694,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$costeServiciosDefecto += round(floatval($servicio->total), 2); $costeServiciosDefecto += round(floatval($servicio->total), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += round(floatval($servicio->total), 2); //$totalServicios += round(floatval($servicio->total), 2);
$base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2); $base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total; $base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$totalServicios += $base;
$margenServicios += round(floatval($servicio->total - $base), 2); $margenServicios += round(floatval($servicio->total - $base), 2);
} }
} }
@ -2791,9 +2800,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_servicios += round(floatval($resultado[0]->total), 2); $coste_servicios += round(floatval($resultado[0]->total), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2); //$totalServicios += round(floatval($resultado[0]->total), 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2); $base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total; $base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$totalServicios += $base;
$margenServicios += round(floatval($resultado[0]->total - $base), 2); $margenServicios += round(floatval($resultado[0]->total - $base), 2);
} }
} else if ($servicio->nombre == "ferro" || $servicio->nombre == "prototipo") { } else if ($servicio->nombre == "ferro" || $servicio->nombre == "prototipo") {
@ -2823,9 +2833,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_servicios += round(floatval($resultado[0]->precio), 2); $coste_servicios += round(floatval($resultado[0]->precio), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->precio), 2); //$totalServicios += round(floatval($resultado[0]->precio), 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2); $base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total; $base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$totalServicios += $base;
$margenServicios += round(floatval($resultado[0]->total - $base), 2); $margenServicios += round(floatval($resultado[0]->total - $base), 2);
} }
} else if ($servicio->nombre == 'solapas_cubierta' || $servicio->nombre == 'solapas_sobrecubierta' || $servicio->nombre == 'solapas_faja') { } else if ($servicio->nombre == 'solapas_cubierta' || $servicio->nombre == 'solapas_sobrecubierta' || $servicio->nombre == 'solapas_faja') {
@ -2857,9 +2868,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_servicios += round(floatval($resultado[0]->total), 2); $coste_servicios += round(floatval($resultado[0]->total), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2); //$totalServicios += round(floatval($resultado[0]->total), 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2); $base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total; $base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$totalServicios += $base;
$margenServicios += round(floatval($resultado[0]->total - $base), 2); $margenServicios += round(floatval($resultado[0]->total - $base), 2);
} }
} }
@ -2898,9 +2910,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_servicios += round(floatval($resultado[0]->precio), 2); $coste_servicios += round(floatval($resultado[0]->precio), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->precio), 2); //$totalServicios += round(floatval($resultado[0]->precio), 2);
$base = round(floatval($resultado[0]->precio / (1 + $resultado[0]->margen / 100.0)), 2); $base = round(floatval($resultado[0]->precio / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total; $base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$totalServicios += $base;
$margenServicios += round(floatval($resultado[0]->precio - $base), 2); $margenServicios += round(floatval($resultado[0]->precio - $base), 2);
} }
} }
@ -2937,9 +2950,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_servicios += round(floatval($resultado[0]->total), 2); $coste_servicios += round(floatval($resultado[0]->total), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2); //$totalServicios += round(floatval($resultado[0]->total), 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2); $base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total; $base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$totalServicios += $base;
$margenServicios += round(floatval($resultado[0]->total - $base), 2); $margenServicios += round(floatval($resultado[0]->total - $base), 2);
} }
} }
@ -2974,9 +2988,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_servicios += round(floatval($resultado[0]->total), 2); $coste_servicios += round(floatval($resultado[0]->total), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2); //$totalServicios += round(floatval($resultado[0]->total), 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2); $base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total; $base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$totalServicios += $base;
$margenServicios += round(floatval($resultado[0]->total - $base), 2); $margenServicios += round(floatval($resultado[0]->total - $base), 2);
} }
} }
@ -3011,19 +3026,23 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_servicios += round(floatval($resultado[0]->total), 2); $coste_servicios += round(floatval($resultado[0]->total), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2); //$totalServicios += round(floatval($resultado[0]->total), 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2); $base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total; $base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$totalServicios += $base;
$margenServicios += round(floatval($resultado[0]->total - $base), 2); $margenServicios += round(floatval($resultado[0]->total - $base), 2);
} }
} }
$total_por_tirada = $costeInterior + /*$total_por_tirada = $costeInterior +
$coste_cubierta + $coste_cubierta +
$coste_sobrecubierta + $coste_sobrecubierta +
$coste_guardas + $coste_guardas +
$coste_faja + $coste_faja +
$costeServiciosDefecto + $coste_servicios; $costeServiciosDefecto + $coste_servicios;*/
$total_por_tirada = $totalPapel + $margenPapel +
$totalImpresion + $margenImpresion +
$totalServicios + $margenServicios;
array_push( array_push(
$precio_u, $precio_u,
round(($total_por_tirada) / $tirada[$t], 4) round(($total_por_tirada) / $tirada[$t], 4)
@ -3031,7 +3050,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
array_push($peso, round($peso_interior + $peso_cubierta + $peso_sobrecubierta + $peso_guardas + $peso_faja, 2)); array_push($peso, round($peso_interior + $peso_cubierta + $peso_sobrecubierta + $peso_guardas + $peso_faja, 2));
if ($extra_info) { if ($extra_info) {
$totalServicios -= $margenServicios; //$totalServicios -= $margenServicios;
if (($margenServicios + $totalServicios) > 0) { if (($margenServicios + $totalServicios) > 0) {
$porcentajeMargenServicios = $margenServicios / ($totalServicios) * 100; $porcentajeMargenServicios = $margenServicios / ($totalServicios) * 100;
} else { } else {
@ -3047,15 +3066,18 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'totalImpresion' => $totalImpresion, 'totalImpresion' => $totalImpresion,
'margenImpresion' => $margenImpresion, 'margenImpresion' => $margenImpresion,
'sumForFactor' => $sumForFactor,
'sumForFactorPonderado' => $sumForFactorPonderado,
'totalServicios' => $totalServicios, 'totalServicios' => $totalServicios,
'margenServicios' => $margenServicios, 'margenServicios' => $margenServicios,
'porcentajeMargenPapel' => $porcentajeMargenPapel, 'porcentajeMargenPapel' => round($porcentajeMargenPapel, 0),
'porcentajeMargenImpresion' => $porcentajeMargenImpresion, 'porcentajeMargenImpresion' => round($porcentajeMargenImpresion, 0),
'porcentajeMargenServicios' => $porcentajeMargenServicios 'porcentajeMargenServicios' => round($porcentajeMargenServicios, 0),
'sumForFactor' => $sumForFactor,
'sumForFactorPonderado' => $sumForFactorPonderado,
'total' => round($total_por_tirada, 2),
'precio_u' => round(($total_por_tirada) / $tirada[$t], 4),
)); ));
} }
@ -3112,12 +3134,14 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
return; return;
$totalPapel += round($linea['precio_pedido'], 2); $totalPapel += round($linea['precio_pedido'], 2);
$totalPapel -= round($linea['margen_papel_pedido'], 2); $totalPapel -= round($linea['margen_papel_pedido'], 2);
$totalPapel = round($totalPapel, 2);
$sumForFactor += round($linea['precio_pedido'], 2) $sumForFactor += round($linea['precio_pedido'], 2)
- round($linea['margen_papel_pedido'], 2); - round($linea['margen_papel_pedido'], 2);
$margenPapel += round($linea['margen_papel_pedido'], 2); $margenPapel += round($linea['margen_papel_pedido'], 2);
$totalImpresion += round($linea['precio_click_pedido'], 2); $totalImpresion += round($linea['precio_click_pedido'], 2);
$totalImpresion -= round($linea['margen_click_pedido'], 2); $totalImpresion -= round($linea['margen_click_pedido'], 2);
$totalImpresion = round($totalImpresion, 2);
$sumForFactor += round($linea['precio_click_pedido'], 2) $sumForFactor += round($linea['precio_click_pedido'], 2)
- round($linea['margen_click_pedido'], 2); - round($linea['margen_click_pedido'], 2);
@ -3132,6 +3156,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$margenImpresion += round($linea['precio_impresion_horas'], 2); // coste de maquina y magen son MARGEN, no COSTE $margenImpresion += round($linea['precio_impresion_horas'], 2); // coste de maquina y magen son MARGEN, no COSTE
$margenImpresion += round($linea['margen_impresion_horas'], 2); $margenImpresion += round($linea['margen_impresion_horas'], 2);
$margenImpresion += round($linea['margen_click_pedido'], 2); $margenImpresion += round($linea['margen_click_pedido'], 2);
$margenImpresion = round($margenImpresion, 2);
} }

View File

@ -1213,7 +1213,7 @@ class Comparador {
} }
const datosPedido = { let datosPedido = {
paginas: paginas, paginas: paginas,
tirada: $('#tirada').val(), tirada: $('#tirada').val(),
merma: $('#merma').val(), merma: $('#merma').val(),
@ -1262,7 +1262,14 @@ class Comparador {
} }
else if (uso == 'guardas') { else if (uso == 'guardas') {
datos.datosPedido.isCosido = 1; // 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
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3) {
datos.datosPedido.isCosido = 1;
} else if (this.tipo_impresion_id == 5 || this.tipo_impresion_id == 7) {
datos.datosPedido.isCosido = 0;
}
datos.datosPedido.isHq = 1; datos.datosPedido.isHq = 1;
datos.paginas_color = datos.datosPedido.paginas; datos.paginas_color = datos.datosPedido.paginas;
datos.paginas_impresion = this.carasGuardas.val(); datos.paginas_impresion = this.carasGuardas.val();
@ -1458,7 +1465,7 @@ class Comparador {
return; return;
} }
if (this.tipo_impresion_id != 5 && this.tipo_impresion_id != 6 && this.tipo_impresion_id != 7 && this.tipo_impresion_id != 8 && this.tipo_impresion_id != 21) { if (this.tipo_impresion_id != 5 && this.tipo_impresion_id != 6 && this.tipo_impresion_id != 7 && this.tipo_impresion_id != 8 && this.tipo_impresion_id != 21) {
if (this.sobrecubierta.select2('data').length >0 && parseInt(this.sobrecubierta.select2('data')[0].id) == 1) { if (this.sobrecubierta.select2('data').length > 0 && parseInt(this.sobrecubierta.select2('data')[0].id) == 1) {
datosComp.sobrecubierta = this.getDataForComp('sobrecubierta'); datosComp.sobrecubierta = this.getDataForComp('sobrecubierta');
if (datosComp.sobrecubierta.error) { if (datosComp.sobrecubierta.error) {
return; return;

View File

@ -8,6 +8,9 @@ class PreviewFormasAdmin {
this.isCosido = $("#isCosido").val(); this.isCosido = $("#isCosido").val();
this.tipoTapa = tipoTapa; this.tipoTapa = tipoTapa;
this.tipo_impresion_id = parseInt($('#tipo_impresion_id').val());
// Container para el esquema de cubierta // Container para el esquema de cubierta
this.preview = new preview($('#pv_ec_shape'), tipoLibro, tipoTapa, "fullImage", data); this.preview = new preview($('#pv_ec_shape'), tipoLibro, tipoTapa, "fullImage", data);
} }
@ -66,8 +69,18 @@ class PreviewFormasAdmin {
$('#tab-pv-guardas').on("click", function () { $('#tab-pv-guardas').on("click", function () {
let cosidoGuardas = false;
// 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
if (self.tipo_impresion_id == 1 || self.tipo_impresion_id == 3) {
cosidoGuardas = true;
} /*else if (self.tipo_impresion_id == 5 || self.tipo_impresion_id == 7) {
cosidoGuardas = false;
}*/
self.preview.setData(self.data); self.preview.setData(self.data);
self.preview.previewInteriorPlana('guardas', self.isCosido, self.tipoTapa.includes("dura") ? 1 : 0); self.preview.previewInteriorPlana('guardas', cosidoGuardas, self.tipoTapa.includes("dura") ? 1 : 0);
}); });

View File

@ -214,8 +214,14 @@ class Resumen {
let margen_servicio = parseFloat(rowData.margen); let margen_servicio = parseFloat(rowData.margen);
let importe_fijo = parseFloat(rowData.importe_fijo); let importe_fijo = parseFloat(rowData.importe_fijo);
totalServicios += total_servicio totalServicios += total_servicio
let base = self.roundToTwoDecimals((total_servicio-importe_fijo) / (1 + margen_servicio / 100.0));
margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base)); let calculoMargen = self.roundToTwoDecimals((total_servicio-importe_fijo) / parseInt($('#tirada').val()));
calculoMargen = self.roundToTwoDecimals(calculoMargen / (1 + margen_servicio / 100.0));
calculoMargen = total_servicio - self.roundToTwoDecimals(calculoMargen * parseInt($('#tirada').val()));
margenServicios += calculoMargen
/*let base = self.roundToTwoDecimals((total_servicio-importe_fijo) / (1 + margen_servicio / 100.0));
margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base));*/
}); });
} }

View File

@ -466,10 +466,10 @@ class PresupuestoCliente {
popErrorAlert("Presupuesto no válido, corrija los errores antes de guardar."); popErrorAlert("Presupuesto no válido, corrija los errores antes de guardar.");
} }
else { else {
popSuccessAlert(response.message);
$('.is-invalid').removeClass('is-invalid'); $('.is-invalid').removeClass('is-invalid');
const skAlert = document.getElementById('sk-alert'); const skAlert = document.getElementById('sk-alert');
skAlert.innerHTML = ''; skAlert.innerHTML = '';
popSuccessAlert(response.message);
} }
} }
@ -514,6 +514,8 @@ class PresupuestoCliente {
popAlert2Hide(); popAlert2Hide();
this.divTiradasPrecios.empty();
for (let i = 0; i < response.tiradas.length; i++) { for (let i = 0; i < response.tiradas.length; i++) {
if (i == 0) { if (i == 0) {
$('#eb').val(response.eb[i]); $('#eb').val(response.eb[i]);
@ -555,7 +557,7 @@ class PresupuestoCliente {
$(window).scrollTop(0); $(window).scrollTop(0);
} }
if (this.datos.cubierta.acabado) if (this.datos.cubierta && this.datos.cubierta.acabado)
setTimeout(() => { setTimeout(() => {
$(`#containerTiradasEnvios .tirada-envio input[tirada="${this.direcciones.tiradaSeleccionada}"]`).trigger('click'); $(`#containerTiradasEnvios .tirada-envio input[tirada="${this.direcciones.tiradaSeleccionada}"]`).trigger('click');
}, 0); }, 0);