añadidos todos los servicios a falta del solapas grandes (incluido plegado de guardas)

This commit is contained in:
2025-01-20 20:15:27 +01:00
parent e7163efc5e
commit 036998e71a
12 changed files with 423 additions and 206 deletions

View File

@ -45,6 +45,10 @@ const SK_PERMISSION_MATRIX = [
"tarifa-encuadernacion.edit", "tarifa-encuadernacion.edit",
"tarifa-encuadernacion.delete", "tarifa-encuadernacion.delete",
"tarifa-encuadernacion.menu", "tarifa-encuadernacion.menu",
"tarifa-extra.create",
"tarifa-extra.edit",
"tarifa-extra.delete",
"tarifa-extra.menu",
"tarifa-envio.create", "tarifa-envio.create",
"tarifa-envio.edit", "tarifa-envio.edit",
"tarifa-envio.delete", "tarifa-envio.delete",

View File

@ -45,6 +45,10 @@ const SK_PERMISSIONS = [
'tarifa-encuadernacion.edit' => 'Can edit', 'tarifa-encuadernacion.edit' => 'Can edit',
'tarifa-encuadernacion.delete' => 'Can delete', 'tarifa-encuadernacion.delete' => 'Can delete',
'tarifa-encuadernacion.menu' => 'Menu shall be visualize', 'tarifa-encuadernacion.menu' => 'Menu shall be visualize',
'tarifa-extra.create' => 'Can create',
'tarifa-extra.edit' => 'Can edit',
'tarifa-extra.delete' => 'Can delete',
'tarifa-extra.menu' => 'Menu shall be visualize',
'tarifa-envio.create' => 'Can create', 'tarifa-envio.create' => 'Can create',
'tarifa-envio.edit' => 'Can edit', 'tarifa-envio.edit' => 'Can edit',
'tarifa-envio.delete' => 'Can delete', 'tarifa-envio.delete' => 'Can delete',

View File

@ -328,12 +328,12 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$this->viewData['POD'] = $this->getPOD(); $this->viewData['POD'] = $this->getPOD();
$this->viewData['serviciosAutomaticos'] = [ $this->viewData['serviciosAutomaticos'] = [
'retractilado' => 3, 'retractilado' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_retractilado')->value,
'retractilado5' => 5, 'retractilado5' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_retractilado5')->value,
'ferro' => 24, 'ferro' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_ferro')->value,
'prototipo' => 9, 'prototipo' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_prototipo')->value,
'fajaColor' => 16, 'plegado_guardas' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_plegado_guardas')->value,
'plegadoGuardas' => 62, 'solapas_grandes' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_plegado_exceso_solapas')->value,
]; ];
$this->viewData['tipo_impresion_id'] = $presupuestoEntity->tipo_impresion_id; // Cosido tapa blanda JJO $this->viewData['tipo_impresion_id'] = $presupuestoEntity->tipo_impresion_id; // Cosido tapa blanda JJO
@ -496,7 +496,8 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$data['comparador']['json_data'] = json_decode($presupuesto->comparador_json_data, true); $data['comparador']['json_data'] = json_decode($presupuesto->comparador_json_data, true);
if ($data['comparador']['json_data'] != null) { if ($data['comparador']['json_data'] != null) {
foreach ($data['comparador']['json_data'] as &$item) { foreach ($data['comparador']['json_data'] as &$item) {
$item['papel_nombre'] = $modelPapelGenerico->getNombre($item['papel_id'])['nombre']; if(intval($item['papel_id'])>0)
$item['papel_nombre'] = $modelPapelGenerico->getNombre($item['papel_id'])['nombre'];
} }
} }
$data['comparador']['posPagColor'] = $presupuesto->comp_pos_paginas_color; $data['comparador']['posPagColor'] = $presupuesto->comp_pos_paginas_color;
@ -701,6 +702,10 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$tipo_impresion_id = $this->request->getPost('tipo_impresion_id'); $tipo_impresion_id = $this->request->getPost('tipo_impresion_id');
$uso = $this->request->getPost('uso'); $uso = $this->request->getPost('uso');
// cubierta y sobrecubierta siempre colorhq
$isColor = true;
$isHq = true;
// Para el caso de Fresado y Cosido tapa dura, las guardas son un diptico // 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 // 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 // o wire-o tapa dura, las guardas se imprimen como hojas sueltas

View File

@ -2286,38 +2286,62 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
// Servicios // Servicios
/*
'retractilado' => 3,
'prototipo' => 9,
*/
$serviciosAutomaticos = []; $serviciosAutomaticos = [];
$servicios = []; $servicios = [];
$servicio_ferro = (object) [
'nombre' => 'ferro',
'id' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_ferro')->value
];
$servicio_prototipo = (object) [
'nombre' => 'prototipo',
'id' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_prototipo')->value
];
$servicio_retractilado = (object) [
'nombre' => 'retractilado',
'id' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_retractilado')->value
];
$servicio_retractilado5 = (object) [
'nombre' => 'retractilado5',
'id' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_retractilado5')->value
];
$servicio_plegado_guardas = (object) [
'nombre' => 'plegado_guardas',
'id' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_plegado_guardas')->value
];
$servicio_solapas_grandes = (object) [
'nombre' => 'solapas_grandes',
'id' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_plegado_exceso_solapas')->value
];
// se comprueba si $datos guardas es un array // se comprueba si $datos guardas es un array
if (is_array($datos_guardas)) { if (is_array($datos_guardas)) {
if (count($datos_guardas) > 0) { if (count($datos_guardas) > 0) {
array_push($servicios, 62); // Plegado de guardas array_push($servicios, $servicio_plegado_guardas); // Plegado de guardas
} }
} else { } else {
if ($datos_guardas > 0) { if ($datos_guardas > 0) {
array_push($servicios, 62); // Plegado de guardas array_push($servicios, $servicio_plegado_guardas); // Plegado de guardas
} }
} }
if ($datos_entrada['servicios']['retractilado']) // acabado if ($datos_entrada['servicios']['retractilado']) // acabado
array_push($servicios, 3); array_push($servicios, $servicio_retractilado);
if ($datos_entrada['servicios']['retractilado5']) // acabado if ($datos_entrada['servicios']['retractilado5']) // acabado
array_push($servicios, 98); array_push($servicios, $servicio_retractilado5);
if ($datos_entrada['servicios']['prototipo']) // extra if ($datos_entrada['servicios']['prototipo']) // extra
array_push($servicios, 9); array_push($servicios, $servicio_prototipo);
if ($datos_entrada['servicios']['ferro']) // extra if ($datos_entrada['servicios']['ferro']) // extra
array_push($servicios, 30); array_push($servicios, $servicio_ferro);
/*if ($datos_entrada['servicios']['ferroDigital']) /*if ($datos_entrada['servicios']['ferroDigital'])
array_push($servicios, 29);*/ // Es gratis array_push($servicios, 29);*/ // Es gratis
foreach ($servicios as $servicio) { foreach ($servicios as $servicio) {
if (intval($servicio) == 3 || intval($servicio) == 98) { if ($servicio->nombre == "retractilado" || $servicio->nombre == "retractilado5") {
// Servicios acabado // Servicios acabado
$resultado = PresupuestoCLienteService::getServiciosAcabados([ $resultado = PresupuestoCLienteService::getServiciosAcabados([
'tarifa_id' => $servicio, 'tarifa_id' => intval($servicio->id),
'tirada' => $datosPedido->tirada, 'tirada' => $datosPedido->tirada,
'POD' => $POD, 'POD' => $POD,
]); ]);
@ -2345,10 +2369,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$totalServicios += floatval($resultado[0]->total); $totalServicios += floatval($resultado[0]->total);
$margenServicios += floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0; $margenServicios += floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0;
} }
} else if (intval($servicio) == 9 || intval($servicio) == 30 || intval($servicio) == 29) { } else if ($servicio->nombre == "ferro" || $servicio->nombre == "prototipo") {
// Extra // Extra
$resultado = PresupuestoCLienteService::getServiciosExtra([ $resultado = PresupuestoCLienteService::getServiciosExtra([
'tarifa_id' => $servicio, 'tarifa_id' => intval($servicio->id),
]); ]);
array_push($serviciosAutomaticos, $resultado[0]); array_push($serviciosAutomaticos, $resultado[0]);
if ($resultado[0]->precio <= 0) { if ($resultado[0]->precio <= 0) {
@ -2385,7 +2409,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
// Servicios acabado // Servicios acabado
$resultado = PresupuestoCLienteService::getServiciosManipulado([ $resultado = PresupuestoCLienteService::getServiciosManipulado([
'tarifa_id' => 73, 'tarifa_id' => intval($servicio_solapas_grandes->id),
'tirada' => $datosPedido->tirada, 'tirada' => $datosPedido->tirada,
'POD' => $POD, 'POD' => $POD,
]); ]);

View File

@ -115,7 +115,7 @@ class Presupuestomanipulados extends \App\Controllers\BaseResourceController
if (count($datos_tarifas) > 0) { if (count($datos_tarifas) > 0) {
foreach ($datos_tarifas as $tarifa) { foreach ($datos_tarifas as $tarifa) {
$values = $model->getPrecioTarifa($tarifa['tarifa_id'], $tirada, $POD); $values = $model->getPrecioTarifa($tarifa, $tirada, $POD);
$values[0]->cubierta = $tarifa['cubierta'] ?? 0; $values[0]->cubierta = $tarifa['cubierta'] ?? 0;
$values[0]->sobrecubierta = $tarifa['sobrecubierta'] ?? 0; $values[0]->sobrecubierta = $tarifa['sobrecubierta'] ?? 0;
array_push($result, $values[0]); array_push($result, $values[0]);

View File

@ -1,7 +1,8 @@
<div class="accordion accordion-bordered mt-3" id="accordionDatosLibro"> <div class="accordion accordion-bordered mt-3" id="accordionDatosLibro">
<div class="card accordion-item active"> <div class="card accordion-item active">
<h2 class="accordion-header" id="headingOne"> <h2 class="accordion-header" id="headingOne">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionDatosLibroTip" aria-expanded="false" aria-controls="accordionDatosLibroTip"> <button type="button" class="accordion-button" data-bs-toggle="collapse"
data-bs-target="#accordionDatosLibroTip" aria-expanded="false" aria-controls="accordionDatosLibroTip">
<h4><?= lang("Presupuestos.datosLibro") ?></h4> <h4><?= lang("Presupuestos.datosLibro") ?></h4>
</button> </button>
</h2> </h2>
@ -19,18 +20,20 @@
<label for="paginas" class="form-label"> <label for="paginas" class="form-label">
<?= lang('Presupuestos.paginas') ?>* <?= lang('Presupuestos.paginas') ?>*
</label> </label>
<input type="number" id="paginas" name="paginas" tabindex="1" maxLength="11" class="form-control" value="" <?php echo ($tipo_impresion_id == 21)?' max=80':'' ?>> <input type="number" id="paginas" name="paginas" tabindex="1" maxLength="11"
class="form-control" value="" <?php echo ($tipo_impresion_id == 21) ? ' max=80' : '' ?>>
</div><!--//.mb-3 --> </div><!--//.mb-3 -->
</div> </div>
</div><!--//.col --> </div><!--//.col -->
<div class="col-md-12 col-lg-2 px-4"> <div class="col-md-12 col-lg-2 px-4">
<div class="mb-1"> <div class="mb-1">
<label for="tirada" class="form-label"> <label for="tirada" class="form-label">
<?= lang('Presupuestos.tirada') ?>* <?= lang('Presupuestos.tirada') ?>*
</label> </label>
<input type="number" id="tirada" name="tirada" tabindex="2" maxLength="11" class="form-control" value=""> <input type="number" id="tirada" name="tirada" tabindex="2" maxLength="11"
class="form-control" value="">
</div><!--//.mb-3 --> </div><!--//.mb-3 -->
</div><!--//.col --> </div><!--//.col -->
@ -42,21 +45,24 @@
<?= lang('Presupuestos.papelFormatoId') ?>* <?= lang('Presupuestos.papelFormatoId') ?>*
</label> </label>
<div class="row tamanio-estandar"> <div class="row tamanio-estandar">
<select id="papelFormatoId" name="papel_formato_id" tabindex="3" class="form-control select2bs2" style="width: 100%;"> <select id="papelFormatoId" name="papel_formato_id" tabindex="3"
</select> class="form-control select2bs2" style="width: 100%;">
</select>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12 col-lg-6 tamanio-personalizado d-none"> <div class="col-md-12 col-lg-6 tamanio-personalizado d-none">
<div class="mb-1"> <div class="mb-1">
<input type="number" id="papelFormatoAncho" name="papel_formato_ancho" maxLength="8" step="0.01" class="form-control formato_libro" value=""> <input type="number" id="papelFormatoAncho" name="papel_formato_ancho"
maxLength="8" step="0.01" class="form-control formato_libro" value="">
</div><!--//.mb-3 --> </div><!--//.mb-3 -->
</div><!--//.col --> </div><!--//.col -->
<div class="col-md-12 col-lg-6 tamanio-personalizado d-none"> <div class="col-md-12 col-lg-6 tamanio-personalizado d-none">
<div class="mb-1"> <div class="mb-1">
<input type="number" id="papelFormatoAlto" name="papel_formato_alto" maxLength="8" step="0.01" class="form-control formato_libro" value=""> <input type="number" id="papelFormatoAlto" name="papel_formato_alto"
maxLength="8" step="0.01" class="form-control formato_libro" value="">
</div><!--//.mb-3 --> </div><!--//.mb-3 -->
</div><!--//.col --> </div><!--//.col -->
</div> </div>
@ -70,7 +76,8 @@
<label for="merma" class="form-label"> <label for="merma" class="form-label">
<?= lang('Presupuestos.merma') ?>* <?= lang('Presupuestos.merma') ?>*
</label> </label>
<input readonly style="background: #E8E8E8;" id="merma" name="merma" maxLength="8" tabindex="4" step="1" placeholder="10" class="form-control" value=""> <input readonly style="background: #E8E8E8;" id="merma" name="merma" maxLength="8"
tabindex="4" step="1" placeholder="10" class="form-control" value="">
</div><!--//.mb-3 --> </div><!--//.mb-3 -->
</div><!--//.col --> </div><!--//.col -->
@ -79,7 +86,8 @@
<label for="mermacubierta" class="form-label"> <label for="mermacubierta" class="form-label">
<?= lang('Presupuestos.mermacubierta') ?>* <?= lang('Presupuestos.mermacubierta') ?>*
</label> </label>
<input readonly style="background: #E8E8E8;" id="mermacubierta" name="merma_cubierta" tabindex="5" placeholder="10" maxLength="8" step="1" class="form-control" value=""> <input readonly style="background: #E8E8E8;" id="mermacubierta" name="merma_cubierta"
tabindex="5" placeholder="10" maxLength="8" step="1" class="form-control" value="">
</div><!--//.mb-3 --> </div><!--//.mb-3 -->
</div><!--//.col --> </div><!--//.col -->
@ -90,34 +98,41 @@
<!-- Fila 2 --> <!-- Fila 2 -->
<div class="row"> <div class="row">
<div class="col-md-12 col-lg-2 px-4"> <div class="col-md-12 col-lg-2 px-4">
<div class="row solapas-cubierta-div"> <div class="row solapas-cubierta-div">
<div class="mb-1"> <div class="mb-1">
<div class="form-check form-switch mb-2"> <div class="form-check form-switch mb-2">
<input class="form-check-input solapas_cubierta" type="checkbox" id="solapas" name="solapas" tabindex="6" value="1"> <input class="form-check-input solapas_cubierta" type="checkbox" id="solapas"
<label class="form-check-label" for="solapas"><?= lang('Presupuestos.solapasCubierta') ?></label> name="solapas" tabindex="6" value="1">
</div> <label class="form-check-label"
</div><!--//.mb-3 --> for="solapas"><?= lang('Presupuestos.solapasCubierta') ?></label>
</div>
</div><!--//.mb-3 -->
</div> </div>
</div> </div>
<div class="col-md-12 col-lg-2 px-4"> <div class="col-md-12 col-lg-2 px-4">
<div class="row solapas-sobrecubierta-div"> <div class="row solapas-sobrecubierta-div">
<div class="mb-1"> <div class="mb-1">
<div class="form-check form-switch mb-2"> <div class="form-check form-switch mb-2">
<input class="form-check-input solapas_sobrecubierta" type="checkbox" id="solapas_sobrecubierta" name="solapas_sobrecubierta" tabindex="6" value="1" onclick="return false;"> <input class="form-check-input solapas_sobrecubierta" type="checkbox"
<label class="form-check-label" for="solapas_sobrecubierta"><?= lang('Presupuestos.solapasSobrecubierta') ?></label> id="solapas_sobrecubierta" name="solapas_sobrecubierta" tabindex="6" value="1"
onclick="return false;">
<label class="form-check-label"
for="solapas_sobrecubierta"><?= lang('Presupuestos.solapasSobrecubierta') ?></label>
</div> </div>
</div><!--//.mb-3 --> </div><!--//.mb-3 -->
</div> </div>
</div> </div>
<div class="col-md-12 col-lg-6 px-4"> <div class="col-md-12 col-lg-6 px-4">
<div class="row"> <div class="row">
<div class="mb-1"> <div class="mb-1">
<div class="form-check form-switch mb-2"> <div class="form-check form-switch mb-2">
<input class="form-check-input" type="checkbox" id="papelFormatoPersonalizado" name="papel_formato_personalizado" value="1"> <input class="form-check-input" type="checkbox" id="papelFormatoPersonalizado"
<label class="form-check-label" for="papelFormatoPersonalizado"><?= lang('Presupuestos.papelFormatoPersonalizado') ?></label> name="papel_formato_personalizado" value="1">
<label class="form-check-label"
for="papelFormatoPersonalizado"><?= lang('Presupuestos.papelFormatoPersonalizado') ?></label>
</div> </div>
</div> </div>
</div> </div>
@ -132,7 +147,8 @@
<label for="solapas_ancho" class="form-label"> <label for="solapas_ancho" class="form-label">
<?= lang('Presupuestos.solapasAnchoCubierta') ?>* <?= lang('Presupuestos.solapasAnchoCubierta') ?>*
</label> </label>
<input type="number" id="solapas_ancho" name="solapas_ancho" placeholder="0" maxLength="8" step="1" class="form-control solapas_cubierta" value=""> <input type="number" id="solapas_ancho" name="solapas_ancho" placeholder="0" maxLength="8"
step="1" class="form-control solapas_cubierta" value="">
</div><!--//.mb-1 --> </div><!--//.mb-1 -->
</div> </div>
@ -141,20 +157,24 @@
<label for="solapas_ancho_sobrecubierta" class="form-label"> <label for="solapas_ancho_sobrecubierta" class="form-label">
<?= lang('Presupuestos.solapasAnchoSobrecubierta') ?>* <?= lang('Presupuestos.solapasAnchoSobrecubierta') ?>*
</label> </label>
<input type="number" id="solapas_ancho_sobrecubierta" name="solapas_ancho_sobrecubierta" placeholder="60" min="60" maxLength="8" step="1" class="form-control solapas_sobrecubierta" value=""> <input type="number" id="solapas_ancho_sobrecubierta" name="solapas_ancho_sobrecubierta"
placeholder="60" min="60" maxLength="8" step="1"
class="form-control solapas_sobrecubierta" value="">
</div><!--//.mb-1 --> </div><!--//.mb-1 -->
</div> </div>
</div> </div>
<!-----------------------------------------------------------------------------> <!----------------------------------------------------------------------------->
<?php if(str_contains($formAction,'edit')): ?> <?php if (str_contains($formAction, 'edit')): ?>
<div class="divider divider-dark text-start mb-1"> <div class="divider divider-dark text-start mb-1">
<div class="divider-text"> <div class="divider-text">
<h5><?= lang("Presupuestos.acabadosExteriores") ?></h5> <h5>
<?= lang("Presupuestos.acabadosExteriores") ?>
</h5>
</div> </div>
</div> </div>
@ -165,10 +185,11 @@
<label id="label_acabado_cubierta_id" for="acabado_cubierta_id" class="form-label"> <label id="label_acabado_cubierta_id" for="acabado_cubierta_id" class="form-label">
<?= lang('Presupuestos.acabadoCubierta') ?>* <?= lang('Presupuestos.acabadoCubierta') ?>*
</label> </label>
<select id="acabado_cubierta_id" name="acabado_cubierta_id" tabindex="3" class="form-control select2bs2" style="width: 100%;"> <select id="acabado_cubierta_id" name="acabado_cubierta_id" tabindex="3"
class="form-control select2bs2" style="width: 100%;">
</select> </select>
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-12 col-lg-6 px-4"> <div class="col-md-12 col-lg-6 px-4">
<div class="row impresion-con-sobrecubierta"> <div class="row impresion-con-sobrecubierta">
@ -176,18 +197,21 @@
<label id="label_acabado_cubierta_id" for="acabado_sobrecubierta_id" class="form-label"> <label id="label_acabado_cubierta_id" for="acabado_sobrecubierta_id" class="form-label">
<?= lang('Presupuestos.acabadoSobrecubierta') ?>* <?= lang('Presupuestos.acabadoSobrecubierta') ?>*
</label> </label>
<select id="acabado_sobrecubierta_id" name="acabado_sobrecubierta_id" tabindex="3" class="form-control select2bs2" style="width: 100%;"> <select id="acabado_sobrecubierta_id" name="acabado_sobrecubierta_id" tabindex="3"
class="form-control select2bs2" style="width: 100%;">
</select> </select>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-----------------------------------------------------------------------------> <!----------------------------------------------------------------------------->
<div class="divider divider-dark text-start mb-1"> <div class="divider divider-dark text-start mb-1">
<div class="divider-text"> <div class="divider-text">
<h5><?= lang("Presupuestos.opcionesPresupuesto") ?></h5> <h5>
<?= lang("Presupuestos.opcionesPresupuesto") ?>
</h5>
</div> </div>
</div> </div>
@ -196,85 +220,99 @@
<div class="mb-3"> <div class="mb-3">
<div class="form-check"> <div class="form-check">
<label for="retractilado" class="form-check-label"> <label for="retractilado" class="form-check-label">
<input type="checkbox" id="retractilado" name="retractilado" value="1" class="form-check-input" > <input type="checkbox" id="retractilado" name="retractilado" value="1"
class="form-check-input" service="acabado"
service-id=<?= $serviciosAutomaticos['retractilado'] ?>>
<?= lang('Presupuestos.retractilado') ?> <?= lang('Presupuestos.retractilado') ?>
</label> </label>
</div><!--//.form-check --> </div><!--//.form-check -->
</div><!--//.mb-3 --> </div><!--//.mb-3 -->
</div><!--//.col --> </div><!--//.col -->
<div class="col-md-12 col-lg-3 px-4"> <div class="col-md-12 col-lg-3 px-4">
<div class="mb-3"> <div class="mb-3">
<div class="form-check"> <div class="form-check">
<label for="retractilado5" class="form-check-label"> <label for="retractilado5" class="form-check-label">
<input type="checkbox" id="retractilado5" name="retractilado_5" value="1" class="form-check-input" > <input type="checkbox" id="retractilado5" name="retractilado_5" value="1"
<?= lang('Presupuestos.retractilado5') ?> class="form-check-input" service="acabado"
</label> service-id=<?= $serviciosAutomaticos['retractilado5'] ?>>
</div><!--//.form-check --> <?= lang('Presupuestos.retractilado5') ?>
</div><!--//.mb-3 --> </label>
</div><!--//.col --> </div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!--//.col -->
<div class="col-md-12 col-lg-3 px-4"> <div class="col-md-12 col-lg-3 px-4">
<div class="mb-3"> <div class="mb-3">
<div class="form-check"> <div class="form-check">
<label for="prototipo" class="form-check-label"> <label for="prototipo" class="form-check-label">
<input type="checkbox" id="prototipo" name="prototipo" value="1" class="form-check-input" > <input type="checkbox" id="prototipo" name="prototipo" value="1"
<?= lang('Presupuestos.prototipo') ?> class="form-check-input" service="extra"
</label> service-id=<?= $serviciosAutomaticos['prototipo'] ?>>
</div><!--//.form-check --> <?= lang('Presupuestos.prototipo') ?>
</div><!--//.mb-3 --> </label>
<div class="mb-3"> </div><!--//.form-check -->
</div><!--//.mb-3 -->
<div class="mb-3">
</div><!--//.mb-3 --> </div><!--//.mb-3 -->
</div><!--//.col --> </div><!--//.col -->
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12 col-lg-3 px-4"> <div class="col-md-12 col-lg-3 px-4">
<div class="mb-3"> <div class="mb-3">
<div class="form-check"> <div class="form-check">
<label for="ferro" class="form-check-label"> <label for="ferro" class="form-check-label">
<input type="checkbox" id="ferro" name="ferro" value="1" class="form-check-input" > <input type="checkbox" id="ferro" name="ferro" value="1" class="form-check-input"
<?= lang('Presupuestos.ferro') ?> service="extra" service-id=<?= $serviciosAutomaticos['ferro'] ?>>
</label> <?= lang('Presupuestos.ferro') ?>
</div><!--//.form-check --> </label>
</div><!--//.mb-3 --> </div><!--//.form-check -->
</div><!--//.col --> </div><!--//.mb-3 -->
</div><!--//.col -->
<div class="col-md-12 col-lg-3 px-4"> <div class="col-md-12 col-lg-3 px-4">
<div class="mb-3"> <div class="mb-3">
<div class="form-check"> <div class="form-check">
<label for="ferroDigital" class="form-check-label"> <label for="ferroDigital" class="form-check-label">
<input type="checkbox" id="ferroDigital" name="ferro_digital" value="1" class="form-check-input"> <input type="checkbox" id="ferroDigital" name="ferro_digital" value="1"
<?= lang('Presupuestos.ferroDigital') ?> class="form-check-input">
</label> <?= lang('Presupuestos.ferroDigital') ?>
</div><!--//.form-check --> </label>
</div><!--//.mb-3 --> </div><!--//.form-check -->
</div><!--//.col --> </div><!--//.mb-3 -->
</div><!--//.col -->
<div class="col-md-12 col-lg-3 px-4"> <div class="col-md-12 col-lg-3 px-4">
<div class="mb-3"> <div class="mb-3">
<div class="form-check"> <div class="form-check">
<label for="marcapaginas" class="form-check-label"> <label for="marcapaginas" class="form-check-label">
<input type="checkbox" id="marcapaginas" name="marcapaginas" value="1" class="form-check-input" > <input type="checkbox" id="marcapaginas" name="marcapaginas" value="1"
<?= lang('Presupuestos.marcapaginas') ?> class="form-check-input">
</label> <?= lang('Presupuestos.marcapaginas') ?>
</div><!--//.form-check --> </label>
</div><!--//.mb-3 --> </div><!--//.form-check -->
</div><!--//.col --> </div><!--//.mb-3 -->
</div><!--//.col -->
</div> <input type="checkbox" id="plegado_guardas" name="plegado_guardas" value="1"
class="form-check-input d-none" service="manipulado"
service-id=<?= $serviciosAutomaticos['plegado_guardas'] ?>>
<input type="checkbox" id="solapas_grandes" name="solapas_grandes" value="1"
class="form-check-input d-none" service="manipulado"
service-id=<?= $serviciosAutomaticos['solapas_grandes'] ?>>
</div>
<?php endif; ?> <?php endif; ?>
</div> <!-- //.accordion-body --> </div> <!-- //.accordion-body -->
</div> <!-- //.accordion-collapse --> </div> <!-- //.accordion-collapse -->
</div> <!-- //.accordion-item --> </div> <!-- //.accordion-item -->
</div> <!-- //.accordion --> </div> <!-- //.accordion -->

View File

@ -182,63 +182,6 @@
<!------------------------------------------->
<!-- Acciones antes de submit... -->
<!------------------------------------------->
<?php if (str_contains($formAction, 'edit')): ?>
<?= $this->section("additionalInlineJs") ?>
<?php /*
var submitButtonClicked; // Variable para almacenar el botón que fue clickeado
// funcion que genera un JSON con la tabla de tiradas alternativas
function generate_json_tiradas() {
const data = tableTiradas.rows().data().toArray();
$('#tirada_alternativa_json_data').val(JSON.stringify(data));
}
$('#saveForm').on("click", function(event) {
event.preventDefault();
save_servicios();
save_datos_envios();
var presupuesto_id = $('#presupuesto_id').val()
$.when(fill_bbdd_from_lp(presupuesto_id).then(function(data, textStatus, jqXHR) {
generateCompJSON()
generate_json_tiradas()
form = $('#presupuestoForm').serialize()
form += getValuesResumenForm()
$.ajax({
type: "POST",
url: "<?php echo $formAction; ?>",
data: form,
success: function (data) {
yeniden(data.<?= csrf_token() ?>)
if('errorMensaje' in data)
popErrorAlert(data.errorMensaje)
else{
showBreadCrumbSaveButton(false)
popSuccessAlert(data.mensaje)
if($('#confirmar_presupuesto').prop('checked')) {
$('#estado_id').val(2)
}
}
}
}).fail(function (jqXHR, textStatus, error) {
// Handle error here
console.log(jqXHR)
});;
}))
return false; //stop the actual form post !important!
});
*/ ?>
<?= $this->endSection() ?>
<?php endif; ?>
<?php if (str_contains($formAction, 'edit')): ?> <?php if (str_contains($formAction, 'edit')): ?>

View File

@ -246,6 +246,9 @@ class PresupuestoAdminEdit {
datos = { ...datos, ...this.resumen.getData() }; datos = { ...datos, ...this.resumen.getData() };
this.comparador.generateCompJSON();
datos.comparador_json_data = $('#comparador_json_data').val();
return datos; return datos;
} }

View File

@ -399,7 +399,7 @@ class Comparador {
this.gramajeSobrecubierta.setOption(datos.json_data.sobrecubierta.gramaje, datos.json_data.sobrecubierta.gramaje); this.gramajeSobrecubierta.setOption(datos.json_data.sobrecubierta.gramaje, datos.json_data.sobrecubierta.gramaje);
} }
if (datos.json_data.guardas) { if (datos.json_data.guardas) {
this.carasGuardas.val(datos.json_data.guardas.paginas).trigger('change'); this.carasGuardas.val(datos.json_data.guardas.paginas_impresion).trigger('change');
this.papelGuardas.setOption(datos.json_data.guardas.papel_id, datos.json_data.guardas.papel_nombre); 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); this.gramajeGuardas.setOption(datos.json_data.guardas.gramaje, datos.json_data.guardas.gramaje);
} }
@ -970,7 +970,7 @@ class Comparador {
papel_generico = { id: this.papelGuardas.getVal(), nombre: this.papelGuardas.getText() }; papel_generico = { id: this.papelGuardas.getVal(), nombre: this.papelGuardas.getText() };
gramaje = this.gramajeGuardas.getVal(); gramaje = this.gramajeGuardas.getVal();
paginas = this.carasGuardas.val(); paginas = 8;
} }
@ -1019,6 +1019,7 @@ class Comparador {
datos.datosPedido.isCosido = 1; datos.datosPedido.isCosido = 1;
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();
} }
@ -1471,6 +1472,127 @@ class Comparador {
'tarifa_impresion_id': linea.fields.tarifa_impresion_id, 'tarifa_impresion_id': linea.fields.tarifa_impresion_id,
} }
} }
generateCompJSON() {
let data = {}
if ($('#tipoImpresion').select2('data')[0].id == 'negro' || $('#tipoImpresion').select2('data')[0].id == 'color') {
let bn_obj = {};
try {
bn_obj = {
"bn": {
'paginas': $('#compPaginasNegro').val(),
'papel_id': $('#compPapelNegro').select2('data')[0].id,
'gramaje': $('#compGramajeNegro').select2('data')[0].text.trim(),
}
}
}
catch (e) {
}
$.extend(data, bn_obj);
}
if ($('#tipoImpresion').select2('data')[0].id == 'negrohq' || $('#tipoImpresion').select2('data')[0].id == 'colorhq') {
let bnhq_obj = {};
try {
bnhq_obj = {
"bnhq": {
'paginas': $('#compPaginasNegrohq').val(),
'papel_id': $('#compPapelNegrohq').select2('data')[0].id,
'gramaje': $('#compGramajeNegrohq').select2('data')[0].text.trim(),
}
}
}
catch (e) {
}
$.extend(data, bnhq_obj);
}
if ($('#tipoImpresion').select2('data')[0].id == 'color') {
let color_obj = {};
try {
color_obj = {
"color": {
'paginas': $('#compPaginasColor').val(),
'papel_id': $('#compPapelColor').select2('data')[0].id,
'gramaje': $('#compGramajeColor').select2('data')[0].text.trim(),
},
}
}
catch (e) {
}
$.extend(data, color_obj);
}
if ($('#tipoImpresion').select2('data')[0].id == 'colorhq') {
let colorhq_obj = {};
try {
colorhq_obj = {
"colorhq": {
'paginas': $('#compPaginasColorhq').val(),
'papel_id': $('#compPapelColorhq').select2('data')[0].id,
'gramaje': $('#compGramajeColorhq').select2('data')[0].text.trim(),
},
}
}
catch (e) {
}
$.extend(data, colorhq_obj);
}
let cubierta_obj = {};
try {
cubierta_obj = {
"cubierta": {
'paginas': $('#compCarasCubierta option:selected').val(),
'papel_id': $('#compPapelCubierta').select2('data')[0].id,
'gramaje': $('#compGramajeCubierta').select2('data')[0].text.trim(),
},
}
}
catch (e) {
}
$.extend(data, cubierta_obj);
let sobrecubierta_obj = {};
try {
sobrecubierta_obj = {
"sobrecubierta": {
'imprimir': $('#compSobrecubierta option:selected').val(),
'papel_id': $('#compPapelSobrecubierta').select2('data')[0].id,
'gramaje': $('#compGramajeSobrecubierta').select2('data')[0].text.trim(),
},
}
}
catch (e) {
}
$.extend(data, sobrecubierta_obj);
if ($('#compCarasGuardas').length > 0) {
let guardas_obj = {};
try {
guardas_obj = {
"guardas": {
'paginas_impresion': $('#compCarasGuardas option:selected').val(),
'papel_id': $('#compPapelGuardas').select2('data')[0].id,
'gramaje': $('#compGramajeGuardas').select2('data')[0].text.trim(),
},
}
}
catch (e) {
}
$.extend(data, guardas_obj);
}
const data_str = JSON.stringify(data)
$('#comparador_json_data').val(data_str)
}
} }

