commit antes del merge1

This commit is contained in:
2024-05-03 09:54:31 +02:00
parent 385da0a830
commit 02bbc0aa09
7 changed files with 8153 additions and 5 deletions

View File

@ -793,7 +793,7 @@ class Presupuestocliente extends \App\Controllers\GoBaseResourceController
else
$error->sobrecubierta = "";
$tarifaAcabadoSobrecubierta = intval($sobreCubierta->acabado ?? 0);
$tarifaAcabadoSobrecubierta = intval(strlen($sobreCubierta['acabado'])==0 ? 0:$sobreCubierta['acabado']);
$acabadoSobrecubierta = [];
if($tarifaAcabadoSobrecubierta > 0){
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
@ -805,6 +805,45 @@ class Presupuestocliente extends \App\Controllers\GoBaseResourceController
$coste_servicios += floatval($acabadoSobrecubierta[0]->total);
}
}
//Guardas
if($reqData['guardas'] ?? 0 > 0){
$guardas = $reqData['guardas'];
$papel_generico = [
'id' => $guardas['papel'] ?? 0,
'nombre' => $guardas['nombre'] ?? "",
];
$input_data['papel_generico'] = $papel_generico;
$input_data['gramaje'] = $guardas['gramaje'] ?? 0;
$input_data['datosPedido']->paginas = 8;
$input_data['paginas_color'] = 8;
$input_data['datosPedido']->paginas_impresion = $guardas['caras'] ?? 0;
$input_data['datosPedido']->solapas_ancho = 0;
$input_data['datosPedido']->solapas = 0;
$input_data['isColor'] = 1;
$input_data['isHq'] = 1;
$input_data['uso'] = 'guardas';
// 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 ($tipo_impresion_id == 1 || $tipo_impresion_id == 3) {
$input_data['datosPedido']->isCosido = true;
} else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) {
$input_data['datosPedido']->isCosido = false;
}
$guardas = PresupuestoClienteService::obtenerGuardas($input_data);
$coste_guardas = 0.0;
if (count($guardas) > 0) {
$coste_guardas += floatval($guardas['total_impresion']);
}
if($coste_guardas <= 0)
$error->guardas = lang('Presupuestos.errores.noGuardas');
else
$error->guardas = "";
}
// Servicios defecto
$servDefecto = PresupuestoCLienteService::getServiciosEncuadernacionDefault([
@ -814,7 +853,7 @@ class Presupuestocliente extends \App\Controllers\GoBaseResourceController
'ancho' => $datosPedido->ancho,
'alto' => $datosPedido->alto,
'POD' => $POD,
'solapas' => intval($reqData['solapasCubierta'] ?? 0),
'solapas' => intval($reqData['solapasCubierta'] ?? 0)>0?1:0,
]);
$costeServiciosDefecto = 0.0;
foreach ($servDefecto as $servicio) {
@ -831,6 +870,9 @@ class Presupuestocliente extends \App\Controllers\GoBaseResourceController
}
}
if($reqData['guardas'] ?? 0 > 0){
}
return [
'errors' => $error,
'total_lp' => $costeInterior+$coste_cubierta+$coste_sobrecubierta,
@ -842,6 +884,7 @@ class Presupuestocliente extends \App\Controllers\GoBaseResourceController
'interior' => $interior,
'cubierta' => $cubierta,
'sobrecubierta' => $linea_sobrecubierta,
'guardas' => $guardas,
'serviciosDefecto' => $servDefecto,
];
}

View File

