muchos cambios (y no los papeles)

This commit is contained in:
2024-11-14 20:43:13 +01:00
parent 923c283c22
commit c19d1ffae8
11 changed files with 277 additions and 207 deletions

View File

@ -296,7 +296,6 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$faja = $reqData['faja'] ?? [];
$excluirRotativa = $reqData['excluirRotativa'] ?? 0;
$excluirRotativa = intval($excluirRotativa);
$ivaReducido = intval($reqData['ivaReducido']) ?? 0;
$direcciones = $reqData['direcciones'] ?? [];
@ -401,7 +400,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_direccion = $this->getCosteEnvio(
$direccion['id'],
$return_data['peso'][$i],
!$primer_envio? intval($tirada[$i]) : $direccion['unidades'],
!$primer_envio ? intval($tirada[$i]) : $direccion['unidades'],
$direccion['entregaPalets'] == 'true' ? 1 : 0
)[0];
@ -654,6 +653,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$isHq = intval($reqData['isHq']) ?? 0;
$prototipo = intval($reqData['prototipo']) ?? 0;
$ferro = intval($reqData['ferro']) ?? 0;
$ferroDigital = intval($reqData['ferroDigital']) ?? 0;
$marcapaginas = intval($reqData['marcapaginas']) ?? 0;
$retractilado = intval($reqData['retractilado']) ?? 0;
$retractilado5 = intval($reqData['retractilado5']) ?? 0;
$interior = $reqData['interior'] ?? [];
$cubierta = $reqData['cubierta'] ?? [];
@ -857,6 +861,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
$datos_presupuesto['prototipo'] = $prototipo;
$datos_presupuesto['ferro'] = $ferro;
$datos_presupuesto['ferro_digital'] = $ferroDigital;
$datos_presupuesto['marcapaginas'] = $marcapaginas;
$datos_presupuesto['retractilado'] = $retractilado;
$datos_presupuesto['retractilado5'] = $retractilado5;
$id = $model_presupuesto->insertarPresupuestoCliente(
$id,
@ -970,6 +979,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$data['datosGenerales']['tipo'] = $this->getTipoLibro($presupuesto->tipo_impresion_id ?? null);
$data['datosGenerales']['prototipo'] = $presupuesto->prototipo;
$data['datosGenerales']['ferro'] = $presupuesto->ferro;
$data['datosGenerales']['ferroDigital'] = $presupuesto->ferro_digital;
$data['datosGenerales']['marcapaginas'] = $presupuesto->marcapaginas;
$data['datosGenerales']['retractilado'] = $presupuesto->retractilado;
$data['datosGenerales']['retractilado5'] = $presupuesto->retractilado5;
$datos_papel = $this->obtenerDatosPapel($presupuesto->id);
$data['interior'] = $datos_papel['interior'] ? $datos_papel['interior'] : [];
@ -1832,13 +1846,19 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
*/
$serviciosAutomaticos = [];
$servicios = [];
if ($datos_entrada['cubierta']['acabadosCubierta']['retractilado'] === 'true')
if ($datos_entrada['servicios']['retractilado']) // acabado
array_push($servicios, 3);
if ($datos_entrada['servicios']['prototipo'])
if ($datos_entrada['servicios']['retractilado5']) // acabado
array_push($servicios, 98);
if ($datos_entrada['servicios']['prototipo']) // extra
array_push($servicios, 9);
if ($datos_entrada['servicios']['ferro']) // extra
array_push($servicios, 30);
/*if ($datos_entrada['servicios']['ferroDigital'])
array_push($servicios, 29);*/ // Es gratis
foreach ($servicios as $servicio) {
if (intval($servicio) == 3) {
if (intval($servicio) == 3 || intval($servicio) == 98) {
// Servicios acabado
$resultado = PresupuestoCLienteService::getServiciosAcabados([
'tarifa_id' => $servicio,
@ -1853,7 +1873,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$errorModel->insertError(
$datos_entrada['id'],
auth()->user()->id,
'No se puede obtener servicio con id 3',
'No se puede obtener servicio con id ' . ((string)$servicio),
$input_data
);
$return_data = [
@ -1869,8 +1889,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$totalServicios += floatval($resultado[0]->total);
$margenServicios += floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0;
}
} else if (intval($servicio) == 9) {
// Prototipo
} else if (intval($servicio) == 9 || intval($servicio) == 30 || intval($servicio) == 29) {
// Extra
$resultado = PresupuestoCLienteService::getServiciosExtra([
'tarifa_id' => $servicio,
]);
@ -1881,7 +1901,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$errorModel->insertError(
$datos_entrada['id'],
auth()->user()->id,
'No se puede obtener servicio con id 9',
'No se puede obtener servicio con id ' . ((string)$servicio),
$input_data
);
$return_data = [

View File

@ -404,11 +404,13 @@ class PresupuestoModel extends \App\Models\BaseModel
'cliente_id' => $data['clienteId'],
'tipo_impresion_id' => $data['tipo_impresion_id'],
'pais_id' => 1,
'retractilado' => in_array("RETR", $data['cubierta']['acabadosCubierta']) ? 1 : 0,
'retractilado5' => in_array(5, $data['servicios']) ? 1 : 0,
'retractilado' => $data['retractilado'] ? 1 : 0,
'retractilado5' => $data['retractilado5'] ? 1 : 0,
'guardas' => in_array(62, $data['servicios']) ? 1 : 0,
'faja_color' => in_array(16, $data['servicios']) ? 1 : 0,
'ferro' => in_array(24, $data['servicios']) ? 1 : 0,
'ferro' => $data['ferro'] ? 1 : 0,
'ferro_digital' => $data['ferro_digital'] ? 1 : 0,
'marcapaginas' => $data['marcapaginas'] ? 1 : 0,
'prototipo' => $data['prototipo'] ? 1 : 0,
'papel_formato_id' => is_null($papel_formato_id) ? 0 : $papel_formato_id->id,
'papel_formato_personalizado' => !$papel_formato_id ? 1 : 0,

View File

@ -278,14 +278,26 @@
language: {
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
},
buttons: [ {
className: 'btn btn-primary me-sm-3 me-1',
extend: "createInline",
editor: editor,
formOptions: {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
}
buttons: [
{
extend: 'collection',
text: 'Exportar',
buttons:[
'copy', 'csv', 'excel', 'print', {
extend: 'pdfHtml5',
orientation: 'landscape',
pageSize: 'A4'
}
]
},
{
className: 'btn btn-primary me-sm-3 me-1',
extend: "createInline",
editor: editor,
formOptions: {
submitTrigger: -1,
submitHtml: '<a href="javascript:void(0);"><i class="ti ti-device-floppy"></i></a>'
}
} ]
} );

View File

@ -684,7 +684,7 @@ async function calcularPresupuesto() {
datos = Object.assign(datos, window.token_ajax)
$('#divTiradasPrecio').empty();
$('.divTiradasPrecio').empty();
$('#loader').show();
$.ajax({
@ -741,7 +741,7 @@ async function calcularPresupuesto() {
$('#loader').hide();
$('#divTiradasPrecio').empty();
$('.divTiradasPrecio').empty();
if(!error){
@ -768,7 +768,7 @@ async function calcularPresupuesto() {
html += '</a>';
html += '</div>';
$('#divTiradasPrecio').append(html);
$('.divTiradasPrecio').append(html);
}
}
@ -783,7 +783,7 @@ async function calcularPresupuesto() {
},
error: function (error) {
$('#loader').hide();
$('#divTiradasPrecio').empty();
$('.divTiradasPrecio').empty();
}
});
}

View File

@ -49,13 +49,12 @@
</div>
<div class="col-sm-5 mb-3 d-flex flex-column align-items-center <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))? " d-none" : "" ?>" >
<label <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))? " hidden" : "" ?>
id="label_clienteId" for="clienteId" class="form-label">
<div
class="col-sm-5 mb-3 d-flex flex-column align-items-center <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " d-none" : "" ?>">
<label <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " hidden" : "" ?> id="label_clienteId" for="clienteId" class="form-label">
Cliente*
</label>
<select <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))? " hidden" : "" ?>
id="clienteId" name="cliente_id" class="form-control select2bs2 calcular-presupuesto"
<select <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " hidden" : "" ?> id="clienteId" name="cliente_id" class="form-control select2bs2 calcular-presupuesto"
style="width: 100%;">
<?php if (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')): ?>
<option value="<?= $clienteId ?>" selected>cliente</option>
@ -64,13 +63,12 @@
</div>
<div class="col-sm-5 mb-3 d-flex flex-column align-items-center <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))? " d-none" : "" ?>" >
<div
class="col-sm-5 mb-3 d-flex flex-column align-items-center <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " d-none" : "" ?>">
<div class="form-check form-switch mb-2">
<input <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))? " hidden" : "" ?>
class="calcular-presupuesto form-check-input" type="checkbox" id="excluirRotativa"
<input <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " hidden" : "" ?> class="calcular-presupuesto form-check-input" type="checkbox" id="excluirRotativa"
name="excluir_rotativa" value="1">
<label <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))? " hidden" : "" ?>
class="form-check-label" for="excluirRotativa">Excluir rotativa</label>
<label <?= (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) ? " hidden" : "" ?> class="form-check-label" for="excluirRotativa">Excluir rotativa</label>
</div>
</div>
@ -271,10 +269,36 @@
</div>
<div class="row col-sm-9 mb-3 d-flex flex-column align-items-left">
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="prototipo" name="prototipo"
value="1">
<label class="form-check-label" for="prototipo">Prototipo</label>
<div class="row" >
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="prototipo" name="prototipo"
value="1">
<label class="form-check-label" for="prototipo">Prototipo</label>
</div>
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="ferro" name="ferro" value="1">
<label class="form-check-label" for="ferro">Ferro</label>
</div>
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="ferroDigital"
name="ferro_digital" value="1">
<label class="form-check-label" for="ferro">Ferro digital</label>
</div>
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="marcapaginas"
name="marcapaginas" value="1">
<label class="form-check-label" for="ferro">Marcapáginas</label>
</div>
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="retractilado"
name="retractilado" value="1">
<label class="form-check-label" for="ferro">Retractilado</label>
</div>
<div class="col-sm-3 form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="retractilado5"
name="retractilado5" value="1">
<label class="form-check-label" for="ferro">Retractilado de 5</label>
</div>
</div>
</div>

View File

@ -45,160 +45,10 @@
</div>
<div class="offcanvas-body">
<div class="bs-stepper-header">
<div <?= ($state == 2) ? 'hidden' : '' ?> class="step active titulos-menu" data-target="#datos-generales">
<button type="button" class="step-trigger" aria-selected="false" disabled="disabled">
<span class="bs-stepper-circle"><i class="ti ti-info-circle ti-sm"></i></span>
<span class="bs-stepper-label">
<span class="bs-stepper-title">Datos generales</span>
</span>
</button>
</div>
<div <?= ($state == 2) ? 'hidden' : '' ?> class="step titulos-menu" data-target="#interior-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">Interior</span>
</span>
</button>
</div>
<div <?= ($state == 2) ? 'hidden' : '' ?> class="step titulos-menu" data-target="#cubierta-libro">
<button type="button" class="step-trigger" aria-selected="false" disabled="disabled">
<span class="bs-stepper-circle"><i class="ti ti-books ti-sm"></i></span>
<span class="bs-stepper-label">
<span class="bs-stepper-title">Cubierta</span>
</span>
</button>
</div>
<div <?= ($state == 2) ? 'hidden' : '' ?> class="step titulos-menu" 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>
</button>
</div>
<div id="menu_resumen_button" class="step titulos-menu" 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 class="line"></div>
<div id='resumenLateral' class="container align-items-center">
<div class="rl-datos-generales rl-item d-none">
<div class="row">Libro</div>
<div class="row">
<ul class="list-group list-group-timeline">
<li id="rl_tipo" class="list-group-item list-group-timeline-primary texto-resumen-lateral">Rustica
Fresado</li>
<li id="rl_tipo_cubierta" class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Tapa
dura</li>
<li id="rl_tamanio" class="list-group-item list-group-timeline-primary texto-resumen-lateral">170.0
x
240.0</li>
<li id="rl_tiradas" class="list-group-item list-group-timeline-primary texto-resumen-lateral">10,
50,
100, 200</li>
<li id="rl_paginas" class="list-group-item list-group-timeline-primary texto-resumen-lateral">340
páginas</li>
</ul>
</div>
</div>
<div class="rl-interior rl-item d-none">
<div class="row">Interior</div>
<div class="row">
<ul class="list-group list-group-timeline">
<li id="rl_tipo_interior" class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Blanco y
negro estándar</li>
<li id="rl_papel_interior"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Offset
blanco 90 gr.</li>
<li id="rl_papel_interior_color"
class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">Offset
blanco 90 gr.</li>
</ul>
</div>
</div>
<div class="rl-cubierta rl-item d-none">
<div class="row">Cubierta</div>
<div class="row">
<ul class="list-group list-group-timeline">
<li id="rl_papel_cubierta"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Estucado
Mate
300 gr.</li>
<li id="rl_caras_cubierta"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Impresa
1
cara</li>
<li id="rl_acabado_cubierta"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Plastificado brillo</li>
</ul>
</div>
</div>
<div class="rl-sobrecubierta rl-item d-none">
<div class="row">Sobrecubierta</div>
<div class="row">
<ul class="list-group list-group-timeline">
<li id="rl_no_sobrecubierta"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">
No</li>
<li id="rl_papel_sobrecubierta"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">Estucado mate 170 gr
</li>
<li id="rl_tamanio_sobrecubierta"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">
60mm</li>
<li id="rl_acabado_sobrecubierta"
class="list-group-item list-group-timeline-primary texto-resumen-lateral">
Plastificado brillo</li>
</ul>
</div>
</div>
<div class="rl-servicios-extra rl-item d-none">
<div class="row">Servicios extra</div>
<div class="row">
<ul class="list-group list-group-timeline">
<li id="rl_prototipo"
class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Prototipo</li>
</ul>
</div>
</div>
</div>
<div id='divTiradasPrecio'></div>
</div> <!--//.bs-stepper-header -->
</div>
</div>
<div class="bs-stepper-header d-none d-md-flex">
<div class="bs-stepper-header col-3">
<div <?= ($state == 2) ? 'hidden' : '' ?> class="step active titulos-menu" data-target="#datos-generales">
<button type="button" class="step-trigger" aria-selected="false" disabled="disabled">
@ -332,13 +182,33 @@
<li id="rl_prototipo" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Prototipo</li>
</ul>
<ul class="list-group list-group-timeline">
<li id="rl_ferro" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Ferro</li>
</ul>
<ul class="list-group list-group-timeline">
<li id="rl_ferroDigital" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Ferro digital</li>
</ul>
<ul class="list-group list-group-timeline">
<li id="rl_marcapaginas" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Marcapáginas</li>
</ul>
<ul class="list-group list-group-timeline">
<li id="rl_retractilado" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Retractilado</li>
</ul>
<ul class="list-group list-group-timeline">
<li id="rl_retractilado5" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
Retractilado de 5</li>
</ul>
</div>
</div>
</div>
<div id='divTiradasPrecio'></div>
<div class='divTiradasPrecio'></div>
</div> <!--//.bs-stepper-header -->

View File

@ -777,7 +777,7 @@ function convertirTiempo(horas){
// se convierte a formato hh:mm:ss
const h = Math.floor(seconds / 3600);
const minutos = Math.floor((seconds % 3600) / 60);
const segundos = seconds % 60;
const segundos = round(seconds % 60, 0);
return h + ':' + minutos + ':' + segundos;
}
else{

View File

@ -1,3 +0,0 @@
[ZoneTransfer]
ZoneId=3
ReferrerUrl=C:\Users\jjime\Downloads\safekat-dev-presu_cliente_v2.zip

View File

@ -1,3 +0,0 @@
[ZoneTransfer]
ZoneId=3
ReferrerUrl=C:\Users\jjime\Downloads\safekat-dev-presu_cliente_v2.zip