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.delete",
"tarifa-encuadernacion.menu",
"tarifa-extra.create",
"tarifa-extra.edit",
"tarifa-extra.delete",
"tarifa-extra.menu",
"tarifa-envio.create",
"tarifa-envio.edit",
"tarifa-envio.delete",

View File

@ -45,6 +45,10 @@ const SK_PERMISSIONS = [
'tarifa-encuadernacion.edit' => 'Can edit',
'tarifa-encuadernacion.delete' => 'Can delete',
'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.edit' => 'Can edit',
'tarifa-envio.delete' => 'Can delete',

View File

@ -328,12 +328,12 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$this->viewData['POD'] = $this->getPOD();
$this->viewData['serviciosAutomaticos'] = [
'retractilado' => 3,
'retractilado5' => 5,
'ferro' => 24,
'prototipo' => 9,
'fajaColor' => 16,
'plegadoGuardas' => 62,
'retractilado' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_retractilado')->value,
'retractilado5' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_retractilado5')->value,
'ferro' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_ferro')->value,
'prototipo' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_prototipo')->value,
'plegado_guardas' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_plegado_guardas')->value,
'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
@ -496,7 +496,8 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$data['comparador']['json_data'] = json_decode($presupuesto->comparador_json_data, true);
if ($data['comparador']['json_data'] != null) {
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;
@ -701,6 +702,10 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$tipo_impresion_id = $this->request->getPost('tipo_impresion_id');
$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
// 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

View File

@ -2286,38 +2286,62 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
// Servicios
/*
'retractilado' => 3,
'prototipo' => 9,
*/
$serviciosAutomaticos = [];
$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
if (is_array($datos_guardas)) {
if (count($datos_guardas) > 0) {
array_push($servicios, 62); // Plegado de guardas
array_push($servicios, $servicio_plegado_guardas); // Plegado de guardas
}
} else {
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
array_push($servicios, 3);
array_push($servicios, $servicio_retractilado);
if ($datos_entrada['servicios']['retractilado5']) // acabado
array_push($servicios, 98);
array_push($servicios, $servicio_retractilado5);
if ($datos_entrada['servicios']['prototipo']) // extra
array_push($servicios, 9);
array_push($servicios, $servicio_prototipo);
if ($datos_entrada['servicios']['ferro']) // extra
array_push($servicios, 30);
array_push($servicios, $servicio_ferro);
/*if ($datos_entrada['servicios']['ferroDigital'])
array_push($servicios, 29);*/ // Es gratis
foreach ($servicios as $servicio) {
if (intval($servicio) == 3 || intval($servicio) == 98) {
if ($servicio->nombre == "retractilado" || $servicio->nombre == "retractilado5") {
// Servicios acabado
$resultado = PresupuestoCLienteService::getServiciosAcabados([
'tarifa_id' => $servicio,
'tarifa_id' => intval($servicio->id),
'tirada' => $datosPedido->tirada,
'POD' => $POD,
]);
@ -2345,10 +2369,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$totalServicios += floatval($resultado[0]->total);
$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
$resultado = PresupuestoCLienteService::getServiciosExtra([
'tarifa_id' => $servicio,
'tarifa_id' => intval($servicio->id),
]);
array_push($serviciosAutomaticos, $resultado[0]);
if ($resultado[0]->precio <= 0) {
@ -2385,7 +2409,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
// Servicios acabado
$resultado = PresupuestoCLienteService::getServiciosManipulado([
'tarifa_id' => 73,
'tarifa_id' => intval($servicio_solapas_grandes->id),
'tirada' => $datosPedido->tirada,
'POD' => $POD,
]);

View File

@ -115,7 +115,7 @@ class Presupuestomanipulados extends \App\Controllers\BaseResourceController
if (count($datos_tarifas) > 0) {
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]->sobrecubierta = $tarifa['sobrecubierta'] ?? 0;
array_push($result, $values[0]);

View File

@ -1,7 +1,8 @@
<div class="accordion accordion-bordered mt-3" id="accordionDatosLibro">
<div class="card accordion-item active">
<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>
</button>
</h2>
@ -19,18 +20,20 @@
<label for="paginas" class="form-label">
<?= lang('Presupuestos.paginas') ?>*
</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>
</div><!--//.col -->
<div class="col-md-12 col-lg-2 px-4">
<div class="mb-1">
<label for="tirada" class="form-label">
<?= lang('Presupuestos.tirada') ?>*
</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><!--//.col -->
@ -42,21 +45,24 @@
<?= lang('Presupuestos.papelFormatoId') ?>*
</label>
<div class="row tamanio-estandar">
<select id="papelFormatoId" name="papel_formato_id" tabindex="3" class="form-control select2bs2" style="width: 100%;">
</select>
<select id="papelFormatoId" name="papel_formato_id" tabindex="3"
class="form-control select2bs2" style="width: 100%;">
</select>
</div>
<div class="row">
<div class="col-md-12 col-lg-6 tamanio-personalizado d-none">
<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><!--//.col -->
<div class="col-md-12 col-lg-6 tamanio-personalizado d-none">
<div class="mb-1">
<input type="number" id="papelFormatoAlto" name="papel_formato_alto" maxLength="8" step="0.01" class="form-control formato_libro" value="">
<div class="mb-1">
<input type="number" id="papelFormatoAlto" name="papel_formato_alto"
maxLength="8" step="0.01" class="form-control formato_libro" value="">
</div><!--//.mb-3 -->
</div><!--//.col -->
</div>
@ -70,7 +76,8 @@
<label for="merma" class="form-label">
<?= lang('Presupuestos.merma') ?>*
</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><!--//.col -->
@ -79,7 +86,8 @@
<label for="mermacubierta" class="form-label">
<?= lang('Presupuestos.mermacubierta') ?>*
</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><!--//.col -->
@ -90,34 +98,41 @@
<!-- Fila 2 -->
<div class="row">
<div class="col-md-12 col-lg-2 px-4">
<div class="row solapas-cubierta-div">
<div class="mb-1">
<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">
<label class="form-check-label" for="solapas"><?= lang('Presupuestos.solapasCubierta') ?></label>
</div>
</div><!--//.mb-3 -->
<div class="row solapas-cubierta-div">
<div class="mb-1">
<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">
<label class="form-check-label"
for="solapas"><?= lang('Presupuestos.solapasCubierta') ?></label>
</div>
</div><!--//.mb-3 -->
</div>
</div>
</div>
<div class="col-md-12 col-lg-2 px-4">
<div class="row solapas-sobrecubierta-div">
<div class="mb-1">
<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;">
<label class="form-check-label" for="solapas_sobrecubierta"><?= lang('Presupuestos.solapasSobrecubierta') ?></label>
<input class="form-check-input solapas_sobrecubierta" type="checkbox"
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><!--//.mb-3 -->
</div>
</div>
<div class="col-md-12 col-lg-6 px-4">
<div class="row">
<div class="mb-1">
<div class="form-check form-switch mb-2">
<input class="form-check-input" type="checkbox" id="papelFormatoPersonalizado" name="papel_formato_personalizado" value="1">
<label class="form-check-label" for="papelFormatoPersonalizado"><?= lang('Presupuestos.papelFormatoPersonalizado') ?></label>
<input class="form-check-input" type="checkbox" id="papelFormatoPersonalizado"
name="papel_formato_personalizado" value="1">
<label class="form-check-label"
for="papelFormatoPersonalizado"><?= lang('Presupuestos.papelFormatoPersonalizado') ?></label>
</div>
</div>
</div>
@ -132,7 +147,8 @@
<label for="solapas_ancho" class="form-label">
<?= lang('Presupuestos.solapasAnchoCubierta') ?>*
</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>
@ -141,20 +157,24 @@
<label for="solapas_ancho_sobrecubierta" class="form-label">
<?= lang('Presupuestos.solapasAnchoSobrecubierta') ?>*
</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>
</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-text">
<h5><?= lang("Presupuestos.acabadosExteriores") ?></h5>
<h5>
<?= lang("Presupuestos.acabadosExteriores") ?>
</h5>
</div>
</div>
@ -165,10 +185,11 @@
<label id="label_acabado_cubierta_id" for="acabado_cubierta_id" class="form-label">
<?= lang('Presupuestos.acabadoCubierta') ?>*
</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>
</div>
</div>
</div>
</div>
<div class="col-md-12 col-lg-6 px-4">
<div class="row impresion-con-sobrecubierta">
@ -176,18 +197,21 @@
<label id="label_acabado_cubierta_id" for="acabado_sobrecubierta_id" class="form-label">
<?= lang('Presupuestos.acabadoSobrecubierta') ?>*
</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>
</div>
</div>
</div>
</div>
</div>
<!----------------------------------------------------------------------------->
<div class="divider divider-dark text-start mb-1">
<div class="divider-text">
<h5><?= lang("Presupuestos.opcionesPresupuesto") ?></h5>
<h5>
<?= lang("Presupuestos.opcionesPresupuesto") ?>
</h5>
</div>
</div>
@ -196,85 +220,99 @@
<div class="mb-3">
<div class="form-check">
<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') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!--//.col -->
</div><!--//.mb-3 -->
</div><!--//.col -->
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-3">
<div class="form-check">
<label for="retractilado5" class="form-check-label">
<input type="checkbox" id="retractilado5" name="retractilado_5" value="1" class="form-check-input" >
<?= lang('Presupuestos.retractilado5') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!--//.col -->
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-3">
<div class="form-check">
<label for="retractilado5" class="form-check-label">
<input type="checkbox" id="retractilado5" name="retractilado_5" value="1"
class="form-check-input" service="acabado"
service-id=<?= $serviciosAutomaticos['retractilado5'] ?>>
<?= lang('Presupuestos.retractilado5') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!--//.col -->
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-3">
<div class="form-check">
<label for="prototipo" class="form-check-label">
<input type="checkbox" id="prototipo" name="prototipo" value="1" class="form-check-input" >
<?= lang('Presupuestos.prototipo') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<div class="mb-3">
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-3">
<div class="form-check">
<label for="prototipo" class="form-check-label">
<input type="checkbox" id="prototipo" name="prototipo" value="1"
class="form-check-input" service="extra"
service-id=<?= $serviciosAutomaticos['prototipo'] ?>>
<?= lang('Presupuestos.prototipo') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<div class="mb-3">
</div><!--//.mb-3 -->
</div><!--//.col -->
</div><!--//.mb-3 -->
</div><!--//.col -->
</div>
</div>
<div class="row">
<div class="row">
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-3">
<div class="form-check">
<label for="ferro" class="form-check-label">
<input type="checkbox" id="ferro" name="ferro" value="1" class="form-check-input" >
<?= lang('Presupuestos.ferro') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!--//.col -->
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-3">
<div class="form-check">
<label for="ferro" class="form-check-label">
<input type="checkbox" id="ferro" name="ferro" value="1" class="form-check-input"
service="extra" service-id=<?= $serviciosAutomaticos['ferro'] ?>>
<?= lang('Presupuestos.ferro') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!--//.col -->
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-3">
<div class="form-check">
<label for="ferroDigital" class="form-check-label">
<input type="checkbox" id="ferroDigital" name="ferro_digital" value="1" class="form-check-input">
<?= lang('Presupuestos.ferroDigital') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!--//.col -->
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-3">
<div class="form-check">
<label for="ferroDigital" class="form-check-label">
<input type="checkbox" id="ferroDigital" name="ferro_digital" value="1"
class="form-check-input">
<?= lang('Presupuestos.ferroDigital') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!--//.col -->
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-3">
<div class="form-check">
<label for="marcapaginas" class="form-check-label">
<input type="checkbox" id="marcapaginas" name="marcapaginas" value="1" class="form-check-input" >
<?= lang('Presupuestos.marcapaginas') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!--//.col -->
<div class="col-md-12 col-lg-3 px-4">
<div class="mb-3">
<div class="form-check">
<label for="marcapaginas" class="form-check-label">
<input type="checkbox" id="marcapaginas" name="marcapaginas" value="1"
class="form-check-input">
<?= lang('Presupuestos.marcapaginas') ?>
</label>
</div><!--//.form-check -->
</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; ?>
</div> <!-- //.accordion-body -->
</div> <!-- //.accordion-collapse -->
</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')): ?>

View File

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

View File

@ -399,7 +399,7 @@ class Comparador {
this.gramajeSobrecubierta.setOption(datos.json_data.sobrecubierta.gramaje, datos.json_data.sobrecubierta.gramaje);
}
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.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() };
gramaje = this.gramajeGuardas.getVal();
paginas = this.carasGuardas.val();
paginas = 8;
}
@ -1019,6 +1019,7 @@ class Comparador {
datos.datosPedido.isCosido = 1;
datos.datosPedido.isHq = 1;
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,
}
}
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() {
if (this.prototipo.prop('checked')) {
$(document).trigger('add-servicio-lineas', 'prototipo');
this.ferro.prop('checked', true).trigger('change');
}
else {
$(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':
if ($('#' + element.id).prop('checked')) {
if ($('#' + event.currentTarget.id).prop('checked')) {
$('#retractilado5').prop('checked', false);
$(document).trigger('remove-servicio-lineas', 'retractilado5');
$(document).trigger('add-servicio-lineas', 'retractilado');
}
break;
case 'retractilado5':
if ($('#' + element.id).prop('checked')) {
if ($('#' + event.currentTarget.id).prop('checked')) {
$('#retractilado').prop('checked', false);
$(document).trigger('remove-servicio-lineas', 'retractilado');
$(document).trigger('add-servicio-lineas', 'retractilado5');

View File

@ -31,6 +31,9 @@ class LineasPresupuesto {
const row = $(this).closest('tr');
const data = self.table.row(row).data()
if(data.row_id == 'lp_guardas'){
$(document).trigger('remove-servicio-lineas', 'plegado_guardas');
}
self.table.row(row)
.remove()
.draw();
@ -1386,6 +1389,8 @@ class LineasPresupuesto {
const self = this;
const dimension = this.getDimensionLibro();
const dataFromComparador = fromComparador;
if (Object.keys(input_data).length == 0) {
input_data = {
@ -1406,7 +1411,7 @@ class LineasPresupuesto {
}
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_impresion = parseInt($('#lp_guardas_paginas option:selected').val());
input_data.paginas_impresion = parseInt($('#compCarasGuardas').select2('data')[0].id);
}
else {
input_data.paginas = parseInt($('#' + linea + '_paginas').val());
@ -1521,7 +1526,7 @@ class LineasPresupuesto {
let borrar_linea = true;
// Si viene del comparador
if (Object.keys(input_data).length == 0) {
if (dataFromComparador) {
borrar_linea = false;
}
@ -1546,7 +1551,7 @@ class LineasPresupuesto {
}
self.rellenarDatosLinea(linea, response.lineas[$i].fields);
return false;
return true;
}
}
if (borrar_linea) {
@ -1569,16 +1574,18 @@ class LineasPresupuesto {
rellenarDatosLinea(linea, row, fromComparator = false) {
if (fromComparator) {
var input_data = {
let input_data = {
paginas: row.paginas,
papel_generico_id: row.papelGenericoId,
gramaje: row.gramaje,
papel_impresion_id: row.papelImpresionId,
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)
}
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--) {
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')) {
self.table.row(rowIdx).remove(); // Eliminar fila por índice
self.table.row(i).remove(); // Eliminar fila
}
});
}
self.table.draw();
var rows = $("#tableCompGuardas").DataTable().rows('.selected').data().toArray();
for (const row of rows) {
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') {
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) {
if (servicio == 'solapas') {
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() {