Merge branch 'add/fajas_admin' into 'main'

Add/fajas admin

See merge request jjimenez/safekat!506
This commit is contained in:
2025-02-01 18:11:45 +00:00
20 changed files with 876 additions and 247 deletions

View File

@ -478,6 +478,10 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$data['datosLibro']['solapasSobrecubierta'] = $presupuesto->solapas_sobrecubierta;
$data['datosLibro']['solapasCubiertaAncho'] = $presupuesto->solapas_ancho;
$data['datosLibro']['solapasSobrecubiertaAncho'] = $presupuesto->solapas_ancho_sobrecubierta;
$data['datosLibro']['fajaColor'] = $presupuesto->faja_color;
$data['datosLibro']['fajaColorSolapasAncho'] = $presupuesto->solapas_ancho_faja_color;
$data['datosLibro']['fajaColorAlto'] = $presupuesto->alto_faja_color;
$modelAcabado = model("App\Models\Tarifas\Acabados\TarifaAcabadoModel");
$data['datosLibro']['acabadoCubierta']['id'] = $presupuesto->acabado_cubierta_id;
if ($presupuesto->acabado_cubierta_id == 0) {
@ -497,8 +501,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$data['datosLibro']['marcapaginas'] = $presupuesto->marcapaginas;
$data['datosLibro']['retractilado'] = $presupuesto->retractilado;
$data['datosLibro']['retractilado5'] = $presupuesto->retractilado5;
$data['datosLibro']['fajaColor'] = $presupuesto->faja_color;
$data['comparador']['tipo_impresion'] = $presupuesto->comp_tipo_impresion;
$data['comparador']['json_data'] = json_decode($presupuesto->comparador_json_data, true);
if ($data['comparador']['json_data'] != null) {
@ -663,7 +666,9 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$gramaje = $sobrecubierta['gramaje'];
$paginas_color = $sobrecubierta['datosPedido']['paginas'] ?? 0;
$tipo_impresion_id = $sobrecubierta['tipo_impresion_id'];
$uso = $sobrecubierta['uso'];
$faja = intval($sobrecubierta['faja'] ?? 0);
$uso = $faja==1? 'faja' : $sobrecubierta['uso'];
$data = array(
'cliente_id' => $cliente_id,
@ -957,7 +962,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$resourceData = PresupuestoService::obtenerComparadorRotativa($input_data);
} else if ($type == 'cubierta' || $type == 'sobrecubierta') {
} else if ($type == 'cubierta' || $type == 'sobrecubierta' || $type == 'faja') {
$datosPedido->solapas = $reqData['solapas'];
$datosPedido->solapas_ancho = $reqData['solapas_ancho'];
@ -1618,6 +1623,9 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$modelPapel = new PapelGenericoModel();
foreach ($lineas as $linea) {
$linea->papel_generico = (new PapelGenericoModel())->find($linea->papel_id)->nombre;
if($linea->tipo == 'lp_faja'){
$linea->alto_faja = $presupuestoEntity->alto_faja_color;
}
}
$input_data = [];

View File

@ -31,7 +31,6 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
"retractilado" => false,
"retractilado5" => false,
"guardas" => false,
"faja_color" => false,
"recoger_en_taller" => false,
"ferro" => false,
"ferro_digital" => false,
@ -53,6 +52,9 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
"solapas_ancho" => 0.0,
"solapas_sobrecubierta" => false,
"solapas_ancho_sobrecubierta" => 0.0,
"faja_color" => false,
"solapas_ancho_faja_color" => 0.0,
"alto_faja_color" => 0.0,
"cosido" => false,
"sobrecubiertas" => false,
"sobrecubiertas_ancho" => 0.0,
@ -121,7 +123,6 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
"retractilado" => "boolean",
"retractilado5" => "boolean",
"guardas" => "boolean",
"faja_color" => "boolean",
"recoger_en_taller" => "boolean",
"ferro" => "boolean",
"ferro_digital" => "boolean",
@ -137,6 +138,9 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
"solapas_ancho" => "float",
"solapas_sobrecubierta" => "boolean",
"solapas_ancho_sobrecubierta" => "float",
"faja_color" => "boolean",
"solapas_ancho_faja_color" => "float",
"alto_faja_color" => "float",
"cosido" => "boolean",
"sobrecubiertas" => "boolean",
"sobrecubiertas_ancho" => "float",

View File

@ -166,6 +166,7 @@ return [
'solapasSobrecubierta' => 'Solapas sobrecub.',
'solapasAnchoCubierta' => 'Ancho solapas cub.',
'solapasAnchoSobrecubierta' => 'Ancho solapas sobrecub.',
'sinImpresion' => 'Sin impresion',
'unaCara' => '1 cara',
'dosCaras' => '2 caras',
@ -276,12 +277,14 @@ return [
'previewConfiguracionGuardas' => 'Configuración de guardas',
'previewConfiguracionCubierta' => 'Configuración de cubierta',
'previewConfiguracionSobrecubierta' => 'Configuración de sobrecubierta',
'previewConfiguracionFaja' => 'Configuración de faja',
'previewEsquemaCubierta' => 'Esquema de cubierta',
'previewConfiguracionEsquemaCubierta' => 'Configuración esquema de cubierta',
'previewMaquinaPlana' => 'Configuración del papel: Plana',
'previewMaquinaRotativa' => 'Configuración del papel: Rotativa',
'previewCubierta' => 'Configuración del papel: Cubierta',
'previewSobrecubierta' => 'Configuración del papel: Sobrecubierta',
'previewFaja' => 'Configuración del papel: Faja',
'previewPapelGenerico' => 'Papel Genérico',
'previewPapelCompra' => 'Papel de Compra',
'previewAreaImpresion' => 'Área de Impresión',
@ -387,7 +390,8 @@ return [
'noInterior' => 'No se hay resultados para el interior',
'noCubiertaSobrecubierta' => 'No se hay resultados para cubierta/sobrecubierta',
'errorPresupuesto' => 'Se ha producido un error al calcular el presupuesto. Póngase en contacto con el administrador',
'error_sobrecubierta_sin_solapas' => 'Debe seleccionar "sobrecubierta" en los datos del libro para introducir el ancho de solapa'
'error_sobrecubierta_sin_solapas' => 'Debe seleccionar "sobrecubierta" en los datos del libro para introducir el ancho de solapa',
'error_faja_sin_solapas' => 'Debe seleccionar "faja" en los datos del libro para introducir el ancho de solapa'
],
];

View File

@ -54,7 +54,6 @@ class PresupuestoModel extends \App\Models\BaseModel
"retractilado",
"retractilado5",
"guardas",
"faja_color",
"recoger_en_taller",
"ferro",
"ferro_digital",
@ -76,6 +75,9 @@ class PresupuestoModel extends \App\Models\BaseModel
"solapas_ancho",
"solapas_sobrecubierta",
"solapas_ancho_sobrecubierta",
"solapas_ancho_faja_color",
"faja_color",
"alto_faja_color",
"cosido",
"sobrecubiertas",
"sobrecubiertas_ancho",

View File

@ -83,8 +83,13 @@ class PresupuestoService extends BaseService
$parametrosInkjet->rotativa_cg = $datosTipologias[0]->cg;
}
$uso_tarifa = $uso;
if($uso == 'guardas')
$uso_tarifa = 'interior';
else if ($uso == 'faja')
$uso_tarifa = 'sobrecubierta';
$tarifamodel = new \App\Models\Configuracion\MaquinasTarifasImpresionModel();
$datos_tarifa = $tarifamodel->getTarifa($maquina->maquina_id, ($uso == 'guardas') ? 'interior' : $uso, $tipo);
$datos_tarifa = $tarifamodel->getTarifa($maquina->maquina_id, $uso_tarifa, $tipo);
if (count($datos_tarifa) > 0) {
$tarifaId = $datos_tarifa[0];
$tarifa = $datos_tarifa[1];
@ -128,7 +133,7 @@ class PresupuestoService extends BaseService
$clientePreciosModel = new \App\Models\Clientes\ClientePreciosModel();
$config = (object) [
"tipo" => ($uso == 'guardas') ? 'interior' : $uso,
"tipo" => $uso_tarifa,
"tipo_maquina" => $maquina->is_inkjet ? 'inkjet' : 'toner',
"tipo_impresion" => $tipo
];
@ -334,8 +339,8 @@ class PresupuestoService extends BaseService
if ($uso != 'rotativa') {
$ancho_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta') ? $datosPedido->anchoExteriores : $datosPedido->ancho;
$alto_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta') ? $datosPedido->altoExteriores : $datosPedido->alto;
$ancho_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta' || $uso == 'faja') ? $datosPedido->anchoExteriores : $datosPedido->ancho;
$alto_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta' || $uso == 'faja') ? $datosPedido->altoExteriores : $datosPedido->alto;
$formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $alto_calculo, $datosPedido->isCosido, $forzar_a_favor_fibra);
$response['fields'] = $formas;
}
@ -366,10 +371,12 @@ class PresupuestoService extends BaseService
$margen_click = $tarifa * ($tarifa_margen / 100.0);
//interior (bn o color)
if ($cubierta == 0 && $sobrecubierta == 0 && $rotativa == 0) {
if ($cubierta == 0 && $sobrecubierta == 0 && $rotativa == 0 || $uso == 'faja') {
// precio papel
$pliegos_libro = ceil(($datosPedido->paginas / 2.0) / $response['fields']['num_formas']['value']);
if ($pliegos_libro < 1)
$pliegos_libro = ($datosPedido->paginas / 2.0) / $response['fields']['num_formas']['value'];
if($uso != 'faja')
$pliegos_libro = ceil($pliegos_libro);
if ($uso != 'faja' && $pliegos_libro < 1) // faja pueden entrar más de una forma
$pliegos_libro = 1;
$pliegos_pedido = $pliegos_libro * ($datosPedido->tirada + $datosPedido->merma);
$precio_libro = $pliegos_libro * ($precio_pliego_impresion + $margen_pliego_impresion);
@ -693,7 +700,7 @@ class PresupuestoService extends BaseService
$h2_temp = 0;
// El ancho si es cosido es el doble
if ($uso != 'cubierta' && $uso != 'sobrecubierta') {
if ($uso != 'cubierta' && $uso != 'sobrecubierta' && $uso != 'faja') {
$anchoForCalculo = $isCosido ? $ancho * 2 : $ancho;
} else {
$anchoForCalculo = $ancho;
@ -1761,7 +1768,8 @@ class PresupuestoService extends BaseService
$tipo = $isColor ? ($isHq ? 'colorhq' : 'color') : ($isHq ? 'negrohq' : 'negro');
$opciones_papel = PresupuestoService::get_opciones_papel($uso, $isColor);
$uso_papel = $uso == 'faja' ? 'sobrecubierta': $uso;
$opciones_papel = PresupuestoService::get_opciones_papel($uso_papel, $isColor);
// Se obtienen los papeles disponibles
$papelimpresionmodel = new PapelImpresionModel();
@ -1779,7 +1787,7 @@ class PresupuestoService extends BaseService
$maquinas = $maquinamodel->getMaquinaImpresionForPresupuesto(
is_rotativa: 0,
tarifa_tipo: $tipo,
uso_tarifa: ($uso == 'guardas') ? 'interior' : $uso,
uso_tarifa: ($uso == 'guardas') ? 'interior' : $uso_papel,
tirada: $datosPedido->tirada + $datosPedido->merma,
papel_impresion_id: $papel->id,
)->orderBy("t1.id", "asc")->get()->getResultObject();
@ -1787,10 +1795,10 @@ class PresupuestoService extends BaseService
// Se recorren las máquinas y se calcula el coste de linea por cada una
foreach ($maquinas as $maquina) {
if ($uso == 'cubierta' || $uso == 'sobrecubierta') {
if ($uso == 'cubierta' || $uso == 'sobrecubierta' || $uso == 'faja') {
$datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($uso, $tipo_impresion_id, $datosPedido, $maquina->maquina_id, $lomoRedondo);
$datosPedido->altoExteriores = PresupuestoService::getAltoTotalExteriores($uso, $tipo_impresion_id, $datosPedido);
$datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($uso_papel, $tipo_impresion_id, $datosPedido, $maquina->maquina_id, $lomoRedondo);
$datosPedido->altoExteriores = PresupuestoService::getAltoTotalExteriores($uso_papel, $tipo_impresion_id, $datosPedido);
}
$data['uso'] = $uso;

View File

@ -162,6 +162,47 @@
</div>
</div>
<!-- Fila 3 -->
<div class="row mt-2 container-faja">
<div class="row align-items-center">
<div class="col-md-12 col-lg-2 px-4">
<div class="mb-1">
<div class="form-check form-switch mb-2">
<input class="form-check-input" type="checkbox" id="faja" name="faja" tabindex="6"
value="1">
<label class="form-check-label" for="faja"><?= lang('Presupuestos.faja') ?></label>
</div>
</div><!--//.mb-3 -->
</div>
<div class="col-md-12 col-lg-2 px-4">
<div class="mb-1 faja-div d-none" id="div_faja_alto">
<label for="faja_alto" class="form-label">
<?= lang('Presupuestos.altoFaja') ?>*
</label>
<input type="number" id="faja_alto" name="faja_alto" placeholder="0" maxLength="8"
step="1" class="form-control" min="50" value="50">
<div class="form-text">
Entre 50 y 120 mm
</div>
</div><!--//.mb-1 -->
</div>
<div class="col-md-12 col-lg-2 px-4">
<div class="mb-1 faja-div d-none" id="div_faja_solapas_ancho">
<label for="faja_solapas_ancho" class="form-label">
<?= lang('Presupuestos.tamanioSolapasFaja') ?>*
</label>
<input type="number" id="faja_solapas_ancho" name="faja_solapas_ancho" placeholder="0"
maxLength="8" step="1" min="60" class="form-control" value="60">
<div class="form-text">
Entre 60 y 120 mm
</div>
</div><!--//.mb-1 -->
</div>
</div>
</div>
<!----------------------------------------------------------------------------->

View File

@ -222,46 +222,46 @@
</div>
<?php if ($tipo_impresion_id == 1 || $tipo_impresion_id == 3): ?>
<div class="col-md-12 col-lg-2 px-4">
</div>
<div class="col-md-12 col-lg-2 px-4">
</div>
<div class="col-md-12 col-lg-2 px-4">
<label id="label_compLomoRedondo" for="compLomoRedondo" class="form-label">
<?= lang('Presupuestos.lomoRedondo') ?>*
</label>
<select id="compLomoRedondo" name="lomo_redondo"
class="form-control select2bs2 comp_cubierta_items" style="width: 100%;">
<option value="0">
<p>
<?= lang('Presupuestos.no') ?>
</p>
</option>
<option value="1">
<p>
<?= lang('Presupuestos.si') ?>
</p>
</option>
</select>
</div>
<div class="col-md-12 col-lg-2 px-4">
<label for="cabezada" class="form-label">
<?= lang('Presupuestos.cabezada') ?>
</label>
<select class="form-select select2bs2" id="cabezada" name="cabezada">
<option value="WHI">
<?= lang('Presupuestos.blanca') ?>
</option>
<option value="GRE">
<?= lang('Presupuestos.verde') ?>
</option>
<option value="BLUE">
<?= lang('Presupuestos.azul') ?>
</option>
<option value="REDYEL">
<?= lang('Presupuestos.rojaAmarilla') ?>
</option>
</select>
</div>
<div class="col-md-12 col-lg-2 px-4">
<label id="label_compLomoRedondo" for="compLomoRedondo" class="form-label">
<?= lang('Presupuestos.lomoRedondo') ?>*
</label>
<select id="compLomoRedondo" name="lomo_redondo"
class="form-control select2bs2 comp_cubierta_items" style="width: 100%;">
<option value="0">
<p>
<?= lang('Presupuestos.no') ?>
</p>
</option>
<option value="1">
<p>
<?= lang('Presupuestos.si') ?>
</p>
</option>
</select>
</div>
<div class="col-md-12 col-lg-2 px-4">
<label for="cabezada" class="form-label">
<?= lang('Presupuestos.cabezada') ?>
</label>
<select class="form-select select2bs2" id="cabezada" name="cabezada">
<option value="WHI">
<?= lang('Presupuestos.blanca') ?>
</option>
<option value="GRE">
<?= lang('Presupuestos.verde') ?>
</option>
<option value="BLUE">
<?= lang('Presupuestos.azul') ?>
</option>
<option value="REDYEL">
<?= lang('Presupuestos.rojaAmarilla') ?>
</option>
</select>
</div>
<?php endif; ?>
<div>
<hr class="my-1">
@ -345,13 +345,49 @@
class="form-control select2bs2 comp_guardas_items" style="width: 100%;">
</select>
</div>
<div>
<hr class="my-1">
</div>
</div>
<?php endif; ?>
<div class="row">
<div class="col-md-12 col-lg-2 px-4">
<p>
<?= lang('Presupuestos.faja') ?>
</p>
</div>
<div class="col-md-12 col-lg-2 px-4">
<select id="compFaja" name="comp_faja" class="form-control select2bs2 comp_faja_items"
style="width: 100%;">
<option value="0">
<p>
<?= lang('Presupuestos.no') ?>
</p>
</option>
<option value="1">
<p>
<?= lang('Presupuestos.si') ?>
</p>
</option>
</select>
</div>
<div class="col-md-12 col-lg-6 px-4">
<select disabled id="compPapelFaja" name="comp_papel_faja"
class="form-control select2bs2 comp_faja_items" style="width: 100%;">
</select>
</div>
<div class="col-md-12 col-lg-2 px-4">
<select disabled id="compGramajeFaja" name="comp_gramaje_faja"
class="form-control select2bs2 comp_faja_items" style="width: 100%;">
</select>
</div>
<div>
<hr class="my-1">
</div>
</div>
<!----------------------------------------------------------------------------->
<div class="divider divider-dark text-start mb-1 pos-paginas-color">
@ -799,6 +835,102 @@
</div>
<?php endif; ?>
<div class="accordion mt-3" id="accordionCompFaja">
<div class="card accordion-item active">
<h2 class="accordion-header" id="headingThree">
<button id="accordion-button-faja" type="button" class="accordion-button"
data-bs-toggle="collapse" data-bs-target="#accordionCompFajaTip"
aria-expanded="false" aria-controls="accordionFajaTip">
<h6 id="title_faja">
<?= lang("Presupuestos.faja") ?>
</h6>
</button>
</h2>
<div id="accordionCompFajaTip" class="accordion-collapse collapse"
data-bs-parent="#accordionCompFaja">
<div class="accordion-body">
<table id="tableCompFaja" class="comparator-table table dt-responsive dataTable"
style="width: 100%;">
<thead>
<tr>
<th style="padding-right: 0.75em;">
<?= lang('Presupuestos.tipo') ?>
</th>
<th style="padding-right: 0.75em;">
<?= lang('Presupuestos.paginas') ?>
</th>
<th style="padding-right: 0.75em;">
<?= lang('Presupuestos.papel') ?>
</th>
<th style="padding-right: 0.75em;">
<?= lang('Presupuestos.gramaje') ?>
</th>
<th style="padding-right: 0.75em;">
<?= lang('Presupuestos.marca') ?>
</th>
<th style="padding-right: 0.75em;">
<?= lang('Presupuestos.maquina') ?>
</th>
<th style="padding-right: 0.75em;">
<?= lang('Presupuestos.numeroPliegos') ?>
</th>
<th style="padding-right: 0.75em; max-width:80px">
<?= lang('Presupuestos.pliegosPedido') ?>
</th>
<th style="padding-right: 0.75em; max-width:80px">
<?= lang('Presupuestos.precioPliego') ?>
</th>
<th style="padding-right: 0.75em;">
<?= lang('Presupuestos.libro') ?>
</th>
<th style="padding-right: 0.75em; max-width:80px">
<?= lang('Presupuestos.totalPapelPedido') ?>
</th>
<th style="padding-right: 0.75em;">
<?= lang('Presupuestos.lomo') ?>
</th>
<th style="padding-right: 0.75em;">
<?= lang('Presupuestos.peso') ?>
</th>
<th style="padding-right: 0.75em; max-width:80px">
<?= lang('Presupuestos.horas') ?>
</th>
<th style="padding-right: 0.75em; max-width:80px">
<?= lang('Presupuestos.precioImpresion') ?>
</th>
<th style="padding-right: 0.75em;">
<?= lang('Presupuestos.total') ?>
</th>
</tr>
</thead>
<tbody>
</tbody>
<tfoot>
<tr>
<td class="dt-result dt-result-text" colspan="14">
<?= lang('Presupuestos.total') ?>
<?= lang("Presupuestos.faja") ?>:
</td>
<td id="total_comp_faja" class="dt-result dt-result-value" colspan="2">
0.00 </td>
</tr>
</tfoot>
</table>
<div>
<button type="button" name="insertarFajaBtn" id="insertarFajaBtn"
class="btn btn-primary float-end me-sm-3 me-1 mb-3 insertarLinea d-none">
<?= lang('Presupuestos.insertarLinea') . ' ' . strtoupper(lang('Presupuestos.faja')) ?>
</button>
</div>
</div>
</div>
</div>
</div>

View File

@ -60,6 +60,7 @@
<option value="lp_cubierta"><?= lang('Presupuestos.cubierta') ?></option>
<option value="lp_sobrecubierta"><?= lang('Presupuestos.sobrecubierta') ?></option>
<option value="lp_guardas"><?= lang('Presupuestos.Guardas') ?></option>
<option value="lp_faja"><?= lang('Presupuestos.faja') ?></option>
</select>
</div>
</div>

View File

@ -133,6 +133,18 @@
<?= lang("Presupuestos.previewConfiguracionSobrecubierta") ?>
</button>
</li>
<li id="tab-pv-faja" class="nav-item" style="display: none">
<button
type="button"
class="nav-link"
role="tab"
data-bs-toggle="tab"
data-bs-target="#pv_faja"
aria-controls="pv_faja"
aria-selected="false">
<?= lang("Presupuestos.previewConfiguracionFaja") ?>
</button>
</li>
</ul>
<div class="tab-content border border-container">
@ -934,6 +946,87 @@
</div>
</div>
<div class="tab-pane fade" id="pv_faja" role="tabpanel">
<div class="row">
<div class="col-3">
<div class="p-4 mb-3 pb-3">
<!-- Configuraciones -->
<div class="row g-3 mb-3">
<div class="col-12">
<a id="pv_faja_pg" href="#" sk-url="<?= site_url('configuracion/papelesgenericos/edit/'); ?>" target="_blank">
<div class="d-grid">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?>
</button>
</div>
</a>
</div>
<div class="col-12">
<a id="pv_faja_pi" href="#" sk-url="<?= site_url('configuracion/papelesimpresion/edit/'); ?>" target="_blank">
<div class="d-grid">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?>
</button>
</div>
</a>
</div>
<div class="col-12">
<a id="pv_faja_mi" href="#" sk-url="<?= site_url('configuracion/maquinas/edit/'); ?>" target="_blank">
<div class="d-grid">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?>
</button>
</div>
</a>
</div>
</div>
<hr class="mx-n4" />
<!-- Detalles del presupuesto -->
<h6><?= lang("Presupuestos.previewDetalles") ?></h6>
<dl class="row mb-0">
<dt class="col-6 fw-semibold"><?= lang("Presupuestos.previewGramaje") ?></dt>
<dd id="pv_faja_gramaje" class="col-6 text-left">TBD</dd>
<dt class="col-6 fw-semibold"><?= lang("Presupuestos.previewMano") ?></dt>
<dd id="pv_faja_mano" class="col-sm-6 text-left">TBD</dd>
<dt class="col-6 fw-semibold pv-solapas"><?= lang("Presupuestos.previewSolapas") ?></dt>
<dd id="pv_faja_solapas" class="col-sm-6 text-left pv-solapas">TBD</dd>
<dt class="col-6 fw-semibold"><?= lang("Presupuestos.previewMaquina") ?></dt>
<dd id="pv_faja_maquina" class="col-6 text-left">TBDxTBD</dd>
<dt class="col-6 fw-semibold"><?= lang("Presupuestos.previewAreaImpresion") ?></dt>
<dd id="pv_faja_maquina_impresion" class="col-6 text-left">TBDxTBD</dd>
<dt class="col-6 fw-semibold"><?= lang("Presupuestos.previewLibro") ?></dt>
<dd id="pv_faja_libro" class="col-6 text-left">TBDxTBD</dd>
<dt class="col-6 fw-semibold"><?= lang("Presupuestos.previewForma") ?></dt>
<dd id="pv_faja_forma" class="col-6 text-left">TBD</dd>
<dt class="col-6 fw-semibold"><?= lang("Presupuestos.previewFormas") ?></dt>
<dd id="pv_faja_nFormas" class="col-6 text-left">TBD</dd>
</dl>
</div>
</div>
<div class="col-9">
<div class="p-4 mb-3 pb-3">
<!-- Configuraciones -->
<h6><?= lang("Presupuestos.previewFaja") ?></h6>
<div id="pv-cubierta-container">
<div id="pv_faja_shape" class="draw-shapes"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@ -942,72 +1035,3 @@
</div> <!-- //.accordion-collapse -->
</div> <!-- //.accordion-item -->
</div> <!-- //.accordion -->
<!------------------------------------------------------->
<!-- Código JS comportamiento ?????. -->
<!------------------------------------------------------->
<?= $this->section("additionalInlineJs") ?>
/*
$('#tab-pv-bn').on( "click", function() {
previewInteriorPlana('bn', <?php echo $isCosido; ?>, <?php echo $isTapaDura; ?>);
} );
$('#tab-pv-bnhq').on( "click", function() {
previewInteriorPlana('bnhq', <?php echo $isCosido; ?>, <?php echo $isTapaDura; ?>);
} );
$('#tab-pv-color').on( "click", function() {
previewInteriorPlana('color', <?php echo $isCosido; ?>, <?php echo $isTapaDura; ?>);
} );
$('#tab-pv-colorhq').on( "click", function() {
previewInteriorPlana('colorhq', <?php echo $isCosido; ?>, <?php echo $isTapaDura; ?>);
} );
$('#tab-pv-rot-bn').on( "click", function() {
previewRotativa('rot_bn', <?php echo $isCosido; ?>, <?php echo $isTapaDura; ?>);
} );
$('#tab-pv-rot-color').on( "click", function() {
previewRotativa('rot_color', <?php echo $isCosido; ?>, <?php echo $isTapaDura; ?>);
} );
$('#tab-pv-guardas').on( "click", function() {
previewInteriorPlana('guardas', <?php echo $isCosido; ?>, <?php echo $isTapaDura; ?>);
} );
$('#tab-pv-cubierta').on( "click", function() {
previewInteriorPlana('cubierta', <?php echo $isCosido; ?>, <?php echo $isTapaDura; ?>);
} );
$('#tab-pv-esquema-cubierta').on( "click", function() {
previewEsquemaCubierta('ec', <?php echo $isCosido; ?>, <?php echo $isTapaDura; ?>);
} );
$('#tab-pv-sobrecubierta').on( "click", function() {
previewInteriorPlana('sobrecubierta', <?php echo $isCosido; ?>, <?php echo $isTapaDura; ?>);
} );
*/
<?= $this->endSection() ?>

View File

@ -82,7 +82,7 @@
<?php if ($presupuestoEntity->estado_id == 2): ?>
<div class="row mt-5">
<div class="mb-1">
<label for="paginas" class="form-label">
<label for="totalAceptado" class="form-label">
<?= lang('Presupuestos.totalAceptado') ?>
</label>
<input disabled type="text" id="totalAceptado" name="totalAceptado" class="form-control" value="" <?php echo ($tipo_impresion_id == 21)?' max=80':'' ?>>

View File

@ -74,6 +74,7 @@ class previewFormas {
case 'rot_color':
case 'guardas':
case 'sobrecubierta':
case 'faja':
if (lineaPresupuestoId === lpName) {
rowData = this.data();
}
@ -107,7 +108,7 @@ class previewFormas {
anchoMaquina: parseFloat(rowData.maquina_ancho),
altoImpresion: parseFloat(rowData.maquina_impresion_alto),
anchoImpresion: parseFloat(rowData.maquina_impresion_ancho),
altoLibro: this.alto(),
altoLibro: lpName=='faja'? parseFloat(rowData.alto_faja).toFixed(0):this.alto(),
anchoLibro: this.ancho(),
offsetSolapa: 0
};
@ -148,7 +149,7 @@ class previewFormas {
let anchoPliegue = parseFloat(7); // mm
let altoPliegue = parseFloat(7); // mm
let sangre = parseFloat(20); // mm
if (this.isTapaDura && (this.ancho() >= 210 || this.alto() >= 297)) {
if (this.isTapaDura && (this.ancho() >= 210 || this.alto() >= 267)) {
sangre = parseFloat(10); // mm
}
this.pvObj.anchoForma = ((2 * this.pvObj.anchoLibro) + (2 * anchoPliegue) + (2 * sangre) + this.pvObj.lomoLibro);
@ -186,10 +187,10 @@ class previewFormas {
let anchoPliegue = parseFloat(7); // mm
let altoPliegue = parseFloat(7); // mm
this.pvObj.anchoForma = ((2 * this.pvObj.anchoLibro) + (2 * anchoPliegue) + (2 * (anchoSolapaSobrecubierta + this.pvObj.offsetSolapa)) + (2 * sangre) + this.pvObj.lomoLibroSobrecubierta);
this.pvObj.altoForma += altoPliegue + (2 * sangre);
this.pvObj.altoForma += altoPliegue + parseFloat(2 * sangre);
} else {
this.pvObj.anchoForma = ((2 * this.pvObj.anchoLibro) + (2 * (anchoSolapaSobrecubierta + this.pvObj.offsetSolapa)) + (2 * sangre) + this.pvObj.lomoLibroSobrecubierta);
this.pvObj.altoForma += (2 * sangre);
this.pvObj.altoForma += parseFloat(2 * sangre);
}
// Update labels
@ -197,11 +198,30 @@ class previewFormas {
anchoSolapaSobrecubierta != 0 ? $('.pv-solapas').show() : $('.pv-solapas').hide();
$(pvName + '_forma').text(this.pvObj.anchoForma + "x" + this.pvObj.altoForma);
break;
case 'faja':
let sangreFaja = parseFloat(5); // mm
let anchoSolapaFaja = $('#faja').is(':checked') ? parseFloat($('#faja_solapas_ancho').val()) : parseFloat(0); // mm
if (_isTapaDura) {
let anchoPliegue = parseFloat(7); // mm
let altoPliegue = parseFloat(7); // mm
this.pvObj.anchoForma = ((2 * this.pvObj.anchoLibro) + (2 * anchoPliegue) + (2 * (anchoSolapaFaja + this.pvObj.offsetSolapa)) + (2 * sangreFaja) + this.pvObj.lomoLibroSobrecubierta);
this.pvObj.altoForma += altoPliegue + parseFloat(2 * sangreFaja);
} else {
this.pvObj.anchoForma = ((2 * this.pvObj.anchoLibro) + (2 * (anchoSolapaFaja + this.pvObj.offsetSolapa)) + (2 * sangreFaja) + this.pvObj.lomoLibroSobrecubierta);
this.pvObj.altoForma = parseFloat(this.pvObj.altoForma) + parseFloat(2 * sangreFaja);
}
// Update labels
$(pvName + '_solapas').text(anchoSolapaFaja);
anchoSolapaFaja != 0 ? $('.pv-solapas').show() : $('.pv-solapas').hide();
$(pvName + '_forma').text(this.pvObj.anchoForma + "x" + this.pvObj.altoForma);
break;
case 'ec':
$(pvName + '_pg').attr("href", $(pvName + '_pg').attr('sk-url') + rowData.papel);
$(pvName + '_pi').attr("href", $(pvName + '_pi').attr('sk-url') + rowData.papel_impresion_id);
$(pvName + '_mi').attr("href", $(pvName + '_mi').attr('sk-url') + rowData.maquina_id);
$('#pv_ec_lomo').text(this.pvObj.lomoLibro);
$('#pv_ec_lomo').text(parseFloat(this.pvObj.lomoLibro).toFixed(1));
break;
case 'rot_bn':
@ -482,7 +502,7 @@ class previewFormas {
altoSangrado = (anchoSangrado * 0.647 > 300) ? 300 : anchoSangrado * 0.647; // px
} else {
anchoSangrado = 750; // px
altoSangrado = (anchoSangrado * 0.647 > 650) ? 650 : anchoSangrado * 0.647; // px
altoSangrado = (anchoSangrado * 0.6 > 650) ? 650 : anchoSangrado * 0.6; // px
}
altoLibro = altoSangrado * 0.97;
@ -497,7 +517,7 @@ class previewFormas {
altoSangrado = (anchoSangrado * 0.647 > 300) ? 300 : anchoSangrado * 0.647; // px
} else {
anchoSangrado = 750; // px
altoSangrado = (anchoSangrado * 0.647 > 650) ? 650 : anchoSangrado * 0.647; // px
altoSangrado = (anchoSangrado * 0.6 > 650) ? 650 : anchoSangrado * 0.6; // px
}
altoLibro = altoSangrado * 0.95;
anchoLibro = anchoSangrado * 0.28;
@ -676,7 +696,7 @@ class previewFormas {
let styleCotas = { size: 12, family: 'Public Sans' };
let sangradoTexto = "Sangrado 20 mm";
let sangradoValor = parseFloat(20); // mm
if (this.ancho >= 210 || this.alto >= 297) {
if (this.ancho >= 210 || this.alto >= 267) {
sangradoValor = parseFloat(10); // mm
sangradoTexto = "Sangrado 10 mm";
}

View File

@ -50,6 +50,7 @@ class PresupuestoAdminAdd {
$('#div_solapas_ancho_sobrecubierta').addClass('d-none');
$('.solapas-cubierta-div').addClass('d-none');
$('.solapas-sobrecubierta-div').addClass('d-none');
$('.container-faja').addClass('d-none');
this.cliente.init();
this.pais.init();

View File

@ -34,6 +34,7 @@ class PresupuestoAdminEdit {
{
checkPaginasPresupuesto: this.checkPaginasPresupuesto,
getDimensionLibro: this.getDimensionLibro,
calcularSolapas: this.calcularSolapas.bind(this)
});
this.comparador = new Comparador(this.domItem.find('#accordionDatosPresupuestoClienteTip'),
{
@ -55,6 +56,9 @@ class PresupuestoAdminEdit {
this.guardar = $('#saveForm');
this.calcularPresupuesto = false;
this.cargandoPresupuesto = false;
this.configUploadDropzone = {
domElement: '#dropzone-presupuesto-admin-files',
nameId: "presupuesto_id",
@ -130,10 +134,6 @@ class PresupuestoAdminEdit {
$('#lomo_cubierta').on('change', this.datosLibro.changeAnchoSolapasCubierta);
$('#lomo_sobrecubierta').on('change', this.datosLibro.changeAnchoSolapasSobrecubierta);
if ($(this.configUploadDropzone.domElement).length > 0) {
this.fileUploadDropzone.init()
}
}
@ -199,15 +199,15 @@ class PresupuestoAdminEdit {
...datos, ...{
paginas: this.datosLibro.paginas.val(),
tirada: this.datosLibro.tirada.val(),
papel_formato_id: this.datosLibro.tamanio.item.hasClass('d-none') ? 0 : this.datosLibro.tamanio.getVal(),
papel_formato_personalizado: this.datosLibro.tamanio.item.hasClass('d-none') ? 1 : 0,
papel_formato_id: this.datosLibro.tamanioPersonalizado.prop('checked') ? 0 : this.datosLibro.tamanio.getVal(),
papel_formato_personalizado: this.datosLibro.tamanioPersonalizado.prop('checked') ? 1 : 0,
merma: this.datosLibro.merma.val(),
merma_cubierta: this.datosLibro.mermaCubierta.val()
}
}
if (datos.papel_formato_personalizado) {
if (this.datosLibro.tamanioPersonalizado.prop('checked')) {
datos.papel_formato_ancho = this.datosLibro.anchoPersonalizado.val(),
datos.papel_formato_alto = this.datosLibro.altoPersonalizado.val()
datos.papel_formato_alto = this.datosLibro.altoPersonalizado.val()
}
datos.selectedTirada = this.datosLibro.tirada.val();
datos.acabado_cubierta_id = this.datosLibro.acabadoCubierta.getVal();
@ -245,6 +245,10 @@ class PresupuestoAdminEdit {
datos.solapas_sobrecubierta = this.datosLibro.solapasSobrecubierta.is(':checked') ? 1 : 0;
datos.solapas_ancho_sobrecubierta = this.datosLibro.anchoSolapasSobrecubierta.val();
datos.faja_color = this.datosLibro.faja.prop('checked') ? 1: 0;
datos.solapas_ancho_faja_color = this.datosLibro.fajaSolapasAncho.val();
datos.alto_faja_color = this.datosLibro.fajaAlto.val();
datos.entrega_taller = this.envios.recogerTaller.is(':checked') ? 1 : 0;
if (parseInt(this.cosido.val())) {
@ -282,6 +286,8 @@ class PresupuestoAdminEdit {
update_resumen = true,
update_tiradas_alternativas = true
}) {
const self = this;
const waitForEvent = (eventName) => {
return new Promise((resolve) => {
$(document).one(eventName, () => {
@ -290,30 +296,32 @@ class PresupuestoAdminEdit {
});
};
// Ejecutar los pasos de forma secuencial si están habilitados
if (update_lineas) {
$(document).trigger('update-lineas-presupuesto');
await waitForEvent('update-lineas-presupuesto-completed');
}
if (self.cargandoPresupuesto == false) {
// Ejecutar los pasos de forma secuencial si están habilitados
if (update_lineas) {
$(document).trigger('update-lineas-presupuesto');
await waitForEvent('update-lineas-presupuesto-completed');
}
if (update_servicios) {
$(document).trigger('update-servicios');
await waitForEvent('update-servicios-completed');
}
if (update_servicios) {
$(document).trigger('update-servicios');
await waitForEvent('update-servicios-completed');
}
if (update_envios) {
$(document).trigger('update-envios');
await waitForEvent('update-envios-completed');
}
if (update_envios) {
$(document).trigger('update-envios');
await waitForEvent('update-envios-completed');
}
if (update_resumen) {
$(document).trigger('update-totales');
await waitForEvent('update-totales-completed');
}
if (update_resumen) {
$(document).trigger('update-totales');
await waitForEvent('update-totales-completed');
}
if (update_tiradas_alternativas) {
$(document).trigger('update-tiradas-alternativas');
await waitForEvent('update-tiradas-alternativas-completed');
if (update_tiradas_alternativas) {
$(document).trigger('update-tiradas-alternativas');
await waitForEvent('update-tiradas-alternativas-completed');
}
}
}
@ -321,6 +329,7 @@ class PresupuestoAdminEdit {
#cargarPresupuesto() {
const self = this;
this.cargandoPresupuesto = true;
$('#loader').modal('show');
let id = window.location.href.split("/").pop()
@ -338,15 +347,18 @@ class PresupuestoAdminEdit {
self.POD.val(response.data.POD);
self.calcularPresupuesto = false;
self.comparador.cargando = true;
self.datosGenerales.cargarDatos(response.data.datosGenerales);
self.datosLibro.cargarDatos(response.data.datosLibro);
self.comparador.cargarDatos(response.data.comparador);
self.lineasPresupuesto.cargarDatos(response.data.lineasPresupuesto);
self.servicios.cargar(response.data.servicios);
self.envios.cargar(response.data.direcciones);
self.comparador.cargarDatos(response.data.comparador);
$('#comentariosCliente').val(response.data.comentarios_cliente);
$('#comentariosSafekat').val(response.data.comentarios_safekat);
$('#comentariosPdf').val(response.data.comentarios_presupuesto);
@ -363,11 +375,18 @@ class PresupuestoAdminEdit {
if (response.data.state != 2) {
self.calcularPresupuesto = true;
self.cargandoPresupuesto = false;
}
}, 0);
this.calcularSolapas();
if ($('#faja_alto').length > 0 && $('#faja_alto').attr('max') != this.getDimensionLibro().alto) {
$('#faja_alto').attr('max', this.getDimensionLibro().alto);
$('#faja_alto').trigger('change');
$('#faja_alto').closest('.mb-1').find('.form-text').text('Entre 50 y ' + this.getDimensionLibro().alto + ' mm');
}
// Funciones para detectar cambios en el formulario
this.#checkChangesPresupuesto();
@ -380,6 +399,7 @@ class PresupuestoAdminEdit {
() => {
$('#loader').modal('hide');
this.calcularPresupuesto = true;
self.cargandoPresupuesto = false;
}
).get();
}
@ -389,12 +409,12 @@ class PresupuestoAdminEdit {
let cantidad_total = 0;
this.lineasPresupuesto.table.rows().every(function (rowIdx, tableLoop, rowLoop) {
$('#tableLineasPresupuesto').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
var rowData = this.data();
if (rowData.row_id != 'lp_cubierta' && rowData.row_id != 'lp_sobrecubierta' && rowData.row_id != 'lp_guardas')
cantidad_total += parseInt(rowData.paginas)
})
htmlString = ''
let htmlString = ''
if (cantidad_total != parseInt($('#paginas').val())) {
htmlString = `
@ -430,7 +450,7 @@ class PresupuestoAdminEdit {
calcularSolapas() {
let anchoTotal = 2*this.getDimensionLibro().ancho;
let anchoTotal = 2 * this.getDimensionLibro().ancho;
let maxSolapas = 120;
let mano = 0;
@ -443,29 +463,28 @@ class PresupuestoAdminEdit {
}
});
if (mano > 0) {
if (mano > 0) {
anchoTotal += 6 + 5; // dobleces + sangre
maxSolapas = Math.min(Math.floor((865-anchoTotal)/2), 0.75*this.getDimensionLibro().ancho);
maxSolapas = Math.min(Math.floor((865 - anchoTotal) / 2), 0.75 * this.getDimensionLibro().ancho);
}
else{
maxSolapas = 0.75*this.getDimensionLibro().ancho;
else {
maxSolapas = 0.75 * this.getDimensionLibro().ancho;
}
if($('#solapas_ancho').length>0 && $('#solapas_ancho').attr('max') != maxSolapas){
if ($('#solapas_ancho').length > 0 && $('#solapas_ancho').attr('max') != maxSolapas) {
$('#solapas_ancho').attr('max', maxSolapas);
$('#solapas_ancho').trigger('change');
$('#solapas_ancho').trigger('change');
$('#solapas_ancho').closest('.mb-1').find('.form-text').text('Entre 60 y ' + maxSolapas + ' mm');
}
if($('#solapas_ancho_sobrecubierta').length>0 && $('#solapas_ancho_sobrecubierta').attr('max') != maxSolapas){
if ($('#solapas_ancho_sobrecubierta').length > 0 && $('#solapas_ancho_sobrecubierta').attr('max') != maxSolapas) {
$('#solapas_ancho_sobrecubierta').attr('max', maxSolapas);
$('#solapas_ancho_sobrecubierta').trigger('change');
$('#solapas_ancho_sobrecubierta').closest('.mb-1').find('.form-text').text('Entre 60 y ' + maxSolapas + ' mm');
}
if($('#solapas_ancho_faja').length>0 && $('#solapas_ancho_faja').attr('max') != maxSolapas){
$('#solapas_ancho_faja').attr('max', maxSolapas);
$('#solapas_ancho_faja').trigger('change');
$('#solapas_ancho_faja').closest('.mb-1').find('.form-text').text('Entre 60 y ' + maxSolapas + ' mm');
if ($('#faja_solapas_ancho').length > 0 && $('#faja_solapas_ancho').attr('max') != maxSolapas) {
$('#faja_solapas_ancho').attr('max', maxSolapas);
$('#faja_solapas_ancho').trigger('change');
$('#faja_solapas_ancho').closest('.mb-1').find('.form-text').text('Entre 60 y ' + maxSolapas + ' mm');
}
console.log('maxSolapas', maxSolapas);
}
getDimensionLibro() {

View File

@ -220,6 +220,35 @@ class Comparador {
this.btnInsertarGuardas = $('#insertarGuardasBtn');
}
this.faja = $('#compFaja');
this.papelFaja = new ClassSelect($('#compPapelFaja'),
'/presupuestoadmin/papelgenerico', 'Seleccione papel', false,
{
[this.csrf_token]: this.csrf_hash,
tipo_impresion: this.tipo_impresion_id,
tirada: () => $('#tirada').val(),
ancho: () => this.getDimensionLibro().ancho,
alto: () => $('faja_alto').val(),
sopalas: () => $('#faja_solapas_ancho').val(),
lomo: () => $('#lomo_sobrecubierta').val(),
tipo: 'colorhq',
uso: 'sobrecubierta',
});
this.gramajeFaja = new ClassSelect($('#compGramajeFaja'),
'/presupuestoadmin/papelgramaje', 'Seleccione gramaje', false,
{
[this.csrf_token]: this.csrf_hash,
papel_generico: () => this.papelFaja.getVal(),
tipo_impresion: this.tipo_impresion_id,
tirada: () => $('#tirada').val(),
ancho: () => this.getDimensionLibro().ancho,
alto: () => $('faja_alto').val(),
sopalas: () => $('#faja_solapas_ancho').val(),
lomo: () => $('#lomo_sobrecubierta').val(),
tipo: 'colorhq',
uso: 'sobrecubierta',
});
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3) {
this.lomoRedondo = $('#compLomoRedondo');
this.cabezada = $('#cabezada');
@ -232,9 +261,11 @@ class Comparador {
this.tableCompGuardas = null;
this.tableCompIntPlana = null;
this.tableCompIntRotativa = null;
this.tableCompFaja = null;
this.btnInsertarPlana = $('#insertarPlanaBtn');
this.btnInsertarRotativa = $('#insertarRotativaBtn');
this.btnInsertarCubierta = $('#insertarCubiertaBtn');
this.btnInsertarFaja = $('#insertarFajaBtn');
this.cargando = false;
this.comparadorPlanaRunning = false;
@ -292,6 +323,14 @@ class Comparador {
});
}
this.faja.select2({
allowClear: false,
minimumResultsForSearch: Infinity,
});
this.papelFaja.init();
this.gramajeFaja.init();
this.papelFaja.onChange(() => self.gramajeFaja.empty());
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) {
this.sobrecubierta.select2({
@ -323,6 +362,28 @@ class Comparador {
});
}
this.faja.on('change', () => {
if (this.faja.select2('data')[0].id == 1) {
if ($('#faja').prop('checked') == false) {
this.faja.val(0);
popErrorAlert(window.language.Presupuestos.errores.error_faja_sin_solapas, 'divAlarmasComparador');
}
$('#faja').prop('checked', true);
$('.faja-div').removeClass('d-none');
$('#faja_solapas_ancho').val(60);
$('#faja_alto').val(50);
$('#compPapelFaja').prop('disabled', false);
$('#compGramajeFaja').prop('disabled', false);
}
else {
this.papelFaja.setVal(0);
this.gramajeFaja.setVal(0);
$('#compPapelFaja').prop('disabled', true);
$('#compGramajeFaja').prop('disabled', true);
}
});
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3 || this.tipo_impresion_id == 5 || this.tipo_impresion_id == 7) {
this.papelGuardas.init();
this.gramajeGuardas.init();
@ -360,6 +421,9 @@ class Comparador {
else if (e.target.id.includes("guardas")) {
$("#tableCompGuardas").DataTable().columns.adjust();
}
else if (e.target.id.includes("faja")) {
$("#tableCompFaja").DataTable().columns.adjust();
}
else if (e.target.id.includes("LineasPresupuesto")) {
$("#tableLineasPresupuesto").DataTable().columns.adjust();
}
@ -378,6 +442,8 @@ class Comparador {
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3 || this.tipo_impresion_id == 5 || this.tipo_impresion_id == 7) {
$('.comp_guardas_items').on('change', this.obtenerComparadorGuardas.bind(this));
}
$('.comp_faja_items').on('change', this.obtenerComparadorFaja.bind(this));
}
#changePaginasComparador(element) {
@ -464,6 +530,11 @@ class Comparador {
this.papelGuardas.setOption(datos.json_data.guardas.papel_id, datos.json_data.guardas.papel_nombre);
this.gramajeGuardas.setOption(datos.json_data.guardas.gramaje, datos.json_data.guardas.gramaje);
}
if (datos.json_data.faja) {
this.faja.val(1).trigger('change');
this.papelFaja.setOption(datos.json_data.faja.papel_id, datos.json_data.faja.papel_nombre);
this.gramajeFaja.setOption(datos.json_data.faja.gramaje, datos.json_data.faja.gramaje);
}
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3) {
this.lomoRedondo.val(datos.lomoRedondo ? 1 : 0).trigger('change');
@ -477,22 +548,25 @@ class Comparador {
}
this.cargando = false;
if (this.paginasNegro.val() > 0) {
this.paginasNegro.trigger('change');
}
else if (this.paginasNegrohq.val() > 0) {
this.paginasNegrohq.trigger('change');
}
else if (this.paginasColor.val() > 0) {
if (this.paginasColor.val() > 0) {
this.paginasColor.trigger('change');
}
else if (this.paginasColorhq.val() > 0) {
this.paginasColorhq.trigger('change');
}
else if (this.paginasNegro.val() > 0) {
this.paginasNegro.trigger('change');
}
else if (this.paginasNegrohq.val() > 0) {
this.paginasNegrohq.trigger('change');
}
this.paginasCubierta.trigger('change');
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3 || this.tipo_impresion_id == 5 || this.tipo_impresion_id == 7) {
this.carasGuardas.trigger('change');
}
this.faja.trigger('change');
}
@ -673,6 +747,57 @@ class Comparador {
"order": [[0, 'asc'], [15, 'asc']]
});
this.tableCompFaja = new DataTable('#tableCompFaja', {
scrollX: true,
searching: false,
paging: false,
info: false,
ordering: true,
responsive: true,
select: false,
language: {
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
},
columns: [
{
'data': 'tipo',
'render': function (data, type, row, meta) {
if (data == 'faja')
return window.language.Presupuestos.faja;
}
},
{ 'data': 'paginas' },
{ 'data': 'papel' },
{ 'data': 'gramaje' },
{ 'data': 'marca' },
{ 'data': 'maquina' },
{ 'data': 'numeroPliegos' },
{ 'data': 'pliegosPedido' },
{ 'data': 'precioPliego' },
{ 'data': 'libro' },
{ 'data': 'totalPapelPedido' },
{ 'data': 'lomo' },
{ 'data': 'peso' },
{ 'data': 'horasMaquina' },
{ 'data': 'precioImpresion' },
{ 'data': 'total' },
{ 'data': 'maquinaId' },
{ 'data': 'maquinaVelocidad' },
{ 'data': 'tiempoMaquina' },
{ 'data': 'papelGenericoId' },
{ 'data': 'papelImpresionId' },
{ 'data': 'tarifa_impresion_id' }
],
columnDefs: [
{
target: [16, 17, 18, 19, 20, 21],
visible: false,
searchable: false
},
],
"order": [[15, 'asc']]
});
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3 || this.tipo_impresion_id == 5 || this.tipo_impresion_id == 7) {
this.tableCompGuardas = new DataTable('#tableCompGuardas', {
scrollX: true,
@ -1019,6 +1144,23 @@ class Comparador {
}
else if (uso == 'faja') {
if (this.papelFaja.getVal() == 0 || this.papelFaja.getVal() == null) {
popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador');
return { error: true, data: {} };
}
if (this.gramajeFaja.getVal() == 0 || this.gramajeFaja.getVal() == null) {
popErrorAlert(window.language.Presupuestos.errores.seleccioneGramaje, 'divAlarmasComparador');
return { error: true, data: {} };
}
papel_generico = { id: this.papelFaja.getVal(), nombre: this.papelFaja.getText() };
gramaje = this.gramajeFaja.getVal();
paginas = 4;
alto = $('#faja_alto').val();
}
else if (uso == 'guardas') {
if (this.papelGuardas.getVal() == 0 || this.papelGuardas.getVal() == null) {
popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador');
@ -1053,7 +1195,7 @@ class Comparador {
let datos = {
datosPedido: datosPedido,
uso: uso,
uso: uso == 'faja' ? 'sobrecubierta' : uso,
tipo_impresion_id: this.tipo_impresion_id,
cliente_id: $('#clienteId').select2('data')[0].id,
papel_generico: papel_generico,
@ -1076,6 +1218,13 @@ class Comparador {
datos.datosPedido.solapas = $('#solapas_sobrecubierta').prop('checked') ? 1 : 0;
datos.datosPedido.solapas_ancho = $('#solapas_sobrecubierta').prop('checked') ? parseInt($('#solapas_ancho_sobrecubierta').val()) : 0;
}
else if (uso == 'faja') {
datos.datosPedido.lomo = $("#lomo_sobrecubierta").val();
datos.datosPedido.solapas = 1;
datos.datosPedido.solapas_ancho = parseInt($('#faja_solapas_ancho').val());
}
else if (uso == 'guardas') {
datos.datosPedido.isCosido = 1;
datos.datosPedido.isHq = 1;
@ -1273,7 +1422,7 @@ class Comparador {
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.sobrecubierta.select2('data')[0].id == 1) {
if (this.sobrecubierta.val() == 1) {
datosComp.sobrecubierta = this.getDataForComp('sobrecubierta');
if (datosComp.sobrecubierta.error) {
return;
@ -1297,6 +1446,7 @@ class Comparador {
},
{},
(response) => {
this.tableCompCubierta.clear().draw();
if (response.data.cubierta && Object.keys(response.data.cubierta).length > 0) {
let sorted = Object.values(response.data.cubierta).sort(
(p1, p2) => ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) < (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ?
@ -1342,6 +1492,68 @@ class Comparador {
}
}
obtenerComparadorFaja(event, actualizarLineaPlana = false, actualizarLineaRot = false) {
try {
const self = this;
if (this.cargando) {
return
}
this.tableCompFaja.clear().draw();
this.btnInsertarFaja.addClass('d-none');
$('#title_faja').html(window.language.Presupuestos.faja);
let datosComp = {};
datosComp.sobrecubierta = this.getDataForComp('faja');
datosComp.sobrecubierta.data['faja'] = 1; // se indica que es faja para el calculo de formas
datosComp.sobrecubierta.data[this.csrf_token] = this.csrf_hash;
new Ajax('/presupuestoadmin/comparadorexteriores',
{
sobrecubierta: datosComp.sobrecubierta.data
},
{},
(response) => {
if (response.data.sobrecubierta && Object.keys(response.data.sobrecubierta).length > 0) {
let sorted = Object.values(response.data.sobrecubierta).sort(
(p1, p2) => ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) < (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ?
-1 : ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) > (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ? 1 : 0);
sorted[0].forEach(function (linea) {
if (typeof linea.error == "undefined")
self.tableCompFaja.row
.add(self.getRowFromLinea('faja', linea))
.draw()
});
}
self.selectLineas('faja');
if (self.tableCompFaja.rows().count() > 0) {
$('#title_faja').html(window.language.Presupuestos.faja +
(' (' + self.tableCompFaja.rows().count() + ')'));
self.btnInsertarFaja.removeClass('d-none');
}
else {
$('#title_faja').html(window.language.Presupuestos.faja);
self.btnInsertarFaja.addClass('d-none');
}
},
(error) => {
console.log(error);
}
).post();
} catch (e) {
console.log(e)
}
}
obtenerComparadorGuardas(event, actualizarLineaPlana = false, actualizarLineaRot = false) {
try {
@ -1425,6 +1637,12 @@ class Comparador {
total_label = '#total_comp_cubierta';
break;
case 'faja':
table = this.tableCompFaja;
tipo1 = 'faja';
total_label = '#total_comp_faja';
break;
case 'rotativa':
table = this.tableCompIntRotativa;
tipo1 = 'rotativa';
@ -1650,6 +1868,21 @@ class Comparador {
}
if (parseInt($('#compFaja').val()) == 1) {
let faja_obj = {};
try {
faja_obj = {
"faja": {
'papel_id': $('#compPapelFaja').select2('data')[0].id,
'gramaje': $('#compGramajeFaja').select2('data')[0].text.trim(),
},
}
}
catch (e) {
}
$.extend(data, faja_obj);
}
const data_str = JSON.stringify(data)
$('#comparador_json_data').val(data_str)
}

View File

@ -9,6 +9,7 @@ class DatosLibro {
this.checkPaginasPresupuesto = functions.checkPaginasPresupuesto;
this.getDimensionLibro = functions.getDimensionLibro;
this.calcularSolapas = functions.calcularSolapas;
this.csrf_token = getToken();
this.csrf_hash = $('#mainContainer').find('input[name="' + this.csrf_token + '"]').val();
@ -55,6 +56,11 @@ class DatosLibro {
this.ferroDigital = this.domItem.find('#ferroDigital');
this.marcapaginas = this.domItem.find('#marcapaginas');
this.faja = this.domItem.find('#faja');
this.fajaAlto = this.domItem.find('#faja_alto');
this.fajaSolapasAncho = this.domItem.find('#faja_solapas_ancho');
this.div_faja = this.domItem.find('.faja-div');
}
init() {
@ -96,12 +102,29 @@ class DatosLibro {
this.paginas.on('change', this.changePaginas.bind(this));
this.tirada.on('change', this.changeTirada.bind(this));
this.anchoSolapasCubierta.on('focusout', this.checkSolapasMax.bind(this));
this.anchoSolapasSobrecubierta.on('focusout', this.checkSolapasMax.bind(this));
this.anchoSolapasCubierta.on('focusout', this.checkMinMaxInput.bind(this));
this.anchoSolapasSobrecubierta.on('focusout', this.checkMinMaxInput.bind(this));
this.fajaSolapasAncho.on('focusout', this.checkMinMaxInput.bind(this));
this.fajaAlto.on('focusout', this.checkMinMaxInput.bind(this));
this.faja.on('change', this.changeFaja.bind(this));
}
}
checkSolapasMax(event) {
changeFaja() {
if (this.faja.prop('checked')) {
this.div_faja.removeClass('d-none');
$('#compFaja').val(1).trigger('change');
}
else {
this.div_faja.addClass('d-none');
$('#compFaja').val(0).trigger('change');
}
}
checkMinMaxInput(event) {
const el = event.target;
if (el.value != "") {
if (parseInt(el.value) < parseInt(el.min)) {
@ -116,15 +139,6 @@ class DatosLibro {
}
}
changeFajaColor() {
if (this.imprimirFajaColor.prop('checked')) {
$(document).trigger('add-servicio-lineas', 'facaColor');
}
else {
$(document).trigger('remove-servicio-lineas', 'fajaColor');
}
}
changeFerro() {
@ -189,6 +203,13 @@ class DatosLibro {
this.checkPaginasPresupuesto();
this.calcularSolapas();
if ($('#faja_alto').length > 0 && $('#faja_alto').attr('max') != this.getDimensionLibro().alto) {
$('#faja_alto').attr('max', this.getDimensionLibro().alto);
$('#faja_alto').trigger('change');
$('#faja_alto').closest('.mb-1').find('.form-text').text('Entre 50 y ' + this.getDimensionLibro().alto + ' mm');
}
$(document).trigger('update-presupuesto', {
update_lineas: true,
update_servicios: true,
@ -243,7 +264,7 @@ class DatosLibro {
}, 100);
// para que se actualice el comparador
this.updateComparador();
$('#compCarasCubierta').trigger('change');
}
changeAnchoSolapasCubierta() {
@ -256,7 +277,7 @@ class DatosLibro {
}
// para que se actualice el comparador
this.updateComparador();
$('#compCarasCubierta').trigger('change');
}
@ -287,8 +308,7 @@ class DatosLibro {
}
// para que se actualice el comparador
this.updateComparador();
$('#compSobrecubierta').trigger('change');
}
checkSolapasGrandes(elemento) {
@ -490,6 +510,13 @@ class DatosLibro {
$('#div_solapas_ancho_sobrecubierta').addClass('d-none');
}
this.faja.prop('checked', datos.fajaColor);
if(datos.fajaColor){
this.div_faja.removeClass('d-none');
this.fajaAlto.val(datos.fajaColorAlto).trigger('change');
this.fajaSolapasAncho.val(datos.fajaColorSolapasAncho).trigger('change');
}
this.acabadoCubierta.setOption(datos.acabadoCubierta.id, datos.acabadoCubierta.text);

View File

@ -31,7 +31,7 @@ class LineasPresupuesto {
const row = $(this).closest('tr');
const data = self.table.row(row).data()
if(data.row_id == 'lp_guardas'){
if (data.row_id == 'lp_guardas') {
$(document).trigger('remove-servicio-lineas', 'plegado_guardas');
}
self.table.row(row)
@ -152,6 +152,9 @@ class LineasPresupuesto {
else if (row.row_id.includes('_guardas')) {
return 4;
}
else if (row.row_id.includes('_faja')) {
return 5;
}
}
},
{
@ -163,7 +166,7 @@ class LineasPresupuesto {
{
data: 'paginas',
render: function (data, type, row, meta) {
if (row.row_id != "lp_cubierta" && row.row_id != "lp_sobrecubierta" && row.row_id != "lp_guardas")
if (row.row_id != "lp_cubierta" && row.row_id != "lp_sobrecubierta" && row.row_id != "lp_guardas" && row.row_id != "lp_faja")
return '<td class="lp-td"><input id="' + row.row_id + '_paginas" name="' + row.row_id + '_paginas" class="lp-cell lp-input paginas-lp" type="text" value="' + data + '"></td>';
else if (row.row_id == "lp_cubierta") {
let select = '<select id="lp_cubierta_paginas" name="comp_paginas_cubierta" class="form-control form-select-sm lp-cell lp-select" style="min-width:50px;">'
@ -615,13 +618,13 @@ class LineasPresupuesto {
data.push(linea_data)
});
var datos = {
tipo: 'lineasPresupuesto',
datos: data,
presupuesto_id: presupuesto_id,
}
await $.ajax({
type: 'post',
url: '/presupuestoadmin/datatable_2',
@ -650,7 +653,7 @@ class LineasPresupuesto {
const lpName = this.data().row_id.replace('lp_', '');
const tabName = lpName.replace('_', '-');
if (['bn', 'bnhq', 'color', 'colorhq', 'rot_bn', 'rot_color', 'guardas', 'cubierta', 'sobrecubierta'].includes(lpName)) {
if (['bn', 'bnhq', 'color', 'colorhq', 'rot_bn', 'rot_color', 'guardas', 'cubierta', 'sobrecubierta', 'faja'].includes(lpName)) {
$(`#tab-pv-${tabName}`).show();
if (lpName === 'cubierta') {
$(`#tab-pv-${tabName}`).show();
@ -666,7 +669,7 @@ class LineasPresupuesto {
this.table.rows().every(function (rowIdx, tableLoop, rowLoop) {
let rowData = this.data();
if (rowData.row_id != 'lp_cubierta' && rowData.row_id != 'lp_sobrecubierta' && rowData.row_id != 'lp_guardas')
if (rowData.row_id != 'lp_cubierta' && rowData.row_id != 'lp_sobrecubierta' && rowData.row_id != 'lp_guardas' && rowData.row_id != 'lp_faja')
cantidad_total += parseInt(rowData.paginas)
})
let htmlString = ''
@ -859,6 +862,25 @@ class LineasPresupuesto {
this.#addEventosLineas('lp_sobrecubierta', false);
break
case 'lp_faja':
var hayLinea = false
for (let number = 0; number < dataRows.length; number++) {
if (dataRows[number].row_id == 'lp_faja') {
hayLinea = true;
continue;
}
}
if (hayLinea) {
popErrorAlert(window.language.Presupuestos.errores.lineaDuplicada, 'divAlarmasLineasPresupuesto');
break;
}
var data = this.#processRowData({ tipo_maquina: 'toner' }, 'lp_faja', 'lp-faja');
this.table.row.add(data).draw();
this.#addEventosLineas('lp_faja', false);
break
case 'lp_guardas':
var hayLinea = false
for (let number = 0; number < dataRows.length; number++) {
@ -917,6 +939,8 @@ class LineasPresupuesto {
icon = '/themes/vuexy/img/safekat/presupuestos/icon_cubierta.png';
else if (rowId == 'lp_sobrecubierta')
icon = '/themes/vuexy/img/safekat/presupuestos/icon_sobrecubierta.png';
else if (rowId == 'lp_faja')
icon = '/themes/vuexy/img/safekat/presupuestos/icon_faja.png';
else if (rowId == 'lp_guardas')
icon = '/themes/vuexy/img/safekat/presupuestos/icon_guardas.png';
else if (rowId == 'lp_rot_bn')
@ -956,7 +980,7 @@ class LineasPresupuesto {
'total_linea': isNaN(parseFloat(row.total_impresion)) ? "" : parseFloat(row.total_impresion).toFixed(2),
'numeroPliegos': isNaN(parseFloat(row.pliegos_libro)) ? "" : parseFloat(row.pliegos_libro).toFixed(0),
'numeroPliegos': isNaN(parseFloat(row.pliegos_libro)) ? "" : parseFloat(row.pliegos_libro).toFixed(2),
'pliegosPedido': isNaN(parseFloat(row.pliegos_pedido)) ? "" : parseFloat(row.pliegos_pedido).toFixed(0),
'precioPliego': isNaN(parseFloat(row.precios_pliegos)) ? "" : parseFloat(row.precios_pliegos).toFixed(6),
'libro': isNaN(parseFloat(row.precio_libro)) ? "" : parseFloat(row.precio_libro).toFixed(2),
@ -1038,6 +1062,10 @@ class LineasPresupuesto {
data.alto_click = row.alto_click
}
if (rowId == 'lp_faja'){
data.alto_faja = row.alto_faja;
}
return data
}
@ -1100,11 +1128,22 @@ class LineasPresupuesto {
'</div>' +
'</td>'
value += '</tr>'
if (d.row_id == "lp_faja") {
value += '<tr>' +
'<td></td>' +
'<td></td>' +
'<td colspan="10">' +
'<div class="row flex-grow-1 d-flex align-items-end">' +
'<div class="col-md-12 col-lg-1">' +
window.language.Presupuestos.papelFormatoAlto + ' ' + window.language.Presupuestos.faja +
'<input id="' + d.row_id + '_altoFaja" name="' + d.row_id + '_altoFaja" class="lp-input lp-cell ' + d.row_class + '-input" type="text" value="' + d.alto_faja + '">' +
'</div>' +
'</td>' +
'</tr>'
}
if (d.maquinaTipo == 'inkjet') {
value +=
'<tr>' +
@ -1389,6 +1428,22 @@ class LineasPresupuesto {
const self = this;
const dimension = this.getDimensionLibro();
if (linea == 'lp_faja') {
if (Object.keys(input_data).length == 0) {
let altoSelected = parseInt($('#' + linea + '_altoFaja').val());
if (altoSelected == 0 || isNaN(altoSelected) || altoSelected == '' || altoSelected < 50) {
altoSelected = 50;
}
else if (altoSelected > dimension.alto) {
altoSelected = dimension.alto;
}
dimension.alto = altoSelected;
}
else {
dimension.alto = parseInt($('#faja_alto').val());
}
}
const dataFromComparador = fromComparador;
if (Object.keys(input_data).length == 0) {
@ -1406,7 +1461,7 @@ class LineasPresupuesto {
if (linea == 'lp_cubierta') {
input_data.paginas = parseInt($('#lp_cubierta_paginas option:selected').val());
}
else if (linea == 'lp_sobrecubierta') {
else if (linea == 'lp_sobrecubierta' || linea == 'lp_faja') {
input_data.paginas = 4;
}
else if (linea == 'lp_guardas') {
@ -1435,6 +1490,9 @@ class LineasPresupuesto {
case 'lp_sobrecubierta':
uso = 'sobrecubierta';
break;
case 'lp_faja':
uso = 'faja';
break;
case 'lp_guardas':
uso = 'guardas';
break;
@ -1453,7 +1511,6 @@ class LineasPresupuesto {
hq = 0;
}
var datos = {
tipo_impresion_id: $('#tipo_impresion_id').val(),
type: uso,
@ -1496,6 +1553,11 @@ class LineasPresupuesto {
datos.solapas_ancho = $('#solapas_sobrecubierta').is(':checked') ? parseInt($('#solapas_ancho_sobrecubierta').val()) : 0;
datos.lomo = $('#lomo_sobrecubierta').val();
}
else if (linea == 'lp_faja') {
datos.solapas = 1;
datos.solapas_ancho = parseInt($('#faja_solapas_ancho').val());
datos.lomo = $('#lomo_sobrecubierta').val();
}
else if (linea == 'lp_guardas') {
datos.paginas_impresion = input_data.paginas_impresion;
}
@ -1503,7 +1565,7 @@ class LineasPresupuesto {
// Si es inkjet, existe este check
if ($('#' + linea + '_aFavorFibra').length) {
datos.a_favor_fibra = $('#' + linea + '_aFavorFibra').prop('checked') ? 1: 0;
datos.a_favor_fibra = $('#' + linea + '_aFavorFibra').prop('checked') ? 1 : 0;
}
if (updatedTipologias && $('#' + linea + '_gotaNegro').length) {
@ -1549,6 +1611,9 @@ class LineasPresupuesto {
response.lineas[$i].fields.check_papel_total = 1;
response.lineas[$i].fields.check_impresion_total = 1;
}
if (linea == 'lp_faja') {
response.lineas[$i].fields.alto_faja = dimension.alto;
}
self.rellenarDatosLinea(linea, response.lineas[$i].fields);
return true;
@ -1583,7 +1648,7 @@ class LineasPresupuesto {
papel_impresion_id: row.papelImpresionId,
maquina_id: row.maquinaId,
}
if(linea.includes('guardas')) {
if (linea.includes('guardas')) {
input_data.paginas_impresion = parseInt($('#compCarasGuardas').select2('data')[0].id);
}
this.obtenerLinea(linea, fromComparator, false, input_data)
@ -1602,7 +1667,13 @@ class LineasPresupuesto {
this.table.row.add(data).draw()
currentRow = this.table.row('#' + linea);
}
currentRow.child(this.formatRow(currentRow.data())).show();
let datosLinea = currentRow.data();
if (linea == 'lp_faja') {
datosLinea.alto_faja = row.alto_faja;
}
currentRow.child(this.formatRow(datosLinea)).show();
this.#addEventosLineas(linea, data.maquinaTipo == 'inkjet' ? true : false);
@ -1615,16 +1686,16 @@ class LineasPresupuesto {
*/
$(document).trigger('update-presupuesto', {
update_lineas : false,
update_servicios : true,
update_lineas: false,
update_servicios: true,
update_envios: true,
update_resumen: true,
update_tiradas_alternativas: true
});
// Si existe cubierta, hay que actualizar con el valor del lomo
if (linea != 'lp_cubierta' && linea != 'lp_sobrecubierta' && this.table.row('#lp_cubierta').length > 0) {
if (linea != 'lp_cubierta' && linea != 'lp_sobrecubierta' && linea != 'lp_faja' && this.table.row('#lp_cubierta').length > 0) {
this.obtenerLinea('lp_cubierta', false, false);
}
if (mostrar_calculos) {
@ -1655,6 +1726,7 @@ class LineasPresupuesto {
case 'lp_guardas':
case 'lp_cubierta':
case 'lp_sobrecubierta':
case 'lp_faja':
tipo = 'colorhq';
break
default:
@ -1666,6 +1738,7 @@ class LineasPresupuesto {
uso = 'cubierta';
break;
case 'lp_sobrecubierta':
case 'lp_faja':
uso = 'sobrecubierta';
break;
case 'lp_guardas':
@ -1765,6 +1838,12 @@ class LineasPresupuesto {
$('#' + tipoLinea + '_defecto').on("click", () => { this.lp_por_defecto(tipoLinea); });
$('#' + tipoLinea + '_aFavorFibra').on("change", () => { this.change_aFavorFibra(tipoLinea); });
}
if (tipoLinea == 'lp_faja') {
$('#' + tipoLinea + '_altoFaja').on("change", function (event) {
self.obtenerLinea(tipoLinea, false, false, {}, event); // Pasamos explícitamente 'tipoLinea'
}.bind(this));
}
}
@ -1922,23 +2001,42 @@ class LineasPresupuesto {
}
}
self.table.draw();
var rows = $("#tableCompGuardas").DataTable().rows('.selected').data().toArray();
for (const row of rows) {
this.rellenarDatosLinea('lp_guardas', row, true);
}
$(document).trigger('add-servicio-lineas', 'plegado_guardas');
}
else if (e.target.id.includes("Faja")) {
for (let i = self.table.rows().data().length - 1; i >= 0; i--) {
let row = self.table.row(i).data(); // Obtener datos de la fila actual
if (row.row_id.includes('lp_faja')) {
self.table.row(i).remove(); // Eliminar fila
}
}
self.table.draw();
var rows = $("#tableCompFaja").DataTable().rows('.selected').data().toArray();
for (const row of rows) {
this.rellenarDatosLinea('lp_faja', row, true);
}
}
$(document).trigger('update-presupuesto', {
update_lineas : false,
update_servicios : true,
update_lineas: false,
update_servicios: true,
update_envios: true,
update_resumen: true,
update_tiradas_alternativas: true
});
showBreadCrumbSaveButton(true);
}
}

View File

@ -80,6 +80,13 @@ class PreviewFormasAdmin{
self.preview.previewInteriorPlana('sobrecubierta', self.isCosido, self.tipoTapa.includes("dura")?1:0);
} );
$('#tab-pv-faja').on( "click", function() {
self.preview.setData(self.data);
self.preview.previewInteriorPlana('faja', self.isCosido, self.tipoTapa.includes("dura")?1:0);
} );
}
}

View File

@ -311,29 +311,29 @@ class Resumen {
getData(){
let data = {
'total_coste_papel': $('#totalCostePapel').attr('val').replace('€', ''),
'total_margen_papel': $('#margenPapel').attr('val').replace('€', ''),
'total_coste_papel': $('#totalCostePapel').text().replace('€', ''),
'total_margen_papel': $('#margenPapel').text().replace('€', ''),
'total_margenPercent_papel': $('#porcentajeMargenPapel').text().replace('%', ''),
'total_coste_impresion': $('#totalCosteImpresion').attr('val').replace('€', ''),
'total_margen_impresion': $('#margenImpresion').attr('val').replace('€', ''),
'total_coste_impresion': $('#totalCosteImpresion').text().replace('€', ''),
'total_margen_impresion': $('#margenImpresion').text().replace('€', ''),
'total_margenPercent_impresion': $('#porcentajeMargenImpresion').text().replace('%', ''),
'total_coste_servicios': $('#totalServicios').attr('val').replace('€', ''),
'total_margen_servicios': $('#margenServicios').attr('val').replace('€', ''),
'total_coste_servicios': $('#totalServicios').text().replace('€', ''),
'total_margen_servicios': $('#margenServicios').text().replace('€', ''),
'total_margenPercent_servicios': $('#porcentajeMargenServicios').text().replace('%', ''),
'total_coste_envios': $('#totalEnvios').attr('val').replace('€', ''),
'total_margen_envios': $('#margenEnvios').attr('val').replace('€', ''),
'total_coste_envios': $('#totalEnvios').text().replace('€', ''),
'total_margen_envios': $('#margenEnvios').text().replace('€', ''),
'total_costes': $('#totalCostes').attr('val').replace('€', ''),
'total_margenes': $('#totalMargenes').attr('val').replace('€', ''),
'total_costes': $('#totalCostes').text().replace('€', ''),
'total_margenes': $('#totalMargenes').text().replace('€', ''),
'total_antes_descuento': $('#totalAntesDescuento').attr('val').replace('€', ''),
'total_descuento': $('#descuentoTotal').attr('val').replace('€', ''),
'total_antes_descuento': $('#totalAntesDescuento').text().replace('€', ''),
'total_descuento': $('#descuentoTotal').text().replace('€', ''),
'total_descuentoPercent': $('#total_descuentoPercent').val().replace('€', ''),
'total_presupuesto': $('#totalDespuesDecuento').attr('val').replace('€', ''),
'total_precio_unidad': $('#precioUnidadPresupuesto').attr('val').replace('€', ''),
'total_presupuesto': $('#totalDespuesDecuento').text().replace('€', ''),
'total_precio_unidad': $('#precioUnidadPresupuesto').text().replace('€', ''),
'total_factor': $('#factor').text().replace(/,/g, '.'),
'total_factor_ponderado': $('#factor_ponderado').text().replace(/,/g, '.'),
@ -341,7 +341,7 @@ class Resumen {
if($('#confirmar_presupuesto').prop('checked')){
data.confirmar = '1';
data.total_aceptado = $('#totalDespuesDecuento').attr('val').replace('€', '');
data.total_aceptado = $('#totalDespuesDecuento').text().replace('€', '');
}
return data;

View File

@ -147,7 +147,7 @@ class TiradasAlernativas {
const self = this;
const id = window.location.href.split('/').pop();
const tirada = tiradaExterna === null ? parseInt(this.tirada.val()) : tiradaExterna;
const tirada = tiradaExterna === null || isNaN(tiradaExterna) ? parseInt(this.tirada.val()) : tiradaExterna;
const tirada_ejemplo = parseInt($('#tirada').val());
const POD = parseInt($('#POD').val());

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB