empezando a enviar los datos al controlador

This commit is contained in:
jaimejimenezortega
2024-04-21 18:50:17 +02:00
parent e13cae85bd
commit 71fb9fa16e
10 changed files with 51673 additions and 330 deletions

View File

@ -161,6 +161,15 @@ class Presupuestocliente extends \App\Controllers\GoBaseResourceController
$datosPresupuesto->papelInteriorColor = model('App\Models\Configuracion\PapelGenericoModel')->getPapelForComparador('color', false, false);
$datosPresupuesto->papelInteriorColorHq = model('App\Models\Configuracion\PapelGenericoModel')->getPapelForComparador('colorhq', false, false);
$datosPresupuesto->papelCubierta = model('App\Models\Configuracion\PapelGenericoModel')->getPapelForComparador('colorhq', true, false);
$datosPresupuesto->papelSobrecubierta = model('App\Models\Configuracion\PapelGenericoModel')->getPapelForComparador('colorhq', false, true);
$datosPresupuesto->papelGuardas = model('App\Models\Configuracion\PapelGenericoModel')->getPapelForComparador('colorhq', false, false, false, true);
$datosPresupuesto->acabadosCubierta = $this->getAcabadosCubierta();
$datosPresupuesto->acabadosSobrecubierta = $this->getAcabadosSobrecubierta();
$datosPresupuesto->clienteList = $this->getClienteListItems($presupuestoEntity->cliente_id ?? null);
$this->viewData['formAction'] = route_to('crearPresupuestoCliente');
$this->viewData['presupuestoEntity'] = $presupuestoEntity;
@ -602,5 +611,35 @@ class Presupuestocliente extends \App\Controllers\GoBaseResourceController
array_shift($data);
return $data;
}
protected function getAcabadosCubierta()
{
$model = model('App\Models\Tarifas\TarifaacabadoModel');
$data = $model->getServiciosAcabadoCubierta();
array_unshift($data, (object)['id' => '', 'label' => lang('Basic.global.None')]);
return $data;
}
protected function getAcabadosSobrecubierta()
{
$model = model('App\Models\Tarifas\TarifaacabadoModel');
$data = $model->getServiciosAcabadoSobrecubierta();
array_unshift($data, (object)['id' => '', 'label' => lang('Basic.global.None')]);
return $data;
}
protected function getClienteListItems($selId = null)
{
$data = ['' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Clientes.cliente'))])];
if (!empty($selId)) :
$clienteModel = model('App\Models\Clientes\ClienteModel');
$selOption = $clienteModel->where('id', $selId)->findColumn('nombre');
if (!empty($selOption)) :
$data[$selId] = $selOption[0];
endif;
endif;
return $data;
}
}

View File