@ -146,6 +146,56 @@ class PresupuestoClienteService extends BaseService
return $lineas_sobrecubierta;
}
public static function obtenerGuardas($data)
{
$uso = $data['uso'];
$tipo_impresion_id = $data['tipo_impresion_id'];
$datosPedido = $data['datosPedido'];
$papel_generico = $data['papel_generico'];
$gramaje = $data['gramaje'];
$isColor = $data['isColor'];
$isHq = $data['isHq'];
$cliente_id = $data['cliente_id'];
$lineas_guardas = [];
for ($i = 0; $i < 2; $i++) {
$lineas = PresupuestoService::obtenerComparadorPlana([
'uso' => $uso,
'tipo_impresion_id' => $tipo_impresion_id,
'datosPedido' => $datosPedido,
'papel_generico' => $papel_generico,
'gramaje' => $gramaje,
'isColor' => $isColor,
'isHq' => $isHq,
'cliente_id' => $cliente_id,
'a_favor_fibra' => $i
]);
if (count($lineas) > 0) {
$lineas_guardas = array_merge($lineas_guardas, $lineas);
}
}
if (count($lineas_guardas) > 0) {
usort(
$lineas_guardas,
function ($a, $b) {
$result = 0;
if (floatval($a['fields']['total_impresion']) > floatval($b['fields']['total_impresion']))
$result = 1;
else if (floatval($a['fields']['total_impresion']) < floatval($b['fields']['total_impresion']))
$result = -1;
return $result;
}
);
$lineas_guardas = $lineas_guardas[0]['fields'];
$lineas_guardas['tipo_linea'] = 'lp_guardas';
}
return $lineas_guardas;
}
/**
* Obtiene las lineas de plana en el presupuesto de cliente

View File

@ -392,7 +392,7 @@
<div class="row sobrecubierta enable-sobrecubierta" style="display: none;">
<div class="col-sm-3 mb-md-0 mb-2">
<div class="col-sm-3 mb-md-0 mb-2 d-flex align-items-end">
<div class="form-check form-switch mb-2">
<input class="form-check-input calcular-presupuesto input-sobrecubierta" type="checkbox" id="solapasSobrecubierta" name="solapasSobrecubierta" value="0">
<label class="form-check-label" for="solapasSobrecubierta">Solapas sobrecubierta</label>
@ -409,7 +409,7 @@
<div class="row sobrecubierta enable-sobrecubierta" style="display: none;">
<div class="col-sm-4 mb-md-0 mb-2">
<label for="acabadosSobrecubierta" class="form-label">Acabados cubierta</label>
<label for="acabadosSobrecubierta" class="form-label">Acabados sobrecubierta</label>
<select id="acabadosSobrecubierta" name="acabadosSobrecubierta" class="form-control select2bs2 calcular-presupuesto" style="width: 100%;">
<?php if (isset($datosPresupuesto->acabadosSobrecubierta) && is_array($datosPresupuesto->acabadosSobrecubierta) && !empty($datosPresupuesto->acabadosSobrecubierta)) :
foreach ($datosPresupuesto->acabadosSobrecubierta as $acabado) : ?>
@ -431,6 +431,10 @@
</div>
</div>
<div id="errorGuardas" class="fv-plugins-message-container invalid-feedback" style="display: none;">
<div>No existe combinación con las opciones seleccionadas. Pruebe con otro papel/gramaje</div>
</div>
<div class="row guardas">
<div class="col-sm-4 mb-md-0 mb-2">
<label for="impresionGuardas" class="form-label">Impresión de guardas</label>

View File

@ -637,6 +637,7 @@ async function calcularPresupuesto() {
datos.guardas = {
papel: $('#papelGuardas option:selected').val(),
papel_nombre: $('#papelGuardas option:selected').text().trim(),
gramaje: 170,
caras: $('#impresionGuardas option:selected').val()
}
}
@ -673,8 +674,19 @@ async function calcularPresupuesto() {
$('#errorSobrecubierta').hide();
if(response.errors.guardas.length > 0){
$('#errorGuardas').show();
error = true;
}
else
$('#errorGuardas').hide();
if(response.errors.servicios.length > 0 || response.errors.serviciosDefecto.length > 0){
error = true;
$('#errorGeneral').show();
}
else{
$('#errorGeneral').hide();
}
console.log(response);

View File

@ -61,6 +61,9 @@
</button>
</div>
<div id="errorGeneral" class="fv-plugins-message-container invalid-feedback" style="display: none;">
<p>Se ha producido un error al calcular el presupuesto. Póngase en contacto con el administrador</p>
</div>
<table id="precios" class="table table-sm" style="display: none;">
<caption>Precio/Unidad por tirada</caption>

View File

@ -817,7 +817,7 @@
/**
* JJO
*/
--->
<li class="menu-header small text-uppercase">
<span class="menu-header-text">Test JJO</span>
</li>
@ -827,6 +827,7 @@
<div data-i18n="Test">Test</div>
</a>
</li>
--->
</ul>