mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
cambiando presupuesto cliente
This commit is contained in:
@ -711,16 +711,22 @@ $routes->group(
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
$routes->group(
|
$routes->group('buscadorpresupuestos', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) {
|
||||||
'buscadorpresupuestos',
|
|
||||||
['namespace' => 'App\Controllers\Presupuestos'],
|
|
||||||
function ($routes) {
|
|
||||||
$routes->get('', 'Buscador::list', ['as' => 'buscadorPresupuestosList']);
|
$routes->get('', 'Buscador::list', ['as' => 'buscadorPresupuestosList']);
|
||||||
$routes->post('datatable', 'Buscador::datatable', ['as' => 'dataTableOfBuscador']);
|
$routes->post('datatable', 'Buscador::datatable', ['as' => 'dataTableOfBuscador']);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
$routes->resource('buscadorpresupuestos', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Buscador', 'except' => 'show,new,create,update']);
|
$routes->resource('buscadorpresupuestos', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Buscador', 'except' => 'show,new,create,update']);
|
||||||
|
|
||||||
|
|
||||||
|
$routes->group('papel-formato', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
|
||||||
|
$routes->post('menuitems', 'Papelformato::menuitems', ['as' => 'menuitems']);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
$routes->resource('papel-formato', ['namespace' => 'App\Controllers\Configuracion', 'controller' => 'Papelformato', 'except' => 'show,new,create,update']);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Rutas para mensajeria */
|
/* Rutas para mensajeria */
|
||||||
$routes->group('mensajes', ['namespace' => 'App\Controllers\Mensajeria'], function ($routes) {
|
$routes->group('mensajes', ['namespace' => 'App\Controllers\Mensajeria'], function ($routes) {
|
||||||
|
|
||||||
|
|||||||
@ -244,23 +244,15 @@ class Papelformato extends \App\Controllers\BaseResourceController {
|
|||||||
|
|
||||||
public function menuItems() {
|
public function menuItems() {
|
||||||
if ($this->request->isAJAX()) {
|
if ($this->request->isAJAX()) {
|
||||||
|
$papelFormatoModel = model('App\Models\Configuracion\PapelFormatoModel');
|
||||||
$searchStr = goSanitize($this->request->getPost('searchTerm'))[0];
|
$searchStr = goSanitize($this->request->getPost('searchTerm'))[0];
|
||||||
$reqId = goSanitize($this->request->getPost('id'))[0];
|
$menu = $papelFormatoModel->getElementsForMenu2($searchStr);
|
||||||
$reqText = goSanitize($this->request->getPost('text'))[0];
|
if(empty(($searchStr)))
|
||||||
$onlyActiveOnes = false;
|
array_shift($menu);
|
||||||
$columns2select = [$reqId ?? 'id', $reqText ?? 'ancho'];
|
|
||||||
$onlyActiveOnes = false;
|
|
||||||
$menu = $this->model->getSelect2MenuItems($columns2select, $columns2select[1], $onlyActiveOnes, $searchStr);
|
|
||||||
$nonItem = new \stdClass;
|
|
||||||
$nonItem->id = '';
|
|
||||||
$nonItem->text = '- '.lang('Basic.global.None').' -';
|
|
||||||
array_unshift($menu , $nonItem);
|
|
||||||
|
|
||||||
$newTokenHash = csrf_hash();
|
|
||||||
$csrfTokenName = csrf_token();
|
|
||||||
$data = [
|
$data = [
|
||||||
'menu' => $menu,
|
'menu' => $menu,
|
||||||
$csrfTokenName => $newTokenHash
|
|
||||||
];
|
];
|
||||||
return $this->respond($data);
|
return $this->respond($data);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -44,7 +44,10 @@ return [
|
|||||||
'titulo' => 'Título',
|
'titulo' => 'Título',
|
||||||
'paisId' => 'País',
|
'paisId' => 'País',
|
||||||
'incRei' => 'Incidencia \ Reimpresión',
|
'incRei' => 'Incidencia \ Reimpresión',
|
||||||
'paginas' => 'Paginas',
|
'paginas' => 'Páginas',
|
||||||
|
'paginasNegro' => 'Páginas Negro',
|
||||||
|
'paginasColor' => 'Páginas Color',
|
||||||
|
'totalPaginas' => 'Total páginas',
|
||||||
'tirada' => 'Tirada',
|
'tirada' => 'Tirada',
|
||||||
'totalPedido' => 'Total Pedido',
|
'totalPedido' => 'Total Pedido',
|
||||||
'totalPresupuesto' => 'Total Presupuesto',
|
'totalPresupuesto' => 'Total Presupuesto',
|
||||||
|
|||||||
@ -93,4 +93,20 @@ class PapelFormatoModel extends \App\Models\BaseModel
|
|||||||
"t1.id AS id, CONCAT(t1.ancho, ' x ', t1.alto) AS tamanio"
|
"t1.id AS id, CONCAT(t1.ancho, ' x ', t1.alto) AS tamanio"
|
||||||
)->where('is_deleted', 0)->orderBy('orden_select', 'asc')->get()->getResultObject();
|
)->where('is_deleted', 0)->orderBy('orden_select', 'asc')->get()->getResultObject();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getElementsForMenu2($search = ""){
|
||||||
|
$builder = $this->db
|
||||||
|
->table($this->table . " t1")
|
||||||
|
->select(
|
||||||
|
"t1.id AS id, CONCAT(t1.ancho, ' x ', t1.alto) AS text"
|
||||||
|
)->where('is_deleted', 0)->orderBy('orden_select', 'asc');
|
||||||
|
|
||||||
|
return empty($search)
|
||||||
|
? $builder->get()->getResultObject()
|
||||||
|
: $builder
|
||||||
|
->groupStart()
|
||||||
|
->like('t1.ancho', $search)
|
||||||
|
->orLike('t1.alto', $search)
|
||||||
|
->groupEnd()->get()->getResultObject();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,94 +0,0 @@
|
|||||||
<div class="col-12 pb-2">
|
|
||||||
|
|
||||||
<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="col-sm-6 mb-3">
|
|
||||||
<label for="titulo" class="form-label">
|
|
||||||
<?=lang('Presupuestos.titulo') ?>*
|
|
||||||
</label>
|
|
||||||
<input type="text" id="titulo" name="titulo" maxLength="300" class="form-control" value="<?=old('titulo', $presupuestoEntity->titulo) ?>">
|
|
||||||
</div><!--//.mb-3 -->
|
|
||||||
|
|
||||||
<div class="col-sm-6 mb-3">
|
|
||||||
<label for="autor" class="form-label">
|
|
||||||
<?=lang('Presupuestos.autor') ?>
|
|
||||||
</label>
|
|
||||||
<input type="text" id="autor" name="autor" maxLength="150" class="form-control" value="<?=old('autor', $presupuestoEntity->autor) ?>">
|
|
||||||
</div><!--//.mb-3 -->
|
|
||||||
|
|
||||||
<div class="col-sm-6 mb-3">
|
|
||||||
<label for="coleccion" class="form-label">
|
|
||||||
<?=lang('Presupuestos.coleccion') ?>
|
|
||||||
</label>
|
|
||||||
<input type="text" id="coleccion" name="coleccion" maxLength="255" class="form-control" value="<?=old('coleccion', $presupuestoEntity->coleccion) ?>">
|
|
||||||
</div><!--//.mb-3 -->
|
|
||||||
|
|
||||||
<div class="col-sm-6 mb-3">
|
|
||||||
<label for="numeroEdicion" class="form-label">
|
|
||||||
<?=lang('Presupuestos.numeroEdicion') ?>
|
|
||||||
</label>
|
|
||||||
<input type="text" id="numeroEdicion" name="numero_edicion" maxLength="50" class="form-control" value="<?=old('numero_edicion', $presupuestoEntity->numero_edicion) ?>">
|
|
||||||
</div><!--//.mb-3 -->
|
|
||||||
|
|
||||||
|
|
||||||
<div class="col-sm-6 mb-3">
|
|
||||||
<label for="numeroEdicion" class="form-label">
|
|
||||||
<?=lang('Presupuestos.numeroEdicion') ?>
|
|
||||||
</label>
|
|
||||||
<input type="text" id="numeroEdicion" name="numero_edicion" maxLength="50" class="form-control" value="<?=old('numero_edicion', $presupuestoEntity->numero_edicion) ?>">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-sm-6 mb-3">
|
|
||||||
<label for="isbn" class="form-label">
|
|
||||||
<?=lang('Presupuestos.isbn') ?>
|
|
||||||
</label>
|
|
||||||
<input type="text" id="isbn" name="isbn" maxLength="50" class="form-control" value="<?=old('isbn', $presupuestoEntity->isbn) ?>">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-sm-6 mb-3">
|
|
||||||
<label for="paisId" class="form-label">
|
|
||||||
<?=lang('Presupuestos.paisId') ?>*
|
|
||||||
</label>
|
|
||||||
<select id="paisId" name="pais_id" class="form-control select2bs" style="width: 100%;" >
|
|
||||||
<?php foreach ($datosPresupuesto->paisList as $item) : ?>
|
|
||||||
<option value="<?=$item->id ?>"<?=$item->id==$presupuestoEntity->pais_id ? ' selected':'' ?>>
|
|
||||||
<?=$item->nombre ?>
|
|
||||||
</option>
|
|
||||||
<?php endforeach; ?>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr> <!-- Separador -->
|
|
||||||
|
|
||||||
|
|
||||||
<div class="col-sm-6 mb-3">
|
|
||||||
<label for="clienteId" class="form-label">
|
|
||||||
<?= lang('Presupuestos.clienteId') ?>*
|
|
||||||
</label>
|
|
||||||
<select id="clienteId" name="clienteId" class="form-control select2bs2" style="width: 100%;">
|
|
||||||
|
|
||||||
<?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>
|
|
||||||
<?php endforeach;
|
|
||||||
endif; ?>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="col-sm-6 mb-3">
|
|
||||||
<label for="referenciaCliente" class="form-label">
|
|
||||||
<?=lang('Presupuestos.referenciaCliente') ?>
|
|
||||||
</label>
|
|
||||||
<input type="text" id="referenciaCliente" name="referencia_cliente" maxLength="100" class="form-control" value="<?=old('referencia_cliente', $presupuestoEntity->referencia_cliente) ?>">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div><!--//.col -->
|
|
||||||
|
|
||||||
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
<div class="col-12 pb-2">
|
|
||||||
|
|
||||||
<div id="containerTiradasEnvios" class="row mb-3">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row mb-3">
|
|
||||||
|
|
||||||
<div class="col-sm-4 mb-3">
|
|
||||||
<label for="direcciones" class="form-label">Mis direcciones</label>
|
|
||||||
<select id="direcciones" name="direcciones" class="form-control select2bs2" style="width: 100%;"></select>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-2 mb-3">
|
|
||||||
<label for="unidadesEnvio" class="form-label">
|
|
||||||
Unidades
|
|
||||||
</label>
|
|
||||||
<input type="number" class="form-control" id="unidadesEnvio" name="unidadesEnvio" maxLength="8" step="1" class="form-control">
|
|
||||||
</div><!--//.mb-3 -->
|
|
||||||
<div class="col-sm-2 mb-3 mt-auto mb-0">
|
|
||||||
<button id="insertarDireccion" type="button" class="btn btn-secondary waves-effect waves-light">Insertar</button>
|
|
||||||
</div>
|
|
||||||
<div id="errorDirecciones" class="fv-plugins-message-container invalid-feedback" style="display: none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row mb-3">
|
|
||||||
<div class="col-sm-4 mb-3">
|
|
||||||
<div class="form-check form-switch mb-2">
|
|
||||||
<input class="form-check-input" type="checkbox" id="entregaPieCalle" name="entregaPieCalle" value="1">
|
|
||||||
<label class="form-check-label" for="add_entregaPieCalle"><?= lang('PresupuestosDirecciones.entregaPieCalle') ?></label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="divDirecciones" class="col-12 pb-2">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<?= $this->section("additionalInlineJs") ?>
|
|
||||||
|
|
||||||
window.direcciones = <?= json_encode($presupuestoEntity->direcciones_envio) ?>;
|
|
||||||
window.direcciones_sel_tirada = <?= json_encode($presupuestoEntity->selected_tirada) ?>;
|
|
||||||
window.routes_direcciones = {
|
|
||||||
direcciones: "<?= route_to('getDirecciones') ?>",
|
|
||||||
getDatos: "<?= route_to('getDatosDireccion') ?>",
|
|
||||||
nuevaDireccion: "<?= route_to('nuevaDireccion') ?>",
|
|
||||||
}
|
|
||||||
<?= $this->endSection() ?>
|
|
||||||
@ -1,665 +0,0 @@
|
|||||||
<div class="col-12 pb-2">
|
|
||||||
|
|
||||||
<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">
|
|
||||||
|
|
||||||
<h3 id="tituloDisenioLibro">Fresado</h3>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-12 mb-3">
|
|
||||||
<label for="titulo" class="form-label">
|
|
||||||
<?= lang('Presupuestos.titulo') ?>*
|
|
||||||
</label>
|
|
||||||
<input type="text" id="titulo" name="titulo" maxLength="300" class="form-control" value="<?= old('titulo', $presupuestoEntity->titulo) ?>">
|
|
||||||
</div><!--//.mb-3 -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-6 mb-3" <?= $clienteId != 0 && !(auth()->user()->inGroup('admin') || auth()->user()->inGroup('beta')) ?' style="display:none;"':''?>>
|
|
||||||
<label for="clienteId" class="form-label">
|
|
||||||
<?= lang('Presupuestos.clienteId') ?>*
|
|
||||||
</label>
|
|
||||||
<select id="clienteId" name="clienteId" class="form-control select2bs2" style="width: 100%;">
|
|
||||||
|
|
||||||
<?php if (isset($datosPresupuesto->clienteList) && is_array($datosPresupuesto->clienteList) && !empty($datosPresupuesto->clienteList)) :
|
|
||||||
foreach ($datosPresupuesto->clienteList as $k => $v) : ?>
|
|
||||||
<option value="<?= $k ?>" <?= $k == $clienteId ? ' selected' : '' ?>>
|
|
||||||
<?= $v ?>
|
|
||||||
</option>
|
|
||||||
<?php endforeach;
|
|
||||||
endif; ?>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="col-sm-6 mb-3">
|
|
||||||
<label for="referenciaCliente" class="form-label">
|
|
||||||
<?php if($clienteId == 0): ?>
|
|
||||||
<?= lang('Presupuestos.referenciaCliente') ?>
|
|
||||||
<?php else: ?>
|
|
||||||
<?= lang('Presupuestos.referenciaCliente2') ?>
|
|
||||||
<?php endif; ?>
|
|
||||||
</label>
|
|
||||||
<input type="text" id="referenciaCliente" name="referencia_cliente" maxLength="100" class="form-control" value="<?= old('referencia_cliente', $presupuestoEntity->referencia_cliente) ?>">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="tapaDiv" class="row mt-3">
|
|
||||||
|
|
||||||
<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
|
|
||||||
<?php echo ($datosPresupuesto->tapa == 'blanda' ? ' checked"': '"'); ?> >
|
|
||||||
<label class="form-check-label custom-option-content" for="tapaBlanda">
|
|
||||||
<input name="tapaBlanda" class="form-check-input elementos-libro calcular-presupuesto" type="radio" value="" id="tapaBlanda"
|
|
||||||
<?php echo ($datosPresupuesto->tapa == 'blanda' ? ' checked=""': ''); ?> >
|
|
||||||
<span class="custom-option-header">
|
|
||||||
<span class="h6 mb-0">Tapa blanda</span>
|
|
||||||
</span>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="tapaDuraDiv" class="col-sm-3 mb-md-0 mb-2">
|
|
||||||
<div class="form-check custom-option custom-option-tapa custom-option-basic
|
|
||||||
<?php echo ($datosPresupuesto->tapa == 'dura' ? ' checked"': '"'); ?> >
|
|
||||||
<label class="form-check-label custom-option-content" for="tapaDura">
|
|
||||||
<input name="tapaDura" class="form-check-input elementos-libro calcular-presupuesto" type="radio" value="" id="tapaDura"
|
|
||||||
<?php echo ($datosPresupuesto->tapa == 'dura' ? ' checked=""': ''); ?> >
|
|
||||||
<span class="custom-option-header">
|
|
||||||
<span class="h6 mb-0">Tapa Dura</span>
|
|
||||||
</span>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div> <!--//.row -->
|
|
||||||
|
|
||||||
<div class="divider divider-dark text-start mb-1">
|
|
||||||
<div class="divider-text">
|
|
||||||
<h5>Datos presupuesto</h5>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
|
|
||||||
<div id="errorTiradas" class="fv-plugins-message-container invalid-feedback" style="display: none;">
|
|
||||||
<div>No puede mezclar tiradas mayores de 30 unidades con tiradas menores de 30 unidades</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-3 mb-3">
|
|
||||||
<label for="tirada" class="form-label">
|
|
||||||
<?= lang('Presupuestos.tirada') ?> 1
|
|
||||||
</label>
|
|
||||||
<input type="number" class="calcular-presupuesto" 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" class="calcular-presupuesto" 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" class="calcular-presupuesto" 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" class="calcular-presupuesto" id="tirada4" name="tirada4" maxLength="8" step="1" class="form-control" value="<?= old(0, $presupuestoEntity->tirada4) ?>">
|
|
||||||
</div><!--//.mb-3 -->
|
|
||||||
</div> <!--//.row -->
|
|
||||||
|
|
||||||
</div> <!--//.row -->
|
|
||||||
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
|
|
||||||
<div class="col-sm-3 mb-3">
|
|
||||||
<label for="paginas" class="form-label">
|
|
||||||
<?= lang('Presupuestos.paginas') ?>
|
|
||||||
</label>
|
|
||||||
<input type="number" class="calcular-presupuesto" id="paginas" name="paginas" maxLength="8" step="1" class="form-control" value="<?= old(0, $presupuestoEntity->paginas) ?>">
|
|
||||||
</div><!--//.mb-3 -->
|
|
||||||
|
|
||||||
<div id="div_pagCuadernillo" class="col-sm-3 mb-3">
|
|
||||||
<label for="paginas_por_cuadernillo" class="form-label">
|
|
||||||
<?= lang('Presupuestos.paginasCuadernillo') ?>
|
|
||||||
</label>
|
|
||||||
<select id="paginasCuadernillo" name="paginas_por_cuadernillo" class="calcular-presupuesto form-control select2bs2" style="width: 100%;">
|
|
||||||
<?php if (isset($datosPresupuesto->paginasCuadernillo) && is_array($datosPresupuesto->paginasCuadernillo) && !empty($datosPresupuesto->paginasCuadernillo)) :
|
|
||||||
foreach ($datosPresupuesto->paginasCuadernillo as $value) : ?>
|
|
||||||
<option value="<?= $value ?>" <?= $value == $presupuestoEntity->paginas_por_cuadernillo ? ' selected' : '' ?>>
|
|
||||||
<?= $value ?>
|
|
||||||
</option>
|
|
||||||
<?php endforeach;
|
|
||||||
endif; ?>
|
|
||||||
</select>
|
|
||||||
</div><!--//.mb-3 -->
|
|
||||||
|
|
||||||
</div> <!--//.row -->
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
|
|
||||||
<div id="tamanioLibroDiv" class="col-sm-3 mb-3" <?= $presupuestoEntity->papel_formato_personalizado == false ? '' : 'style="display: none"'; ?>>
|
|
||||||
<label id="label_papelFormatoId" for="papelFormatoId" class="form-label">
|
|
||||||
Tamaño Libro*
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<select id="papelFormatoId" name="papel_formato_id" tabindex="3" class="form-control select2bs2 calcular-presupuesto" style="width: 100%;">
|
|
||||||
|
|
||||||
<?php if (isset($datosPresupuesto->papelFormatoList) && is_array($datosPresupuesto->papelFormatoList) && !empty($datosPresupuesto->papelFormatoList)) :
|
|
||||||
foreach ($datosPresupuesto->papelFormatoList as $formato) : ?>
|
|
||||||
<option value="<?= $formato->id ?>" <?= $formato->id == $presupuestoEntity->papel_formato_id ? ' selected' : '' ?>>
|
|
||||||
<?= $formato->tamanio ?>
|
|
||||||
</option>
|
|
||||||
<?php endforeach;
|
|
||||||
endif; ?>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="anchoLibroDiv" class="col-sm-3 mb-3" <?= $presupuestoEntity->papel_formato_personalizado == true ? '' : 'style="display: none"'; ?>>
|
|
||||||
<div class="mb-1">
|
|
||||||
<label class="form-label" for="papelFormatoAncho">Ancho Libro</label>
|
|
||||||
<input type="number" id="papelFormatoAncho" name="papel_formato_ancho" maxLength="8" step="1" class="form-control formato_libro calcular-presupuesto" value="<?= old('papel_formato_ancho', $presupuestoEntity->papel_formato_ancho) ?>">
|
|
||||||
</div><!--//.mb-3 -->
|
|
||||||
</div><!--//.col -->
|
|
||||||
|
|
||||||
<div id="altoLibroDiv" class="col-sm-3 mb-3" <?= $presupuestoEntity->papel_formato_personalizado == true ? '' : 'style="display: none"'; ?>>
|
|
||||||
<div class="mb-1">
|
|
||||||
<label class="form-label" for="papelFormatoAlto">Alto Libro</label>
|
|
||||||
<input type="number" id="papelFormatoAlto" name="papel_formato_alto" maxLength="8" step="1" class="form-control formato_libro calcular-presupuesto" value="<?= old('papel_formato_alto', $presupuestoEntity->papel_formato_alto) ?>">
|
|
||||||
</div><!--//.mb-3 -->
|
|
||||||
</div><!--//.col -->
|
|
||||||
|
|
||||||
<div class="col-sm-3 mb-3 d-flex align-items-end">
|
|
||||||
<div class="form-check form-switch mb-2">
|
|
||||||
<input class="form-check-input" type="checkbox" id="papelFormatoPersonalizado" name="papel_formato_personalizado" value="1" <?= $presupuestoEntity->papel_formato_personalizado == true ? 'checked' : ''; ?>>
|
|
||||||
<label class="form-check-label" for="papelFormatoPersonalizado"><?= lang('Presupuestos.papelFormatoPersonalizado') ?></label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div> <!--//.row -->
|
|
||||||
|
|
||||||
<div class="divider divider-dark text-start mb-1">
|
|
||||||
<div class="divider-text">
|
|
||||||
<h5>Interior</h5>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="errorInterior" class="fv-plugins-message-container invalid-feedback" style="display: none;">
|
|
||||||
<div>No existe combinación con las opciones seleccionadas. Pruebe con otro papel/gramaje</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h6> Color del interior </h6>
|
|
||||||
|
|
||||||
<div class="row-color">
|
|
||||||
<!-- Fila 1 -->
|
|
||||||
<div class="row mb-2">
|
|
||||||
<!-- Imagen 1 (Color Negro) -->
|
|
||||||
<div class="col-sm-4 offset-sm-1 d-flex flex-column align-items-center justify-content-center">
|
|
||||||
<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:150px;width:240px" src="<?= site_url('assets/img/bn.png') ?>" alt="">
|
|
||||||
</span>
|
|
||||||
</label>
|
|
||||||
<input name="colorNegro" class="form-check-input calcular-presupuesto" type="radio" value="colorNegro" id="colorNegro"
|
|
||||||
<?php echo ($datosPresupuesto->color_impresion == 'negro' ? ' checked=""': ''); ?> >
|
|
||||||
</div>
|
|
||||||
<!-- Texto alineado debajo de la imagen -->
|
|
||||||
<div>
|
|
||||||
<h6 class="mt-2 text-center">Blanco y Negro Estándar</h6>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Imagen 2 (Color Negro HQ) -->
|
|
||||||
<div class="col-sm-4 d-flex flex-column align-items-center justify-content-center">
|
|
||||||
<div id="colorNegroHqDiv" 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="colorNegroHq">
|
|
||||||
<span class="custom-option-body">
|
|
||||||
<img style="height:150px;width:240px" src="<?= site_url('assets/img/bn_hq.png') ?>" alt="">
|
|
||||||
</span>
|
|
||||||
</label>
|
|
||||||
<input name="colorNegroHq" class="form-check-input calcular-presupuesto" type="radio" value="colorNegroHq" id="colorNegroHq"
|
|
||||||
<?php echo ($datosPresupuesto->color_impresion == 'negroHq' ? ' checked=""': ''); ?> >
|
|
||||||
</div>
|
|
||||||
<!-- Texto alineado debajo de la imagen -->
|
|
||||||
<div>
|
|
||||||
<h6 class="mt-2 text-center">Blanco y Negro Premium</h6>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div> <!-- //.row -->
|
|
||||||
|
|
||||||
<!-- Fila 2 -->
|
|
||||||
<div class="row mb-2">
|
|
||||||
<!-- Imagen 3 (Color) -->
|
|
||||||
<div class="col-sm-4 offset-sm-1 d-flex flex-column align-items-center justify-content-center">
|
|
||||||
<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:150px;width:240px" src="<?= site_url('assets/img/color.png') ?>" alt="">
|
|
||||||
</span>
|
|
||||||
</label>
|
|
||||||
<input name="colorColor" class="form-check-input calcular-presupuesto" type="radio" value="colorColor" id="colorColor"
|
|
||||||
<?php echo ($datosPresupuesto->color_impresion == 'color' ? ' checked=""': ''); ?> >
|
|
||||||
</div>
|
|
||||||
<!-- Texto alineado debajo de la imagen -->
|
|
||||||
<div>
|
|
||||||
<h6 class="mt-2 text-center">Color Estándar</h6>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Imagen 4 (Color HQ) -->
|
|
||||||
<div class="col-sm-4 d-flex flex-column align-items-center justify-content-center">
|
|
||||||
<div id="colorColorHqDiv" 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="colorColorHq">
|
|
||||||
<span class="custom-option-body">
|
|
||||||
<img style="height:150px;width:240px" src="<?= site_url('assets/img/color_hq.png') ?>" alt="">
|
|
||||||
</span>
|
|
||||||
</label>
|
|
||||||
<input name="colorColorHq" class="form-check-input calcular-presupuesto" type="radio" value="colorColorHq" id="colorColorHq"
|
|
||||||
<?php echo ($datosPresupuesto->color_impresion == 'colorHq' ? ' checked=""': ''); ?> >
|
|
||||||
</div>
|
|
||||||
<!-- Texto alineado debajo de la imagen -->
|
|
||||||
<div>
|
|
||||||
<h6 class="mt-2 text-center">Color Premium</h6>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div> <!-- //.row -->
|
|
||||||
</div> <!-- //.row-color -->
|
|
||||||
|
|
||||||
<div id="pagColorDiv" class="row">
|
|
||||||
<div class="col-sm-3 mb-3">
|
|
||||||
<label for="paginasColor" class="form-label">
|
|
||||||
Páginas a color
|
|
||||||
</label>
|
|
||||||
<input type="number" class="calcular-presupuesto" id="paginasColor" name="paginasColor" maxLength="8" step="1" class="form-control" value="<?= old(0, $presupuestoEntity->paginasColor) ?>">
|
|
||||||
</div><!--//.mb-3 -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h6> Papel </h6>
|
|
||||||
<div class="row">
|
|
||||||
|
|
||||||
<div class="col-sm-4 mb-md-0 mb-2">
|
|
||||||
<label for="papelInterior" class="form-label">Tipo de papel</label>
|
|
||||||
<select id="papelInterior" name="papelInterior" class="form-control select2bs2 calcular-presupuesto" style="width: 100%;"></select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-sm-2 mb-md-0 mb-2">
|
|
||||||
<label for="gramajeInterior" class="form-label">Gramaje (g/m2)</label>
|
|
||||||
<select id="gramajeInterior" name="gramajeInterior" class="form-control select2bs2 calcular-presupuesto" style="width: 100%;">
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<h6> Opciones extra </h6>
|
|
||||||
<div class="row" <?= $clienteId != 0 ?' style="display:none;"':' '?>>
|
|
||||||
<div class="col-sm-3 mb-3 d-flex align-items-end">
|
|
||||||
<div class="form-check form-switch mb-2">
|
|
||||||
<input class="form-check-input calcular-presupuesto" type="checkbox" id="excluirRotativa" name="excluir_rotativa" value="0" <?= $presupuestoEntity->excluir_rotativa == true ? 'checked' : ''; ?>>
|
|
||||||
<label class="form-check-label" for="excluirRotativa">Excluir rotativa</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--SECCION DE CUBIERTA -->
|
|
||||||
<div class="divider divider-dark text-start mb-1">
|
|
||||||
<div class="divider-text">
|
|
||||||
<h5>Cubierta</h5>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="errorCubierta" class="fv-plugins-message-container invalid-feedback" style="display: none;">
|
|
||||||
<div>No existe combinación con las opciones seleccionadas. Pruebe con otro papel/gramaje</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h6> Papel </h6>
|
|
||||||
<div class="row">
|
|
||||||
|
|
||||||
<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 calcular-presupuesto" 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">
|
|
||||||
<label for="gramajeCubierta" class="form-label">Gramaje (g/m2)</label>
|
|
||||||
<select id="gramajeCubierta" name="gramajeCubierta" class="form-control select2bs2 calcular-presupuesto" style="width: 100%;">
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
|
|
||||||
<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 calcular-presupuesto" style="width: 100%;">
|
|
||||||
<option value="2" <?php echo $presupuestoEntity->paginas_cubierta==2?'selected':''?> >
|
|
||||||
<p><?= lang('Presupuestos.unaCara') ?></p>
|
|
||||||
</option>
|
|
||||||
<option value="4" <?php echo $presupuestoEntity->paginas_cubierta==4?'selected':''?>>
|
|
||||||
<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="solapasCubierta" name="solapasCubierta" value="0" <?= $presupuestoEntity->solapas == true ? 'checked' : ''; ?>>
|
|
||||||
<label class="form-check-label" for="solapasCubierta">Solapas cubierta</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="tamanioSolapasCubierta" class="col-sm-3 mb-md-0 mb-2" <?= $presupuestoEntity->solapas == true ? '' : '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 calcular-presupuesto" value="<?= old(0, $presupuestoEntity->solapas_ancho) ?>">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
|
|
||||||
<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 calcular-presupuesto" 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_cubierta_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 id="errorSobrecubierta" class="fv-plugins-message-container invalid-feedback" style="display: none;">
|
|
||||||
<div>No existe combinación con las opciones seleccionadas. Pruebe con otro papel/gramaje</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row 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"
|
|
||||||
<?php if (isset($presupuestoEntity->papel_sobrecubierta) && $presupuestoEntity->papel_sobrecubierta>0) :
|
|
||||||
echo 'checked';
|
|
||||||
endif; ?>
|
|
||||||
>
|
|
||||||
<label class="form-check-label" for="enableSobrecubierta">Añadir sobrecubierta</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h6 class="sobrecubierta enable-sobrecubierta"
|
|
||||||
<?php if (isset($presupuestoEntity->papel_sobrecubierta) && $presupuestoEntity->papel_sobrecubierta>0) :
|
|
||||||
echo '';
|
|
||||||
else:
|
|
||||||
echo 'style="display: none;"';
|
|
||||||
endif; ?>
|
|
||||||
> 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 calcular-presupuesto input-sobrecubierta" 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 calcular-presupuesto input-sobrecubierta" style="width: 100%;">
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h6 class="sobrecubierta enable-sobrecubierta"
|
|
||||||
<?php if (isset($presupuestoEntity->papel_sobrecubierta) && $presupuestoEntity->papel_sobrecubierta>0) :
|
|
||||||
echo '';
|
|
||||||
else:
|
|
||||||
echo 'style="display: none;"';
|
|
||||||
endif; ?>
|
|
||||||
> Opciones extra </h6>
|
|
||||||
|
|
||||||
<div class="row sobrecubierta enable-sobrecubierta"
|
|
||||||
<?php if (isset($presupuestoEntity->papel_sobrecubierta) && $presupuestoEntity->papel_sobrecubierta>0) :
|
|
||||||
echo '';
|
|
||||||
else:
|
|
||||||
echo 'style="display: none;"';
|
|
||||||
endif; ?>
|
|
||||||
>
|
|
||||||
|
|
||||||
<div id="tamanioSolapasSobrecubierta" class="col-sm-3 mb-md-0 mb-2"">
|
|
||||||
<label for="anchoSolapasSobrecubierta" class="form-label">Tamaño solapas</label>
|
|
||||||
<input type="number" id="anchoSolapasSobrecubierta" name="anchoSolapasSobrecubierta" maxLength="8" step="1" class="form-control input-sobrecubierta calcular-presupuesto" value="<?= old(0, $presupuestoEntity->solapas_ancho_sobrecubierta) ?>">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row sobrecubierta enable-sobrecubierta"
|
|
||||||
<?php if (isset($presupuestoEntity->papel_sobrecubierta) && $presupuestoEntity->papel_sobrecubierta>0) :
|
|
||||||
echo '';
|
|
||||||
else:
|
|
||||||
echo 'style="display: none;"';
|
|
||||||
endif; ?>
|
|
||||||
>
|
|
||||||
|
|
||||||
<div class="col-sm-4 mb-md-0 mb-2">
|
|
||||||
<label for="acabadosSobrecubierta" class="form-label">Acabados sobrecubierta</label>
|
|
||||||
<select id="acabadosSobrecubierta" name="acabadosSobrecubierta" class="form-control select2bs2 calcular-presupuesto" style="width: 100%;">
|
|
||||||
<?php if (isset($datosPresupuesto->acabadosSobrecubierta) && is_array($datosPresupuesto->acabadosSobrecubierta) && !empty($datosPresupuesto->acabadosSobrecubierta)) :
|
|
||||||
foreach ($datosPresupuesto->acabadosSobrecubierta as $acabado) : ?>
|
|
||||||
<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 id="errorGuardas" class="fv-plugins-message-container invalid-feedback" style="display: none;">
|
|
||||||
<div>No existe combinación con las opciones seleccionadas. Pruebe con otro papel/gramaje</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="divGuardas" 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 calcular-presupuesto" style="width: 100%;">
|
|
||||||
<option value="0"
|
|
||||||
<?php echo ((!isset($presupuestoEntity->paginas_guardas) || $presupuestoEntity->paginas_guardas==0) ? 'selected' : ''); ?>
|
|
||||||
>
|
|
||||||
<p><?= lang('Presupuestos.sinImpresion') ?></p>
|
|
||||||
</option>
|
|
||||||
<option value="4"
|
|
||||||
<?php echo ($presupuestoEntity->paginas_guardas==4 ? 'selected' : ''); ?>
|
|
||||||
>
|
|
||||||
<p><?= lang('Presupuestos.unaCara') ?></p>
|
|
||||||
</option>
|
|
||||||
<option value="8"
|
|
||||||
<?php echo ($presupuestoEntity->paginas_guardas==8 ? 'selected' : ''); ?>
|
|
||||||
>
|
|
||||||
<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 calcular-presupuesto" 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 ?>" <?php echo ($v->id==$presupuestoEntity->papel_guardas?'selected':'');?> >
|
|
||||||
<?= $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" serv_id="3" value="1" class="form-check-input servicio-extra calcular-presupuesto" <?= $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" serv_id="5" value="1" class="form-check-input servicio-extra calcular-presupuesto" <?= $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" serv_id="16" class="form-check-input servicio-extra calcular-presupuesto" <?= $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" serv_id="9" class="form-check-input servicio-extra calcular-presupuesto" <?= $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" serv_id="24" class="form-check-input servicio-extra calcular-presupuesto" <?= $presupuestoEntity->ferro == true ? 'checked' : ''; ?>>
|
|
||||||
<?= lang('Presupuestos.ferro') ?>
|
|
||||||
</label>
|
|
||||||
</div><!--//.form-check -->
|
|
||||||
</div><!--//.mb-3 -->
|
|
||||||
</div><!--//.col -->
|
|
||||||
|
|
||||||
</div><!--//.row -->
|
|
||||||
|
|
||||||
<!--SECCION DE OTRAS OPCIONES -->
|
|
||||||
<div class="divider divider-dark text-start mb-1">
|
|
||||||
<div class="divider-text">
|
|
||||||
<h5>Otras opciones</h5>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-2 mb-md-0 mb-2">
|
|
||||||
<label for="ivaReducido" class="form-label">I.V.A. reducido</label>
|
|
||||||
<select id="ivaReducido" name="ivaReducido" class="form-control select2bs2 calcular-presupuesto" style="width: 100%;">
|
|
||||||
<option value="1" <?= $presupuestoEntity->iva_reducido == 1? 'selected':''?> >
|
|
||||||
<p><?= lang('SI') ?></p>
|
|
||||||
</option>
|
|
||||||
<option value="0" <?= $presupuestoEntity->iva_reducido == 0? 'selected':''?> >
|
|
||||||
<p><?= lang('NO') ?></p>
|
|
||||||
</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p class="mt-2">Se verificará que el pedido cumpla con los requisitos establecidos en el Artículo 91 de la Ley 37/1992, sobre inserción de publicidad, antes de proceder con su producción, lo que garantiza la aplicación del IVA reducido del 4%.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div><!--//.col -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<?= $this->section("additionalInlineJs") ?>
|
|
||||||
|
|
||||||
|
|
||||||
window.datosDisenioLibro = {
|
|
||||||
papel_interior: <?php echo $presupuestoEntity->papel_interior ? $presupuestoEntity->papel_interior : 'null'; ?>,
|
|
||||||
gramaje_interior: <?php echo $presupuestoEntity->gramaje_interior ? $presupuestoEntity->gramaje_interior : 'null'; ?>,
|
|
||||||
papel_cubierta: <?php echo $presupuestoEntity->papel_cubierta ? $presupuestoEntity->papel_cubierta : 'null'; ?>,
|
|
||||||
gramaje_cubierta: <?php echo $presupuestoEntity->gramaje_cubierta ? $presupuestoEntity->gramaje_cubierta : 'null'; ?>,
|
|
||||||
papel_sobrecubierta: <?php echo $presupuestoEntity->papel_sobrecubierta ? $presupuestoEntity->papel_sobrecubierta : 'null'; ?>,
|
|
||||||
gramaje_sobrecubierta: <?php echo $presupuestoEntity->gramaje_sobrecubierta ? $presupuestoEntity->gramaje_sobrecubierta : 'null'; ?>,
|
|
||||||
}
|
|
||||||
window.routes_disenio_libro = {
|
|
||||||
obtenerGramaje: "<?= route_to('obtenerGramaje') ?>",
|
|
||||||
presupuestoCliente: "<?= route_to('presupuestoCliente') ?>",
|
|
||||||
}
|
|
||||||
<?= $this->endSection() ?>
|
|
||||||
@ -1,316 +0,0 @@
|
|||||||
<div class="col-12 pb-2">
|
|
||||||
<div class="row mb-3">
|
|
||||||
<?php if($presupuestoEntity->estado_id==2): ?>
|
|
||||||
<h2>PRESUPUESTO ACEPTADO</h2>
|
|
||||||
<input type="hidden" id="lomo_cubierta" value=<?php echo $presupuestoEntity->lomo_cubierta ?>>
|
|
||||||
<br>
|
|
||||||
<?php endif; ?>
|
|
||||||
<h3>Resumen</h3>
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<h5 class="mb-1">Libro</h5>
|
|
||||||
<p class="mb-0"><small id="tipoLibro"><?php echo (isset($presupuestoEntity->resumen->titulo)?$presupuestoEntity->resumen->titulo:'') ?></small></p>
|
|
||||||
<p class="mb-0"><small id="resumenTamanio">Tamaño: <?php echo (isset($presupuestoEntity->resumen->tamanio)?$presupuestoEntity->resumen->tamanio:'') ?></small></p>
|
|
||||||
<p class="mb-0"><small id="resumenPaginas">Número de páginas: <?php echo $presupuestoEntity->paginas ?></small></p>
|
|
||||||
<p class="mb-0"><small id="resumenTirada">Tirada: <?php echo $presupuestoEntity->tirada ?></small></p>
|
|
||||||
<p class="mb-0"><small id="resumenPrototipo">Prototipo: <?php echo ($presupuestoEntity->prototipo?'SI':'NO') ?></small></p>
|
|
||||||
<p class="mb-3"><small id="resumenFerro">Ferro: <?php echo ($presupuestoEntity->ferro?'SI':'NO') ?></small></p>
|
|
||||||
|
|
||||||
<h5 class="mb-1">Interior</h5>
|
|
||||||
<p class="mb-0"><small id="tipoImpresion">Impresion:
|
|
||||||
<?php echo (isset($presupuestoEntity->resumen->tipo_impresion)?$presupuestoEntity->resumen->tipo_impresion:'') ?>
|
|
||||||
</small></p>
|
|
||||||
<p id="pResumenPaginasColor" class="mb-0" <?php echo ($presupuestoEntity->paginasColor==0?'style="display:none"':'')?>>
|
|
||||||
<small id="resumenPaginasColor">Páginas a color: <?php echo $presupuestoEntity->paginasColor?></small></p>
|
|
||||||
<p class="mb-3"><small id="resumenPapelInterior">Papel:
|
|
||||||
<?php echo (isset($presupuestoEntity->papel_interior_nombre)?$presupuestoEntity->papel_interior_nombre:'') ?>
|
|
||||||
<?php echo (isset($presupuestoEntity->gramaje_interior)?$presupuestoEntity->gramaje_interior:'') ?>gr/m²</small></p>
|
|
||||||
|
|
||||||
<h5 class="mb-1">Cubierta</h5>
|
|
||||||
<p class="mb-0"><small id="resumenPapelCubierta">Papel:
|
|
||||||
<?php echo (isset($presupuestoEntity->papel_cubierta_nombre)?$presupuestoEntity->papel_cubierta_nombre:''); ?>
|
|
||||||
<?php echo (isset($presupuestoEntity->gramaje_cubierta)?$presupuestoEntity->gramaje_cubierta:''); ?>gr/m²</small></p>
|
|
||||||
<p class="mb-0"><small id="resumenCarasCubierta">Impresión: <?php echo ($presupuestoEntity->paginas_cubierta==2?"1 cara":"2 caras");?></small></p>
|
|
||||||
<?php if($presupuestoEntity->solapas_ancho>0 || $presupuestoEntity->estado_id==1): ?>
|
|
||||||
<p class="mb-0"><small id="resumenSolapasCubierta">Solapas: <?php echo $presupuestoEntity->solapas_ancho;?>mm</small></p>
|
|
||||||
<?php endif; ?>
|
|
||||||
<?php if($presupuestoEntity->acabado_cubierta_id>0 || $presupuestoEntity->estado_id==1): ?>
|
|
||||||
<p class="mb-3"><small id="resumenAcabadoCubierta">Acabado:
|
|
||||||
<?php if (isset($datosPresupuesto->acabadosCubierta) && is_array($datosPresupuesto->acabadosCubierta) && !empty($datosPresupuesto->acabadosCubierta)) :
|
|
||||||
foreach ($datosPresupuesto->acabadosCubierta as $acabado) :
|
|
||||||
if ($acabado->id == $presupuestoEntity->acabado_cubierta_id):
|
|
||||||
echo $acabado->label;
|
|
||||||
endif;
|
|
||||||
endforeach;
|
|
||||||
endif; ?>
|
|
||||||
</small></p>
|
|
||||||
<?php endif; ?>
|
|
||||||
|
|
||||||
<?php if($presupuestoEntity->papel_sobrecubierta || $presupuestoEntity->estado_id==1): ?>
|
|
||||||
<h5 class="mb-1 resumen-sobrecubierta">Sobrecubierta</h5>
|
|
||||||
<p class="mb-0 resumen-sobrecubierta"><small id="resumenPapelSobrecubierta">Papel:
|
|
||||||
<?php echo (isset($presupuestoEntity->papel_sobrecubierta_nombre)?$presupuestoEntity->papel_sobrecubierta_nombre:'') ?>
|
|
||||||
<?php echo (isset($presupuestoEntity->gramaje_sobrecubierta)?$presupuestoEntity->gramaje_sobrecubierta:'') ?>gr/m²</small></p>
|
|
||||||
<?php if($presupuestoEntity->solapas_ancho_sobrecubierta>0 || $presupuestoEntity->estado_id==1): ?>
|
|
||||||
<p class="mb-0 resumen-sobrecubierta"><small id="resumenSolapasCubierta">Ancho solapas: <?php echo $presupuestoEntity->solapas_ancho_sobrecubierta;?>mm</small></p>
|
|
||||||
<?php endif; ?>
|
|
||||||
<p class="mb-3 resumen-sobrecubierta"><small id="resumenAcabadoSobrecubierta">Acabado:
|
|
||||||
<?php if (isset($datosPresupuesto->acabadosSobrecubierta) && is_array($datosPresupuesto->acabadosSobrecubierta) && !empty($datosPresupuesto->acabadosSobrecubierta)) :
|
|
||||||
foreach ($datosPresupuesto->acabadosSobrecubierta as $acabado) :
|
|
||||||
if ($acabado->id == $presupuestoEntity->acabado_sobrecubierta_id):
|
|
||||||
echo $acabado->label;
|
|
||||||
endif;
|
|
||||||
endforeach;
|
|
||||||
endif; ?>
|
|
||||||
</small></p>
|
|
||||||
<?php endif; ?>
|
|
||||||
|
|
||||||
<?php if($presupuestoEntity->papel_guardas || $presupuestoEntity->estado_id==1): ?>
|
|
||||||
<h5 class="mb-1 resumen-guardas">Guardas</h5>
|
|
||||||
<p class="mb-0 resumen-guardas"><small id="resumenGuardasPapel">Papel:
|
|
||||||
<?php echo (isset($presupuestoEntity->papel_guardas_nombre)?$presupuestoEntity->papel_guardas_nombre:''); ?>
|
|
||||||
170gr/m²</small></p>
|
|
||||||
<p class="mb-3 resumen-guardas"><small id="resumenGuardasCaras">Impresión:
|
|
||||||
<?php if(!isset($presupuestoEntity->paginas_guardas) || $presupuestoEntity->paginas_guardas==0):
|
|
||||||
echo "Sin impresion";
|
|
||||||
elseif($presupuestoEntity->paginas_guardas==4):
|
|
||||||
echo "1 cara";
|
|
||||||
else:
|
|
||||||
echo "2 caras";
|
|
||||||
endif; ?></small></p>
|
|
||||||
<?php endif; ?>
|
|
||||||
|
|
||||||
<?php if($presupuestoEntity->retractiladol || $presupuestoEntity->retractilado5 || $presupuestoEntity->faja_color || $presupuestoEntity->estado_id==1): ?>
|
|
||||||
<h5 class="mb-1 resumen-extras">Extras</h5>
|
|
||||||
<?php endif; ?>
|
|
||||||
<?php if($presupuestoEntity->retractiladol): ?>
|
|
||||||
<p class="mb-0 resumen-extras" id="resumenRetractilado1"><small>Retractilado individual</small></p>
|
|
||||||
<?php elseif ($presupuestoEntity->retractilado5): ?>
|
|
||||||
<p class="mb-0 resumen-extras" id="resumenRetractilado5"><small>Retractilado de 5</small></p>
|
|
||||||
<?php elseif ($presupuestoEntity->faja_color): ?>
|
|
||||||
<p class="mb-0 resumen-extras" id="resumenFajaColor"><small>Imprimir faja a color</small></p>
|
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-sm-6">
|
|
||||||
|
|
||||||
<?php if($presupuestoEntity->estado_id==2):
|
|
||||||
$total = $presupuestoEntity->total_aceptado;
|
|
||||||
$iva = $presupuestoEntity->iva_reducido?1.04:1.21;
|
|
||||||
$total *= $iva;
|
|
||||||
$total_unidad = $presupuestoEntity->total_precio_unidad * $iva;;
|
|
||||||
echo '<h4 id="resumenTotalIVA" class="mb-1">Total: ' . round($total, 2) . '€</h4>';
|
|
||||||
echo '<h6 id="resumenPrecioU" class="mb-0">' . round($total_unidad, 4) . '€/ud</h6>'
|
|
||||||
?>
|
|
||||||
<?php else: ?>
|
|
||||||
<h4 id="resumenTotalIVA" class="mb-1">Total: 100€</h4>
|
|
||||||
<h6 id="resumenPrecioU" class="mb-0">10.4€/ud</h6>
|
|
||||||
<?php endif; ?>
|
|
||||||
<div id="shape-container">
|
|
||||||
<div id="thumbnail_ec_shape" style="width:350px;height:300px;margin:2.5% auto;"></div>
|
|
||||||
<div class="d-flex justify-content-center">
|
|
||||||
<button type="button" id="pv_details" class="btn btn-primary align-content-center"
|
|
||||||
data-bs-toggle="modal" data-bs-target="#pv_ec_modal">
|
|
||||||
Previsualizar detalles de cubierta
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<?php if($presupuestoEntity->estado_id==2):
|
|
||||||
echo '<div class="row mb-3">';
|
|
||||||
echo '<h3>Direcciones de envío</h3>';
|
|
||||||
echo '<div class="col-sm-6">';
|
|
||||||
if(isset($presupuestoEntity->direcciones_envio)):
|
|
||||||
foreach ($presupuestoEntity->direcciones_envio as $direccion):
|
|
||||||
echo '<div class="row mb-3">';
|
|
||||||
echo '<div class="col-sm-5 form-check custom-option custom-option-basic checked">';
|
|
||||||
echo '<label class="form-check-label custom-option-content">';
|
|
||||||
echo '<span class="custom-option-header mb-2">';
|
|
||||||
echo '<h6 class="fw-semibold mb-0">' . $direccion['att'] . '</h6>';
|
|
||||||
echo '<span class="badge bg-label-primary">' . $direccion['cantidad'] . ' unidades</span>';
|
|
||||||
echo '</span>';
|
|
||||||
echo '<span class="custom-option-body">';
|
|
||||||
echo '<small>' . $direccion['direccion'] . '</small><br>';
|
|
||||||
echo '<small>' . $direccion['cp'] . '</small><br>';
|
|
||||||
echo '<small>' . $direccion['municipio'] .', ' . $direccion['pais'] . '</small><br>';
|
|
||||||
echo '<small>' . $direccion['telefono'] . '</small><br>';
|
|
||||||
echo '<small>' . $direccion['email'] . '</small><br>';
|
|
||||||
if($direccion['entregaPieCalle'] == 1){
|
|
||||||
echo '<small><i>Envío en palets</i></small><br>';
|
|
||||||
}
|
|
||||||
echo '<hr class="my-2">';
|
|
||||||
echo '</span>';
|
|
||||||
echo '</label>';
|
|
||||||
echo '</div>';
|
|
||||||
echo '</div>';
|
|
||||||
endforeach;
|
|
||||||
endif;
|
|
||||||
echo '</div>';
|
|
||||||
echo '</div>';
|
|
||||||
endif; ?>
|
|
||||||
|
|
||||||
<?php if($presupuestoEntity->estado_id==2): ?>
|
|
||||||
<div class="row mb-3">
|
|
||||||
<h3>Ficheros</h3>
|
|
||||||
<div class="col-12">
|
|
||||||
<div class="dropzone needsclick" id="dropzone-multi" >
|
|
||||||
<div class="dz-message needsclick">
|
|
||||||
Arrastre aquí los ficheros o haga click
|
|
||||||
</div>
|
|
||||||
<div class="fallback">
|
|
||||||
<input name="file" type="file" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<button id="submit-all" class="btn mt-3 btn-primary btn-submit waves-effect waves-light ml-2">
|
|
||||||
<span class="align-middle d-sm-inline-block d-none me-sm-1">Actualizar ficheros</span>
|
|
||||||
<i class="ti ti-upload ti-xs"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Modal -->
|
|
||||||
<div class="modal fade" id="pv_ec_modal" tabindex="-1">
|
|
||||||
<div class="modal-dialog modal-xl modal-dialog-centered" role="document">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<h5 class="modal-title">Esquema de cubierta</h5>
|
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close">
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body" >
|
|
||||||
<div id="pv_ec_shape" style="width:850px;height:600px;margin:2.5% auto;"></div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cerrar</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<?= $this->section("additionalInlineJs") ?>
|
|
||||||
window.estado = <?= $presupuestoEntity->estado_id ?? 1?>;
|
|
||||||
window.tirada = <?= $presupuestoEntity->selected_tirada ?? 0?>;
|
|
||||||
window.total = <?= $presupuestoEntity->total_aceptado ?? 0?>;
|
|
||||||
window.total_unidad = <?= $presupuestoEntity->total_precio_unidad ?? 0 ?>;
|
|
||||||
window.routes_resumen = {
|
|
||||||
guardarPresupuesto: "<?= route_to('guardarPresupuesto') ?>",
|
|
||||||
duplicarPresupuesto: "<?= route_to('duplicarPresupuesto') ?>",
|
|
||||||
}
|
|
||||||
|
|
||||||
<?php if ($presupuestoEntity->estado_id===2): ?>
|
|
||||||
previewEsquemaCubierta(true);
|
|
||||||
|
|
||||||
const previewTemplate = `<div class="dz-preview dz-file-preview">
|
|
||||||
<div class="dz-details">
|
|
||||||
<div class="dz-thumbnail">
|
|
||||||
<!---<img data-dz-thumbnail>
|
|
||||||
<span class="dz-nopreview">No preview</span> --->
|
|
||||||
<div class="dz-success-mark"></div>
|
|
||||||
<div class="dz-error-mark"></div>
|
|
||||||
<div class="dz-error-message"><span data-dz-errormessage></span></div>
|
|
||||||
<div class="progress">
|
|
||||||
<div class="progress-bar progress-bar-primary" role="progressbar" aria-valuemin="0" aria-valuemax="100" data-dz-uploadprogress></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="dz-filename" data-dz-name></div>
|
|
||||||
<div class="dz-size" data-dz-size></div>
|
|
||||||
</div>
|
|
||||||
</div>`;
|
|
||||||
|
|
||||||
Dropzone.autoDiscover = false;
|
|
||||||
|
|
||||||
var dropzoneMulti = new Dropzone('#dropzone-multi', {
|
|
||||||
url: "<?= site_url('presupuestos/presupuestocliente/upload_files') ?>",
|
|
||||||
addRemoveLinks: true,
|
|
||||||
previewTemplate: previewTemplate,
|
|
||||||
paramName: "file",
|
|
||||||
uploadMultiple: true,
|
|
||||||
parallelUploads: 4, // Ajusta este número al máximo número de archivos que esperas subir a la vez
|
|
||||||
maxFiles: 5, // Ajusta este número al máximo número de archivos que esperas subir a la vez
|
|
||||||
autoProcessQueue: true,
|
|
||||||
dictRemoveFile: "Eliminar",
|
|
||||||
acceptedFiles: 'image/*, application/pdf',
|
|
||||||
maxFilesize: 5e+7, // Bytes
|
|
||||||
init: function() {
|
|
||||||
thisDropzone = this;
|
|
||||||
$('#loader').show();
|
|
||||||
|
|
||||||
$.ajax({
|
|
||||||
url: "<?= site_url('presupuestos/presupuestocliente/get_files') ?>",
|
|
||||||
type: 'POST',
|
|
||||||
data: { presupuesto_id: <?= $presupuestoEntity->id ?> },
|
|
||||||
|
|
||||||
}).done(function(response) {
|
|
||||||
if(response == null || response == ""){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
values = JSON.parse(response);
|
|
||||||
for(var i = 0; i < values.length; i++){
|
|
||||||
var mockFile = { name: values[i].name, size: values[i].size, hash: values[i].hash};
|
|
||||||
|
|
||||||
thisDropzone.files.push(mockFile); // add to files array
|
|
||||||
thisDropzone.emit("addedfile", mockFile);
|
|
||||||
thisDropzone.emit("thumbnail", mockFile, window.location.host + "/sistema/intranet/presupuestos/"+values[i].hash);
|
|
||||||
thisDropzone.emit("complete", mockFile);
|
|
||||||
thisDropzone.options.success.call(thisDropzone, mockFile);
|
|
||||||
};
|
|
||||||
}).always(function() {
|
|
||||||
$('#loader').hide();
|
|
||||||
});
|
|
||||||
|
|
||||||
this.on("addedfile", function (file) {
|
|
||||||
if(file.hash){
|
|
||||||
var viewButton = Dropzone.createElement("<span class='dz-remove'>Ver</span>");
|
|
||||||
file.previewElement.appendChild(viewButton);
|
|
||||||
// Listen to the view button click event
|
|
||||||
viewButton.addEventListener("click", function (e) {
|
|
||||||
|
|
||||||
window.open(window.location.protocol + "//" + window.location.host + "/sistema/intranet/presupuestos/"+file.hash, '_blank');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#presupuesto-cliente-form').submit(function(e){
|
|
||||||
e.preventDefault();
|
|
||||||
var files = dropzoneMulti.files;
|
|
||||||
$('#loader').show();
|
|
||||||
|
|
||||||
var formData = new FormData();
|
|
||||||
var oldFiles = [];
|
|
||||||
var counter = 0;
|
|
||||||
for (var i = 0; i < files.length; i++) {
|
|
||||||
|
|
||||||
if(files[i].upload){
|
|
||||||
var file = files[i];
|
|
||||||
formData.append('file[' + counter + ']', file);
|
|
||||||
counter += 1;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
oldFiles.push(files[i].name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
formData.append('oldFiles', JSON.stringify(oldFiles));
|
|
||||||
|
|
||||||
formData.append('presupuesto_id', <?= $presupuestoEntity->id ?>);
|
|
||||||
|
|
||||||
$.ajax({
|
|
||||||
url: "<?= site_url('presupuestos/presupuestocliente/upload_files') ?>",
|
|
||||||
type: 'POST',
|
|
||||||
data: formData,
|
|
||||||
processData: false, // Indicar a jQuery que no procese los datos
|
|
||||||
contentType: false // Indicar a jQuery que no establezca el tipo de contenido
|
|
||||||
}).done(function(response) {
|
|
||||||
// Aquí puedes manejar la respuesta del servidor
|
|
||||||
}).always(function() {
|
|
||||||
$('#loader').hide();
|
|
||||||
})
|
|
||||||
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
<?php endif; ?>
|
|
||||||
<?= $this->endSection() ?>
|
|
||||||
@ -1,122 +0,0 @@
|
|||||||
<div class="col-12 pb-2">
|
|
||||||
<div class="tipo_libro">
|
|
||||||
|
|
||||||
<input type="hidden" id="lomo_cubierta" value=<?php echo $presupuestoEntity->lomo_cubierta ?>>
|
|
||||||
|
|
||||||
<div class="row row-cols-3 mb-6 d-flex justify-content-center d-flex justify-content-center">
|
|
||||||
|
|
||||||
<div class="container col-md-4 mb-6 d-flex justify-content-center" style="margin-bottom: 40px;">
|
|
||||||
<div>
|
|
||||||
<div style="max-width:200px;max-height:200px;padding-right:0px" id="cosidoDiv"
|
|
||||||
class="form-check custom-option-tipo custom-option custom-option-image custom-option-image-radio
|
|
||||||
<?php
|
|
||||||
if($datosPresupuesto->tipo_libro == 'cosido' || $datosPresupuesto->tipo_libro == ''){
|
|
||||||
echo ' checked"';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo '"';
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
>
|
|
||||||
<label style="max-width:200px;max-height:200px;" class="form-check-label custom-option-content"
|
|
||||||
for="tipoCosido">
|
|
||||||
<span class="custom-option-body">
|
|
||||||
<img style="max-width:200px;max-height:200px;"
|
|
||||||
src="<?= site_url("assets/img/libro_cosido.png") ?>" alt="radioImg">
|
|
||||||
</span>
|
|
||||||
</label>
|
|
||||||
<input name="cosido" class="form-check-input elementos-libro calcular-presupuesto" type="radio" value="tipoCosido"
|
|
||||||
id="tipoCosido"
|
|
||||||
<?php
|
|
||||||
if($datosPresupuesto->tipo_libro == 'cosido' || $datosPresupuesto->tipo_libro == ''){
|
|
||||||
echo 'checked=""';
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
<h4 class="text-center">Rústica cosido</h4>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container col-md-4 mb-6 d-flex justify-content-center" style="margin-bottom: 40px;">
|
|
||||||
<div>
|
|
||||||
<div style="max-width:200px;max-height:200px;padding-right:0px" id="fresadoDiv"
|
|
||||||
class="form-check custom-option-tipo custom-option custom-option-image custom-option-image-radio
|
|
||||||
<?php echo ($datosPresupuesto->tipo_libro == 'fresado' ? ' checked"': '"'); ?> >
|
|
||||||
<label style="max-width:200px;max-height:200px;" class="form-check-label custom-option-content"
|
|
||||||
for="tipoFresado">
|
|
||||||
<span class="custom-option-body">
|
|
||||||
<img style="max-width:200px;max-height:200px;"
|
|
||||||
src="<?= site_url("assets/img/libro_fresado.png") ?>" alt="radioImg2">
|
|
||||||
</span>
|
|
||||||
</label>
|
|
||||||
<input name="fresado" class="form-check-input elementos-libro calcular-presupuesto" type="radio" value="tipoFresado"
|
|
||||||
id="tipoFresado" <?php echo (($datosPresupuesto->tipo_libro)=='fresado'? 'checked=""':''); ?> >
|
|
||||||
</div>
|
|
||||||
<h4 class="text-center">Rústica fresado</h4>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container col-md-4 mb-6 d-flex justify-content-center" style="margin-bottom: 40px;">
|
|
||||||
<div>
|
|
||||||
<div style="max-width:200px;max-height:200px;padding-right:0px" id="grapadoDiv"
|
|
||||||
class="form-check custom-option-tipo custom-option custom-option-image custom-option-image-radio
|
|
||||||
<?php echo ($datosPresupuesto->tipo_libro == 'grapado' ? ' checked"': '"'); ?> >
|
|
||||||
<label style="max-width:200px;max-height:200px;" class="form-check-label custom-option-content"
|
|
||||||
for="tipoGrapado">
|
|
||||||
<span class="custom-option-body">
|
|
||||||
<img style="max-width:200px;max-height:200px;"
|
|
||||||
src="<?= site_url("assets/img/libro_grapado.png") ?>" alt="radioImg3">
|
|
||||||
</span>
|
|
||||||
</label>
|
|
||||||
<input name="grapado" class="form-check-input elementos-libro calcular-presupuesto" type="radio" value="tipoGrapado"
|
|
||||||
id="tipoGrapado" <?php echo (($datosPresupuesto->tipo_libro)=='grapado'? 'checked=""':''); ?> >
|
|
||||||
</div>
|
|
||||||
<h4 class="text-center">Cosido con grapas</h4>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row row-cols-3 d-flex justify-content-center d-flex justify-content-center">
|
|
||||||
<div class="col-md-4 mb-6 d-flex justify-content-center">
|
|
||||||
<div>
|
|
||||||
<div style="max-width:200px;max-height:200px;padding-right:0px" id="espiralDiv"
|
|
||||||
class="form-check custom-option-tipo custom-option custom-option-image custom-option-image-radio
|
|
||||||
<?php echo ($datosPresupuesto->tipo_libro == 'espiral' ? ' checked"': '"'); ?> >
|
|
||||||
<label style="max-width:200px;max-height:200px;" class="form-check-label custom-option-content"
|
|
||||||
for="tipoEspiral">
|
|
||||||
<span class="custom-option-body">
|
|
||||||
<img style="max-width:200px;max-height:200px;"
|
|
||||||
src="<?= site_url("assets/img/libro_espiral.png") ?>" alt="radioImg4">
|
|
||||||
</span>
|
|
||||||
</label>
|
|
||||||
<input name="espiral" class="form-check-input elementos-libro calcular-presupuesto" type="radio" value="tipoEspiral"
|
|
||||||
id="tipoEspiral" <?php echo (($datosPresupuesto->tipo_libro)=='espiral'? 'checked=""':''); ?> >
|
|
||||||
</div>
|
|
||||||
<h4 class="text-center">Espiral</h4>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-4 mb-6 d-flex justify-content-center" >
|
|
||||||
<div>
|
|
||||||
<div style="max-width:200px;max-height:200px;padding-right:0px" id="wireoDiv"
|
|
||||||
class="form-check custom-option-tipo custom-option custom-option-image custom-option-image-radio
|
|
||||||
<?php echo ($datosPresupuesto->tipo_libro == 'wireo' ? ' checked"': '"'); ?> >
|
|
||||||
<label style="max-width:200px;max-height:200px;" class="form-check-label custom-option-content"
|
|
||||||
for="tipoWireO">
|
|
||||||
<span class="custom-option-body">
|
|
||||||
<img style="max-width:200px;max-height:200px;"
|
|
||||||
src="<?= site_url("assets/img/libro_wire-o.png") ?>" alt="radioImg5">
|
|
||||||
</span>
|
|
||||||
</label>
|
|
||||||
<input name="wireo" class="form-check-input elementos-libro calcular-presupuesto" type="radio" value="tipoWireO"
|
|
||||||
id="tipoWireO" <?php echo (($datosPresupuesto->tipo_libro)=='wireo'? 'checked=""':''); ?> >
|
|
||||||
</div>
|
|
||||||
<h4 class="text-center">Wire-o</h4>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@ -1,387 +0,0 @@
|
|||||||
function initDirecciones() {
|
|
||||||
data = {
|
|
||||||
id: $('#clienteId').val()
|
|
||||||
},
|
|
||||||
data = Object.assign(data, window.token_ajax);
|
|
||||||
$('#errorDirecciones').hide();
|
|
||||||
|
|
||||||
$.ajax({
|
|
||||||
url: window.routes_direcciones.direcciones,
|
|
||||||
type: 'POST',
|
|
||||||
data: data,
|
|
||||||
success: function(response) {
|
|
||||||
$("#direcciones").empty();
|
|
||||||
$.each(response.menu, function(index, value) {
|
|
||||||
$("#direcciones").append('<option value="' + value.id + '">' + value.text + '</option>');
|
|
||||||
});
|
|
||||||
$("#direcciones").val('');
|
|
||||||
},
|
|
||||||
error: function() {
|
|
||||||
$("#direcciones").empty();
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function initTiradasDirecciones() {
|
|
||||||
const _this = this
|
|
||||||
let sel_index = 1;
|
|
||||||
|
|
||||||
$('#containerTiradasEnvios').empty();
|
|
||||||
|
|
||||||
for (i = 1; i <= 4; i++) {
|
|
||||||
let id = "tiradaPrecio" + i;
|
|
||||||
if ($('#' + id).length > 0) {
|
|
||||||
|
|
||||||
let tirada_id = "ud_tiradaPrecio" + i;
|
|
||||||
let total_id = "tot_tiradaPrecio" + i;
|
|
||||||
let precio_u_id = "pu_tiradaPrecio" + i;
|
|
||||||
let peso = $('#' + id).attr('peso');
|
|
||||||
|
|
||||||
let html = '';
|
|
||||||
html += '<div class="col-sm-3">';
|
|
||||||
html += '<div id=div-env_' + id + ' class="form-check custom-option custom-option-basic custom-option-tiradasDirecciones">';
|
|
||||||
html += '<label class="form-check-label custom-option-content" for="tiradaEnvios' + i + '">';
|
|
||||||
html += '<input name=env_"' + id + '" peso="' + peso + '" class="form-check-input" type="radio" value="" id="env_' + id + '"></input>';
|
|
||||||
html += '<span class="custom-option-header">';
|
|
||||||
html += '<span id="tiradaDireccionesValue' + i + '" class="h6 mb-0">' + $('#' + tirada_id).text().split(' ')[0] + '</span>';
|
|
||||||
html += '<span class="text-muted">' + $('#' + total_id).text() + '</span>';
|
|
||||||
html += '</span>';
|
|
||||||
html += '<span class="custom-option-body">';
|
|
||||||
html += '<small>' + $('#' + precio_u_id).text() + '</small>';
|
|
||||||
html += '</span>';
|
|
||||||
html += '</label>';
|
|
||||||
html += '</div>';
|
|
||||||
html += '</div>';
|
|
||||||
|
|
||||||
$('#containerTiradasEnvios').append(html);
|
|
||||||
|
|
||||||
if(parseInt($('#' + tirada_id).text().split(' ')[0]) == window.direcciones_sel_tirada){
|
|
||||||
sel_index = i;
|
|
||||||
}
|
|
||||||
|
|
||||||
$('#' + id).hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$(('#env_tiradaPrecio' + sel_index)).trigger('click');
|
|
||||||
|
|
||||||
cargarDirecciones();
|
|
||||||
|
|
||||||
const tiradasDireccionesList = [].slice.call(document.querySelectorAll('.custom-option-tiradasDirecciones .form-check-input'))
|
|
||||||
tiradasDireccionesList.map(function (customOptionEL) {
|
|
||||||
// Update custom options check on page load
|
|
||||||
_this.updateTiradasDireccionesCheck(customOptionEL)
|
|
||||||
|
|
||||||
// Update custom options check on click
|
|
||||||
customOptionEL.addEventListener('click', e => {
|
|
||||||
_this.updateTiradasDireccionesCheck(customOptionEL)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function cargarDirecciones(){
|
|
||||||
$('#loader').show();
|
|
||||||
$('#divDirecciones').empty();
|
|
||||||
|
|
||||||
if(window.direcciones == null){
|
|
||||||
$('#loader').hide();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
for(let i=0; i<window.direcciones.length; i++){
|
|
||||||
const tipo = window.direcciones[i].entregaPieCalle == 1?'palets':'cajas';
|
|
||||||
let html = '';
|
|
||||||
html += '<div id="envioId' + window.direcciones[i].direccion_id + '" t="' + tipo + '" p= ' +window.direcciones[i].precio + ' class="row mb-3">';
|
|
||||||
html += '<div class="col-sm-5 form-check custom-option custom-option-basic checked">';
|
|
||||||
html += '<label class="form-check-label custom-option-content" for="customRadioAddress1">';
|
|
||||||
html += '<span class="custom-option-header mb-2">';
|
|
||||||
html += '<h6 class="fw-semibold mb-0">' + window.direcciones[i].att + '</h6>';
|
|
||||||
html += '<span class="badge bg-label-primary">' + window.direcciones[i].cantidad + ' unidades</span>';
|
|
||||||
html += '</span>';
|
|
||||||
html += '<span class="custom-option-body">';
|
|
||||||
html += '<small>' + window.direcciones[i].direccion + '</small><br>';
|
|
||||||
html += '<small>' + window.direcciones[i].cp + '</small><br>';
|
|
||||||
html += '<small>' + window.direcciones[i].municipio +', ' + window.direcciones[i].pais + '</small><br>';
|
|
||||||
html += '<small>' + window.direcciones[i].telefono + '</small><br>';
|
|
||||||
html += '<small>' + window.direcciones[i].email + '</small><br>';
|
|
||||||
if(tipo == 'palets'){
|
|
||||||
html += '<small><i>Envío en palets</i></small><br>';
|
|
||||||
}
|
|
||||||
html += '<hr class="my-2">';
|
|
||||||
html += '<span class="d-flex">';
|
|
||||||
html += '<a class="eliminar-direccion" href="javascript:void(0)">Eliminar</a>';
|
|
||||||
html += '</span>';
|
|
||||||
html += '</span>';
|
|
||||||
html += '</label>';
|
|
||||||
html += '</div>';
|
|
||||||
html += '</div>';
|
|
||||||
|
|
||||||
$('#divDirecciones').append(html);
|
|
||||||
$('#errorDirecciones').hide();
|
|
||||||
$('#loader').hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateTiradasDireccionesCheck(el) {
|
|
||||||
if (el.checked) {
|
|
||||||
// If custom option element is radio, remove checked from the siblings (closest `.row`)
|
|
||||||
if (el.type === 'radio') {
|
|
||||||
const customRadioOptionList = [].slice.call(el.closest('.row').querySelectorAll('.custom-option-tiradasDirecciones'))
|
|
||||||
customRadioOptionList.map(function (customRadioOptionEL) {
|
|
||||||
customRadioOptionEL.closest('.custom-option-tiradasDirecciones').classList.remove('checked')
|
|
||||||
let id_temp = customRadioOptionEL.id.split('-')[1];
|
|
||||||
$('#' + id_temp).prop('checked', false);
|
|
||||||
})
|
|
||||||
}
|
|
||||||
const element = el.closest('.custom-option-tiradasDirecciones');
|
|
||||||
element.classList.add('checked');
|
|
||||||
|
|
||||||
let id = element.id.split('-')[1];
|
|
||||||
$('#' + id).prop('checked', true);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
el.closest('.custom-option-tiradasDirecciones').classList.remove('checked')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function obtenerUnidadesEnvio(){
|
|
||||||
|
|
||||||
const elements = $('#divDirecciones').find('.row.mb-3');
|
|
||||||
let total = 0;
|
|
||||||
|
|
||||||
if(elements.length > 0) {
|
|
||||||
for (let index=0; index<elements.length; index++){
|
|
||||||
let unidades_direcciones = parseInt($(elements[index]).find('div label span span').text().split(' ')[0]);
|
|
||||||
total += unidades_direcciones;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
return total;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$('#insertarDireccion').on('click', function() {
|
|
||||||
|
|
||||||
if( $('#direcciones').val() > 0 ) {
|
|
||||||
|
|
||||||
let unidades = $('#unidadesEnvio').val();
|
|
||||||
if(unidades == '' || isNaN(unidades) || parseInt(unidades) <= 0){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
unidades = parseInt(unidades);
|
|
||||||
|
|
||||||
const seleccion = $('.custom-option-tiradasDirecciones.checked');
|
|
||||||
if(seleccion.length == 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
const element_tirada =($(seleccion[0]).find('label input')[0]);
|
|
||||||
const number = element_tirada.id.match(/\d+$/);
|
|
||||||
if (number.length == 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
let tirada = parseInt($('#tiradaDireccionesValue' + number[0]).text());
|
|
||||||
|
|
||||||
let total = obtenerUnidadesEnvio();
|
|
||||||
|
|
||||||
if($('#prototipo').is(':checked')) {
|
|
||||||
tirada += 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(total + unidades <= tirada) {
|
|
||||||
|
|
||||||
data = {
|
|
||||||
id: $('#direcciones').val(),
|
|
||||||
peso: $('#env_tiradaPrecio' + number[0]).attr('peso'),
|
|
||||||
unidades: unidades,
|
|
||||||
entregaPieCalle: $('#entregaPieCalle').is(':checked')?1:0,
|
|
||||||
},
|
|
||||||
data = Object.assign(data, window.token_ajax)
|
|
||||||
|
|
||||||
$('#loader').show();
|
|
||||||
|
|
||||||
$.ajax({
|
|
||||||
url: window.routes_direcciones.getDatos,
|
|
||||||
type: 'POST',
|
|
||||||
data: data,
|
|
||||||
success: function(response) {
|
|
||||||
if(response.data.length > 0) {
|
|
||||||
let html = '';
|
|
||||||
html += '<div id="envioId' + response.data[0].id + '" t="' +response.data[0].tipo + '" p= ' +response.data[0].coste + ' class="row mb-3">';
|
|
||||||
html += '<div class="col-sm-5 form-check custom-option custom-option-basic checked">';
|
|
||||||
html += '<label class="form-check-label custom-option-content" for="customRadioAddress1">';
|
|
||||||
html += '<span class="custom-option-header mb-2">';
|
|
||||||
html += '<h6 class="fw-semibold mb-0">' + response.data[0].att + '</h6>';
|
|
||||||
html += '<span class="badge bg-label-primary">' + unidades + ' unidades</span>';
|
|
||||||
html += '</span>';
|
|
||||||
html += '<span class="custom-option-body">';
|
|
||||||
html += '<small>' + response.data[0].direccion + '</small><br>';
|
|
||||||
html += '<small>' + response.data[0].cp + '</small><br>';
|
|
||||||
html += '<small>' + response.data[0].municipio +', ' + response.data[0].pais + '</small><br>';
|
|
||||||
html += '<small>' + response.data[0].telefono + '</small><br>';
|
|
||||||
html += '<small>' + response.data[0].email + '</small><br>';
|
|
||||||
if(response.data[0].tipo == 'palets'){
|
|
||||||
html += '<small><i>Envío en palets</i></small><br>';
|
|
||||||
}
|
|
||||||
html += '<hr class="my-2">';
|
|
||||||
html += '<span class="d-flex">';
|
|
||||||
html += '<a class="eliminar-direccion" href="javascript:void(0)">Eliminar</a>';
|
|
||||||
html += '</span>';
|
|
||||||
html += '</span>';
|
|
||||||
html += '</label>';
|
|
||||||
html += '</div>';
|
|
||||||
html += '</div>';
|
|
||||||
|
|
||||||
$('#divDirecciones').append(html);
|
|
||||||
$('#errorDirecciones').hide();
|
|
||||||
$('#loader').hide();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
error: function() {
|
|
||||||
$("#direcciones").empty();
|
|
||||||
$('#loader').hide();
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
$('#errorDirecciones').text('El número de unidades supera la tirada seleccionada.');
|
|
||||||
$('#errorDirecciones').show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$(document).on('click', '.eliminar-direccion', function(e) {
|
|
||||||
|
|
||||||
$(this).closest('.row.mb-3').remove();
|
|
||||||
|
|
||||||
const seleccion = $('.custom-option-tiradasDirecciones.checked');
|
|
||||||
if(seleccion.length == 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
const element_tirada =($(seleccion[0]).find('label input')[0]);
|
|
||||||
const number = element_tirada.id.match(/\d+$/);
|
|
||||||
if (number.length == 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
let tirada = parseInt($('#tiradaDireccionesValue' + number[0]).text());
|
|
||||||
|
|
||||||
const elements = $('#divDirecciones').find('.row.mb-3');
|
|
||||||
|
|
||||||
let total = 0;
|
|
||||||
if(elements.length > 0) {
|
|
||||||
for (let index=0; index<elements.length; index++){
|
|
||||||
let unidades_direcciones = parseInt($(elements[index]).find('div label span span').text().split(' ')[0]);
|
|
||||||
total += unidades_direcciones;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
if(total <= tirada) {
|
|
||||||
$('#errorDirecciones').hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
$('#direcciones').on('change', function() {
|
|
||||||
if( $('#direcciones').val() == 0 ) {
|
|
||||||
$("#addressForm").attr('action','create')
|
|
||||||
|
|
||||||
var $newAddDialog = $("#addressForm")
|
|
||||||
$newAddDialog.modal('show')
|
|
||||||
|
|
||||||
$newAddDialog.on('hidden.bs.modal', function (e) {
|
|
||||||
$('#direcciones').val('');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
function saveAdd_callback(){
|
|
||||||
if($('#addressForm').attr('action')=='create'){
|
|
||||||
let data = {
|
|
||||||
cliente_id: $('#clienteId').val(),
|
|
||||||
alias: $('#add_alias').val(),
|
|
||||||
att: $('#add_att').val(),
|
|
||||||
email: $('#add_email').val(),
|
|
||||||
direccion: $('#add_direccion').val(),
|
|
||||||
pais_id: $("#add_pais_id option:selected").val(),
|
|
||||||
municipio: $('#add_municipio').val(),
|
|
||||||
provincia: $('#add_provincia').val(),
|
|
||||||
cp: $('#add_cp').val(),
|
|
||||||
telefono: $('#add_telefono').val(),
|
|
||||||
}
|
|
||||||
data = Object.assign(data, window.token_ajax)
|
|
||||||
|
|
||||||
$.ajax({
|
|
||||||
url: window.routes_direcciones.nuevaDireccion,
|
|
||||||
type: 'POST',
|
|
||||||
data: data,
|
|
||||||
success: function(response) {
|
|
||||||
$("#direcciones").empty();
|
|
||||||
$.each(response.data, function(index, value) {
|
|
||||||
$("#direcciones").append('<option value="' + value.id + '">' + value.text + '</option>');
|
|
||||||
});
|
|
||||||
$("#direcciones").val('');
|
|
||||||
$('#addressForm').modal('hide');
|
|
||||||
},
|
|
||||||
error: function() {
|
|
||||||
$('#addressForm').modal('hide');
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function validarEnvio(){
|
|
||||||
|
|
||||||
const seleccion = $('.custom-option-tiradasDirecciones.checked');
|
|
||||||
if(seleccion.length == 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
const element_tirada =($(seleccion[0]).find('label input')[0]);
|
|
||||||
|
|
||||||
const number = element_tirada.id.match(/\d+$/);
|
|
||||||
if (number.length == 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
let tirada = parseInt($('#tiradaDireccionesValue' + number[0]).text());
|
|
||||||
|
|
||||||
let total = obtenerUnidadesEnvio();
|
|
||||||
|
|
||||||
if($('#prototipo').is(':checked')) {
|
|
||||||
tirada += 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(total != tirada){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getDireccionesEnvio(){
|
|
||||||
|
|
||||||
const elements = $('#divDirecciones').find('.row.mb-3');
|
|
||||||
|
|
||||||
let direcciones = [];
|
|
||||||
|
|
||||||
if(elements.length > 0) {
|
|
||||||
for (let index=0; index<elements.length; index++){
|
|
||||||
const unidades = parseInt($(elements[index]).find('div label span span').text().split(' ')[0]);
|
|
||||||
const id = $(elements[index]).attr('id').replace('envioId', '');
|
|
||||||
const tipo = $(elements[index]).attr('t');
|
|
||||||
|
|
||||||
direcciones.push({
|
|
||||||
unidades: unidades,
|
|
||||||
id: id,
|
|
||||||
tipo: tipo,
|
|
||||||
})
|
|
||||||
};
|
|
||||||
}
|
|
||||||
return direcciones;
|
|
||||||
}
|
|
||||||
@ -1,789 +0,0 @@
|
|||||||
$('#papelFormatoPersonalizado').on('change', function () {
|
|
||||||
if ($(this).is(":checked")) {
|
|
||||||
$('#tamanioLibroDiv').hide();
|
|
||||||
$('#anchoLibroDiv').show();
|
|
||||||
$('#altoLibroDiv').show();
|
|
||||||
$('#papelFormatoId').val('').trigger('change');
|
|
||||||
} else {
|
|
||||||
$('#tamanioLibroDiv').show();
|
|
||||||
$('#anchoLibroDiv').hide();
|
|
||||||
$('#altoLibroDiv').hide();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// Init custom option check
|
|
||||||
function initTapaCheck() {
|
|
||||||
const _this = this
|
|
||||||
|
|
||||||
const tapaOptionList = [].slice.call(document.querySelectorAll('.custom-option-tapa .form-check-input'))
|
|
||||||
tapaOptionList.map(function (customOptionEL) {
|
|
||||||
// Update custom options check on page load
|
|
||||||
_this.updateTapaCheck(customOptionEL)
|
|
||||||
|
|
||||||
// Update custom options check on click
|
|
||||||
customOptionEL.addEventListener('click', e => {
|
|
||||||
_this.updateTapaCheck(customOptionEL)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateTapaCheck(el) {
|
|
||||||
if (el.checked) {
|
|
||||||
// If custom option element is radio, remove checked from the siblings (closest `.row`)
|
|
||||||
if (el.type === 'radio') {
|
|
||||||
const customRadioOptionList = [].slice.call(el.closest('.row').querySelectorAll('.custom-option-tapa'))
|
|
||||||
customRadioOptionList.map(function (customRadioOptionEL) {
|
|
||||||
customRadioOptionEL.closest('.custom-option-tapa').classList.remove('checked')
|
|
||||||
})
|
|
||||||
}
|
|
||||||
el.closest('.custom-option-tapa').classList.add('checked')
|
|
||||||
if (el.closest('.custom-option-tapa').id == 'tapaBlandaInnerDiv') {
|
|
||||||
$('#tapaBlanda').prop('checked', true);
|
|
||||||
$('#tapaDura').prop('checked', false);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$('#tapaBlanda').prop('checked', false);
|
|
||||||
$('#tapaDura').prop('checked', true);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
el.closest('.custom-option-tapa').classList.remove('checked')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function initColorCheck() {
|
|
||||||
const _this = this
|
|
||||||
|
|
||||||
const custopOptionList = [].slice.call(document.querySelectorAll('.custom-option-color .form-check-input'))
|
|
||||||
custopOptionList.map(function (customOptionEL) {
|
|
||||||
// Update custom options check on page load
|
|
||||||
_this.updateColorCheck(customOptionEL)
|
|
||||||
|
|
||||||
// Update custom options check on click
|
|
||||||
customOptionEL.addEventListener('click', e => {
|
|
||||||
_this.updateColorCheck(customOptionEL)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateColorCheck(el) {
|
|
||||||
if (el.checked) {
|
|
||||||
// If custom option element is radio, remove checked from the siblings (closest `.row`)
|
|
||||||
if (el.type === 'radio') {
|
|
||||||
const customRadioOptionList = [].slice.call(el.closest('.row-color').querySelectorAll('.custom-option-color'))
|
|
||||||
customRadioOptionList.map(function (customRadioOptionEL) {
|
|
||||||
customRadioOptionEL.closest('.custom-option-color').classList.remove('checked')
|
|
||||||
})
|
|
||||||
}
|
|
||||||
el.closest('.custom-option-color').classList.add('checked')
|
|
||||||
if (el.closest('.custom-option-color').id == 'colorNegroDiv') {
|
|
||||||
$('#colorNegro').prop('checked', true);
|
|
||||||
$('#colorNegroHq').prop('checked', false);
|
|
||||||
$('#colorColor').prop('checked', false);
|
|
||||||
$('#colorColorHq').prop('checked', false);
|
|
||||||
}
|
|
||||||
else if (el.closest('.custom-option-color').id == 'colorNegroHqDiv') {
|
|
||||||
$('#colorNegro').prop('checked', false);
|
|
||||||
$('#colorNegroHq').prop('checked', true);
|
|
||||||
$('#colorColor').prop('checked', false);
|
|
||||||
$('#colorColorHq').prop('checked', false);
|
|
||||||
}
|
|
||||||
else if (el.closest('.custom-option-color').id == 'colorColorDiv') {
|
|
||||||
$('#colorNegro').prop('checked', false);
|
|
||||||
$('#colorNegroHq').prop('checked', false);
|
|
||||||
$('#colorColor').prop('checked', true);
|
|
||||||
$('#colorColorHq').prop('checked', false);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$('#colorNegro').prop('checked', false);
|
|
||||||
$('#colorNegroHq').prop('checked', false);
|
|
||||||
$('#colorColor').prop('checked', false);
|
|
||||||
$('#colorColorHq').prop('checked', true);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
el.closest('.custom-option-color').classList.remove('checked')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$('#enableSobrecubierta').on('change', function () {
|
|
||||||
if ($(this).is(":checked")) {
|
|
||||||
$('.enable-sobrecubierta').show();
|
|
||||||
} else {
|
|
||||||
$('#gramajeSobrecubierta').val('').trigger('change');
|
|
||||||
$('#paperSobrecubierta').val('').trigger('change');
|
|
||||||
$('#acabadosSobrecubierta').val('').trigger('change');
|
|
||||||
$('#tamanioSolapasSobrecubierta').val();
|
|
||||||
$('.enable-sobrecubierta').hide();
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
function initDisenioLibro() {
|
|
||||||
initTapaCheck();
|
|
||||||
initColorCheck();
|
|
||||||
|
|
||||||
$('.elementos-libro').trigger('change');
|
|
||||||
$('.change-tipo-impresion').trigger('change');
|
|
||||||
|
|
||||||
$('#papelInterior').trigger('change');
|
|
||||||
$('#papelInterior').val(window.datosDisenioLibro.papel_interior);
|
|
||||||
$('#gramajeInterior').append($('<option>', {
|
|
||||||
value: window.datosDisenioLibro.gramaje_interior,
|
|
||||||
text: window.datosDisenioLibro.gramaje_interior
|
|
||||||
}));
|
|
||||||
$('#gramajeInterior').val(window.datosDisenioLibro.gramaje_interior);
|
|
||||||
$('#papelCubierta').val('').trigger('change');
|
|
||||||
$('#papelCubierta').val(window.datosDisenioLibro.papel_cubierta);
|
|
||||||
$('#gramajeCubierta').append($('<option>', {
|
|
||||||
value: window.datosDisenioLibro.gramaje_cubierta,
|
|
||||||
text: window.datosDisenioLibro.gramaje_cubierta
|
|
||||||
}));
|
|
||||||
$('#gramajeCubierta').val(window.datosDisenioLibro.gramaje_cubierta);
|
|
||||||
|
|
||||||
$('#papelSobrecubierta').val('').trigger('change');
|
|
||||||
$('#papelSobrecubierta').val(window.datosDisenioLibro.papel_sobrecubierta);
|
|
||||||
$('#gramajeSobrecubierta').append($('<option>', {
|
|
||||||
value: window.datosDisenioLibro.gramaje_sobrecubierta,
|
|
||||||
text: window.datosDisenioLibro.gramaje_sobrecubierta
|
|
||||||
}));
|
|
||||||
$('#gramajeSobrecubierta').val(window.datosDisenioLibro.gramaje_sobrecubierta);
|
|
||||||
|
|
||||||
$('#enableSobrecubierta').trigger('change');
|
|
||||||
}
|
|
||||||
|
|
||||||
$('.change-tipo-impresion').on('change', function () {
|
|
||||||
|
|
||||||
let isColor = false;
|
|
||||||
if($('#colorColorDiv').hasClass('checked') || $('#colorColorHqDiv').hasClass('checked'))
|
|
||||||
isColor = true;
|
|
||||||
let isHq = false;
|
|
||||||
if($('#colorNegroDiv').hasClass('checked') || $('#colorColorHqDiv').hasClass('checked'))
|
|
||||||
isHq = true;
|
|
||||||
|
|
||||||
//si es color hay que mostrar el numero de paginas a color
|
|
||||||
if (isColor) {
|
|
||||||
$('#pagColorDiv').show();
|
|
||||||
if($('#paginasColor').val() == '')
|
|
||||||
$('#paginasColor').val('0');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$('#pagColorDiv').hide();
|
|
||||||
$('#paginasColor').val('0');
|
|
||||||
}
|
|
||||||
|
|
||||||
var data = [];
|
|
||||||
|
|
||||||
if (!isColor && !isHq) {
|
|
||||||
data = window.datosPresupuesto.papelInteriorNegro;
|
|
||||||
}
|
|
||||||
else if (!isColor && isHq) {
|
|
||||||
data = window.datosPresupuesto.papelInteriorNegroHq;
|
|
||||||
}
|
|
||||||
else if (isColor && !isHq) {
|
|
||||||
data = window.datosPresupuesto.papelInteriorColor;
|
|
||||||
}
|
|
||||||
else if (isColor && isHq) {
|
|
||||||
data = window.datosPresupuesto.papelInteriorColorHq;
|
|
||||||
}
|
|
||||||
|
|
||||||
var dropdown = $("#papelInterior");
|
|
||||||
dropdown.empty();
|
|
||||||
$.each(data, function () {
|
|
||||||
dropdown.append($("<option />").val(this.id).text(this.nombre));
|
|
||||||
});
|
|
||||||
//Se quita la seleccion del dropdown
|
|
||||||
dropdown.val('').trigger('change');
|
|
||||||
$('#gramajeInterior').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 () {
|
|
||||||
|
|
||||||
let isColor = false;
|
|
||||||
if($('#colorColorDiv').hasClass('checked') || $('#colorColorHqDiv').hasClass('checked'))
|
|
||||||
isColor = true;
|
|
||||||
let isHq = false;
|
|
||||||
if($('#colorNegroDiv').hasClass('checked') || $('#colorColorHqDiv').hasClass('checked'))
|
|
||||||
isHq = true;
|
|
||||||
|
|
||||||
if ($('#papelInterior option:selected').val() != undefined) {
|
|
||||||
var uso = 'bn';
|
|
||||||
|
|
||||||
if (!isColor && !isHq) {
|
|
||||||
uso = 'bn';
|
|
||||||
}
|
|
||||||
else if (!isColor && isHq) {
|
|
||||||
uso = 'bnhq';
|
|
||||||
}
|
|
||||||
else if (isColor && !isHq) {
|
|
||||||
uso = 'color';
|
|
||||||
}
|
|
||||||
else if (isColor && isHq) {
|
|
||||||
uso = 'colorhq';
|
|
||||||
}
|
|
||||||
datos = {
|
|
||||||
tirada: $('#tirada').val(),
|
|
||||||
merma: 0,
|
|
||||||
uso: uso,
|
|
||||||
papel: $('#papelInterior option:selected').text()
|
|
||||||
};
|
|
||||||
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) {
|
|
||||||
|
|
||||||
if(response.menu){
|
|
||||||
|
|
||||||
$('#gramajeInterior').empty();
|
|
||||||
$(response.menu).each(function (index, element) {
|
|
||||||
$('#gramajeInterior').append($("<option />").val(element.id).text(element.text));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (valInterior != undefined && valInterior != '')
|
|
||||||
$('#gramajeInterior option[value=' + valInterior + ']').prop('selected', true).trigger('change');
|
|
||||||
else
|
|
||||||
$('#gramajeInterior').val('').trigger('change');
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
$('#papelCubierta').on('change', function () {
|
|
||||||
let isColor = true;
|
|
||||||
let isHq = true;
|
|
||||||
|
|
||||||
if ($('#papelCubierta option:selected').val() != undefined) {
|
|
||||||
var uso = 'cubierta';
|
|
||||||
|
|
||||||
datos = {
|
|
||||||
tirada: $('#tirada').val(),
|
|
||||||
merma: 0,
|
|
||||||
uso: uso,
|
|
||||||
papel: $('#papelCubierta option:selected').text().trim()
|
|
||||||
};
|
|
||||||
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 && valCubierta != '')
|
|
||||||
$('#gramajeCubierta option[value=' + valCubierta + ']').prop('selected', true).trigger('change');
|
|
||||||
else
|
|
||||||
$('#gramajeCubierta').val('').trigger('change');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
$('#papelSobrecubierta').on('change', function () {
|
|
||||||
let isColor = true;
|
|
||||||
let isHq = true;
|
|
||||||
|
|
||||||
if ($('#papelSobrecubierta option:selected').val() != undefined) {
|
|
||||||
var uso = 'sobrecubierta';
|
|
||||||
|
|
||||||
datos = {
|
|
||||||
tirada: $('#tirada').val(),
|
|
||||||
merma: 0,
|
|
||||||
uso: uso,
|
|
||||||
papel: $('#papelSobrecubierta option:selected').text().trim()
|
|
||||||
};
|
|
||||||
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=' + valSobrecubierta + ']').prop('selected', true).trigger('change');
|
|
||||||
else
|
|
||||||
$('#gramajeSobrecubierta').val('').trigger('change');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
$('#solapasCubierta').on('change', function () {
|
|
||||||
if ($(this).is(":checked")) {
|
|
||||||
$('#tamanioSolapasCubierta').show();
|
|
||||||
} else {
|
|
||||||
$('#tamanioSolapasCubierta').hide();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// Funcion que comprueba que están rellenos todos los datos necesarios para calcular el presupuesto
|
|
||||||
function checkValues() {
|
|
||||||
|
|
||||||
const tirada = $('#tirada').val();
|
|
||||||
const paginas = $('#paginas').val();
|
|
||||||
const papelInterior = $('#papelInterior option:selected').val();
|
|
||||||
const gramajeInterior = $('#gramajeInterior option:selected').text();
|
|
||||||
const papelCubierta = $('#papelCubierta option:selected').val();
|
|
||||||
const gramajeCubierta = $('#gramajeCubierta option:selected').text();
|
|
||||||
const papelFormatoAlto = $('#papelFormatoAlto').val();
|
|
||||||
const papelFormatoAncho = $('#papelFormatoAncho').val();
|
|
||||||
const clienteId = $('#clienteId').val();
|
|
||||||
|
|
||||||
if (paginas == '' || isNaN(paginas) || parseInt(paginas) <= 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if(parseInt(paginas)%2!=0){
|
|
||||||
$('#paginas').val(parseInt(paginas)+1).trigger('change');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(clienteId == '' || isNaN(clienteId) || parseInt(clienteId) <= 0){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tirada == '' || isNaN(tirada) || parseInt(tirada) <= 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (papelInterior == '' || gramajeInterior == '') {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (papelCubierta == '' || gramajeCubierta == '') {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($('#papelFormatoId').val() == null && !$('#papelFormatoPersonalizado').is(':checked')){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if($('#papelFormatoPersonalizado').is(':checked')){
|
|
||||||
if(papelFormatoAncho == '' || parseInt(papelFormatoAncho) <= 0 ||
|
|
||||||
papelFormatoAlto == '' || parseInt(papelFormatoAlto) <= 0){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
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 getDimensionLibro() {
|
|
||||||
|
|
||||||
var ancho = 0;
|
|
||||||
var alto = 0;
|
|
||||||
|
|
||||||
if ($('#papelFormatoId option:selected').length > 0) {
|
|
||||||
var selectedText = $('#papelFormatoId option:selected').text();
|
|
||||||
if (selectedText.length > 0) {
|
|
||||||
ancho = parseFloat(selectedText.trim().split(" x ")[0]);
|
|
||||||
alto = parseFloat(selectedText.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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$('#retractilado').on('change', function () {
|
|
||||||
if ($(this).is(':checked')) {
|
|
||||||
if ($('#retractilado5').is(':checked'))
|
|
||||||
$('#retractilado5').prop('checked', false);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
$('#retractilado5').on('change', function () {
|
|
||||||
if ($(this).is(':checked')) {
|
|
||||||
if ($('#retractilado').is(':checked'))
|
|
||||||
$('#retractilado').prop('checked', false);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.elementos-libro').on('change', function () {
|
|
||||||
// Libro cosido
|
|
||||||
if ($('#cosidoDiv').hasClass('checked')) {
|
|
||||||
$('#tituloDisenioLibro').text("Rústica cosido");
|
|
||||||
if ($('#tapaBlandaInnerDiv').hasClass('checked')) {
|
|
||||||
// Cosido tapa blanda
|
|
||||||
$('.guardas').hide();
|
|
||||||
$('.solapas-cubierta').show();
|
|
||||||
$('.sobrecubierta').show();
|
|
||||||
$('#enableSobrecubierta').trigger('change');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// Cosido tapa dura
|
|
||||||
$('.guardas').show();
|
|
||||||
numCarasGuardas(2);
|
|
||||||
$('.solapas-cubierta').hide();
|
|
||||||
$('.sobrecubierta').show();
|
|
||||||
$('#enableSobrecubierta').trigger('change');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Libro fresado
|
|
||||||
else if ($('#fresadoDiv').hasClass('checked')) {
|
|
||||||
$('#tituloDisenioLibro').text("Rústica fresado");
|
|
||||||
if ($('#tapaBlandaInnerDiv').hasClass('checked')) {
|
|
||||||
// fresado tapa blanda
|
|
||||||
$('.guardas').hide();
|
|
||||||
$('.solapas-cubierta').show();
|
|
||||||
$('.sobrecubierta').show();
|
|
||||||
$('#enableSobrecubierta').trigger('change');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// fresado tapa dura
|
|
||||||
$('.guardas').show();
|
|
||||||
numCarasGuardas(2);
|
|
||||||
$('.solapas-cubierta').hide();
|
|
||||||
$('.sobrecubierta').show();
|
|
||||||
$('#enableSobrecubierta').trigger('change');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Libro grapado
|
|
||||||
else if ($('#grapadoDiv').hasClass('checked')) {
|
|
||||||
$('#tituloDisenioLibro').text("Cosido con grapas");
|
|
||||||
if ($('#tapaBlandaInnerDiv').hasClass('checked')) {
|
|
||||||
// grapado tapa blanda
|
|
||||||
$('.guardas').hide();
|
|
||||||
$('.solapas-cubierta').show();
|
|
||||||
$('.sobrecubierta').hide();
|
|
||||||
$('#enableSobrecubierta').prop('checked', false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Libro wire-o
|
|
||||||
else if ($('#wireoDiv').hasClass('checked')) {
|
|
||||||
$('#tituloDisenioLibro').text("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("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>');
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$('.calcular-presupuesto').on('change', function () {
|
|
||||||
|
|
||||||
// se obtiene el id del elemento que ha disparado el evento
|
|
||||||
if($(this).hasClass('input-sobrecubierta')){
|
|
||||||
if($('#papelSobrecubierta option:selected').val() == '' || $('#gramajeSobrecubierta option:selected').val() == ''){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
calcularPresupuesto();
|
|
||||||
});
|
|
||||||
|
|
||||||
function comprobarTiradasPOD(){
|
|
||||||
const tiradas = getTiradas();
|
|
||||||
|
|
||||||
//Comprobar que todos los elementos del array tiradas estan por encima de 30 o por debajo
|
|
||||||
const tiradasPOD = tiradas.every(tirada => tirada <= 30);
|
|
||||||
const tiradasNoPOD = tiradas.every(tirada => tirada > 30);
|
|
||||||
if (tiradasPOD == !tiradasNoPOD) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$('#clienteId').on('select2:change', function () {
|
|
||||||
calcularPresupuesto();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
async function calcularPresupuesto() {
|
|
||||||
|
|
||||||
let isColor = false;
|
|
||||||
if($('#colorColorDiv').hasClass('checked') || $('#colorColorHqDiv').hasClass('checked'))
|
|
||||||
isColor = true;
|
|
||||||
let isHq = false;
|
|
||||||
if($('#colorNegroHqDiv').hasClass('checked') || $('#colorColorHqDiv').hasClass('checked'))
|
|
||||||
isHq = true;
|
|
||||||
|
|
||||||
if(!comprobarTiradasPOD()){
|
|
||||||
$('#errorTiradas').show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$('#errorTiradas').hide();
|
|
||||||
|
|
||||||
// se obtiene la propiedad serv_id de los checkboxes seleccionados de la clase .servicio-extra
|
|
||||||
if (!checkValues()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let servicios = [];
|
|
||||||
$('.servicio-extra:checked').each(function () {
|
|
||||||
servicios.push($(this).attr('serv_id'));
|
|
||||||
})
|
|
||||||
|
|
||||||
let datos = {
|
|
||||||
tamanio: getDimensionLibro(),
|
|
||||||
tirada: getTiradas(),
|
|
||||||
paginas: $('#paginas').val(),
|
|
||||||
paginasColor: $('#paginasColor').val(),
|
|
||||||
tipo: $('.custom-option-tipo.checked').attr('id').replace('Div', ''),
|
|
||||||
tapa: $('#tapaDura').is(':checked') ? 'dura' : 'blanda',
|
|
||||||
isColor: isColor ? 1 : 0,
|
|
||||||
isHq: isHq ? 1 : 0,
|
|
||||||
papelInterior: $('#papelInterior option:selected').val(),
|
|
||||||
papelInteriorNombre: $('#papelInterior option:selected').text().trim(),
|
|
||||||
gramajeInterior: $('#gramajeInterior option:selected').text(),
|
|
||||||
excluirRotativa: $('#excluirRotativa').is(':checked')? 1 : 0,
|
|
||||||
papelCubierta: $('#papelCubierta option:selected').val(),
|
|
||||||
papelCubiertaNombre: $('#papelCubierta option:selected').text().trim(),
|
|
||||||
gramajeCubierta: $('#gramajeCubierta option:selected').text(),
|
|
||||||
carasCubierta: $('#carasCubierta').val(),
|
|
||||||
acabadoCubierta: $('#acabadosCubierta').val(),
|
|
||||||
clienteId: $('#clienteId').val(),
|
|
||||||
servicios: servicios,
|
|
||||||
}
|
|
||||||
|
|
||||||
// Si es cosido, se añade el número de páginas del cuadernillo
|
|
||||||
if ($('#cosidoDiv').hasClass('checked')) {
|
|
||||||
datos.paginasCuadernillo = $('#paginasCuadernillo').val();
|
|
||||||
}
|
|
||||||
// Si hay solapas de cubierta
|
|
||||||
if ($('#solapasCubierta').is(':checked')) {
|
|
||||||
datos.solapasCubierta = $('#anchoSolapasCubierta').val()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Si hay sobrecubierta
|
|
||||||
if ($('#enableSobrecubierta').is(':checked')) {
|
|
||||||
if($('#papelSobrecubierta option:selected').val()>0 && $('#gramajeSobrecubierta option:selected').val()>0){
|
|
||||||
|
|
||||||
datos.sobrecubierta = {
|
|
||||||
papel: $('#papelSobrecubierta option:selected').val(),
|
|
||||||
papel_nombre: $('#papelSobrecubierta option:selected').text().trim(),
|
|
||||||
gramaje: $('#gramajeSobrecubierta option:selected').text(),
|
|
||||||
acabado: $('#acabadosSobrecubierta').val()
|
|
||||||
}
|
|
||||||
|
|
||||||
datos.sobrecubierta.solapas = $('#anchoSolapasSobrecubierta').val()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($('#divGuardas').is(':visible')) {
|
|
||||||
datos.guardas = {
|
|
||||||
papel: $('#papelGuardas option:selected').val(),
|
|
||||||
papel_nombre: $('#papelGuardas option:selected').text().trim(),
|
|
||||||
gramaje: 170,
|
|
||||||
caras: $('#impresionGuardas option:selected').val()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
datos = Object.assign(datos, window.token_ajax)
|
|
||||||
|
|
||||||
$('#divTiradasPrecio').empty();
|
|
||||||
$('#loader').show();
|
|
||||||
|
|
||||||
$.ajax({
|
|
||||||
url: window.routes_disenio_libro.presupuestoCliente,
|
|
||||||
type: 'POST',
|
|
||||||
data: datos,
|
|
||||||
success: function (response) {
|
|
||||||
error = false;
|
|
||||||
$('#errorGeneral').hide();
|
|
||||||
try{
|
|
||||||
|
|
||||||
|
|
||||||
if(response.errors.interior.length > 0){
|
|
||||||
$('#errorInterior').show();
|
|
||||||
error = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
$('#errorInterior').hide();
|
|
||||||
if(response.errors.cubierta.length > 0){
|
|
||||||
$('#errorCubierta').show();
|
|
||||||
error = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
$('#errorCubierta').hide();
|
|
||||||
|
|
||||||
if(response.errors.sobrecubierta.length > 0){
|
|
||||||
$('#errorSobrecubierta').show();
|
|
||||||
error = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
$('#errorSobrecubierta').hide();
|
|
||||||
|
|
||||||
|
|
||||||
if(response.errors.guardas.length > 0){
|
|
||||||
$('#errorGuardas').show();
|
|
||||||
error = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
$('#errorGuardas').hide();
|
|
||||||
|
|
||||||
if(response.errors.servicios.length > 0 || response.errors.serviciosDefecto.length > 0){
|
|
||||||
error = true;
|
|
||||||
$('#errorGeneral').show();
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
$('#errorGeneral').hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch(error){
|
|
||||||
}
|
|
||||||
|
|
||||||
//For debug only
|
|
||||||
//console.log(response);
|
|
||||||
|
|
||||||
$('#loader').hide();
|
|
||||||
|
|
||||||
$('#divTiradasPrecio').empty();
|
|
||||||
|
|
||||||
if(!error){
|
|
||||||
|
|
||||||
$('#lomo_cubierta').val(response.info.lomo_cubierta);
|
|
||||||
|
|
||||||
$('#precios').show();
|
|
||||||
|
|
||||||
if(response.tiradas){
|
|
||||||
for (i = 0; i < response.tiradas.length; i++) {
|
|
||||||
const total = (parseFloat(response.precio_u[i]) * parseInt(response.tiradas[i])).toFixed(2) ;
|
|
||||||
const label = "tiradaPrecio" + parseInt(i+1);
|
|
||||||
|
|
||||||
let html = '';
|
|
||||||
|
|
||||||
html += '<div id="' + label + '" peso="' +response.peso[i]+ '" class="list-group" >';
|
|
||||||
html += '<a href="javascript:void(0);" class="list-group-item list-group-item-action">';
|
|
||||||
html += '<div class="li-wrapper d-flex justify-content-start align-items-center" >';
|
|
||||||
html += '<div class="list-content">';
|
|
||||||
html += '<h7 id="ud_' + label + '" class="mb-1">' + (response.tiradas[i] + ' ud.') + '</h7>';
|
|
||||||
html += '<h6 id="tot_' + label + '" class="mb-1">' + ('Total: ' + total + '€') + '</h6>';
|
|
||||||
html += '<h7 id="pu_' + label + '" class="mb-1">' + (response.precio_u[i] + '€/ud') + '</h7>';
|
|
||||||
html += '</div>';
|
|
||||||
html += '</div>'
|
|
||||||
html += '</a>';
|
|
||||||
html += '</div>';
|
|
||||||
|
|
||||||
$('#divTiradasPrecio').append(html);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if($('#resumen-libro').hasClass('active')) {
|
|
||||||
initDirecciones();
|
|
||||||
initTiradasDirecciones();
|
|
||||||
generarResumen();
|
|
||||||
previewEsquemaCubierta(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
},
|
|
||||||
error: function (error) {
|
|
||||||
$('#loader').hide();
|
|
||||||
$('#divTiradasPrecio').empty();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
@ -1,356 +0,0 @@
|
|||||||
/**
|
|
||||||
* Cliente presupuesto Wizard
|
|
||||||
*/
|
|
||||||
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
(function () {
|
|
||||||
|
|
||||||
|
|
||||||
// Init custom option check
|
|
||||||
//window.Helpers.initCustomOptionCheck();
|
|
||||||
// Vertical Wizard
|
|
||||||
// --------------------------------------------------------------------
|
|
||||||
|
|
||||||
const clientePresupuestoWizard = document.querySelector('#wizard-presupuesto-cliente');
|
|
||||||
if (typeof clientePresupuestoWizard !== undefined && clientePresupuestoWizard !== null ) {
|
|
||||||
// Wizard form
|
|
||||||
const clientePresupuestoWizardForm = clientePresupuestoWizard.querySelector('#presupuesto-cliente-form');
|
|
||||||
// Wizard steps
|
|
||||||
const clientePresupuestoWizardFormStep2 = clientePresupuestoWizardForm.querySelector('#tipo-libro');
|
|
||||||
const clientePresupuestoWizardFormStep3 = clientePresupuestoWizardForm.querySelector('#disenio-libro');
|
|
||||||
const clientePresupuestoWizardFormStep4 = clientePresupuestoWizardForm.querySelector('#direcciones-libro');
|
|
||||||
const clientePresupuestoWizardFormStep5 = clientePresupuestoWizardForm.querySelector('#resumen-libro');
|
|
||||||
// Wizard next prev button
|
|
||||||
const clientePresupuestoWizardNext = [].slice.call(clientePresupuestoWizardForm.querySelectorAll('.btn-next'));
|
|
||||||
const clientePresupuestoWizardPrev = [].slice.call(clientePresupuestoWizardForm.querySelectorAll('.btn-prev'));
|
|
||||||
|
|
||||||
let FormValidation2;
|
|
||||||
let FormValidation3;
|
|
||||||
let FormValidation4;
|
|
||||||
let FormValidation5;
|
|
||||||
|
|
||||||
let validationStepper = new Stepper(clientePresupuestoWizard, {
|
|
||||||
linear: true
|
|
||||||
});
|
|
||||||
|
|
||||||
if(clientePresupuestoWizardFormStep2 != null) {
|
|
||||||
// select2 (clienteId)
|
|
||||||
const clienteId = $('#clienteId');
|
|
||||||
|
|
||||||
clienteId.on('change.select2', function () {
|
|
||||||
// Revalidate the clienteId field when an option is chosen
|
|
||||||
FormValidation2.revalidateField('clienteId');
|
|
||||||
});
|
|
||||||
|
|
||||||
// Deal Details
|
|
||||||
FormValidation2 = FormValidation.formValidation(clientePresupuestoWizardFormStep2, {
|
|
||||||
fields: {
|
|
||||||
},
|
|
||||||
plugins: {
|
|
||||||
trigger: new FormValidation.plugins.Trigger(),
|
|
||||||
bootstrap5: new FormValidation.plugins.Bootstrap5({
|
|
||||||
// Use this for enabling/changing valid/invalid class
|
|
||||||
// eleInvalidClass: '',
|
|
||||||
eleValidClass: '',
|
|
||||||
rowSelector: '.col-sm-3'
|
|
||||||
}),
|
|
||||||
autoFocus: new FormValidation.plugins.AutoFocus(),
|
|
||||||
submitButton: new FormValidation.plugins.SubmitButton()
|
|
||||||
}
|
|
||||||
}).on('core.form.valid', function () {
|
|
||||||
// Jump to the next step when all fields in the current step are valid
|
|
||||||
validationStepper.next();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// Deal Usage
|
|
||||||
FormValidation3 = FormValidation.formValidation(clientePresupuestoWizardFormStep3, {
|
|
||||||
fields: {
|
|
||||||
titulo: {
|
|
||||||
validators: {
|
|
||||||
notEmpty: {
|
|
||||||
message: window.Presupuestos.validation.requerido_short
|
|
||||||
},
|
|
||||||
}
|
|
||||||
},
|
|
||||||
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;
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
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: {
|
|
||||||
callback: function (input) {
|
|
||||||
const value = $("#tirada").val();
|
|
||||||
if ($('#gramajeInterior option:selected').text().length == 0) {
|
|
||||||
if(value.length > 0 && Number.isInteger(parseInt(value)) && parseInt(value) > 0){
|
|
||||||
return {
|
|
||||||
valid: false,
|
|
||||||
message: window.Presupuestos.validation.sin_gramaje,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
valid: value.length > 0 && Number.isInteger(parseInt(value)) && parseInt(value) > 0,
|
|
||||||
message: window.Presupuestos.validation.tirada_no_valida,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
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(),
|
|
||||||
bootstrap5: new FormValidation.plugins.Bootstrap5({
|
|
||||||
// Use this for enabling/changing valid/invalid class
|
|
||||||
// eleInvalidClass: '',
|
|
||||||
eleValidClass: '',
|
|
||||||
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';
|
|
||||||
|
|
||||||
case 'titulo':
|
|
||||||
return '.col-sm-12';
|
|
||||||
|
|
||||||
case 'clienteId':
|
|
||||||
return '.col-sm-6';
|
|
||||||
|
|
||||||
default:
|
|
||||||
return '.col-sm-3';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
autoFocus: new FormValidation.plugins.AutoFocus(),
|
|
||||||
submitButton: new FormValidation.plugins.SubmitButton()
|
|
||||||
}
|
|
||||||
}).on('core.form.valid', function () {
|
|
||||||
if($('#tiradaPrecio1').length > 0) {
|
|
||||||
validationStepper.next();
|
|
||||||
initDirecciones();
|
|
||||||
initTiradasDirecciones();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const tirada = $('#tirada');
|
|
||||||
tirada.on('change', function () {
|
|
||||||
// Revalidate the clienteId field when an option is chosen
|
|
||||||
FormValidation2.revalidateField('gramajeInterior');
|
|
||||||
FormValidation2.revalidateField('gramajeCubierta');
|
|
||||||
FormValidation2.revalidateField('gramajeSobrecubierta');
|
|
||||||
});
|
|
||||||
|
|
||||||
// Direcciones
|
|
||||||
FormValidation4 = FormValidation.formValidation(clientePresupuestoWizardFormStep4, {
|
|
||||||
fields: {
|
|
||||||
|
|
||||||
},
|
|
||||||
plugins: {
|
|
||||||
trigger: new FormValidation.plugins.Trigger(),
|
|
||||||
bootstrap5: new FormValidation.plugins.Bootstrap5({
|
|
||||||
// Use this for enabling/changing valid/invalid class
|
|
||||||
// eleInvalidClass: '',
|
|
||||||
eleValidClass: '',
|
|
||||||
rowSelector: '.col-md-12'
|
|
||||||
}),
|
|
||||||
autoFocus: new FormValidation.plugins.AutoFocus(),
|
|
||||||
submitButton: new FormValidation.plugins.SubmitButton()
|
|
||||||
}
|
|
||||||
}).on('core.form.valid', function () {
|
|
||||||
if(validarEnvio()){
|
|
||||||
generarResumen();
|
|
||||||
validationStepper.next();
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
let text = "El número de unidades enviadas no coincie con la tirada seleccionada.";
|
|
||||||
if($('#prototipo').is(':checked')) {
|
|
||||||
text += "<br>(Tenga en cuenta que se ha seleccionado la opción de prototipo)";
|
|
||||||
}
|
|
||||||
$('#errorDirecciones').text(text);
|
|
||||||
$('#errorDirecciones').show();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
// Deal Usage
|
|
||||||
FormValidation5 = FormValidation.formValidation(clientePresupuestoWizardFormStep5, {
|
|
||||||
fields: {
|
|
||||||
// * Validate the fields here based on your requirements
|
|
||||||
},
|
|
||||||
plugins: {
|
|
||||||
trigger: new FormValidation.plugins.Trigger(),
|
|
||||||
bootstrap5: new FormValidation.plugins.Bootstrap5({
|
|
||||||
// Use this for enabling/changing valid/invalid class
|
|
||||||
// eleInvalidClass: '',
|
|
||||||
eleValidClass: '',
|
|
||||||
rowSelector: '.col-md-12'
|
|
||||||
}),
|
|
||||||
autoFocus: new FormValidation.plugins.AutoFocus(),
|
|
||||||
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..!!');
|
|
||||||
});
|
|
||||||
|
|
||||||
clientePresupuestoWizardNext.forEach(item => {
|
|
||||||
item.addEventListener('click', event => {
|
|
||||||
// When click the Next button, we will validate the current step
|
|
||||||
switch (validationStepper._currentIndex) {
|
|
||||||
case 0:
|
|
||||||
FormValidation2.validate();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 1:
|
|
||||||
FormValidation3.validate();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
FormValidation4.validate();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 3:
|
|
||||||
FormValidation5.validate();
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
validationStepper.next();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
clientePresupuestoWizardPrev.forEach(item => {
|
|
||||||
item.addEventListener('click', event => {
|
|
||||||
switch (validationStepper._currentIndex) {
|
|
||||||
case 4:
|
|
||||||
validationStepper.previous();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 3:
|
|
||||||
validationStepper.previous();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
for (let i = 0; i < 4; i++) {
|
|
||||||
let id = "tiradaPrecio" + i;
|
|
||||||
if ($('#' + id).length > 0) {
|
|
||||||
$('#' + id).show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
validationStepper.previous();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 1:
|
|
||||||
validationStepper.previous();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0:
|
|
||||||
window.location.href = document.location.origin + '/presupuestocliente/list';
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
var url = $(location).attr('href'); // Obtener URL actual
|
|
||||||
if (url.includes('/edit/')) { // Comprobar si la URL contiene 'edit'
|
|
||||||
validationStepper.to(4);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
})();
|
|
||||||
|
|
||||||
|
|
||||||
@ -1,819 +0,0 @@
|
|||||||
// Global parameters
|
|
||||||
var pvObj;
|
|
||||||
|
|
||||||
$('#toReview').on("click", function () {
|
|
||||||
previewEsquemaCubierta(true);
|
|
||||||
});
|
|
||||||
|
|
||||||
$(document).on('shown.bs.modal', function (e) {
|
|
||||||
previewEsquemaCubierta(false);
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
function previewEsquemaCubierta(isThumbnail = false) {
|
|
||||||
|
|
||||||
if($('#cosidoDiv').length){
|
|
||||||
|
|
||||||
if ($('#cosidoDiv').hasClass('checked') || $("#fresadoDiv").hasClass('checked')) {
|
|
||||||
//console.log("Cosido/Fresado");
|
|
||||||
if ($("#tapaBlanda").is(":checked")) {
|
|
||||||
portadaTapaBlanda(isThumbnail);
|
|
||||||
} else if ($("#tapaDura").is(":checked")) {
|
|
||||||
portadaTapaDura(isThumbnail);
|
|
||||||
}
|
|
||||||
} else if ($('#espiralDiv').hasClass('checked') || $('#wireoDiv').hasClass('checked')) {
|
|
||||||
//console.log("Espiral/Wireo");
|
|
||||||
if ($("#tapaBlanda").is(":checked")) {
|
|
||||||
portadaEspiral(isThumbnail, false);
|
|
||||||
} else if ($("#tapaDura").is(":checked")) {
|
|
||||||
portadaEspiral(isThumbnail, true);
|
|
||||||
}
|
|
||||||
} else if ($('#grapadoDiv').hasClass('checked')) {
|
|
||||||
portadaGrapado(isThumbnail);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
let titulo = $('#tipoLibro').text().toLowerCase();
|
|
||||||
if(titulo.includes("cosido") || titulo.includes("fresado")){
|
|
||||||
if(titulo.includes("dura"))
|
|
||||||
portadaTapaDura(isThumbnail);
|
|
||||||
else{
|
|
||||||
portadaTapaBlanda(isThumbnail);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (titulo.includes("espiral") || titulo.includes("wire-o")){
|
|
||||||
if(titulo.includes("dura"))
|
|
||||||
portadaEspiral(isThumbnail, true);
|
|
||||||
else
|
|
||||||
portadaEspiral(isThumbnail, false);
|
|
||||||
}
|
|
||||||
else if (titulo.includes("grapado")){
|
|
||||||
portadaGrapado(isThumbnail);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function portadaTapaDura(isThumbnail = false) {
|
|
||||||
|
|
||||||
// Variables locales
|
|
||||||
let altoLibro, anchoLibro, lomoLibro, anchoCubierta, altoSangrado, anchoSangrado;
|
|
||||||
let styleCotas = {size: 12, family: 'Public Sans'};
|
|
||||||
let sangradoTexto = "Sangrado 20 mm";
|
|
||||||
let sangradoValor = parseFloat(20); // mm
|
|
||||||
let anchoPliegue = parseFloat(7); // mm
|
|
||||||
let altoPliegue = parseFloat(7); // mm
|
|
||||||
let anchoCarton = parseFloat(7); // mm
|
|
||||||
|
|
||||||
let divIdName = (isThumbnail) ? 'thumbnail_ec_shape' : 'pv_ec_shape';
|
|
||||||
|
|
||||||
// Get the preview Object parameters
|
|
||||||
getObjetoToPreview();
|
|
||||||
|
|
||||||
// Definicion de los parametros del Esquema de Cubierta (EC)
|
|
||||||
if (isThumbnail) {
|
|
||||||
anchoSangrado = 350; // px
|
|
||||||
altoSangrado = (anchoSangrado * 0.647 > 300) ? 300 : anchoSangrado * 0.647; // px
|
|
||||||
} else {
|
|
||||||
anchoSangrado = 800; // px
|
|
||||||
altoSangrado = (anchoSangrado * 0.647 > 650) ? 650 : anchoSangrado * 0.647; // px
|
|
||||||
}
|
|
||||||
altoLibro = altoSangrado * 0.88;
|
|
||||||
anchoLibro = anchoSangrado * 0.39;
|
|
||||||
lomoLibro = anchoSangrado * 0.133;
|
|
||||||
anchoCubierta = (2 * anchoLibro) + lomoLibro;
|
|
||||||
|
|
||||||
// Clear the canvas element
|
|
||||||
$(`#${divIdName}`).empty();
|
|
||||||
// Get the element for placing the graphical elements
|
|
||||||
var divEC = document.getElementById(divIdName);
|
|
||||||
var previewEC = new Two({fitted: true}).appendTo(divEC);
|
|
||||||
|
|
||||||
// Calculate the center of the canvas element
|
|
||||||
var origenEC = new Two.Vector(previewEC.width / 2, previewEC.height / 2);
|
|
||||||
|
|
||||||
var sangrado = previewEC.makeRectangle(
|
|
||||||
origenEC.x,
|
|
||||||
origenEC.y,
|
|
||||||
anchoSangrado,
|
|
||||||
altoSangrado
|
|
||||||
);
|
|
||||||
sangrado.stroke = 'black';
|
|
||||||
sangrado.dashes = [5, 5];
|
|
||||||
sangrado.fill = '#FCEAF1';
|
|
||||||
sangrado.linewidth = 1;
|
|
||||||
|
|
||||||
var libro = previewEC.makeRectangle(
|
|
||||||
origenEC.x,
|
|
||||||
origenEC.y,
|
|
||||||
((2 * anchoLibro) + lomoLibro),
|
|
||||||
altoLibro);
|
|
||||||
libro.stroke = 'black';
|
|
||||||
libro.linewidth = 1;
|
|
||||||
|
|
||||||
var lomo = previewEC.makeRectangle(
|
|
||||||
origenEC.x,
|
|
||||||
origenEC.y,
|
|
||||||
lomoLibro,
|
|
||||||
altoLibro);
|
|
||||||
lomo.stroke = 'black';
|
|
||||||
lomo.fill = '#F4F8F2';
|
|
||||||
lomo.linewidth = 1;
|
|
||||||
|
|
||||||
// Cotas y textos
|
|
||||||
if (!isThumbnail) {
|
|
||||||
// Cotas:
|
|
||||||
var cotaAnchoCubierta = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x - (anchoSangrado / 2),
|
|
||||||
origenEC.y + (altoLibro / 2) + 35,
|
|
||||||
origenEC.x + (anchoSangrado / 2),
|
|
||||||
origenEC.y + (altoLibro / 2) + 35,
|
|
||||||
10);
|
|
||||||
cotaAnchoCubierta.linewidth = 2;
|
|
||||||
var cotaAltoCubierta = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x + (anchoCubierta / 2) + 40,
|
|
||||||
origenEC.y + (altoSangrado / 2),
|
|
||||||
origenEC.x + (anchoCubierta / 2) + 40,
|
|
||||||
origenEC.y - (altoSangrado / 2),
|
|
||||||
10);
|
|
||||||
cotaAltoCubierta.linewidth = 2;
|
|
||||||
var cotaAltoLibro = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x + (lomoLibro / 2) + 35,
|
|
||||||
origenEC.y + (altoLibro / 2),
|
|
||||||
origenEC.x + (lomoLibro / 2) + 35,
|
|
||||||
origenEC.y - (altoLibro / 2),
|
|
||||||
10);
|
|
||||||
cotaAltoLibro.linewidth = 2;
|
|
||||||
var cotaLomo = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x - (lomoLibro / 2),
|
|
||||||
origenEC.y + (altoLibro / 3),
|
|
||||||
origenEC.x + (lomoLibro / 2),
|
|
||||||
origenEC.y + (altoLibro / 3),
|
|
||||||
10);
|
|
||||||
cotaLomo.linewidth = 2;
|
|
||||||
var cotaContraportada = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x - (lomoLibro / 2 + anchoLibro),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
origenEC.x - (lomoLibro / 2),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
10);
|
|
||||||
cotaContraportada.linewidth = 2;
|
|
||||||
var cotaPortada = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x + (lomoLibro / 2),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
origenEC.x + (lomoLibro / 2 + anchoLibro),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
10);
|
|
||||||
cotaPortada.linewidth = 2;
|
|
||||||
|
|
||||||
|
|
||||||
// Textos:
|
|
||||||
// Titulos generales
|
|
||||||
let stylesEC = {size: 22, weight: 'bold', family: 'Public Sans'};
|
|
||||||
previewEC.makeText("Portada", origenEC.x + (lomoLibro + anchoLibro) / 2, origenEC.y, stylesEC);
|
|
||||||
previewEC.makeText("Contraportada", origenEC.x - (lomoLibro + anchoLibro) / 2, origenEC.y, stylesEC);
|
|
||||||
previewEC.makeText("Lomo", origenEC.x, origenEC.y, stylesEC).rotation = -Math.PI / 2;
|
|
||||||
// Sangrados
|
|
||||||
let styleSangrado = {size: 10, family: 'Public Sans', style: 'italic', fill: 'red'};
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x, origenEC.y + (altoLibro / 2 + 13), styleSangrado);
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x, origenEC.y - (altoLibro / 2 + 13), styleSangrado);
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x + (lomoLibro / 2 + anchoLibro + 13), origenEC.y, styleSangrado).rotation = -Math.PI / 2;
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x - (lomoLibro / 2 + anchoLibro + 13), origenEC.y, styleSangrado).rotation = -Math.PI / 2;
|
|
||||||
// Cotas
|
|
||||||
previewEC.makeText(pvObj.lomoLibro + anchoCarton + " mm", origenEC.x, origenEC.y + (altoLibro / 3) + 15, styleCotas);
|
|
||||||
previewEC.makeText(pvObj.anchoLibro + anchoPliegue + " mm", origenEC.x - (lomoLibro / 2 + anchoLibro / 2), origenEC.y - (altoLibro / 3) + 15, styleCotas);
|
|
||||||
previewEC.makeText(pvObj.anchoLibro + anchoPliegue + " mm", origenEC.x + (lomoLibro / 2 + anchoLibro / 2), origenEC.y - (altoLibro / 3) + 15, styleCotas);
|
|
||||||
previewEC.makeText(pvObj.altoLibro + altoPliegue + " mm", origenEC.x + (lomoLibro / 2) + 50, origenEC.y, styleCotas).rotation = -Math.PI / 2;
|
|
||||||
previewEC.makeText(pvObj.altoLibro + (2 * sangradoValor) + altoPliegue + " mm", origenEC.x + (lomoLibro / 2 + anchoLibro) + 55, origenEC.y, styleCotas).rotation = -Math.PI / 2;
|
|
||||||
previewEC.makeText((2 * pvObj.anchoLibro) + pvObj.lomoLibro + (2 * sangradoValor) + +(2 * anchoPliegue) + anchoCarton + " mm",
|
|
||||||
origenEC.x,
|
|
||||||
origenEC.y + (altoLibro / 2) + 50,
|
|
||||||
styleCotas);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
previewEC.update();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function portadaTapaBlanda(isThumbnail = false) {
|
|
||||||
|
|
||||||
// Variables locales
|
|
||||||
let altoLibro, anchoLibro, lomoLibro, anchoSolapa, anchoCubierta, altoSangrado, anchoSangrado;
|
|
||||||
let styleCotas = {size: 12, family: 'Public Sans'};
|
|
||||||
let sangradoTexto = "Sangrado 5 mm";
|
|
||||||
let sangradoValor = parseFloat(5); // mm
|
|
||||||
let offsetSolapaValor = parseFloat(0); // mm
|
|
||||||
|
|
||||||
let divIdName = (isThumbnail) ? 'thumbnail_ec_shape' : 'pv_ec_shape';
|
|
||||||
|
|
||||||
// Get the preview Object parameters
|
|
||||||
getObjetoToPreview();
|
|
||||||
|
|
||||||
|
|
||||||
// Definicion de los parametros del Esquema de Cubierta (EC)
|
|
||||||
if (pvObj.anchoSolapa == 0) {
|
|
||||||
if (isThumbnail) {
|
|
||||||
anchoSangrado = 350; // px
|
|
||||||
altoSangrado = (anchoSangrado * 0.647 > 300) ? 300 : anchoSangrado * 0.647; // px
|
|
||||||
} else {
|
|
||||||
anchoSangrado = 800; // px
|
|
||||||
altoSangrado = (anchoSangrado * 0.647 > 650) ? 650 : anchoSangrado * 0.647; // px
|
|
||||||
}
|
|
||||||
|
|
||||||
altoLibro = altoSangrado * 0.97;
|
|
||||||
anchoLibro = anchoSangrado * 0.419;
|
|
||||||
anchoSolapa = 0;
|
|
||||||
lomoLibro = anchoSangrado * 0.133;
|
|
||||||
anchoCubierta = (2 * anchoLibro) + (2 * anchoSolapa) + lomoLibro;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
if (isThumbnail) {
|
|
||||||
anchoSangrado = 350; // px
|
|
||||||
altoSangrado = (anchoSangrado * 0.647 > 300) ? 300 : anchoSangrado * 0.647; // px
|
|
||||||
} else {
|
|
||||||
anchoSangrado = 750; // px
|
|
||||||
altoSangrado = (anchoSangrado * 0.647 > 650) ? 650 : anchoSangrado * 0.647; // px
|
|
||||||
}
|
|
||||||
altoLibro = altoSangrado * 0.95;
|
|
||||||
anchoLibro = anchoSangrado * 0.28;
|
|
||||||
anchoSolapa = anchoSangrado * 0.163;
|
|
||||||
lomoLibro = anchoSangrado * 0.09;
|
|
||||||
anchoCubierta = (2 * anchoLibro) + (2 * anchoSolapa) + lomoLibro;
|
|
||||||
offsetSolapaValor = parseFloat('3.0'); // mm
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear the canvas element
|
|
||||||
$(`#${divIdName}`).empty();
|
|
||||||
// Get the element for placing the graphical elements
|
|
||||||
var divEC = document.getElementById(divIdName);
|
|
||||||
var previewEC = new Two({fitted: true}).appendTo(divEC);
|
|
||||||
// Calculate the center of the canvas element
|
|
||||||
var origenEC = new Two.Vector(previewEC.width / 2, previewEC.height / 2);
|
|
||||||
|
|
||||||
var sangrado = previewEC.makeRectangle(
|
|
||||||
origenEC.x,
|
|
||||||
origenEC.y,
|
|
||||||
anchoSangrado,
|
|
||||||
altoSangrado
|
|
||||||
);
|
|
||||||
sangrado.stroke = 'black';
|
|
||||||
sangrado.dashes = [5, 5];
|
|
||||||
sangrado.fill = '#FCEAF1';
|
|
||||||
sangrado.linewidth = 1;
|
|
||||||
|
|
||||||
if (pvObj.anchoSolapa != 0) {
|
|
||||||
var solapas = previewEC.makeRectangle(
|
|
||||||
origenEC.x,
|
|
||||||
origenEC.y,
|
|
||||||
anchoCubierta,
|
|
||||||
altoLibro);
|
|
||||||
solapas.stroke = 'black';
|
|
||||||
solapas.linewidth = 1;
|
|
||||||
|
|
||||||
// Cotas Solapas
|
|
||||||
if (!isThumbnail) {
|
|
||||||
var cotaSolapa2 = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x - anchoCubierta / 2,
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
origenEC.x - anchoLibro - lomoLibro / 2,
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
10);
|
|
||||||
cotaSolapa2.linewidth = 2;
|
|
||||||
var cotaSolapa1 = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x + anchoCubierta / 2,
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
origenEC.x + anchoLibro + lomoLibro / 2,
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
10);
|
|
||||||
cotaSolapa1.linewidth = 2;
|
|
||||||
|
|
||||||
// Textos Solapas
|
|
||||||
let stylesSolapa = {size: 18, family: 'Public Sans'};
|
|
||||||
previewEC.makeText("Solapa 1", origenEC.x + anchoLibro + (lomoLibro + anchoSolapa) / 2, origenEC.y, stylesSolapa);
|
|
||||||
previewEC.makeText("Solapa 2", origenEC.x - anchoLibro - (lomoLibro + anchoSolapa) / 2, origenEC.y, stylesSolapa);
|
|
||||||
// Textos Cotas Solapas
|
|
||||||
previewEC.makeText(pvObj.anchoSolapa + " mm", origenEC.x - anchoLibro - (lomoLibro + anchoSolapa) / 2, origenEC.y - (altoLibro / 3) + 15, styleCotas);
|
|
||||||
previewEC.makeText(pvObj.anchoSolapa + " mm", origenEC.x + anchoLibro + (lomoLibro + anchoSolapa) / 2, origenEC.y - (altoLibro / 3) + 15, styleCotas);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
var libro = previewEC.makeRectangle(
|
|
||||||
origenEC.x,
|
|
||||||
origenEC.y,
|
|
||||||
((2 * anchoLibro) + lomoLibro),
|
|
||||||
altoLibro);
|
|
||||||
libro.stroke = 'black';
|
|
||||||
libro.linewidth = 1;
|
|
||||||
|
|
||||||
var lomo = previewEC.makeRectangle(
|
|
||||||
origenEC.x,
|
|
||||||
origenEC.y,
|
|
||||||
lomoLibro,
|
|
||||||
altoLibro);
|
|
||||||
lomo.stroke = 'black';
|
|
||||||
lomo.fill = '#F4F8F2';
|
|
||||||
lomo.linewidth = 1;
|
|
||||||
|
|
||||||
// Cotas y textos
|
|
||||||
if (!isThumbnail) {
|
|
||||||
// Cotas:
|
|
||||||
var cotaAnchoCubierta = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x - (anchoSangrado / 2),
|
|
||||||
origenEC.y + (altoLibro / 2) + 35,
|
|
||||||
origenEC.x + (anchoSangrado / 2),
|
|
||||||
origenEC.y + (altoLibro / 2) + 35,
|
|
||||||
10);
|
|
||||||
cotaAnchoCubierta.linewidth = 2;
|
|
||||||
var cotaAltoCubierta = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x + (anchoCubierta / 2) + 35,
|
|
||||||
origenEC.y + (altoSangrado / 2),
|
|
||||||
origenEC.x + (anchoCubierta / 2) + 35,
|
|
||||||
origenEC.y - (altoSangrado / 2),
|
|
||||||
10);
|
|
||||||
cotaAltoCubierta.linewidth = 2;
|
|
||||||
var cotaAltoLibro = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x + (lomoLibro / 2) + 35,
|
|
||||||
origenEC.y + (altoLibro / 2),
|
|
||||||
origenEC.x + (lomoLibro / 2) + 35,
|
|
||||||
origenEC.y - (altoLibro / 2),
|
|
||||||
10);
|
|
||||||
cotaAltoLibro.linewidth = 2;
|
|
||||||
var cotaLomo = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x - (lomoLibro / 2),
|
|
||||||
origenEC.y + (altoLibro / 3),
|
|
||||||
origenEC.x + (lomoLibro / 2),
|
|
||||||
origenEC.y + (altoLibro / 3),
|
|
||||||
10);
|
|
||||||
cotaLomo.linewidth = 2;
|
|
||||||
var cotaContraportada = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x - (lomoLibro / 2 + anchoLibro),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
origenEC.x - (lomoLibro / 2),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
10);
|
|
||||||
cotaContraportada.linewidth = 2;
|
|
||||||
var cotaPortada = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x + (lomoLibro / 2),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
origenEC.x + (lomoLibro / 2 + anchoLibro),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
10);
|
|
||||||
cotaPortada.linewidth = 2;
|
|
||||||
|
|
||||||
|
|
||||||
// Textos:
|
|
||||||
// Titulos generales
|
|
||||||
let stylesEC = {size: 22, weight: 'bold', family: 'Public Sans'};
|
|
||||||
previewEC.makeText("Portada", origenEC.x + (lomoLibro + anchoLibro) / 2, origenEC.y, stylesEC);
|
|
||||||
previewEC.makeText("Contraportada", origenEC.x - (lomoLibro + anchoLibro) / 2, origenEC.y, stylesEC);
|
|
||||||
let a = previewEC.makeText("Lomo", origenEC.x, origenEC.y, stylesEC).rotation = -Math.PI / 2;
|
|
||||||
// Sangrados
|
|
||||||
let styleSangrado = {size: 10, family: 'Public Sans', style: 'italic', fill: 'red'};
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x, origenEC.y + (altoLibro / 2 + 20), styleSangrado);
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x, origenEC.y - (altoLibro / 2 + 20), styleSangrado);
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x + (lomoLibro / 2 + anchoLibro + anchoSolapa + 20), origenEC.y, styleSangrado).rotation = -Math.PI / 2;
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x - (lomoLibro / 2 + anchoLibro + anchoSolapa + 20), origenEC.y, styleSangrado).rotation = -Math.PI / 2;
|
|
||||||
// Cotas
|
|
||||||
previewEC.makeText(pvObj.lomoLibro + " mm", origenEC.x, origenEC.y + (altoLibro / 3) + 15, styleCotas);
|
|
||||||
previewEC.makeText(pvObj.anchoLibro + " mm", origenEC.x - (lomoLibro / 2 + anchoLibro / 2), origenEC.y - (altoLibro / 3) + 15, styleCotas);
|
|
||||||
previewEC.makeText(pvObj.anchoLibro + " mm", origenEC.x + (lomoLibro / 2 + anchoLibro / 2), origenEC.y - (altoLibro / 3) + 15, styleCotas);
|
|
||||||
previewEC.makeText(pvObj.altoLibro + " mm", origenEC.x + (lomoLibro / 2) + 25, origenEC.y, styleCotas).rotation = -Math.PI / 2;
|
|
||||||
previewEC.makeText(pvObj.altoLibro + (2 * sangradoValor) + " mm", origenEC.x + (lomoLibro / 2 + anchoLibro + anchoSolapa) + 50, origenEC.y, styleCotas).rotation = -Math.PI / 2;
|
|
||||||
previewEC.makeText((2 * pvObj.anchoLibro) + (2 * (pvObj.anchoSolapa + pvObj.offsetSolapa)) + pvObj.lomoLibro + (2 * sangradoValor) + " mm",
|
|
||||||
origenEC.x,
|
|
||||||
origenEC.y + (altoLibro / 2) + 50,
|
|
||||||
styleCotas);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
previewEC.update();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function portadaEspiral(isThumbnail = false, isTapaDura = false) {
|
|
||||||
|
|
||||||
// Variables locales
|
|
||||||
let altoLibro, anchoLibro, anchoCalle, anchoCubierta, altoSangrado, anchoSangrado, anchoSolapa, offsetCubierta;
|
|
||||||
let styleCotas = {size: 12, family: 'Public Sans'};
|
|
||||||
let sangradoTexto = (isTapaDura) ? "Sangrado 20 mm" : "Sangrado 5 mm";
|
|
||||||
let sangradoValor = (isTapaDura) ? parseFloat(20) : parseFloat(5); // mm
|
|
||||||
|
|
||||||
let divIdName = (isThumbnail) ? 'thumbnail_ec_shape' : 'pv_ec_shape';
|
|
||||||
|
|
||||||
// Get the preview Object parameters
|
|
||||||
getObjetoToPreview();
|
|
||||||
|
|
||||||
// Definicion de los parametros del Esquema de Cubierta (EC)
|
|
||||||
if ((pvObj.anchoSolapa !== 0) && (!isTapaDura)) {
|
|
||||||
if (isThumbnail) {
|
|
||||||
anchoSangrado = 350; // px
|
|
||||||
altoSangrado = (anchoSangrado * 0.647 > 300) ? 300 : anchoSangrado * 0.647; // px
|
|
||||||
} else {
|
|
||||||
anchoSangrado = 750; // px
|
|
||||||
altoSangrado = (anchoSangrado * 0.647 > 650) ? 650 : anchoSangrado * 0.647; // px
|
|
||||||
}
|
|
||||||
altoLibro = altoSangrado * 0.95;
|
|
||||||
anchoLibro = anchoSangrado * 0.28;
|
|
||||||
anchoCalle = anchoSangrado * 0.02;
|
|
||||||
anchoSolapa = anchoSangrado * 0.163;
|
|
||||||
sangrado = anchoSangrado * 0.03;
|
|
||||||
anchoCubierta = 2 * (anchoLibro + anchoSolapa + sangrado) + anchoCalle;
|
|
||||||
offsetCubierta = anchoLibro / 2 + anchoCalle / 2 + anchoSolapa / 2 + sangrado;
|
|
||||||
} else {
|
|
||||||
if (isThumbnail) {
|
|
||||||
anchoSangrado = 350; // px
|
|
||||||
altoSangrado = (anchoSangrado * 0.647 > 300) ? 300 : anchoSangrado * 0.647; // px
|
|
||||||
} else {
|
|
||||||
anchoSangrado = 750; // px
|
|
||||||
altoSangrado = (anchoSangrado * 0.647 > 650) ? 650 : anchoSangrado * 0.647; // px
|
|
||||||
}
|
|
||||||
altoLibro = (isTapaDura) ? altoSangrado * 0.88 : altoSangrado * 0.97;
|
|
||||||
anchoLibro = (isTapaDura) ? anchoSangrado * 0.39 : anchoSangrado * 0.419;
|
|
||||||
anchoCalle = anchoSangrado * 0.02;
|
|
||||||
anchoSolapa = 0;
|
|
||||||
anchoCubierta = (2 * anchoLibro) + (2 * anchoSolapa) + anchoCalle;
|
|
||||||
offsetCubierta = anchoLibro / 2 + anchoCalle / 2 + anchoSolapa + sangradoValor;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear the canvas element
|
|
||||||
$(`#${divIdName}`).empty();
|
|
||||||
// Get the element for placing the graphical elements
|
|
||||||
var divEC = document.getElementById(divIdName);
|
|
||||||
var previewEC = new Two({fitted: true}).appendTo(divEC);
|
|
||||||
// Calculate the center of the canvas element
|
|
||||||
var origenEC = new Two.Vector(previewEC.width / 2, previewEC.height / 2);
|
|
||||||
|
|
||||||
var sangrado = previewEC.makeRectangle(
|
|
||||||
origenEC.x,
|
|
||||||
origenEC.y,
|
|
||||||
anchoSangrado,
|
|
||||||
altoSangrado
|
|
||||||
);
|
|
||||||
sangrado.stroke = 'black';
|
|
||||||
sangrado.dashes = [5, 5];
|
|
||||||
sangrado.fill = '#FCEAF1';
|
|
||||||
sangrado.linewidth = 1;
|
|
||||||
|
|
||||||
if ((pvObj.anchoSolapa != 0) && (!isTapaDura)) {
|
|
||||||
var solapa1 = previewEC.makeRectangle(
|
|
||||||
origenEC.x + (anchoLibro + anchoCalle / 2 + anchoSolapa / 2 + sangradoValor),
|
|
||||||
origenEC.y,
|
|
||||||
anchoSolapa,
|
|
||||||
altoLibro);
|
|
||||||
solapa1.stroke = 'black';
|
|
||||||
solapa1.linewidth = 1;
|
|
||||||
|
|
||||||
var solapa2 = previewEC.makeRectangle(
|
|
||||||
origenEC.x - (anchoLibro + anchoCalle / 2 + anchoSolapa / 2 + sangradoValor),
|
|
||||||
origenEC.y,
|
|
||||||
anchoSolapa,
|
|
||||||
altoLibro);
|
|
||||||
solapa2.stroke = 'black';
|
|
||||||
solapa2.linewidth = 1;
|
|
||||||
|
|
||||||
// Cotas y textos
|
|
||||||
if (!isThumbnail) {
|
|
||||||
// Cotas
|
|
||||||
var cotaSolapa2 = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x - (anchoCalle / 2 + sangradoValor + anchoLibro + anchoSolapa),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
origenEC.x - (anchoLibro + sangradoValor + anchoCalle / 2),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
10);
|
|
||||||
cotaSolapa2.linewidth = 2;
|
|
||||||
var cotaSolapa1 = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x + (anchoCalle / 2 + sangradoValor + anchoLibro + anchoSolapa),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
origenEC.x + (anchoLibro + sangradoValor + anchoCalle / 2),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
10);
|
|
||||||
cotaSolapa1.linewidth = 2;
|
|
||||||
|
|
||||||
// Textos Solapas
|
|
||||||
let stylesSolapa = {size: 18, family: 'Public Sans'};
|
|
||||||
previewEC.makeText("Solapa 1", origenEC.x + anchoLibro + (anchoCalle + anchoSolapa) / 2, origenEC.y, stylesSolapa);
|
|
||||||
previewEC.makeText("Solapa 2", origenEC.x - anchoLibro - (anchoCalle + anchoSolapa) / 2, origenEC.y, stylesSolapa);
|
|
||||||
// Textos Cotas Solapas
|
|
||||||
previewEC.makeText(pvObj.anchoSolapa + " mm", origenEC.x - anchoLibro - (anchoCalle + anchoSolapa) / 2, origenEC.y - (altoLibro / 3) + 15, styleCotas);
|
|
||||||
previewEC.makeText(pvObj.anchoSolapa + " mm", origenEC.x + anchoLibro + (anchoCalle + anchoSolapa) / 2, origenEC.y - (altoLibro / 3) + 15, styleCotas);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
var portada = previewEC.makeRectangle(
|
|
||||||
origenEC.x + (anchoLibro / 2 + anchoCalle / 2 + sangradoValor),
|
|
||||||
origenEC.y,
|
|
||||||
anchoLibro,
|
|
||||||
altoLibro);
|
|
||||||
portada.stroke = 'black';
|
|
||||||
portada.linewidth = 1;
|
|
||||||
|
|
||||||
var contraportada = previewEC.makeRectangle(
|
|
||||||
origenEC.x - (anchoLibro / 2 + anchoCalle / 2 + sangradoValor),
|
|
||||||
origenEC.y,
|
|
||||||
anchoLibro,
|
|
||||||
altoLibro);
|
|
||||||
contraportada.stroke = 'black';
|
|
||||||
contraportada.linewidth = 1;
|
|
||||||
|
|
||||||
var calle = previewEC.makeRectangle(
|
|
||||||
origenEC.x,
|
|
||||||
origenEC.y,
|
|
||||||
anchoCalle,
|
|
||||||
altoSangrado);
|
|
||||||
calle.stroke = 'black';
|
|
||||||
calle.dashes = [2, 5];
|
|
||||||
calle.fill = '#F4F8F2';
|
|
||||||
calle.linewidth = 1;
|
|
||||||
|
|
||||||
// Cotas y textos
|
|
||||||
if (!isThumbnail) {
|
|
||||||
// Cotas:
|
|
||||||
var cotaAnchoCubierta = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x - (anchoSangrado / 2),
|
|
||||||
origenEC.y + (altoLibro / 2) + 35,
|
|
||||||
origenEC.x + (anchoSangrado / 2),
|
|
||||||
origenEC.y + (altoLibro / 2) + 35,
|
|
||||||
10);
|
|
||||||
cotaAnchoCubierta.linewidth = 2;
|
|
||||||
var cotaAltoCubierta = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x + (anchoSangrado / 2) + 15,
|
|
||||||
origenEC.y + (altoSangrado / 2),
|
|
||||||
origenEC.x + (anchoSangrado / 2) + 15,
|
|
||||||
origenEC.y - (altoSangrado / 2),
|
|
||||||
10);
|
|
||||||
cotaAltoCubierta.linewidth = 2;
|
|
||||||
var cotaAltoLibro = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x + (anchoCalle / 2) + 35,
|
|
||||||
origenEC.y + (altoLibro / 2),
|
|
||||||
origenEC.x + (anchoCalle / 2) + 35,
|
|
||||||
origenEC.y - (altoLibro / 2),
|
|
||||||
10);
|
|
||||||
cotaAltoLibro.linewidth = 2;
|
|
||||||
var cotaContraportada = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x - (anchoCalle / 2 + anchoLibro + sangradoValor),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
origenEC.x - ((anchoCalle / 2) + sangradoValor),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
10);
|
|
||||||
cotaContraportada.linewidth = 2;
|
|
||||||
var cotaPortada = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x + ((anchoCalle / 2) + sangradoValor),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
origenEC.x + (anchoCalle / 2 + anchoLibro + sangradoValor),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
10);
|
|
||||||
cotaPortada.linewidth = 2;
|
|
||||||
|
|
||||||
|
|
||||||
// Textos:
|
|
||||||
// Titulos generales
|
|
||||||
let stylesEC = {size: 22, weight: 'bold', family: 'Public Sans'};
|
|
||||||
previewEC.makeText("Portada",
|
|
||||||
origenEC.x + anchoLibro / 2 + anchoCalle / 2 + sangradoValor + 15,
|
|
||||||
origenEC.y,
|
|
||||||
stylesEC
|
|
||||||
);
|
|
||||||
previewEC.makeText("Contraportada",
|
|
||||||
origenEC.x - (anchoLibro / 2 + anchoCalle / 2 + sangradoValor),
|
|
||||||
origenEC.y,
|
|
||||||
stylesEC
|
|
||||||
);
|
|
||||||
// Sangrados
|
|
||||||
let styleSangrado = {size: 10, family: 'Public Sans', style: 'italic', fill: 'red'};
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x + offsetCubierta, origenEC.y + (altoLibro / 2 + 13), styleSangrado);
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x + offsetCubierta, origenEC.y - (altoLibro / 2 + 13), styleSangrado);
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x - offsetCubierta, origenEC.y + (altoLibro / 2 + 13), styleSangrado);
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x - offsetCubierta, origenEC.y - (altoLibro / 2 + 13), styleSangrado);
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x + (anchoSangrado / 2) - 20, origenEC.y, styleSangrado).rotation = -Math.PI / 2;
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x - (anchoSangrado / 2) + 20, origenEC.y, styleSangrado).rotation = -Math.PI / 2;
|
|
||||||
// Cotas
|
|
||||||
previewEC.makeText(pvObj.anchoLibro + " mm", origenEC.x - (offsetCubierta - anchoSolapa / 2), origenEC.y - (altoLibro / 3) + 15, styleCotas);
|
|
||||||
previewEC.makeText(pvObj.anchoLibro + " mm", origenEC.x + (offsetCubierta - anchoSolapa / 2), origenEC.y - (altoLibro / 3) + 15, styleCotas);
|
|
||||||
previewEC.makeText(pvObj.altoLibro + " mm", origenEC.x + (anchoCalle / 2) + 50, origenEC.y, styleCotas).rotation = -Math.PI / 2;
|
|
||||||
previewEC.makeText(pvObj.altoLibro + (2 * sangradoValor) + " mm",
|
|
||||||
origenEC.x + (anchoSangrado / 2) + 30,
|
|
||||||
origenEC.y,
|
|
||||||
styleCotas
|
|
||||||
).rotation = -Math.PI / 2;
|
|
||||||
previewEC.makeText((2 * pvObj.anchoLibro) + pvObj.lomoLibro + (2 * sangradoValor) + " mm",
|
|
||||||
origenEC.x,
|
|
||||||
origenEC.y + (altoLibro / 2) + 50,
|
|
||||||
styleCotas);
|
|
||||||
}
|
|
||||||
|
|
||||||
previewEC.update();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function portadaGrapado(isThumbnail = false) {
|
|
||||||
|
|
||||||
// Variables locales
|
|
||||||
let altoLibro, anchoLibro, lomoLibro, anchoSolapa, anchoCubierta, altoSangrado, anchoSangrado;
|
|
||||||
let styleCotas = {size: 12, family: 'Public Sans'};
|
|
||||||
let sangradoTexto = "Sangrado 5 mm";
|
|
||||||
let sangradoValor = parseFloat('5.0'); // mm
|
|
||||||
let offsetSolapaValor = parseFloat('0.0'); // mm
|
|
||||||
|
|
||||||
let divIdName = (isThumbnail) ? 'thumbnail_ec_shape' : 'pv_ec_shape';
|
|
||||||
|
|
||||||
// Get the preview Object parameters
|
|
||||||
getObjetoToPreview();
|
|
||||||
|
|
||||||
// Definicion de los parametros del Esquema de Cubierta (EC)
|
|
||||||
if (pvObj.anchoSolapa == 0) {
|
|
||||||
if (isThumbnail) {
|
|
||||||
anchoSangrado = 350; // px
|
|
||||||
altoSangrado = (anchoSangrado * 0.647 > 300) ? 300 : anchoSangrado * 0.647; // px
|
|
||||||
} else {
|
|
||||||
anchoSangrado = 750; // px
|
|
||||||
altoSangrado = (anchoSangrado * 0.647 > 650) ? 650 : anchoSangrado * 0.647; // px
|
|
||||||
}
|
|
||||||
altoLibro = altoSangrado * 0.97;
|
|
||||||
anchoLibro = anchoSangrado * 0.48;
|
|
||||||
anchoSolapa = 0;
|
|
||||||
lomoLibro = 0; // ESTA ES LA DIFERENCIA PARA GRAPADO
|
|
||||||
anchoCubierta = (2 * anchoLibro) + (2 * anchoSolapa) + lomoLibro;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
if (isThumbnail) {
|
|
||||||
anchoSangrado = 350; // px
|
|
||||||
altoSangrado = (anchoSangrado * 0.647 > 300) ? 300 : anchoSangrado * 0.647; // px
|
|
||||||
} else {
|
|
||||||
anchoSangrado = 750; // px
|
|
||||||
altoSangrado = (anchoSangrado * 0.647 > 650) ? 650 : anchoSangrado * 0.647; // px
|
|
||||||
}
|
|
||||||
altoLibro = altoSangrado * 0.95;
|
|
||||||
anchoLibro = anchoSangrado * 0.3;
|
|
||||||
anchoSolapa = anchoSangrado * 0.18;
|
|
||||||
lomoLibro = 0; // ESTA ES LA DIFERENCIA PARA GRAPADO
|
|
||||||
anchoCubierta = (2 * anchoLibro) + (2 * anchoSolapa) + lomoLibro;
|
|
||||||
offsetSolapaValor = parseFloat('3.0'); // mm
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear the canvas element
|
|
||||||
$(`#${divIdName}`).empty();
|
|
||||||
// Get the element for placing the graphical elements
|
|
||||||
var divEC = document.getElementById(divIdName);
|
|
||||||
var previewEC = new Two({fitted: true}).appendTo(divEC);
|
|
||||||
// Calculate the center of the canvas element
|
|
||||||
var origenEC = new Two.Vector(previewEC.width / 2, previewEC.height / 2);
|
|
||||||
|
|
||||||
var sangrado = previewEC.makeRectangle(
|
|
||||||
origenEC.x,
|
|
||||||
origenEC.y,
|
|
||||||
anchoSangrado,
|
|
||||||
altoSangrado
|
|
||||||
);
|
|
||||||
sangrado.stroke = 'black';
|
|
||||||
sangrado.dashes = [5, 5];
|
|
||||||
sangrado.fill = '#FCEAF1';
|
|
||||||
sangrado.linewidth = 1;
|
|
||||||
|
|
||||||
if (pvObj.anchoSolapa != 0) {
|
|
||||||
var solapas = previewEC.makeRectangle(
|
|
||||||
origenEC.x,
|
|
||||||
origenEC.y,
|
|
||||||
anchoCubierta,
|
|
||||||
altoLibro);
|
|
||||||
solapas.stroke = 'black';
|
|
||||||
solapas.linewidth = 1;
|
|
||||||
|
|
||||||
// Cotas y textos
|
|
||||||
if (!isThumbnail) {
|
|
||||||
// Cotas
|
|
||||||
var cotaSolapa2 = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x - anchoCubierta / 2,
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
origenEC.x - anchoLibro - lomoLibro / 2,
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
10);
|
|
||||||
cotaSolapa2.linewidth = 2;
|
|
||||||
var cotaSolapa1 = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x + anchoCubierta / 2,
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
origenEC.x + anchoLibro + lomoLibro / 2,
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
10);
|
|
||||||
cotaSolapa1.linewidth = 2;
|
|
||||||
|
|
||||||
// Textos Solapas
|
|
||||||
let stylesSolapa = {size: 18, family: 'Public Sans'};
|
|
||||||
previewEC.makeText("Solapa 1", origenEC.x + anchoLibro + (lomoLibro + anchoSolapa) / 2, origenEC.y, stylesSolapa);
|
|
||||||
previewEC.makeText("Solapa 2", origenEC.x - anchoLibro - (lomoLibro + anchoSolapa) / 2, origenEC.y, stylesSolapa);
|
|
||||||
// Textos Cotas Solapas
|
|
||||||
previewEC.makeText(pvObj.anchoSolapa + " mm", origenEC.x - anchoLibro - (lomoLibro + anchoSolapa) / 2, origenEC.y - (altoLibro / 3) + 15, styleCotas);
|
|
||||||
previewEC.makeText(pvObj.anchoSolapa + " mm", origenEC.x + anchoLibro + (lomoLibro + anchoSolapa) / 2, origenEC.y - (altoLibro / 3) + 15, styleCotas);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
var libro = previewEC.makeRectangle(
|
|
||||||
origenEC.x,
|
|
||||||
origenEC.y,
|
|
||||||
((2 * anchoLibro) + lomoLibro),
|
|
||||||
altoLibro);
|
|
||||||
libro.stroke = 'black';
|
|
||||||
libro.linewidth = 1;
|
|
||||||
|
|
||||||
var lomo = previewEC.makeRectangle(
|
|
||||||
origenEC.x,
|
|
||||||
origenEC.y,
|
|
||||||
lomoLibro,
|
|
||||||
altoLibro);
|
|
||||||
lomo.stroke = 'black';
|
|
||||||
lomo.fill = '#F4F8F2';
|
|
||||||
lomo.linewidth = 1;
|
|
||||||
|
|
||||||
// Cotas y textos
|
|
||||||
if (!isThumbnail) {
|
|
||||||
// Cotas:
|
|
||||||
var cotaAnchoCubierta = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x - (anchoSangrado / 2),
|
|
||||||
origenEC.y + (altoLibro / 2) + 35,
|
|
||||||
origenEC.x + (anchoSangrado / 2),
|
|
||||||
origenEC.y + (altoLibro / 2) + 35,
|
|
||||||
10);
|
|
||||||
cotaAnchoCubierta.linewidth = 2;
|
|
||||||
var cotaAltoCubierta = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x + (anchoCubierta / 2) + 35,
|
|
||||||
origenEC.y + (altoSangrado / 2),
|
|
||||||
origenEC.x + (anchoCubierta / 2) + 35,
|
|
||||||
origenEC.y - (altoSangrado / 2),
|
|
||||||
10);
|
|
||||||
cotaAltoCubierta.linewidth = 2;
|
|
||||||
var cotaAltoLibro = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x + (lomoLibro / 2) + 35,
|
|
||||||
origenEC.y + (altoLibro / 2),
|
|
||||||
origenEC.x + (lomoLibro / 2) + 35,
|
|
||||||
origenEC.y - (altoLibro / 2),
|
|
||||||
10);
|
|
||||||
cotaAltoLibro.linewidth = 2;
|
|
||||||
var cotaContraportada = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x - (lomoLibro / 2 + anchoLibro),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
origenEC.x - (lomoLibro / 2),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
10);
|
|
||||||
cotaContraportada.linewidth = 2;
|
|
||||||
var cotaPortada = previewEC.makeDobleArrow(
|
|
||||||
origenEC.x + (lomoLibro / 2),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
origenEC.x + (lomoLibro / 2 + anchoLibro),
|
|
||||||
origenEC.y - (altoLibro / 3),
|
|
||||||
10);
|
|
||||||
cotaPortada.linewidth = 2;
|
|
||||||
|
|
||||||
// Textos:
|
|
||||||
// Titulos generales
|
|
||||||
let stylesEC = {size: 22, weight: 'bold', family: 'Public Sans'};
|
|
||||||
previewEC.makeText("Portada", origenEC.x + (lomoLibro + anchoLibro) / 2, origenEC.y, stylesEC);
|
|
||||||
previewEC.makeText("Contraportada", origenEC.x - (lomoLibro + anchoLibro) / 2, origenEC.y, stylesEC);
|
|
||||||
// Sangrados
|
|
||||||
let styleSangrado = {size: 10, family: 'Public Sans', style: 'italic', fill: 'red'};
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x, origenEC.y + (altoLibro / 2 + 20), styleSangrado);
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x, origenEC.y - (altoLibro / 2 + 20), styleSangrado);
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x + (lomoLibro / 2 + anchoLibro + anchoSolapa + 20), origenEC.y, styleSangrado).rotation = -Math.PI / 2;
|
|
||||||
previewEC.makeText(sangradoTexto, origenEC.x - (lomoLibro / 2 + anchoLibro + anchoSolapa + 20), origenEC.y, styleSangrado).rotation = -Math.PI / 2;
|
|
||||||
// Cotas
|
|
||||||
previewEC.makeText(pvObj.anchoLibro + " mm", origenEC.x - (lomoLibro / 2 + anchoLibro / 2), origenEC.y - (altoLibro / 3) + 15, styleCotas);
|
|
||||||
previewEC.makeText(pvObj.anchoLibro + " mm", origenEC.x + (lomoLibro / 2 + anchoLibro / 2), origenEC.y - (altoLibro / 3) + 15, styleCotas);
|
|
||||||
previewEC.makeText(pvObj.altoLibro + " mm", origenEC.x + (lomoLibro / 2) + 25, origenEC.y, styleCotas).rotation = -Math.PI / 2;
|
|
||||||
previewEC.makeText(pvObj.altoLibro + (2 * sangradoValor) + " mm", origenEC.x + (lomoLibro / 2 + anchoLibro + anchoSolapa) + 50, origenEC.y, styleCotas).rotation = -Math.PI / 2;
|
|
||||||
previewEC.makeText((2 * pvObj.anchoLibro) + (2 * (pvObj.anchoSolapa + pvObj.offsetSolapa)) + pvObj.lomoLibro + (2 * sangradoValor) + " mm",
|
|
||||||
origenEC.x,
|
|
||||||
origenEC.y + (altoLibro / 2) + 50,
|
|
||||||
styleCotas);
|
|
||||||
}
|
|
||||||
|
|
||||||
previewEC.update();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function getObjetoToPreview() {
|
|
||||||
|
|
||||||
if($('#cosidoDiv').length){
|
|
||||||
pvObj = {
|
|
||||||
lomoLibro: $('#lomo_cubierta').val() === '' ? parseFloat('0.0') : parseFloat(parseFloat($('#lomo_cubierta').val()).toFixed(2)),
|
|
||||||
anchoSolapa: $('#solapasCubierta').is(':checked') ? parseFloat($('#anchoSolapasCubierta').val()) : parseFloat('0.0'),
|
|
||||||
altoLibro: getDimensionLibro().alto,
|
|
||||||
anchoLibro: getDimensionLibro().ancho,
|
|
||||||
offsetSolapa: $('#solapasCubierta').is(':checked') ? parseFloat('3.0') : parseFloat('0.0')
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
let tamanio = $('#resumenTamanio').text().split(' ')[1].split('x');
|
|
||||||
let solapas = parseInt($('#resumenSolapasCubierta').length ? $('#resumenSolapasCubierta').text().split(' ')[1].replace("mm", '') : 0);
|
|
||||||
pvObj = {
|
|
||||||
lomoLibro: $('#lomo_cubierta').val() === '' ? parseFloat('0.0') : parseFloat(parseFloat($('#lomo_cubierta').val()).toFixed(2)),
|
|
||||||
anchoSolapa: solapas,
|
|
||||||
altoLibro: parseInt(tamanio[1]),
|
|
||||||
anchoLibro: parseInt(tamanio[0]),
|
|
||||||
offsetSolapa: (solapas != 0) ? parseFloat('3.0') : parseFloat('0.0')
|
|
||||||
};
|
|
||||||
}
|
|
||||||
//console.log($('#lomo_cubierta').val());
|
|
||||||
}
|
|
||||||
@ -1,311 +0,0 @@
|
|||||||
function generarResumen(){
|
|
||||||
$('#tipoLibro').text($('#tituloDisenioLibro').text() + ' tapa ' + (($('#tapaBlandaInnerDiv').hasClass('checked'))?'blanda':'dura'));
|
|
||||||
$('#resumenTamanio').text('Dimensiones: ' + getDimensionLibro().ancho + 'x' + getDimensionLibro().alto + 'mm');
|
|
||||||
$('#resumenPaginas').text('Páginas: '+ $('#paginas').val() + ' páginas');
|
|
||||||
|
|
||||||
const seleccion = $('.custom-option-tiradasDirecciones.checked');
|
|
||||||
let tirada = 0;
|
|
||||||
if(seleccion.length != 0) {
|
|
||||||
|
|
||||||
const element_tirada =($(seleccion[0]).find('label input')[0]);
|
|
||||||
const number = element_tirada.id.match(/\d+$/);
|
|
||||||
if (number.length != 0) {
|
|
||||||
tirada = parseInt($('#tiradaDireccionesValue' + number[0]).text());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$('#resumenTirada').text('Tirada: '+ tirada + ' unidades');
|
|
||||||
|
|
||||||
$('#resumenPrototipo').text('Prototipo: ' + (($('#prototipo').is(':checked'))?'Sí':'No'));
|
|
||||||
$('#resumenFerro').text('Ferro: ' + (($('#ferro').is(':checked'))?'Sí':'No'));
|
|
||||||
|
|
||||||
$('#tipoImpresion').text('Impresión: ' +
|
|
||||||
($('#colorNegroDiv').hasClass('checked')?'Negro estándar':
|
|
||||||
$('#colorNegroHqDiv').hasClass('checked')?'Negro premium':
|
|
||||||
$('#colorColorDiv').hasClass('checked')?'Color estándar':'Color premium'));
|
|
||||||
|
|
||||||
if($('#colorNegroDiv').hasClass('checked') || $('#colorNegroHqDiv').hasClass('checked')){
|
|
||||||
$('#pResumenPaginasColor').hide();
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
$('#pResumenPaginasColor').show();
|
|
||||||
$('#resumenPaginasColor').text($('#paginasColor').val());
|
|
||||||
}
|
|
||||||
$('#resumenPapelInterior').text($('#papelInterior option:selected').text().trim() + ' ' +
|
|
||||||
$('#gramajeInterior option:selected').text() + 'gr/m²');
|
|
||||||
|
|
||||||
let papelCubierta = $('#papelCubierta option:selected').text().trim() + ' ' +
|
|
||||||
$('#gramajeCubierta option:selected').text();
|
|
||||||
papelCubierta += 'gr/m²';
|
|
||||||
$('#resumenPapelCubierta').text(papelCubierta);
|
|
||||||
$('#resumenCarasCubierta').text('Impresión: ' + $('#carasCubierta option:selected').text())
|
|
||||||
$('#resumenAcabadoCubierta').text('Acabado: ' + $('#acabadosCubierta option:selected').text())
|
|
||||||
if ($('#solapasCubierta').is(':checked')) {
|
|
||||||
$('#resumenSolapasCubierta').text('Solapas: ' + $('#anchoSolapasCubierta').val())
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
$('#resumenSolapasCubierta').text('Solapas: No')
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($('#enableSobrecubierta').is(':checked')) {
|
|
||||||
$(".resumen-sobrecubierta").show();
|
|
||||||
$('#resumenPapelCubierta').text($('#papelSobrecubierta option:selected').text().trim() + ' ' +
|
|
||||||
$('#gramajeSobrecubierta option:selected').text() + 'gr/m²');
|
|
||||||
$('#resumenAcabadoSobrecubierta').text('Acabado: ' + $('#acabadosSobrecubierta option:selected').text())
|
|
||||||
$('#resumenSolapasSobrecubierta').text('Solapas: ' + $('#anchoSolapasSobrecubierta').val())
|
|
||||||
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
$(".resumen-sobrecubierta").hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($('#divGuardas').css('display') != 'none') {
|
|
||||||
|
|
||||||
$(".resumen-guardas").show();
|
|
||||||
$('#resumenGuardasPapel').text($('#papelGuardas option:selected').text().trim() + ' ' + '170gr/m²');
|
|
||||||
$('#resumenGuardasCaras').text('Impresión: ' + $('#impresionGuardas option:selected').text())
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
$(".resumen-guardas").hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if($('#retractilado').is(':checked') || $('#retractilado5').is(':checked') || $('#fajaColor').is(':checked')){
|
|
||||||
|
|
||||||
$('.resumen-extras').show();
|
|
||||||
$('#retractilado').is(':checked')?$('#resumenRetractilado1').show():$('#resumenRetractilado1').hide();
|
|
||||||
$('#retractilado5').is(':checked')?$('#resumenRetractilado5').show():$('#resumenRetractilado5').hide();
|
|
||||||
$('#fajaColor').is(':checked')?$('#resumenFajaColor').show():$('#resumenFajaColor').hide();
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
$('.resumen-extras').hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 1; i <= 4; i++) {
|
|
||||||
let id = "tiradaPrecio" + i;
|
|
||||||
if ($('#' + id).length > 0) {
|
|
||||||
|
|
||||||
const envio = getTotalEnvio();
|
|
||||||
|
|
||||||
let tirada_id = "ud_tiradaPrecio" + i;
|
|
||||||
if(parseInt($('#' + tirada_id).text().replace(' ud.', '')) != tirada){
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
let total_id = "tot_tiradaPrecio" + i;
|
|
||||||
|
|
||||||
let total = parseFloat($('#' + total_id).text().replace('€', '').replace('Total: ', '')) + envio;
|
|
||||||
let total_iva = 0.0;
|
|
||||||
if($('#ivaReducido').val() == '1'){
|
|
||||||
total_iva = total * 1.04;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
total_iva = total * 1.21;
|
|
||||||
}
|
|
||||||
const precio_u = total_iva/tirada;
|
|
||||||
$('#resumenTotalIVA').text('Total (I.V.A. ' + (($('#ivaReducido').val() == '1')?'4':'21') + '%): ' + total_iva.toFixed(2) + '€');
|
|
||||||
$('#resumenPrecioU').text(precio_u.toFixed(4) + '€/ud');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function getTotalEnvio(){
|
|
||||||
const elements = $('#divDirecciones').find('.row.mb-3');
|
|
||||||
let total = 0.0;
|
|
||||||
|
|
||||||
if(elements.length > 0) {
|
|
||||||
for (let index=0; index<elements.length; index++){
|
|
||||||
let precio_envio = parseFloat($(elements[index]).attr('p'));
|
|
||||||
total += precio_envio;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
return total;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$('#btnSave').on('click', function() {
|
|
||||||
|
|
||||||
finalizarPresupuesto(false);
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#btnConfirm').on('click', function() {
|
|
||||||
|
|
||||||
finalizarPresupuesto(true);
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#btnDuplicar').on('click', function() {
|
|
||||||
|
|
||||||
const paths = window.location.pathname.split("/").filter(path => path !== "");
|
|
||||||
let id=0;
|
|
||||||
if(paths.length > 0 && paths[paths.length - 2] == 'edit'){
|
|
||||||
id=paths[paths.length - 1];
|
|
||||||
}
|
|
||||||
datos = {
|
|
||||||
id: id,
|
|
||||||
}
|
|
||||||
datos = Object.assign(datos, window.token_ajax)
|
|
||||||
|
|
||||||
$('#loader').show();
|
|
||||||
|
|
||||||
$.ajax({
|
|
||||||
url: window.routes_resumen.duplicarPresupuesto,
|
|
||||||
type: 'POST',
|
|
||||||
data: datos,
|
|
||||||
success: function(response) {
|
|
||||||
|
|
||||||
if(Object.keys(response).length > 0) {
|
|
||||||
if(response.success){
|
|
||||||
$('#loader').hide();
|
|
||||||
window.location.href = document.location.origin + '/presupuestos/presupuestocliente/edit/' + response.id;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$('#loader').hide();
|
|
||||||
|
|
||||||
},
|
|
||||||
error: function() {
|
|
||||||
$('#loader').hide();
|
|
||||||
},
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
$('#btnBack').on('click', function() {
|
|
||||||
window.location.href = document.location.origin + '/presupuestocliente/list';
|
|
||||||
});
|
|
||||||
|
|
||||||
function finalizarPresupuesto(confirmar){
|
|
||||||
|
|
||||||
let isColor = false;
|
|
||||||
if($('#colorColorDiv').hasClass('checked') || $('#colorColorHqDiv').hasClass('checked'))
|
|
||||||
isColor = true;
|
|
||||||
let isHq = false;
|
|
||||||
if($('#colorNegroDiv').hasClass('checked') || $('#colorColorHqDiv').hasClass('checked'))
|
|
||||||
isHq = true;
|
|
||||||
|
|
||||||
const paths = window.location.pathname.split("/").filter(path => path !== "");
|
|
||||||
let id=0;
|
|
||||||
if(paths.length > 0 && paths[paths.length - 2] == 'edit'){
|
|
||||||
id=paths[paths.length - 1];
|
|
||||||
}
|
|
||||||
|
|
||||||
let servicios = [];
|
|
||||||
$('.servicio-extra:checked').each(function () {
|
|
||||||
servicios.push($(this).attr('serv_id'));
|
|
||||||
})
|
|
||||||
|
|
||||||
let datos_libro = {
|
|
||||||
tamanio: getDimensionLibro(),
|
|
||||||
tirada: getTiradas(),
|
|
||||||
paginas: $('#paginas').val(),
|
|
||||||
paginasColor: $('#paginasColor').val(),
|
|
||||||
tipo: $('.custom-option-tipo.checked').attr('id').replace('Div', ''),
|
|
||||||
tapa: $('#tapaDura').is(':checked') ? 'dura' : 'blanda',
|
|
||||||
isColor: isColor,
|
|
||||||
isHq: isHq,
|
|
||||||
papelInterior: $('#papelInterior option:selected').val(),
|
|
||||||
papelInteriorNombre: $('#papelInterior option:selected').text().trim(),
|
|
||||||
gramajeInterior: $('#gramajeInterior option:selected').text(),
|
|
||||||
excluirRotativa: $('#excluirRotativa').is(':checked')? 1 : 0,
|
|
||||||
papelCubierta: $('#papelCubierta option:selected').val(),
|
|
||||||
papelCubiertaNombre: $('#papelCubierta option:selected').text().trim(),
|
|
||||||
gramajeCubierta: $('#gramajeCubierta option:selected').text(),
|
|
||||||
carasCubierta: $('#carasCubierta').val(),
|
|
||||||
acabadoCubierta: $('#acabadosCubierta').val(),
|
|
||||||
clienteId: $('#clienteId').val(),
|
|
||||||
servicios: servicios,
|
|
||||||
};
|
|
||||||
|
|
||||||
// Si es cosido, se añade el número de páginas del cuadernillo
|
|
||||||
if ($('#cosidoDiv').hasClass('checked')) {
|
|
||||||
datos_libro.paginasCuadernillo = $('#paginasCuadernillo').val();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Si hay solapas de cubierta
|
|
||||||
if ($('#solapasCubierta').is(':checked')) {
|
|
||||||
datos_libro.solapasCubierta = $('#anchoSolapasCubierta').val()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Si hay sobrecubierta
|
|
||||||
if ($('#enableSobrecubierta').is(':checked')) {
|
|
||||||
if($('#papelSobrecubierta option:selected').val()>0 && $('#gramajeSobrecubierta option:selected').val()>0){
|
|
||||||
|
|
||||||
datos_libro.sobrecubierta = {
|
|
||||||
papel: $('#papelSobrecubierta option:selected').val(),
|
|
||||||
papel_nombre: $('#papelSobrecubierta option:selected').text().trim(),
|
|
||||||
gramaje: $('#gramajeSobrecubierta option:selected').text(),
|
|
||||||
acabado: $('#acabadosSobrecubierta').val()
|
|
||||||
}
|
|
||||||
|
|
||||||
datos_libro.sobrecubierta.solapas = $('#anchoSolapasSobrecubierta').val()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($('#divGuardas').css('display') != 'none') {
|
|
||||||
datos_libro.guardas = {
|
|
||||||
papel: $('#papelGuardas option:selected').val(),
|
|
||||||
papel_nombre: $('#papelGuardas option:selected').text().trim(),
|
|
||||||
gramaje: 170,
|
|
||||||
caras: $('#impresionGuardas option:selected').val()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let datos_cabecera = {
|
|
||||||
titulo: $('#titulo').val(),
|
|
||||||
referenciaCliente: $('#referenciaCliente').val(),
|
|
||||||
}
|
|
||||||
|
|
||||||
const seleccion = $('.custom-option-tiradasDirecciones.checked');
|
|
||||||
let tirada = 0;
|
|
||||||
let peso_libro = 0;
|
|
||||||
if(seleccion.length != 0) {
|
|
||||||
|
|
||||||
const element_tirada =($(seleccion[0]).find('label input')[0]);
|
|
||||||
const number = element_tirada.id.match(/\d+$/);
|
|
||||||
if (number.length != 0) {
|
|
||||||
tirada = parseInt($('#tiradaDireccionesValue' + number[0]).text());
|
|
||||||
peso_libro = ($(seleccion[0])).find('label input').attr('peso');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
let direcciones = getDireccionesEnvio();
|
|
||||||
datos = {
|
|
||||||
id: id,
|
|
||||||
datos_libro : datos_libro,
|
|
||||||
datos_cabecera: datos_cabecera,
|
|
||||||
direcciones: direcciones,
|
|
||||||
tirada: tirada,
|
|
||||||
peso: peso_libro,
|
|
||||||
iva_reducido: $('#ivaReducido').val()==1?1:0,
|
|
||||||
confirmar: confirmar?1:0,
|
|
||||||
},
|
|
||||||
|
|
||||||
datos = Object.assign(datos, window.token_ajax)
|
|
||||||
|
|
||||||
$('#loader').show();
|
|
||||||
|
|
||||||
$.ajax({
|
|
||||||
url: window.routes_resumen.guardarPresupuesto,
|
|
||||||
type: 'POST',
|
|
||||||
data: datos,
|
|
||||||
success: function(response) {
|
|
||||||
|
|
||||||
if(Object.keys(response).length > 0) {
|
|
||||||
if(response.status > 0){
|
|
||||||
if(confirmar || window.location.href.includes("add"))
|
|
||||||
window.location.href = response.url + '/' + response.status;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
$('#loader').hide();
|
|
||||||
|
|
||||||
},
|
|
||||||
error: function() {
|
|
||||||
$('#loader').hide();
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
||||||
@ -1,58 +0,0 @@
|
|||||||
// Init custom option check
|
|
||||||
function initTipoLibroCheck()
|
|
||||||
{
|
|
||||||
const _this = this
|
|
||||||
|
|
||||||
const custopOptionList = [].slice.call(document.querySelectorAll('.custom-option-tipo .form-check-input'))
|
|
||||||
custopOptionList.map(function (customOptionEL) {
|
|
||||||
// Update custom options check on page load
|
|
||||||
_this.updateTipoLibroCheck(customOptionEL)
|
|
||||||
|
|
||||||
// Update custom options check on click
|
|
||||||
customOptionEL.addEventListener('click', e => {
|
|
||||||
_this.updateTipoLibroCheck(customOptionEL)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateTipoLibroCheck(el)
|
|
||||||
{
|
|
||||||
if (el.checked) {
|
|
||||||
// If custom option element is radio, remove checked from the siblings (closest `.row`)
|
|
||||||
if (el.type === 'radio') {
|
|
||||||
const customRadioOptionList = [].slice.call(el.closest('.tipo_libro').querySelectorAll('.custom-option-tipo'))
|
|
||||||
customRadioOptionList.map(function (customRadioOptionEL) {
|
|
||||||
customRadioOptionEL.closest('.custom-option-tipo').classList.remove('checked')
|
|
||||||
})
|
|
||||||
}
|
|
||||||
el.closest('.custom-option-tipo').classList.add('checked')
|
|
||||||
if(el.closest('.custom-option-tipo').id == 'grapadoDiv') {
|
|
||||||
$('#tapaDuraDiv').hide();
|
|
||||||
$('#tapaBlanda').prop('checked', true);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$('#tapaDuraDiv').show();
|
|
||||||
}
|
|
||||||
if(el.closest('.custom-option-tipo').id == 'cosidoDiv') {
|
|
||||||
$('#div_pagCuadernillo').show();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$('#div_pagCuadernillo').hide();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
el.closest('.custom-option-tipo').classList.remove('checked')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
initTipoLibroCheck();
|
|
||||||
|
|
||||||
|
|
||||||
function getUpdatePapelInterior() {
|
|
||||||
var impresionInterior = $('input[name="impresionInterior"]:checked').val();
|
|
||||||
if(impresionInterior == 'color') {
|
|
||||||
$('#colorInteriorDiv').show();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$('#colorInteriorDiv').hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -19,238 +19,35 @@
|
|||||||
<!-- Create Deal Wizard -->
|
<!-- Create Deal Wizard -->
|
||||||
<div id="wizard-presupuesto-cliente" class="bs-stepper vertical mt-2 linear">
|
<div id="wizard-presupuesto-cliente" class="bs-stepper vertical mt-2 linear">
|
||||||
|
|
||||||
<?php if ($presupuestoEntity->estado_id == 1) : ?>
|
<div class="bs-stepper-header">
|
||||||
|
|
||||||
<div class="bs-stepper-header">
|
|
||||||
|
|
||||||
<div class="step active" data-target="#tipo-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">
|
|
||||||
<span class="bs-stepper-title">Tipo de libro</span>
|
|
||||||
<span class="bs-stepper-subtitle">Cosido, Fresado, ...</span>
|
|
||||||
</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div class="line"></div>
|
|
||||||
|
|
||||||
<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">
|
|
||||||
<span class="bs-stepper-title">Diseño del libro</span>
|
|
||||||
<span class="bs-stepper-subtitle">Detalles técnicos del libro</span>
|
|
||||||
</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div class="line"></div>
|
|
||||||
|
|
||||||
<div class="step" data-target="#direcciones-libro">
|
|
||||||
<button type="button" class="step-trigger" aria-selected="false" disabled="disabled">
|
|
||||||
<span class="bs-stepper-circle"><i class="ti ti-map-pins ti-sm"></i></span>
|
|
||||||
<span class="bs-stepper-label">
|
|
||||||
<span class="bs-stepper-title">Direcciones</span>
|
|
||||||
<span class="bs-stepper-subtitle">Dirección envío, facturación</span>
|
|
||||||
</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div class="line"></div>
|
|
||||||
|
|
||||||
<div class="step" data-target="#resumen-libro">
|
|
||||||
<button type="button" class="step-trigger" aria-selected="false" disabled="disabled">
|
|
||||||
<span class="bs-stepper-circle"><i class="ti ti-checkbox ti-sm"></i></span>
|
|
||||||
<span class="bs-stepper-label">
|
|
||||||
<span class="bs-stepper-title">Resumen del presupuesto</span>
|
|
||||||
</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="errorGeneral" class="fv-plugins-message-container invalid-feedback" style="display: none;">
|
|
||||||
<p>Se ha producido un error <br>
|
|
||||||
al calcular el presupuesto. <br>
|
|
||||||
Póngase en contacto con el <br>
|
|
||||||
administrador.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id='divTiradasPrecio'>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
<div class="step active" data-target="#datos-generales">
|
||||||
|
<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">
|
||||||
|
<span class="bs-stepper-title">Datos generales</span>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="line"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="bs-stepper-content">
|
<div class="bs-stepper-content">
|
||||||
<form id="presupuesto-cliente-form" onsubmit="return false">
|
<form id="presupuesto-cliente-form" onsubmit="return false">
|
||||||
|
|
||||||
|
|
||||||
<!-- Tipo Libro -->
|
<!-- Tipo Libro -->
|
||||||
<div id="tipo-libro" class="content active" 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">
|
<div class="row g-3">
|
||||||
|
<?= view("themes/vuexy/form/presupuestos/cliente/items/_datosGenerales") ?>
|
||||||
<?= view("themes/vuexy/form/presupuestos/cliente/_tipoLibroItems") ?>
|
|
||||||
|
|
||||||
<div class="col-12 d-flex justify-content-between mt-4">
|
|
||||||
<button class="btn btn-primary btn-prev waves-effect waves-light">
|
|
||||||
<i class="ti ti-arrow-left ti-xs me-sm-1 me-0"></i>
|
|
||||||
<span class="align-middle d-sm-inline-block d-none me-sm-1">Volver</span>
|
|
||||||
</button>
|
|
||||||
<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>
|
|
||||||
<i class="ti ti-arrow-right ti-xs"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Diseño Libro -->
|
|
||||||
<div id="disenio-libro" class="content dstepper-block fv-plugins-bootstrap5 fv-plugins-framework">
|
|
||||||
<div class="row g-3">
|
|
||||||
|
|
||||||
<?= view("themes/vuexy/form/presupuestos/cliente/_disenioLibroItems") ?>
|
|
||||||
|
|
||||||
<div class="col-12 d-flex justify-content-between mt-4">
|
|
||||||
<button class="btn btn-primary btn-prev waves-effect waves-light">
|
|
||||||
<i class="ti ti-arrow-left ti-xs me-sm-1 me-0"></i>
|
|
||||||
<span class="align-middle d-sm-inline-block d-none me-sm-1">Anterior</span>
|
|
||||||
</button>
|
|
||||||
<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>
|
|
||||||
<i class="ti ti-arrow-right ti-xs"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Direcciones -->
|
|
||||||
<div id="direcciones-libro" class="content fv-plugins-bootstrap5 fv-plugins-framework">
|
|
||||||
<div class="row g-3">
|
|
||||||
|
|
||||||
<?= view("themes/vuexy/form/presupuestos/cliente/_direccionesItems") ?>
|
|
||||||
|
|
||||||
<div class="col-12 d-flex justify-content-between mt-4">
|
|
||||||
<button class="btn btn-primary btn-prev waves-effect waves-light">
|
|
||||||
<i class="ti ti-arrow-left ti-xs me-sm-1 me-0"></i>
|
|
||||||
<span class="align-middle d-sm-inline-block d-none me-sm-1">Anterior</span>
|
|
||||||
</button>
|
|
||||||
<button id="toReview" 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>
|
|
||||||
<i class="ti ti-arrow-right ti-xs"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Review & Complete -->
|
|
||||||
<div id="resumen-libro" class="content fv-plugins-bootstrap5 fv-plugins-framework">
|
|
||||||
<div class="row g-3">
|
|
||||||
|
|
||||||
<?= view("themes/vuexy/form/presupuestos/cliente/_resumenItems") ?>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="col-12 d-flex justify-content-between mt-4">
|
|
||||||
<div class="col-6 d-flex flex-row">
|
|
||||||
<?php if ($presupuestoEntity->estado_id == 1) : ?>
|
|
||||||
<button class="btn btn-primary btn-prev waves-effect waves-light">
|
|
||||||
<i class="ti ti-arrow-left ti-xs me-sm-1 me-0"></i>
|
|
||||||
<span class="align-middle d-sm-inline-block d-none me-sm-1">Anterior</span>
|
|
||||||
</button>
|
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
|
||||||
<div class="col-6 d-flex flex-row-reverse">
|
|
||||||
<?php if ($presupuestoEntity->estado_id == 1) : ?>
|
|
||||||
<button id="btnSave" class="btn btn-primary btn-submit waves-effect waves-light ml-2">
|
|
||||||
<span class="align-middle d-sm-inline-block d-none me-sm-1">Guardar</span>
|
|
||||||
<i class="ti ti-arrow-right ti-xs"></i>
|
|
||||||
</button>
|
|
||||||
<button id="btnConfirm" class="btn btn-success btn-submit btn-next mx-2 waves-effect waves-light ml-2">
|
|
||||||
<span class="align-middle d-sm-inline-block d-none me-sm-1">Confirmar</span><i class="ti ti-check ti-xs"></i>
|
|
||||||
</button>
|
|
||||||
<?php else: ?>
|
|
||||||
<button id="btnBack" class="btn btn-success btn-submit btn-next mx-2 waves-effect waves-light">
|
|
||||||
<span class="align-middle d-sm-inline-block d-none me-sm-1">Volver</span><i class="ti ti-check ti-xs"></i>
|
|
||||||
</button>
|
|
||||||
<?php endif; ?>
|
|
||||||
<button id="btnDuplicar" class="btn btn-primary btn-submit waves-effect waves-light ml-2">
|
|
||||||
<span class="align-middle d-sm-inline-block d-none me-sm-1">Duplicar</span>
|
|
||||||
<i class="ti ti-copy ti-xs"></i>
|
|
||||||
</button>
|
|
||||||
<?php
|
|
||||||
// Mostrar boton de impresion solo en presupuestos guardados (no add!)
|
|
||||||
if ($formAction == "edit") {
|
|
||||||
echo anchor(
|
|
||||||
route_to("presupuestoToPdf", $presupuestoEntity->id),
|
|
||||||
lang("Basic.global.Print"),
|
|
||||||
[
|
|
||||||
"class" => "btn btn-dark float-start me-sm-3 ml-2",
|
|
||||||
"target" => "_blank"
|
|
||||||
]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<?php else: ?>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-body">
|
|
||||||
<form id="presupuesto-cliente-form" onsubmit="return false">
|
|
||||||
<div class="row g-3">
|
|
||||||
|
|
||||||
<?= view("themes/vuexy/form/presupuestos/cliente/_resumenItems") ?>
|
|
||||||
|
|
||||||
<div class="col-12 d-flex justify-content-between mt-4">
|
|
||||||
<div class="col-6 d-flex flex-row">
|
|
||||||
<?php if ($presupuestoEntity->estado_id == 1) : ?>
|
|
||||||
<button class="btn btn-primary btn-prev waves-effect waves-light">
|
|
||||||
<i class="ti ti-arrow-left ti-xs me-sm-1 me-0"></i>
|
|
||||||
<span class="align-middle d-sm-inline-block d-none me-sm-1">Anterior</span>
|
|
||||||
</button>
|
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
|
||||||
<div class="col-6 d-flex flex-row-reverse">
|
|
||||||
<?php if ($presupuestoEntity->estado_id == 1) : ?>
|
|
||||||
<button id="btnSave" class="btn btn-primary btn-submit waves-effect waves-light ml-2">
|
|
||||||
<span class="align-middle d-sm-inline-block d-none me-sm-1">Guardar</span>
|
|
||||||
<i class="ti ti-arrow-right ti-xs"></i>
|
|
||||||
</button>
|
|
||||||
<button id="btnConfirm" class="btn btn-success btn-submit btn-next mx-2 waves-effect waves-light ml-2">
|
|
||||||
<span class="align-middle d-sm-inline-block d-none me-sm-1">Confirmar</span><i class="ti ti-check ti-xs"></i>
|
|
||||||
</button>
|
|
||||||
<?php else: ?>
|
|
||||||
<button id="btnBack" class="btn btn-success btn-submit btn-next mx-2 waves-effect waves-light">
|
|
||||||
<span class="align-middle d-sm-inline-block d-none me-sm-1">Volver</span><i class="ti ti-check ti-xs"></i>
|
|
||||||
</button>
|
|
||||||
<?php endif; ?>
|
|
||||||
<button id="btnDuplicar" class="btn btn-primary btn-submit waves-effect waves-light ml-2">
|
|
||||||
<span class="align-middle d-sm-inline-block d-none me-sm-1">Duplicar</span>
|
|
||||||
<i class="ti ti-copy ti-xs"></i>
|
|
||||||
</button>
|
|
||||||
<?php
|
|
||||||
// Si esta confirmado siempre es un presupuesto guardado
|
|
||||||
echo anchor(
|
|
||||||
route_to("presupuestoToPdf", $presupuestoEntity->id),
|
|
||||||
lang("Basic.global.Print"),
|
|
||||||
[
|
|
||||||
"class" => "btn btn-dark float-start me-sm-3 ml-2",
|
|
||||||
"target" => "_blank"
|
|
||||||
]
|
|
||||||
);
|
|
||||||
?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<?php endif; ?>
|
|
||||||
|
|
||||||
</div><!--//.col -->
|
</div><!--//.col -->
|
||||||
<?= view("themes/vuexy/components/chat_presupuesto",data:["modelId" => $presupuestoEntity->id]) ?>
|
<?= view("themes/vuexy/components/chat_presupuesto",data:["modelId" => $presupuestoEntity->id]) ?>
|
||||||
@ -262,55 +59,13 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<?= $this->section("additionalInlineJs") ?>
|
|
||||||
|
|
||||||
window.datosPresupuesto = <?= json_encode($datosPresupuesto) ?>;
|
|
||||||
window.token_ajax= {<?= csrf_token() ?? "token" ?>: <?= csrf_token() ?>v};
|
|
||||||
|
|
||||||
<?php if ($presupuestoEntity->estado_id == 1) : ?>
|
|
||||||
$('#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();
|
|
||||||
|
|
||||||
|
|
||||||
<?php endif; ?>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<?= $this->endSection() ?>
|
|
||||||
|
|
||||||
|
|
||||||
<?= $this->section('css') ?>
|
<?= $this->section('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/bs-stepper/bs-stepper.css') ?>" />
|
||||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/formvalidation/dist/css/formValidation.min.css') ?>" />
|
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/formvalidation/dist/css/formValidation.min.css') ?>" />
|
||||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/dropzone/dropzone.css') ?>" />
|
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/dropzone/dropzone.css') ?>" />
|
||||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
|
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
|
||||||
|
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/presupuestoCliente.css') ?>">
|
||||||
|
|
||||||
<?= $this->endSection() ?>
|
<?= $this->endSection() ?>
|
||||||
|
|
||||||
@ -320,23 +75,12 @@
|
|||||||
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/FormValidation.min.js") ?>"></script>
|
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/FormValidation.min.js") ?>"></script>
|
||||||
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/Bootstrap5.min.js") ?>"></script>
|
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/Bootstrap5.min.js") ?>"></script>
|
||||||
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/AutoFocus.min.js") ?>"></script>
|
<script src="<?= site_url("themes/vuexy/vendor/libs/formvalidation/dist/js/plugins/AutoFocus.min.js") ?>"></script>
|
||||||
<script src="<?= site_url("themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/dataTables.buttons.min.js") ?>"></script>
|
|
||||||
<script src="<?= site_url("themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.bootstrap5.min.js") ?>"></script>
|
|
||||||
<script src="<?= site_url("themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.html5.min.js") ?>"></script>
|
|
||||||
<script src="<?= site_url("themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.print.min.js") ?>"></script>
|
|
||||||
<script src="<?= site_url("themes/vuexy/vendor/libs/datatables-sk/plugins/select/dataTables.select.min.js") ?>"></script>
|
|
||||||
<script src="<?= site_url('themes/vuexy/js/datatables-editor/dataTables.editor.min.js') ?>"></script>
|
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/autosize/autosize.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/autosize/autosize.js') ?>"></script>
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/two/two.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/two/two.js') ?>"></script>
|
||||||
<script src="<?= site_url('js_loader/translate_js/Presupuestos') ?>"></script>
|
<script src="<?= site_url('js_loader/translate_js/Presupuestos') ?>"></script>
|
||||||
<script src="<?= site_url('js_loader/presupuestoClienteResumen_js') ?>"></script>
|
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>
|
||||||
|
|
||||||
<?php if ($presupuestoEntity->estado_id == 1) : ?>
|
<script type="module" src="<?= site_url('assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js') ?>"></script>
|
||||||
<script src="<?= site_url('js_loader/presupuestoCliente_js') ?>"></script>
|
|
||||||
<?php endif; ?>
|
|
||||||
<script src="<?= site_url('js_loader/presupuestoClienteTipoLibro_js') ?>"></script>
|
|
||||||
<script src="<?= site_url('js_loader/presupuestoClienteDisenioLibro_js') ?>"></script>
|
|
||||||
<script src="<?= site_url('js_loader/presupuestoClienteDirecciones_js') ?>"></script>
|
|
||||||
<script src="<?= site_url('js_loader/presupuestoClientePreview_js') ?>"></script>
|
|
||||||
<?= $this->endSection() ?>
|
<?= $this->endSection() ?>
|
||||||
Reference in New Issue
Block a user