@ -275,9 +275,15 @@ return [
'decimal' => 'El campo {field} debe contener un número decimal.',
'integer' => 'El campo {field} debe contener un número entero.',
'requerido' => 'El campo {field} es obligatorio.',
'requerido_short' => 'Campo obligatorio',
'max_length' => 'El campo {field} no puede exceder los {param} caracteres de longitud.',
'no_lp_for_merma' => 'Inserte líneas de presupuesto para calcular la merma',
'ejemplares_envio' => 'El número de ejemplares enviados no coincide con la tirada',
'cliente' => 'Debe seleccionar un cliente',
'pais' => 'Debe seleccionar un país',
'integer_greatherThan_0' => 'Número entero > 0 requerido',
'tirada_no_valida' => "Tirada no valida",
'sin_gramaje' => "Seleccione gramaje",
],
'errores' => [

View File

@ -2,7 +2,7 @@
<input hidden readonly style="background: #E8E8E8;" id="id" name="id" maxLength="12" class="form-control" value="<?= old('id', $presupuestoEntity->id) ?>">
<div class="row g-2">
<div class="row g-2">
<div class="col-sm-6 mb-3">
<label for="titulo" class="form-label">
@ -52,7 +52,6 @@
<?=lang('Presupuestos.paisId') ?>*
</label>
<select id="paisId" name="pais_id" class="form-control select2bs" style="width: 100%;" >
<option value=""><?=lang('Basic.global.pleaseSelectA', [lang('Presupuestos.paisId')]) ?></option>
<?php foreach ($datosPresupuesto->paisList as $item) : ?>
<option value="<?=$item->id ?>"<?=$item->id==$presupuestoEntity->pais_id ? ' selected':'' ?>>
<?=$item->nombre ?>
@ -68,10 +67,10 @@
<label for="clienteId" class="form-label">
<?= lang('Presupuestos.clienteId') ?>*
</label>
<select id="clienteId" name="cliente_id" class="form-control select2bs2" style="width: 100%;">
<select id="clienteId" name="clienteId" class="form-control select2bs2" style="width: 100%;">
<?php if (isset($clienteList) && is_array($clienteList) && !empty($clienteList)) :
foreach ($clienteList as $k => $v) : ?>
<?php if (isset($datosPresupuesto->clienteList) && is_array($datosPresupuesto->clienteList) && !empty($datosPresupuesto->clienteList)) :
foreach ($datosPresupuesto->clienteList as $k => $v) : ?>
<option value="<?= $k ?>" <?= $k == $presupuestoEntity->cliente_id ? ' selected' : '' ?>>
<?= $v ?>
</option>

View File

@ -4,22 +4,24 @@
<div class="row g-2">
<h3 id="tituloDisenioLibro">Fresado</h3>
<div id="tapaDiv" class="row">
<div class="col-sm-3 mb-md-0 mb-2">
<div id="tapaBlandaDiv" class="form-check custom-option custom-option-tapa custom-option-basic checked">
<div class="col-sm-3 mb-md-0 mb-2" id="tapaBlandaDiv">
<div id="tapaBlandaInnerDiv" class="form-check custom-option custom-option-tapa custom-option-basic checked">
<label class="form-check-label custom-option-content" for="tapaBlanda">
<input name="tapaBlanda" class="form-check-input" type="radio" value="" id="tapaBlanda" checked="">
<input name="tapaBlanda" class="form-check-input elementos-libro" type="radio" value="" id="tapaBlanda" checked="">
<span class="custom-option-header">
<span class="h6 mb-0">Tapa blanda</span>
</span>
</label>
</div>
</div>
<div class="col-sm-3">
<div id="tapaDuraDiv" class="form-check custom-option custom-option-tapa custom-option-basic">
<div id="tapaDuraDiv" class="col-sm-3 mb-md-0 mb-2">
<div class="form-check custom-option custom-option-tapa custom-option-basic">
<label class="form-check-label custom-option-content" for="tapaDura">
<input name="tapaDura" class="form-check-input" type="radio" value="" id="tapaDura">
<input name="tapaDura" class="form-check-input elementos-libro" type="radio" value="" id="tapaDura">
<span class="custom-option-header">
<span class="h6 mb-0">Tapa Dura</span>
</span>
@ -40,28 +42,28 @@
<label for="tirada" class="form-label">
<?= lang('Presupuestos.tirada') ?> 1
</label>
<input type="number" id="tirada" name="tirada" maxLength="8" step="1" class="form-control" value="<?= old('tirada', $presupuestoEntity->tirada) ?>">
<input type="number" id="tirada" name="tirada" maxLength="8" step="1" class="form-control" value="<?= old(0, $presupuestoEntity->tirada) ?>">
</div><!--//.mb-3 -->
<div class="col-sm-3 mb-3">
<label for="tirada2" class="form-label">
<?= lang('Presupuestos.tirada') ?> 2
</label>
<input type="number" id="tirada2" name="tirada2" maxLength="8" step="1" class="form-control" value="<?= old('tirada2', $presupuestoEntity->tirada2) ?>">
<input type="number" id="tirada2" name="tirada2" maxLength="8" step="1" class="form-control" value="<?= old(0, $presupuestoEntity->tirada2) ?>">
</div><!--//.mb-3 -->
<div class="col-sm-3 mb-3">
<label for="tirada3" class="form-label">
<?= lang('Presupuestos.tirada') ?> 3
</label>
<input type="number" id="tirada3" name="tirada3" maxLength="8" step="1" class="form-control" value="<?= old('tirada3', $presupuestoEntity->tirada3) ?>">
<input type="number" id="tirada3" name="tirada3" maxLength="8" step="1" class="form-control" value="<?= old(0, $presupuestoEntity->tirada3) ?>">
</div><!--//.mb-3 -->
<div class="col-sm-3 mb-3">
<label for="tirada4" class="form-label">
<?= lang('Presupuestos.tirada') ?> 4
</label>
<input type="number" id="tirada4" name="tirada4" maxLength="8" step="1" class="form-control" value="<?= old('tirada4', $presupuestoEntity->tirada4) ?>">
<input type="number" id="tirada4" name="tirada4" maxLength="8" step="1" class="form-control" value="<?= old(0, $presupuestoEntity->tirada4) ?>">
</div><!--//.mb-3 -->
</div> <!--//.row -->
@ -73,7 +75,7 @@
<label for="paginas" class="form-label">
<?= lang('Presupuestos.paginas') ?>
</label>
<input type="number" id="paginas" name="paginas" maxLength="8" step="1" class="form-control" value="<?= old('paginas', $presupuestoEntity->paginas) ?>">
<input type="number" id="paginas" name="paginas" maxLength="8" step="1" class="form-control" value="<?= old(0, $presupuestoEntity->paginas) ?>">
</div><!--//.mb-3 -->
</div> <!--//.row -->
@ -130,7 +132,7 @@
<div class="row">
<div class="col col-sm-1 d-flex justify-content-center">
<div id="colorNegroDiv" class="form-check change-papel-interior custom-option-color custom-option custom-option-image custom-option-image-radio">
<div id="colorNegroDiv" class="form-check change-tipo-impresion custom-option-color custom-option custom-option-image custom-option-image-radio">
<label class="form-check-label custom-option-content" for="colorNegro">
<span class="custom-option-body">
<img style="height:32px;width:32px" src="<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_bn.png") ?>" alt="">
@ -141,7 +143,7 @@
</div>
<div class="col col-sm-1 d-flex justify-content-center">
<div id="colorColorDiv" class="form-check change-papel-interior custom-option-color custom-option custom-option-image custom-option-image-radio">
<div id="colorColorDiv" class="form-check change-tipo-impresion custom-option-color custom-option custom-option-image custom-option-image-radio">
<label class="form-check-label custom-option-content" for="colorColor">
<span class="custom-option-body">
<img style="height:32px;width:32px" src="<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_color.png") ?>" alt="">
@ -153,7 +155,7 @@
</div> <!--//.row -->
<div class="row">
<div id="pagColorDiv" class="row">
<div class="col-sm-3 mb-3">
<label for="paginasColor" class="form-label">
Páginas a color
@ -166,7 +168,7 @@
<div class="row">
<div class="col-sm-3 mb-md-0 mb-2">
<div id="calidadEstandarDiv" class="form-check change-papel-interior custom-option custom-option-calidad custom-option-basic checked">
<div id="calidadEstandarDiv" class="form-check change-tipo-impresion custom-option custom-option-calidad custom-option-basic checked">
<label class="form-check-label custom-option-content" for="calidadEstandar">
<input name="calidadEstandar" class="form-check-input" type="radio" value="" id="calidadEstandar" checked="">
<span class="custom-option-header">
@ -176,7 +178,7 @@
</div>
</div>
<div class="col-sm-3">
<div id="calidadPremiumDiv" class="form-check change-papel-interior custom-option custom-option-calidad custom-option-basic">
<div id="calidadPremiumDiv" class="form-check change-tipo-impresion custom-option custom-option-calidad custom-option-basic">
<label class="form-check-label custom-option-content" for="calidadPremium">
<input name="calidadPremium" class="form-check-input" type="radio" value="" id="calidadPremium">
<span class="custom-option-header">
@ -215,6 +217,7 @@
</div>
</div>
<!--SECCION DE CUBIERTA -->
<div class="divider divider-dark text-start mb-1">
<div class="divider-text">
<h5>Cubierta</h5>
@ -226,7 +229,15 @@
<div class="col-sm-4 mb-md-0 mb-2">
<label for="papelCubierta" class="form-label">Tipo de papel</label>
<select id="papelCubierta" name="papelCubierta" class="form-control select2bs2" style="width: 100%;"></select>
<select id="papelCubierta" name="papelCubierta" class="form-control select2bs2" style="width: 100%;">
<?php if (isset($datosPresupuesto->papelCubierta) && is_array($datosPresupuesto->papelCubierta) && !empty($datosPresupuesto->papelCubierta)) :
foreach ($datosPresupuesto->papelCubierta as $k => $v) : ?>
<option value="<?= $v->id ?>">
<?= $v->nombre ?>
</option>
<?php endforeach;
endif; ?>
</select>
</div>
<div class="col-sm-2 mb-md-0 mb-2">
@ -237,63 +248,275 @@
</div>
<div class="col-sm-4 mb-md-0 mb-2">
<label for="carasCubierta" class="form-label">Caras impresas cubierta</label>
<select id="carasCubierta" name="carasCubierta" class="form-control select2bs2" style="width: 100%;">
<option value="2">
<p><?= lang('Presupuestos.unaCara') ?></p>
</option>
<option value="4">
<p><?= lang('Presupuestos.dosCaras') ?></p>
</option>
</select>
</div>
<h6> Opciones extra </h6>
<div class="row">
<div class="col-sm-3 mb-md-0 mb-2">
<div class="col-sm-4 mb-md-0 mb-2">
<label for="carasCubierta" class="form-label">Caras impresas cubierta</label>
<select id="carasCubierta" name="carasCubierta" class="form-control select2bs2" style="width: 100%;">
<option value="2">
<p><?= lang('Presupuestos.unaCara') ?></p>
</option>
<option value="4">
<p><?= lang('Presupuestos.dosCaras') ?></p>
</option>
</select>
</div>
</div>
<h6 class='solapas-cubierta'> Opciones extra </h6>
<div class="row solapas-cubierta">
<div class="col-sm-3 mb-md-0 mb-2 d-flex align-items-end">
<div class="form-check form-switch mb-2">
<input class="form-check-input" type="checkbox" id="solapasCubiertas" name="solapasCubiertas" value="0" >
<label class="form-check-label" for="solapasCubiertas">Solapas cubierta</label>
<input class="form-check-input" type="checkbox" id="solapasCubierta" name="solapasCubierta" value="0">
<label class="form-check-label" for="solapasCubierta">Solapas cubierta</label>
</div>
</div>
<div class="col-sm-3 mb-md-0 mb-2" style="display: none;">
<div id="tamanioSolapasCubierta" class="col-sm-3 mb-md-0 mb-2" style="display: none;">
<label for="anchoSolapasCubierta" class="form-label">Tamaño</label>
<input type="number" id="anchoSolapasCubierta" name="anchoSolapasCubierta" maxLength="8" step="1" class="form-control" value="">
</div>
</div>
<div class="col-sm-4 mb-md-0 mb-2">
<label for="acabadoCubierta" class="form-label">Acabado cubierta</label>
<select id="acabadoCubierta" name="acabadoCubierta" class="form-control select2bs2" style="width: 100%;">
<option value="2">
<p><?= lang('Presupuestos.unaCara') ?></p>
</option>
<option value="4">
<p><?= lang('Presupuestos.dosCaras') ?></p>
</option>
</select>
</div>
<div class="row">
<div class="divider divider-dark text-start mb-1">
<div class="col-sm-4 mb-md-0 mb-2">
<label for="acabadosCubierta" class="form-label">Acabados cubierta</label>
<select id="acabadosCubierta" name="acabadosCubierta" class="form-control select2bs2" style="width: 100%;">
<?php if (isset($datosPresupuesto->acabadosCubierta) && is_array($datosPresupuesto->acabadosCubierta) && !empty($datosPresupuesto->acabadosCubierta)) :
foreach ($datosPresupuesto->acabadosCubierta as $acabado) : ?>
<option value="<?= $acabado->id ?>" <?= $acabado->id == $presupuestoEntity->acabado_sobrecubierta_id ? ' selected' : '' ?>>
<?= $acabado->label ?>
</option>
<?php endforeach;
endif; ?>
</select>
</div>
</div>
<!--SECCION DE SOBRECUBIERTA -->
<div class="divider divider-dark text-start mb-1 sobrecubierta">
<div class="divider-text">
<h5>Sobrecubierta</h5>
</div>
</div>
<div class="row sobrecubierta">
<div class="col-sm-3 mb-md-0 mb-2 d-flex align-items-end">
<div class="form-check form-switch mb-2">
<input class="form-check-input" type="checkbox" id="enableSobrecubierta" name="enableSobrecubierta" value="0">
<label class="form-check-label" for="enableSobrecubierta">Añadir sobrecubierta</label>
</div>
</div>
</div>
<h6 class="sobrecubierta enable-sobrecubierta"> Papel </h6>
<div class="row sobrecubierta enable-sobrecubierta">
<div class="col-sm-4 mb-md-0 mb-2">
<label for="papelSobrecubierta" class="form-label">Tipo de papel</label>
<select id="papelSobrecubierta" name="papelSobrecubierta" class="form-control select2bs2" style="width: 100%;">
<?php if (isset($datosPresupuesto->papelSobrecubierta) && is_array($datosPresupuesto->papelSobrecubierta) && !empty($datosPresupuesto->papelSobrecubierta)) :
foreach ($datosPresupuesto->papelSobrecubierta as $k => $v) : ?>
<option value="<?= $v->id ?>">
<?= $v->nombre ?>
</option>
<?php endforeach;
endif; ?>
</select>
</div>
<div class="col-sm-2 mb-md-0 mb-2">
<label for="gramajeSobrecubierta" class="form-label">Gramaje (g/m2)</label>
<select id="gramajeSobrecubierta" name="gramajeSobrecubierta" class="form-control select2bs2" style="width: 100%;">
</select>
</div>
</div>
<h6 class="sobrecubierta enable-sobrecubierta"> Opciones extra </h6>
<div class="row sobrecubierta enable-sobrecubierta">
<div class="col-sm-3 mb-md-0 mb-2">
<div class="form-check form-switch mb-2">
<input class="form-check-input" type="checkbox" id="solapasSobrecubierta" name="solapasSobrecubierta" value="0">
<label class="form-check-label" for="solapasSobrecubierta">Solapas sobrecubierta</label>
</div>
</div>
<div id="tamanioSolapasSobrecubierta" class="col-sm-3 mb-md-0 mb-2" style="display: none;">
<label for="anchoSolapasSobrecubierta" class="form-label">Tamaño</label>
<input type="number" id="anchoSolapasSobrecubierta" name="anchoSolapasSobrecubierta" maxLength="8" step="1" class="form-control" value="">
</div>
</div>
<div class="row sobrecubierta enable-sobrecubierta">
<div class="col-sm-4 mb-md-0 mb-2">
<label for="acabadosSobrecubierta" class="form-label">Acabados cubierta</label>
<select id="acabadosSobrecubierta" name="acabadosSobrecubierta" class="form-control select2bs2" style="width: 100%;">
<?php if (isset($datosPresupuesto->acabadosSobrecubierta) && is_array($datosPresupuesto->acabadosSobrecubierta) && !empty($datosPresupuesto->acabadosSobrecubierta)) :
foreach ($datosPresupuesto->acabadosSobrecubierta as $acabado) : ?>
<option value="<?= $acabado->id ?>" <?= $acabado->id == $presupuestoEntity->acabado_sobrecubierta_id ? ' selected' : '' ?>>
<?= $acabado->label ?>
</option>
<?php endforeach;
endif; ?>
</select>
</div>
</div>
<!--SECCION DE GUARDAS -->
<div class="divider divider-dark text-start mb-1 guardas">
<div class="divider-text">
<h5>Guardas</h5>
</div>
</div>
<div class="row guardas">
<div class="col-sm-4 mb-md-0 mb-2">
<label for="impresionGuardas" class="form-label">Impresión de guardas</label>
<select id="impresionGuardas" name="impresionGuardas" class="form-control select2bs2 comp_guardas_items" style="width: 100%;">
<option value="0">
<p><?= lang('Presupuestos.sinImpresion') ?></p>
</option>
<option value="4">
<p><?= lang('Presupuestos.unaCara') ?></p>
</option>
<option value="8">
<p><?= lang('Presupuestos.dosCaras') ?></p>
</option>
</select>
</div>
</div>
<div class="row guardas">
<div class="col-sm-4 mb-md-0 mb-2">
<label for="papelGuardas" class="form-label">Tipo de papel</label>
<select id="papelGuardas" name="papelGuardas" class="form-control select2bs2" style="width: 100%;">
<?php if (isset($datosPresupuesto->papelGuardas) && is_array($datosPresupuesto->papelGuardas) && !empty($datosPresupuesto->papelGuardas)) :
foreach ($datosPresupuesto->papelGuardas as $k => $v) : ?>
<option value="<?= $v->id ?>">
<?= $v->nombre ?>
</option>
<?php endforeach;
endif; ?>
</select>
</div>
</div>
<!--SECCION DE SERVICIOS EXTRA -->
<div class="divider divider-dark text-start mb-1">
<div class="divider-text">
<h5>Servicios Extra</h5>
</div>
</div>
<div class="row">
<div class="col-md-12 col-lg-3 px-4">
<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" <?= $presupuestoEntity->retractilado == true ? 'checked' : ''; ?>>
<?= lang('Presupuestos.retractilado') ?>
</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" <?= $presupuestoEntity->retractilado5 == true ? 'checked' : ''; ?>>
<?= 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="fajaColor" class="form-check-label">
<input type="checkbox" id="fajaColor" name="faja_color" value="1" class="form-check-input" <?= $presupuestoEntity->faja_color == true ? 'checked' : ''; ?>>
<?= lang('Presupuestos.fajaColor') ?>
</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" <?= $presupuestoEntity->prototipo == true ? 'checked' : ''; ?>>
<?= lang('Presupuestos.prototipo') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<div class="mb-3">
</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" <?= $presupuestoEntity->ferro == true ? 'checked' : ''; ?>>
<?= 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" <?= $presupuestoEntity->ferro_digital == true ? 'checked' : ''; ?>>
<?= 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" <?= $presupuestoEntity->marcapaginas == true ? 'checked' : ''; ?>>
<?= lang('Presupuestos.marcapaginas') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!--//.col -->
</div><!--//.row -->
</div><!--//.col -->
</div>
<?= $this->section("additionalInlineJs") ?>
window.routes_disenio_libro = {
obtenerGramaje: "<?=route_to('obtenerGramaje') ?>",
}
window.routes_disenio_libro = {
obtenerGramaje: "<?= route_to('obtenerGramaje') ?>",
}
<?= $this->endSection() ?>