View File

@ -117,9 +117,7 @@ class DatosLibro {
changePrototipo() { changePrototipo() {
if (this.prototipo.prop('checked')) { if (this.prototipo.prop('checked')) {
$(document).trigger('add-servicio-lineas', 'prototipo'); $(document).trigger('add-servicio-lineas', 'prototipo');
this.ferro.prop('checked', true).trigger('change');
} }
else { else {
$(document).trigger('remove-servicio-lineas', 'prototipo'); $(document).trigger('remove-servicio-lineas', 'prototipo');
@ -127,18 +125,18 @@ class DatosLibro {
} }
checkRetractilado(element) { checkRetractilado(event) {
switch (element.id) { switch (event.currentTarget.id) {
case 'retractilado': case 'retractilado':
if ($('#' + element.id).prop('checked')) { if ($('#' + event.currentTarget.id).prop('checked')) {
$('#retractilado5').prop('checked', false); $('#retractilado5').prop('checked', false);
$(document).trigger('remove-servicio-lineas', 'retractilado5'); $(document).trigger('remove-servicio-lineas', 'retractilado5');
$(document).trigger('add-servicio-lineas', 'retractilado'); $(document).trigger('add-servicio-lineas', 'retractilado');
} }
break; break;
case 'retractilado5': case 'retractilado5':
if ($('#' + element.id).prop('checked')) { if ($('#' + event.currentTarget.id).prop('checked')) {
$('#retractilado').prop('checked', false); $('#retractilado').prop('checked', false);
$(document).trigger('remove-servicio-lineas', 'retractilado'); $(document).trigger('remove-servicio-lineas', 'retractilado');
$(document).trigger('add-servicio-lineas', 'retractilado5'); $(document).trigger('add-servicio-lineas', 'retractilado5');

View File

@ -31,6 +31,9 @@ class LineasPresupuesto {
const row = $(this).closest('tr'); const row = $(this).closest('tr');
const data = self.table.row(row).data() const data = self.table.row(row).data()
if(data.row_id == 'lp_guardas'){
$(document).trigger('remove-servicio-lineas', 'plegado_guardas');
}
self.table.row(row) self.table.row(row)
.remove() .remove()
.draw(); .draw();
@ -1386,6 +1389,8 @@ class LineasPresupuesto {
const self = this; const self = this;
const dimension = this.getDimensionLibro(); const dimension = this.getDimensionLibro();
const dataFromComparador = fromComparador;
if (Object.keys(input_data).length == 0) { if (Object.keys(input_data).length == 0) {
input_data = { input_data = {
@ -1406,7 +1411,7 @@ class LineasPresupuesto {
} }
else if (linea == 'lp_guardas') { else if (linea == 'lp_guardas') {
input_data.paginas = (parseInt($('#tipo_impresion_id').val()) == 1 || parseInt($('#tipo_impresion_id').val()) == 3) ? 8 : 4; input_data.paginas = (parseInt($('#tipo_impresion_id').val()) == 1 || parseInt($('#tipo_impresion_id').val()) == 3) ? 8 : 4;
input_data.paginas_impresion = parseInt($('#lp_guardas_paginas option:selected').val()); input_data.paginas_impresion = parseInt($('#compCarasGuardas').select2('data')[0].id);
} }
else { else {
input_data.paginas = parseInt($('#' + linea + '_paginas').val()); input_data.paginas = parseInt($('#' + linea + '_paginas').val());
@ -1521,7 +1526,7 @@ class LineasPresupuesto {
let borrar_linea = true; let borrar_linea = true;
// Si viene del comparador // Si viene del comparador
if (Object.keys(input_data).length == 0) { if (dataFromComparador) {
borrar_linea = false; borrar_linea = false;
} }
@ -1546,7 +1551,7 @@ class LineasPresupuesto {
} }
self.rellenarDatosLinea(linea, response.lineas[$i].fields); self.rellenarDatosLinea(linea, response.lineas[$i].fields);
return false; return true;
} }
} }
if (borrar_linea) { if (borrar_linea) {
@ -1569,16 +1574,18 @@ class LineasPresupuesto {
rellenarDatosLinea(linea, row, fromComparator = false) { rellenarDatosLinea(linea, row, fromComparator = false) {
if (fromComparator) { if (fromComparator) {
var input_data = { let input_data = {
paginas: row.paginas, paginas: row.paginas,
papel_generico_id: row.papelGenericoId, papel_generico_id: row.papelGenericoId,
gramaje: row.gramaje, gramaje: row.gramaje,
papel_impresion_id: row.papelImpresionId, papel_impresion_id: row.papelImpresionId,
maquina_id: row.maquinaId, maquina_id: row.maquinaId,
} }
if(linea.includes('guardas')) {
input_data.paginas_impresion = parseInt($('#compCarasGuardas').select2('data')[0].id);
}
this.obtenerLinea(linea, fromComparator, false, input_data) this.obtenerLinea(linea, fromComparator, false, input_data)
} }
else { else {
@ -1876,7 +1883,7 @@ class LineasPresupuesto {
} }
} }
if (e.target.id.includes("Cubierta")) { else if (e.target.id.includes("Cubierta")) {
for (let i = self.table.rows().data().length - 1; i >= 0; i--) { 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 let row = self.table.row(i).data(); // Obtener datos de la fila actual
@ -1905,23 +1912,23 @@ class LineasPresupuesto {
} }
} }
if (e.target.id.includes("Guardas")) { else if (e.target.id.includes("Guardas")) {
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
self.table.rows().data().toArray().forEach((row, index) => {
const rowIdx = self.table.row(index).index(); // Obtener el índice actual de la fila
if (row.row_id.includes('lp_guardas')) { if (row.row_id.includes('lp_guardas')) {
self.table.row(rowIdx).remove(); // Eliminar fila por índice self.table.row(i).remove(); // Eliminar fila
} }
}); }
self.table.draw(); self.table.draw();
var rows = $("#tableCompGuardas").DataTable().rows('.selected').data().toArray(); var rows = $("#tableCompGuardas").DataTable().rows('.selected').data().toArray();
for (const row of rows) { for (const row of rows) {
this.rellenarDatosLinea('lp_guardas', row, true); this.rellenarDatosLinea('lp_guardas', row, true);
} }
/* TO-DO
servicioGuardas(true) $(document).trigger('add-servicio-lineas', 'plegado_guardas');
*/
} }

View File

@ -113,14 +113,83 @@ class Servicios {
else if (servicio == 'solapas') { else if (servicio == 'solapas') {
this.ServiciosManipulado.addSolapas(); this.ServiciosManipulado.addSolapas();
} }
else if (servicio == 'ferro'){
const id = $('#ferro').attr('service-id');
this.serviciosExtra.getPresupuestoExtra(id);
}
else if (servicio == 'prototipo'){
const id = $('#prototipo').attr('service-id');
this.serviciosExtra.getPresupuestoExtra(id);
}
else if (servicio == 'retractilado'){
const id = $('#retractilado').attr('service-id');
this.serviciosAcabado.getPresupuestoAcabado(id);
}
else if (servicio == 'retractilado5'){
const id = $('#retractilado5').attr('service-id');
this.serviciosAcabado.getPresupuestoAcabado(id);
}
else if(servicio == 'plegado_guardas'){
const id = $('#plegado_guardas').attr('service-id');
for(let i = 0; i < this.ServiciosManipulado.table.rows().count(); i++){
var data = this.ServiciosManipulado.table.row(i).data();
if (data.tarifa_id == id) {
return;
}
};
this.ServiciosManipulado.getPresupuestoManipulado(id);
}
} }
removeServicio(event, servicio) { removeServicio(event, servicio) {
if (servicio == 'solapas') { if (servicio == 'solapas') {
this.ServiciosManipulado.removeSolapas(); this.ServiciosManipulado.removeSolapas();
} }
else if (servicio == 'ferro'){
const id = $('#ferro').attr('service-id');
this.serviciosExtra.table.rows().every(function () {
var data = this.data();
if (data.tarifa_id == id) {
this.remove().draw();
}
});
}
else if (servicio == 'prototipo'){
const id = $('#prototipo').attr('service-id');
this.serviciosExtra.table.rows().every(function () {
var data = this.data();
if (data.tarifa_id == id) {
this.remove().draw();
}
});
}
else if (servicio == 'retractilado'){
const id = $('#retractilado').attr('service-id');
this.serviciosAcabado.table.rows().every(function () {
var data = this.data();
if (data.tarifa_id == id) {
this.remove().draw();
}
});
}
else if (servicio == 'retractilado5'){
const id = $('#retractilado5').attr('service-id');
this.serviciosAcabado.table.rows().every(function () {
var data = this.data();
if (data.tarifa_id == id) {
this.remove().draw();
}
});
}
else if(servicio == 'plegado_guardas'){
const id = $('#plegado_guardas').attr('service-id');
this.ServiciosManipulado.table.rows().every(function () {
var data = this.data();
if (data.tarifa_id == id) {
this.remove().draw();
}
});
}
} }
async updateServicios() { async updateServicios() {