View File

@ -2,25 +2,25 @@
<div class="row g-2 d-flex justify-content-center">
<div class="col-md-4 mb-md-0 mb-2">
<div class="form-check checked custom-option-tipo custom-option custom-option-image custom-option-image-radio">
<div id="cosidoDiv" class="form-check checked custom-option-tipo custom-option custom-option-image custom-option-image-radio">
<label class="form-check-label custom-option-content" for="tipoCosido">
<span class="custom-option-body">
<img src="<?= site_url("assets/img/libro_cosido.jpeg") ?>" alt="radioImg">
</span>
</label>
<input name="cosido" class="form-check-input" type="radio" value="tipoCosido" id="tipoCosido" checked="checked">
<input name="cosido" class="form-check-input elementos-libro" type="radio" value="tipoCosido" id="tipoCosido" checked="">
</div>
<h5 class="text-center">Libro cosido</h5>
</div>
<div class="col-md-4 mb-md-0 mb-2">
<div class="form-check custom-option-tipo custom-option custom-option-image custom-option-image-radio">
<div id="fresadoDiv" class="form-check custom-option-tipo custom-option custom-option-image custom-option-image-radio">
<label class="form-check-label custom-option-content" for="tipoFresado">
<span class="custom-option-body">
<img src="<?= site_url("assets/img/libro_fresado.jpeg") ?>" alt="radioImg2">
</span>
</label>
<input name="fresado" class="form-check-input" type="radio" value="tipoFresado" id="tipoFresado" checked="">
<input name="fresado" class="form-check-input elementos-libro" type="radio" value="tipoFresado" id="tipoFresado" >
</div>
<h5 class="text-center">Libro fresado</h5>
</div>
@ -32,31 +32,31 @@
<img src="<?= site_url("assets/img/libro_grapado.jpeg") ?>" alt="radioImg3">
</span>
</label>
<input name="grapado" class="form-check-input" type="radio" value="tipoGrapado" id="tipoGrapado" checked="">
<input name="grapado" class="form-check-input elementos-libro" type="radio" value="tipoGrapado" id="tipoGrapado" >
</div>
<h5 class="text-center">Libro grapado</h5>
</div>
<div class="col-md-4 mb-md-0 mb-2">
<div class="form-check custom-option-tipo custom-option custom-option-image custom-option-image-radio">
<div id="espiralDiv" class="form-check custom-option-tipo custom-option custom-option-image custom-option-image-radio">
<label class="form-check-label custom-option-content" for="tipoEspiral">
<span class="custom-option-body">
<img src="<?= site_url("assets/img/libro_espiral.jpeg") ?>" alt="radioImg4">
</span>
</label>
<input name="espiral" class="form-check-input" type="radio" value="tipoEspiral" id="tipoEspiral" checked="">
<input name="espiral" class="form-check-input elementos-libro" type="radio" value="tipoEspiral" id="tipoEspiral" >
</div>
<h5 class="text-center">Libro espiral</h5>
</div>
<div class="col-md-4 mb-md-0 mb-2">
<div class="form-check custom-option-tipo custom-option custom-option-image custom-option-image-radio">
<div id="wireoDiv" class="form-check custom-option-tipo custom-option custom-option-image custom-option-image-radio">
<label class="form-check-label custom-option-content" for="tipoWireO">
<span class="custom-option-body">
<img src="<?= site_url("assets/img/libro_wire-o.jpeg") ?>" alt="radioImg5">
</span>
</label>
<input name="wireo" class="form-check-input" type="radio" value="tipoWireO" id="tipoWireO" checked="">
<input name="wireo" class="form-check-input elementos-libro" type="radio" value="tipoWireO" id="tipoWireO">
</div>
<h5 class="text-center">Libro espiral</h5>
</div>

View File

@ -40,7 +40,7 @@ function updateTapaCheck(el)
})
}
el.closest('.custom-option-tapa').classList.add('checked')
if(el.closest('.custom-option-tapa').id == 'tapaBlandaDiv') {
if(el.closest('.custom-option-tapa').id == 'tapaBlandaInnerDiv') {
$('#tapaBlanda').prop('checked', true);
$('#tapaDura').prop('checked', false);
}
@ -136,22 +136,42 @@ function updateCalidadCheck(el)
}
}
$('#enableSobrecubierta').on('change', function() {
if ($(this).is(":checked")) {
$('.enable-sobrecubierta').show();
} else {
$('.enable-sobrecubierta').hide();
}
});
function initDisenioLibro(){
initTapaCheck();
initColorCheck();
initCalidadCheck();
updatePapelInterior();
$('.elementos-libro').trigger('change');
$('.change-tipo-impresion').trigger('change');
$('#papelInterior').trigger('change');
$('#papelCubierta').trigger('change');
if($('#enableSobrecubierta').prop('checked')){
$('#papelSobrecubierta').trigger('change');
}
}
$('.change-papel-interior ').on('change', updatePapelInterior)
function updatePapelInterior() {
$('.change-tipo-impresion').on('change', function () {
isColor = $('#colorNegroDiv').hasClass('checked') ? false : true;
isHq = $('#calidadEstandarDiv').hasClass('checked') ? false : true;
//si es color hay que mostrar el numero de paginas a color
if(isColor){
$('#pagColorDiv').show();
}
else{
$('#pagColorDiv').hide();
}
var data = [];
if(!isColor && !isHq) {
@ -173,9 +193,22 @@ function updatePapelInterior() {
dropdown.append($("<option />").val(this.id).text(this.nombre));
});
//Se quita la seleccion del dropdown
dropdown.val('').trigger('change');
//dropdown.val('').trigger('change');
});
$('#tirada').on('change', function() {
const valInterior = $('#gramajeInterior option:selected').val();
const valCubierta = $('#gramajeCubierta option:selected').val();
const valSobrecubierta = $('#gramajeSobrecubierta option:selected').val();
$('#papelInterior').trigger('change');
$('#papelCubierta').trigger('change');
$('#papelSobrecubierta').trigger('change');
});
}
$('#papelInterior').on('change', function() {
isColor = $('#colorNegroDiv').hasClass('checked') ? false : true;
@ -196,7 +229,6 @@ $('#papelInterior').on('change', function() {
else if(isColor && isHq) {
uso = 'colorhq';
}
merma = calcular_mermas();
datos = {
tirada: $('#tirada').val(),
merma: calcular_mermas(),
@ -205,17 +237,113 @@ $('#papelInterior').on('change', function() {
};
datos = Object.assign(datos, window.token_ajax)
const valInterior = $('#gramajeInterior option:selected').val();
$.ajax({
url: window.routes_disenio_libro.obtenerGramaje,
type: 'POST',
data: datos,
success: function(response) {
console.log(response);
var data = JSON.parse(response);
//$('#papelInteriorGramaje').val(data.gramaje);
$('#gramajeInterior').empty();
$(response.menu).each(function( index, element ) {
$('#gramajeInterior').append($("<option />").val(element.id).text(element.text));
});
if(valInterior != undefined)
$('#gramajeInterior option[value='+valInterior + ']').prop('selected', true).trigger('change');
}
});
}
});
$('#papelCubierta').on('change', function() {
isColor = true;
isHq = true;
if($('#papelCubierta option:selected').val() != undefined){
var uso = 'colorhq';
datos = {
tirada: $('#tirada').val(),
merma: calcular_mermas(),
uso: uso,
papel: $('#papelCubierta option:selected').text()
};
datos = Object.assign(datos, window.token_ajax)
const valCubierta = $('#gramajeCubierta option:selected').val();
$.ajax({
url: window.routes_disenio_libro.obtenerGramaje,
type: 'POST',
data: datos,
success: function(response) {
$('#gramajeCubierta').empty();
$(response.menu).each(function( index, element ) {
$('#gramajeCubierta').append($("<option />").val(element.id).text(element.text));
});
if(valCubierta != undefined)
$('#gramajeCubierta option[value='+ valCubierta + ']').prop('selected', true).trigger('change');
}
});
}
});
$('#papelSobrecubierta').on('change', function() {
isColor = true;
isHq = true;
if($('#papelSobrecubierta option:selected').val() != undefined){
var uso = 'colorhq';
datos = {
tirada: $('#tirada').val(),
merma: calcular_mermas(),
uso: uso,
papel: $('#papelSobrecubierta option:selected').text()
};
datos = Object.assign(datos, window.token_ajax)
const valSobrecubierta = $('#gramajeSobrecubierta option:selected').val();
$.ajax({
url: window.routes_disenio_libro.obtenerGramaje,
type: 'POST',
data: datos,
success: function(response) {
$('#gramajeSobrecubierta').empty();
$(response.menu).each(function( index, element ) {
$('#gramajeSobrecubierta').append($("<option />").val(element.id).text(element.text));
});
if(valSobrecubierta != undefined)
$('#gramajeSobrecubierta option[value='+ valCubierta + ']').prop('selected', true).trigger('change');
}
});
}
});
$('#solapasCubierta').on('change', function() {
if ($(this).is(":checked")) {
$('#tamanioSolapasCubierta').show();
} else {
$('#tamanioSolapasCubierta').hide();
}
});
$('#solapasSobrecubierta').on('change', function() {
if ($(this).is(":checked")) {
$('#tamanioSolapasSobrecubierta').show();
} else {
$('#tamanioSolapasSobrecubierta').hide();
}
});

View File

@ -5,7 +5,7 @@
'use strict';
(function () {
// Init custom option check
//window.Helpers.initCustomOptionCheck();
@ -32,24 +32,28 @@
// Deal Type
const FormValidation1 = FormValidation.formValidation(clientePresupuestoWizardFormStep1, {
fields: {
dealAmount: {
titulo: {
validators: {
notEmpty: {
message: 'Please enter amount'
message: window.Presupuestos.validation.requerido_short
},
numeric: {
message: 'The amount must be a number'
}
},
clienteId: {
validators: {
callback: {
message: window.Presupuestos.validation.cliente,
callback: function (input) {
// Get the selected options
const options = $("#clienteId").select2('data');
const hasValidOption = options.some(option => parseInt(option.id) > 0);
return options !== null && options.length > 0 && hasValidOption;
},
}
}
},
dealRegion: {
validators: {
notEmpty: {
message: 'Please select region'
}
}
}
},
plugins: {
@ -68,48 +72,16 @@
validationStepper.next();
});
// select2 (Region)
const dealRegion = $('#dealRegion');
if (dealRegion.length) {
dealRegion.wrap('<div class="position-relative"></div>');
dealRegion
.select2({
placeholder: 'Select an region',
dropdownParent: dealRegion.parent()
})
.on('change.select2', function () {
// Revalidate the region field when an option is chosen
FormValidation1.revalidateField('dealRegion');
});
}
// select2 (clienteId)
const clienteId = $('#clienteId');
clienteId.on('change.select2', function () {
// Revalidate the clienteId field when an option is chosen
FormValidation1.revalidateField('clienteId');
});
// Deal Details
const FormValidation2 = FormValidation.formValidation(clientePresupuestoWizardFormStep2, {
fields: {
// * Validate the fields here based on your requirements
dealTitle: {
validators: {
notEmpty: {
message: 'Please enter deal title'
}
}
},
dealCode: {
validators: {
notEmpty: {
message: 'Please enter deal code'
},
stringLength: {
min: 4,
max: 10,
message: 'The deal code must be more than 4 and less than 10 characters long'
},
regexp: {
regexp: /^[A-Z0-9]+$/,
message: 'The deal code can only consist of capital alphabetical and number'
}
}
}
},
plugins: {
trigger: new FormValidation.plugins.Trigger(),
@ -117,7 +89,7 @@
// Use this for enabling/changing valid/invalid class
// eleInvalidClass: '',
eleValidClass: '',
rowSelector: '.col-sm-6'
rowSelector: '.col-sm-3'
}),
autoFocus: new FormValidation.plugins.AutoFocus(),
submitButton: new FormValidation.plugins.SubmitButton()
@ -127,25 +99,106 @@
validationStepper.next();
});
// select2 (Offered Item)
const dealOfferedItem = $('#dealOfferedItem');
if (dealOfferedItem.length) {
dealOfferedItem.wrap('<div class="position-relative"></div>');
dealOfferedItem
.select2({
placeholder: 'Select an offered item',
dropdownParent: dealOfferedItem.parent()
})
.on('change.select2', function () {
// Revalidate the field if needed when an option is chosen
// FormValidation2.revalidateField('dealOfferedItem');
});
}
// Deal Usage
const FormValidation3 = FormValidation.formValidation(clientePresupuestoWizardFormStep3, {
fields: {
// * Validate the fields here based on your requirements
tirada: {
validators: {
callback: {
message: window.Presupuestos.validation.integer_greatherThan_0,
callback: function (input) {
const value = $("#tirada").val();
return value.length > 0 && Number.isInteger(parseInt(value)) && parseInt(value) > 0;
},
}
}
},
paginas: {
validators: {
callback: {
message: window.Presupuestos.validation.integer_greatherThan_0,
callback: function (input) {
const value = $("#paginas").val();
return value.length > 0 && Number.isInteger(parseInt(value)) && parseInt(value) > 0;
},
}
}
},
paginasColor: {
validators: {
callback: {
message: window.Presupuestos.validation.integer_greatherThan_0,
callback: function (input) {
if ($('#pagColorDiv').is(':hidden'))
return true;
else {
const value = $("#paginasColor").val();
return value.length > 0 && Number.isInteger(parseInt(value)) && parseInt(value) > 0;
}
},
}
}
},
gramajeInterior: {
validators: {
callback: {
message: window.Presupuestos.validation.tirada_no_valida,
callback: function (input) {
const value = $("#tirada").val();
if ($('#gramajeInterior option:selected').text().length == 0) {
return value.length > 0 && Number.isInteger(parseInt(value)) && parseInt(value) > 0;
}
return true;
},
},
callback: {
message: window.Presupuestos.validation.sin_gramaje,
callback: function (input) {
if ($('#gramajeInterior option:selected').text().length == 0) {
return false;
}
return true;
},
}
}
},
gramajeCubierta: {
validators: {
callback: {
message: window.Presupuestos.validation.tirada_no_valida,
callback: function (input) {
const value = $("#tirada").val();
if ($('#gramajeCubierta option:selected').text().length == 0) {
return value.length > 0 && Number.isInteger(parseInt(value)) && parseInt(value) > 0;
}
return true;
},
},
callback: {
message: window.Presupuestos.validation.sin_gramaje,
callback: function (input) {
if ($('#gramajeCubierta option:selected').text().length == 0) {
return false;
}
return true;
},
}
}
},
gramajeSobrecubierta: {
validators: {
callback: {
message: window.Presupuestos.validation.tirada_no_valida,
callback: function (input) {
const value = $("#tirada").val();
if ($('#gramajeSobrecubierta option:selected').text().length == 0) {
return value.length > 0 && Number.isInteger(parseInt(value)) && parseInt(value) > 0;
}
return true;
},
}
}
},
},
plugins: {
trigger: new FormValidation.plugins.Trigger(),
@ -153,7 +206,19 @@
// Use this for enabling/changing valid/invalid class
// eleInvalidClass: '',
eleValidClass: '',
rowSelector: '.col-sm-6'
rowSelector: function (field, ele) {
// field is the field name
// ele is the field element
switch (field) {
case 'gramajeInterior':
case 'gramajeCubierta':
case 'gramajeSobrecubierta':
return '.col-sm-2';
default:
return '.col-sm-3';
}
}
}),
autoFocus: new FormValidation.plugins.AutoFocus(),
submitButton: new FormValidation.plugins.SubmitButton()
@ -162,10 +227,18 @@
validationStepper.next();
});
const tirada = $('#tirada');
tirada.on('change', function () {
// Revalidate the clienteId field when an option is chosen
FormValidation1.revalidateField('gramajeInterior');
FormValidation1.revalidateField('gramajeCubierta');
FormValidation1.revalidateField('gramajeSobrecubierta');
});
// Deal Usage
const FormValidation4 = FormValidation.formValidation(clientePresupuestoWizardFormStep4, {
fields: {
// * Validate the fields here based on your requirements
},
plugins: {
trigger: new FormValidation.plugins.Trigger(),
@ -179,11 +252,7 @@
submitButton: new FormValidation.plugins.SubmitButton()
}
}).on('core.form.valid', function () {
// You can submit the form
// clientePresupuestoWizardForm.submit()
// or send the form data to server via an Ajax request
// To make the demo simple, I just placed an alert
alert('Submitted..!!');
validationStepper.next();
});
// Deal Usage
@ -243,6 +312,10 @@
clientePresupuestoWizardPrev.forEach(item => {
item.addEventListener('click', event => {
switch (validationStepper._currentIndex) {
case 4:
validationStepper.previous();
break;
case 3:
validationStepper.previous();
break;
@ -265,50 +338,232 @@
}
})();
function calcular_mermas(){
$('.elementos-libro').on('change', function () {
// Libro cosido
if ($('#cosidoDiv').hasClass('checked')) {
$('#tituloDisenioLibro').text("Libro cosido");
if ($('#tapaBlandaInnerDiv').hasClass('checked')) {
// Cosido tapa blanda
$('.guardas').hide();
$('.solapas-cubierta').show();
$('.sobrecubierta').show();
}
else {
// Cosido tapa dura
$('.guardas').show();
numCarasGuardas(2);
$('.solapas-cubierta').hide();
$('.sobrecubierta').show();
}
}
// Libro fresado
else if ($('#fresadoDiv').hasClass('checked')) {
$('#tituloDisenioLibro').text("Libro fresado");
if ($('#tapaBlandaInnerDiv').hasClass('checked')) {
// fresado tapa blanda
$('.guardas').hide();
$('.solapas-cubierta').show();
$('.sobrecubierta').show();
}
else {
// fresado tapa dura
$('.guardas').show();
numCarasGuardas(2);
$('.solapas-cubierta').hide();
$('.sobrecubierta').show();
}
}
// Libro grapado
else if ($('#grapadoDiv').hasClass('checked')) {
$('#tituloDisenioLibro').text("Libro grapado");
if ($('#tapaBlandaInnerDiv').hasClass('checked')) {
// grapado tapa blanda
$('.guardas').hide();
$('.solapas-cubierta').show();
$('.sobrecubierta').hide();
}
}
// Libro wire-o
else if ($('#wireoDiv').hasClass('checked')) {
$('#tituloDisenioLibro').text("Libro Wire-O");
if ($('#tapaBlandaInnerDiv').hasClass('checked')) {
// wire-o tapa blanda
$('.guardas').hide();
$('.solapas-cubierta').show();
$('.sobrecubierta').hide();
$('#enableSobrecubierta').prop('checked', false);
}
else {
// wire-o tapa dura
$('.guardas').show();
numCarasGuardas(1);
$('.solapas-cubierta').hide();
$('.sobrecubierta').hide();
$('#enableSobrecubierta').prop('checked', false);
}
}
// Libro espiral
else if ($('#espiralDiv').hasClass('checked')) {
$('#tituloDisenioLibro').text("Libro espiral");
if ($('#tapaBlandaInnerDiv').hasClass('checked')) {
// espiral tapa blanda
$('.guardas').hide();
$('.solapas-cubierta').show();
$('.sobrecubierta').hide();
$('#enableSobrecubierta').prop('checked', false);
}
else {
// espiral tapa dura
$('.espiral').show();
numCarasGuardas(1);
$('.solapas-cubierta').hide();
$('.sobrecubierta').hide();
$('#enableSobrecubierta').prop('checked', false);
}
}
});
function numCarasGuardas(numCaras) {
if (numCaras == 1) {
$("#impresionGuardas option[value='8']").remove();
}
else {
if ($("#impresionGuardas option[value='8']").length == 0)
$("#impresionGuardas").append('<option value="8">' + window.Presupuestos.dosCaras + '</option>');
}
}
function calcular_mermas() {
const tirada = parseInt($('#tirada').val())
var merma = 0
if(tirada> window.datosPresupuesto.POD ){
merma = tirada*0.1<=30 ? tirada*0.1 : 30
if (tirada > window.datosPresupuesto.POD) {
merma = tirada * 0.1 <= 30 ? tirada * 0.1 : 30
}
else{
/*merma_lineas = []
tableLineasPresupuesto.rows().every( function ( rowIdx, tableLoop, rowLoop ) {
var rowData = this.data();
if(rowData.row_id != 'lp_guardas' && rowData.row_id != 'lp_cubierta' && rowData.row_id != 'lp_sobrecubierta'){
const formas_linea = parseInt($('#isCosido').val())==0?parseInt(rowData.formas):parseInt(rowData.formas)/2
if(formas_linea > tirada)
merma_lineas.push(formas_linea-tirada)
else
merma_lineas.push(tirada%formas_linea)
}
})
else {
/*merma_lineas = []
tableLineasPresupuesto.rows().every( function ( rowIdx, tableLoop, rowLoop ) {
var rowData = this.data();
if(rowData.row_id != 'lp_guardas' && rowData.row_id != 'lp_cubierta' && rowData.row_id != 'lp_sobrecubierta'){
const formas_linea = parseInt($('#isCosido').val())==0?parseInt(rowData.formas):parseInt(rowData.formas)/2
if(formas_linea > tirada)
merma_lineas.push(formas_linea-tirada)
else
merma_lineas.push(tirada%formas_linea)
}
})
if(merma_lineas.length>0)
merma = Math.max(...merma_lineas)
if(merma_lineas.length>0)
merma = Math.max(...merma_lineas)
else{
htmlString = `
<div class="alert alert-warning d-flex align-items-baseline" role="alert">
<span class="alert-icon alert-icon-lg text-primary me-2">
<i class="ti ti-bell ti-sm"></i>
</span>
<div class="d-flex flex-column ps-1">
<h5 class="alert-heading mb-2">` +
window.Presupuestos.validation.no_lp_for_merma +
`</h5>
</div>
</div>`;
else{
htmlString = `
<div class="alert alert-warning d-flex align-items-baseline" role="alert">
<span class="alert-icon alert-icon-lg text-primary me-2">
<i class="ti ti-bell ti-sm"></i>
</span>
<div class="d-flex flex-column ps-1">
<h5 class="alert-heading mb-2">` +
window.Presupuestos.validation.no_lp_for_merma +
`</h5>
</div>
</div>`;
merma = 0
}*/
}
merma = 0
}
}*/
}
return merma;
}
function getDimensionLibro() {
var ancho = 0;
var alto = 0;
if ($('#papelFormatoId').select2('data').length > 0) {
if ($('#papelFormatoId').select2('data')[0].id.length > 0) {
ancho = parseFloat($('#papelFormatoId').select2('data')[0].text.trim().split(" x ")[0]);
alto = parseFloat($('#papelFormatoId').select2('data')[0].text.trim().split(" x ")[1]);
}
else if (document.getElementById('papelFormatoPersonalizado').checked) {
ancho = parseFloat(document.getElementById('papelFormatoAncho').value);
alto = parseFloat(document.getElementById('papelFormatoAlto').value);
}
}
else if (document.getElementById('papelFormatoPersonalizado').checked) {
ancho = parseFloat(document.getElementById('papelFormatoAncho').value);
alto = parseFloat(document.getElementById('papelFormatoAlto').value);
}
return {
ancho: ancho,
alto: alto
}
}
function getTiradas() {
let tiradas = [];
tiradas.push(parseInt($('#tirada').val()));
if($('#tirada2').val().length > 0 && parseInt($('#tirada2').val()) > 0)
tiradas.push(parseInt($('#tirada2').val()));
if($('#tirada3').val().length > 0 && parseInt($('#tirada3').val()) > 0)
tiradas.push(parseInt($('#tirada3').val()));
if($('#tirada4').val().length > 0 && parseInt($('#tirada4').val()) > 0)
tiradas.push(parseInt($('#tirada4').val()));
return tiradas;
}
function checkPresupuestoData(){
if(
$('#clienteId').val().length > 0 &&
$('#paginas').val().length > 0 &&
$('#tirada').val().length > 0 &&
$('#papelInterior').val().length > 0 &&
$('#gramajeInterior').val().length > 0 &&
$('#papelCubierta').val().length > 0 &&
$('#gramajeCubierta').val().length > 0
){
return true;
}
return false;
}
function obtenerDatos() {
if(!checkPresupuestoData()){
return;
}
libro = getDimensionLibro();
let data = {
clienteId: $('#clienteId').val(),
ancho: libro.ancho,
alto: libro.alto,
paginas: parseInt($('#paginas').val()),
tiradas: getTiradas(),
papelInterior: $('#papelInterior').val(),
gramajeInterior: $('#gramajeInterior').val(),
papelCubierta: $('#papelCubierta').val(),
gramajeCubierta: $('#gramajeCubierta').val(),
carasCubierta: $('#carasCubierta').val(),
acabadoCubierta: $('#acabadoCubiertaId').val(),
solapasCubierta: $('#solapasCubierta').is(':checked'),
tamanioSolapasCubierta: $('#anchoSolapasCubierta').val(),
}
}

View File

@ -27,10 +27,11 @@ function updateTipoLibroCheck(el)
}
el.closest('.custom-option-tipo').classList.add('checked')
if(el.closest('.custom-option-tipo').id == 'grapadoDiv') {
$('#tapaDiv').hide();
$('#tapaDuraDiv').hide();
$('#tapaBlanda').prop('checked', true);
}
else {
$('#tapaDiv').show();
$('#tapaDuraDiv').show();
}
} else {
el.closest('.custom-option-tipo').classList.remove('checked')
@ -49,5 +50,3 @@ function getUpdatePapelInterior() {
$('#colorInteriorDiv').hide();
}
}

View File

@ -17,7 +17,7 @@
<div id="wizard-presupuesto-cliente" class="bs-stepper vertical mt-2 linear">
<div class="bs-stepper-header">
<div class="step" data-target="#datos-generales">
<div class="step active" data-target="#datos-generales">
<button type="button" class="step-trigger" aria-selected="true">
<span class="bs-stepper-circle"><i class="ti ti-list-details ti-sm"></i></span>
<span class="bs-stepper-label">
@ -39,7 +39,7 @@
</div>
<div class="line"></div>
<div class="step active" data-target="#disenio-libro">
<div class="step" data-target="#disenio-libro">
<button type="button" class="step-trigger" aria-selected="false" disabled="disabled">
<span class="bs-stepper-circle"><i class="ti ti-book ti-sm"></i></span>
<span class="bs-stepper-label">
@ -75,11 +75,11 @@
<form id="presupuesto-cliente-form" onsubmit="return false">
<!-- Datos Generales -->
<div id="datos-generales" class="content dstepper-block fv-plugins-bootstrap5 fv-plugins-framework">
<div id="datos-generales" class="content active dstepper-block fv-plugins-bootstrap5 fv-plugins-framework">
<div class="row g-3">
<?= view("themes/backend/vuexy/form/presupuestos/cliente/_datosLibroItems") ?>
<div class="col-12 d-flex justify-content-end mt-4">
<button class="btn btn-primary btn-next waves-effect waves-light">
<span class="align-middle d-sm-inline-block d-none me-sm-1">Siguiente</span>
@ -90,10 +90,11 @@
</div>
</div>
<!-- Deal Details -->
<div id="tipo-libro" class="content fv-plugins-bootstrap5 fv-plugins-framework">
<!-- Tipo Libro -->
<div id="tipo-libro" class="content dstepper-block fv-plugins-bootstrap5 fv-plugins-framework">
<div class="row g-3">
<?= view("themes/backend/vuexy/form/presupuestos/cliente/_tipoLibroItems") ?>
<div class="col-12 d-flex justify-content-between mt-4">
@ -110,11 +111,11 @@
</div>
<!-- Diseño Libro -->
<div id="disenio-libro" class="content active fv-plugins-bootstrap5 fv-plugins-framework">
<div id="disenio-libro" class="content dstepper-block fv-plugins-bootstrap5 fv-plugins-framework">
<div class="row g-3">
<?= view("themes/backend/vuexy/form/presupuestos/cliente/_disenioLibroItems") ?>
<div class="col-12 d-flex justify-content-between mt-4">
<button class="btn btn-label-secondary btn-prev waves-effect">
<i class="ti ti-arrow-left ti-xs me-sm-1 me-0"></i>
@ -131,58 +132,9 @@
<!-- Deal Usage -->
<div id="direcciones-libro" class="content fv-plugins-bootstrap5 fv-plugins-framework">
<div class="row g-3">
<div class="col-sm-6">
<label class="form-label" for="dealUserType">User Type</label>
<select id="dealUserType" name="dealUserType" class="form-select">
<option selected="" disabled="" value="">Select user type</option>
<option value="all">All</option>
<option value="registered">Registered</option>
<option value="unregistered">Unregistered</option>
<option value="prime-members">Prime members</option>
</select>
</div>
<div class="col-sm-6">
<label class="form-label" for="dealMaxUsers">Max Users</label>
<input type="number" id="dealMaxUsers" name="dealMaxUsers" class="form-control" placeholder="500">
</div>
<div class="col-sm-6">
<label class="form-label" for="dealMinimumCartAmount">Minimum Cart Amount</label>
<input type="number" id="dealMinimumCartAmount" name="dealMinimumCartAmount" class="form-control" placeholder="$99">
</div>
<div class="col-sm-6">
<label class="form-label" for="dealPromotionalFee">Promotional Fee</label>
<input type="number" id="dealPromotionalFee" name="dealPromotionalFee" class="form-control" placeholder="$9">
</div>
<div class="col-sm-6">
<label class="form-label" for="dealPaymentMethod">Payment Method</label>
<select id="dealPaymentMethod" name="dealPaymentMethod" class="form-select">
<option selected="" disabled="" value="">Select payment method</option>
<option value="any">Any</option>
<option value="credit-card">Credit Card</option>
<option value="net-banking">Net Banking</option>
<option value="wallet">Wallet</option>
</select>
</div>
<div class="col-sm-6">
<label class="form-label" for="dealStatus">Deal Status</label>
<select id="dealStatus" name="dealStatus" class="form-select">
<option selected="" disabled="" value="">Select status</option>
<option value="active">Active</option>
<option value="inactive">Inactive</option>
<option value="suspend">Suspend</option>
<option value="abandon">Abandone</option>
</select>
</div>
<div class="col-lg-12">
<label class="switch">
<input type="checkbox" class="switch-input" id="dealLimitUser" name="dealLimitUser">
<span class="switch-toggle-slider">
<span class="switch-on"></span>
<span class="switch-off"></span>
</span>
<span class="switch-label"> Limit this discount to a single-use per customer?</span>
</label>
</div>
<div class="col-12 d-flex justify-content-between mt-4">
<button class="btn btn-label-secondary btn-prev waves-effect">
<i class="ti ti-arrow-left ti-xs me-sm-1 me-0"></i>
@ -195,83 +147,35 @@
</div>
</div>
</div>
<!-- Review & Complete -->
<div id="resumen-libro" class="content fv-plugins-bootstrap5 fv-plugins-framework">
<div class="row g-3">
<div class="col-lg-6">
<div class="row">
<div class="col-12 mb-0">
<h3>Almost done! 🚀</h3>
<p>Confirm your deal details information and submit to create it.</p>
</div>
<div class="col-12 mb-0">
<table class="table table-borderless">
<tbody>
<tr>
<td class="ps-0 align-top text-nowrap py-1"><strong>Deal Type</strong></td>
<td class="px-0 py-1">Percentage</td>
</tr>
<tr>
<td class="ps-0 align-top text-nowrap py-1"><strong>Amount</strong></td>
<td class="px-0 py-1">25%</td>
</tr>
<tr>
<td class="ps-0 align-top text-nowrap py-1"><strong>Deal Code</strong></td>
<td class="px-0 py-1">
<div class="badge bg-label-warning">25PEROFF</div>
</td>
</tr>
<tr>
<td class="ps-0 align-top text-nowrap py-1"><strong>Deal Title</strong></td>
<td class="px-0 py-1">Black friday sale, 25% OFF</td>
</tr>
<tr>
<td class="ps-0 align-top text-nowrap py-1"><strong>Deal Duration</strong></td>
<td class="px-0 py-1">
<span class="fw-semibold">2021-07-14</span> to
<span class="fw-semibold">2021-07-30</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="col-xl-6 col-lg-5 d-flex justify-content-center border rounded pt-3">
<img class="img-fluid" src="../../assets/img/illustrations/wizard-create-deal-confirm.png" alt="deal image cap">
</div>
<div class="col-md-12">
<label class="switch">
<input type="checkbox" class="switch-input" id="dealConfirmed" name="dealConfirmed">
<span class="switch-toggle-slider">
<span class="switch-on"></span>
<span class="switch-off"></span>
</span>
<span class="switch-label"> I have confirmed the deal details.</span>
</label>
</div>
<div class="col-12 d-flex justify-content-between mt-4">
<button class="btn btn-label-secondary btn-prev waves-effect">
<i class="ti ti-arrow-left ti-xs me-sm-1 me-0"></i>
<span class="align-middle d-sm-inline-block d-none">Anterior</span>
</button>
<button class="btn btn-success btn-submit btn-next waves-effect waves-light">
<span class="align-middle d-sm-inline-block d-none me-sm-1">Submit</span><i class="ti ti-check ti-xs"></i>
</button>
</div>
</div>
<div class="col-12 d-flex justify-content-between mt-4">
<button class="btn btn-label-secondary btn-prev waves-effect">
<i class="ti ti-arrow-left ti-xs me-sm-1 me-0"></i>
<span class="align-middle d-sm-inline-block d-none">Anterior</span>
</button>
<button class="btn btn-success btn-submit btn-next waves-effect waves-light">
<span class="align-middle d-sm-inline-block d-none me-sm-1">Submit</span><i class="ti ti-check ti-xs"></i>
</button>
</div>
</div>
</form>
</div>
</div>
</div><!--//.col -->
<div class="pt-4">
<input type="submit" class="btn btn-primary float-start me-sm-3 me-1" name="save" id="saveForm" value="<?= lang("Basic.global.Save") ?>" />
</div>
<input type="submit" class="btn btn-primary float-start me-sm-3 me-1" name="save" id="saveForm" value="<?= lang("Basic.global.Save") ?>" />
</div>
</div><!--//.row -->
<?= view("themes/_commonPartialsBs/_modalConfirmDialog") ?>
<?= view("themes/_commonPartialsBs/_modalMessageDialog") ?>
@ -279,10 +183,40 @@
<?= $this->endSection() ?>
<?= $this->section("additionalInlineJs") ?>
window.datosPresupuesto = <?= json_encode($datosPresupuesto) ?>;
window.token_ajax= {<?= csrf_token() ?? "token" ?>: <?= csrf_token() ?>v};
initDisenioLibro();
window.datosPresupuesto = <?= json_encode($datosPresupuesto) ?>;
window.token_ajax= {<?= csrf_token() ?? "token" ?>: <?= csrf_token() ?>v};
$('#clienteId').select2({
allowClear: false,
ajax: {
url: '<?= route_to("menuItemsOfClientes") ?>',
type: 'post',
dataType: 'json',
data: function(params) {
return {
id: 'id',
text: 'nombre',
searchTerm: params.term,
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
};
},
delay: 60,
processResults: function(response) {
yeniden(response.<?= csrf_token() ?>);
return {
results: response.menu
};
},
cache: true
}
});
initDisenioLibro();
<?= $this->endSection() ?>
@ -290,13 +224,7 @@
<?= $this->section('css') ?>
<?php
/*
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/datatables-editor/editor.dataTables.min.css') ?>">
<link rel="stylesheet" href="<?= site_url("themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.bootstrap5.min.css") ?>">
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/sk-datatables.css') ?>">
*/
?>
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/bs-stepper/bs-stepper.css') ?>" />
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/formvalidation/dist/css/formValidation.min.css') ?>" />

50766
xdebug.log

File diff suppressed because one or more lines are too long