mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
corregido el texto del error del tipo de libro y que se borre el error
This commit is contained in:
@ -1585,7 +1585,6 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$modelPapelFormato = new PapelFormatoModel();
|
$modelPapelFormato = new PapelFormatoModel();
|
||||||
$modelCliente = new ClienteModel();
|
$modelCliente = new ClienteModel();
|
||||||
|
|
||||||
|
|
||||||
$presupuesto = $this->model->find($id);
|
$presupuesto = $this->model->find($id);
|
||||||
$data = [];
|
$data = [];
|
||||||
if ($presupuesto) {
|
if ($presupuesto) {
|
||||||
@ -1695,7 +1694,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
if (intval($presupuesto->recoger_en_taller) == 1) {
|
if (intval($presupuesto->recoger_en_taller) == 1) {
|
||||||
$data['direcciones']['entrega_taller'] = 1;
|
$data['direcciones']['entrega_taller'] = 1;
|
||||||
} else {
|
} else {
|
||||||
$data['direcciones'] = $this->obtenerDireccionesEnvio($id, $presupuesto->cliente_id);
|
$data['direcciones'] = $this->obtenerDireccionesEnvio($id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (intval($presupuesto->estado_id) == 2) {
|
if (intval($presupuesto->estado_id) == 2) {
|
||||||
@ -3398,39 +3397,22 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function obtenerDireccionesEnvio($id, $cliente_id)
|
protected function obtenerDireccionesEnvio($id)
|
||||||
{
|
{
|
||||||
$model = model('App\Models\Presupuestos\PresupuestoDireccionesModel');
|
$model = model('App\Models\Presupuestos\PresupuestoDireccionesModel');
|
||||||
$model_direcciones = model('App\Models\Clientes\ClienteDireccionesModel');
|
$direcciones = $model->where('presupuesto_id', $id)
|
||||||
$direcciones = $model->where('presupuesto_id', $id)->asArray()->findAll();
|
->where('is_ferro_prototipo', 0)->asArray()->findAll();
|
||||||
|
|
||||||
return $direcciones;
|
return $direcciones;
|
||||||
|
}
|
||||||
|
|
||||||
$result = [];
|
protected function obtenerDireccionesEnvioFerro($id)
|
||||||
$temp = [];
|
{
|
||||||
for ($i = 0; $i < count($direcciones); $i++) {
|
$model = model('App\Models\Presupuestos\PresupuestoDireccionesModel');
|
||||||
$direccion_id = $model_direcciones->getIdForPresupuestoCliente(
|
$direcciones = $model->where('presupuesto_id', $id)
|
||||||
$cliente_id,
|
->where('is_ferro_prototipo', 0)->asArray()->findAll();
|
||||||
$direcciones[$i]->att,
|
|
||||||
$direcciones[$i]->email,
|
return $direcciones;
|
||||||
$direcciones[$i]->direccion,
|
|
||||||
$direcciones[$i]->cp,
|
|
||||||
$direcciones[$i]->pais_id,
|
|
||||||
$direcciones[$i]->telefono
|
|
||||||
);
|
|
||||||
if (count($direccion_id) > 0) {
|
|
||||||
$temp = $direcciones[$i]->toArray();
|
|
||||||
array_push($result, [
|
|
||||||
'id' => $temp['id'],
|
|
||||||
'unidades' => $temp['cantidad'],
|
|
||||||
'palets' => $temp['entregaPieCalle'],
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (count($result) > 0)
|
|
||||||
return $result;
|
|
||||||
else
|
|
||||||
return [];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function obtenerDatosPapel($presupuesto_id)
|
protected function obtenerDatosPapel($presupuesto_id)
|
||||||
@ -3643,10 +3625,18 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
foreach ($data as $servicio) {
|
foreach ($data as $servicio) {
|
||||||
$id = "service_extra_" . $servicio->id;
|
$id = "service_extra_" . $servicio->id;
|
||||||
|
|
||||||
|
$tarifa_excluyente = false;
|
||||||
|
if(str_contains(strtolower($servicio->nombre), 'ferro') || str_contains(strtolower($servicio->nombre), 'prototipo')) {
|
||||||
|
$tarifa_excluyente = true;
|
||||||
|
}
|
||||||
|
$atributo_excluyente = $tarifa_excluyente ? 'data-tarifa-extra-excluyente="1"' : '';
|
||||||
|
|
||||||
array_push(
|
array_push(
|
||||||
$servicios,
|
$servicios,
|
||||||
"<input class=\"calcular-presupuesto form-check-input\" type=\"checkbox\" id=\"{$id}\"
|
"<input class=\"calcular-presupuesto form-check-input\" type=\"checkbox\" id=\"{$id}\"
|
||||||
name=\"{$id}\" value=\"1\" data-tarifa-id=\"{$servicio->id}\" data-tarifa-tipo=\"extra\" data-tarifa-nombre=\"{$servicio->nombre}\">
|
name=\"{$id}\" value=\"1\" data-tarifa-id=\"{$servicio->id}\" data-tarifa-tipo=\"extra\" data-tarifa-nombre=\"{$servicio->nombre}\"
|
||||||
|
{$atributo_excluyente}>
|
||||||
<label class=\"form-check-label\" for=\"{$id}\">{$servicio->nombre}</label>"
|
<label class=\"form-check-label\" for=\"{$id}\">{$servicio->nombre}</label>"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -42,8 +42,8 @@ return [
|
|||||||
'papelFormatoAncho' => 'Width',
|
'papelFormatoAncho' => 'Width',
|
||||||
'papelFormatoAlto' => 'Height',
|
'papelFormatoAlto' => 'Height',
|
||||||
'cosido' => 'Sewn',
|
'cosido' => 'Sewn',
|
||||||
'ferro' => 'Ferro',
|
'ferro' => 'Blueline proof',
|
||||||
'ferroDigital' => 'Digital Ferro',
|
'ferroDigital' => 'Digital Blueline proof',
|
||||||
'prototipo' => 'Prototype',
|
'prototipo' => 'Prototype',
|
||||||
'imagenesBnInterior' => 'B/W pictures inside',
|
'imagenesBnInterior' => 'B/W pictures inside',
|
||||||
'recogerEnTaller' => 'Pick up in workshop',
|
'recogerEnTaller' => 'Pick up in workshop',
|
||||||
|
|||||||
@ -396,7 +396,7 @@ return [
|
|||||||
'paginasColor' => 'El número de páginas a color debe ser un número entero mayor o igual que 0.',
|
'paginasColor' => 'El número de páginas a color debe ser un número entero mayor o igual que 0.',
|
||||||
'paginasNegro' => 'El número de páginas en negro debe ser un número entero mayor o igual que 0.',
|
'paginasNegro' => 'El número de páginas en negro debe ser un número entero mayor o igual que 0.',
|
||||||
'paginas' => 'El total de páginas tiene que ser mayor que 0.',
|
'paginas' => 'El total de páginas tiene que ser mayor que 0.',
|
||||||
'tipo_libro' => 'Seleccione el tipo de libro que desea para el presupuesto.',
|
'tipo_libro' => 'Seleccione el tipo de encuadernación que desea para el presupuesto.',
|
||||||
'decimal' => 'El campo {field} debe contener un número decimal.',
|
'decimal' => 'El campo {field} debe contener un número decimal.',
|
||||||
'integer' => 'El campo {field} debe contener un número entero.',
|
'integer' => 'El campo {field} debe contener un número entero.',
|
||||||
'requerido' => 'El campo {field} es obligatorio.',
|
'requerido' => 'El campo {field} es obligatorio.',
|
||||||
|
|||||||
@ -21,6 +21,8 @@ return [
|
|||||||
'costePrecio' => 'Coste/Precio',
|
'costePrecio' => 'Coste/Precio',
|
||||||
'saveDirection' => 'Guardar en direcciones de cliente',
|
'saveDirection' => 'Guardar en direcciones de cliente',
|
||||||
'entregaPieCalle' => 'Entrega a pie de calle (enviado en palets)',
|
'entregaPieCalle' => 'Entrega a pie de calle (enviado en palets)',
|
||||||
|
'sameAddPrincipal' => 'Usar la dirección principal del presupuesto',
|
||||||
|
'sameAddFP1' => 'Usar la dirección del ferro/prototipo 1',
|
||||||
'validation' => [
|
'validation' => [
|
||||||
'ejemplares_envio' => 'El número de ejemplares enviados no coincide con la tirada',
|
'ejemplares_envio' => 'El número de ejemplares enviados no coincide con la tirada',
|
||||||
'max_length' => 'Max. valor caracteres alcanzado',
|
'max_length' => 'Max. valor caracteres alcanzado',
|
||||||
|
|||||||
@ -283,12 +283,12 @@
|
|||||||
<div class="col-sm-3 form-check form-switch mb-2 d-flex align-items-center gap-2">
|
<div class="col-sm-3 form-check form-switch mb-2 d-flex align-items-center gap-2">
|
||||||
<input class="calcular-presupuesto form-check-input" type="checkbox" id="retractilado"
|
<input class="calcular-presupuesto form-check-input" type="checkbox" id="retractilado"
|
||||||
name="retractilado" value="1">
|
name="retractilado" value="1">
|
||||||
<label class="form-check-label" for="ferro">Retractilado</label>
|
<label class="form-check-label" for="retractilado">Retractilado</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-3 form-check form-switch mb-2 d-flex align-items-center gap-2">
|
<div class="col-sm-3 form-check form-switch mb-2 d-flex align-items-center gap-2">
|
||||||
<input class="calcular-presupuesto form-check-input" type="checkbox" id="retractilado5"
|
<input class="calcular-presupuesto form-check-input" type="checkbox" id="retractilado5"
|
||||||
name="retractilado5" value="1">
|
name="retractilado5" value="1">
|
||||||
<label class="form-check-label" for="ferro">Retractilado de 5</label>
|
<label class="form-check-label" for="retractilado5">Retractilado de 5</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php foreach ($serviciosExtra as $servicio): ?>
|
<?php foreach ($serviciosExtra as $servicio): ?>
|
||||||
@ -300,7 +300,7 @@
|
|||||||
<div class="col-sm-3 form-check form-switch mb-2 d-flex align-items-center gap-2">
|
<div class="col-sm-3 form-check form-switch mb-2 d-flex align-items-center gap-2">
|
||||||
<input class="calcular-presupuesto form-check-input" type="checkbox" id="marcapaginas"
|
<input class="calcular-presupuesto form-check-input" type="checkbox" id="marcapaginas"
|
||||||
name="marcapaginas" value="1">
|
name="marcapaginas" value="1">
|
||||||
<label class="form-check-label" for="ferro">Marcapáginas</label>
|
<label class="form-check-label" for="marcapaginas">Marcapáginas</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -62,7 +62,82 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="divDirecciones" class="calcular-presupuesto col-sm-12 d-flex flex-column align-items-center div-direcciones">
|
<div id="divDirecciones"
|
||||||
|
class="calcular-presupuesto col-sm-12 d-flex flex-column align-items-center div-direcciones">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="direccionesFerroPrototipo" class="col-sm-12 d-flex flex-column align-items-center d-none">
|
||||||
|
<div class="col-sm-8 mb-3 d-flex flex-column align-items-center">
|
||||||
|
<h3 class="mb-1 fw-bold"> Dirección de envío ferro/prototipo</h3>
|
||||||
|
</div><!--//.mb-3 -->
|
||||||
|
|
||||||
|
<div class="row mb-3 justify-content-center div-direcciones-fp1">
|
||||||
|
<div class="col-sm-9 mb-3">
|
||||||
|
<label for="direcciones" class="form-label">Mis direcciones</label>
|
||||||
|
<select id="direccionesFP1" name="direcciones" class="form-control select2bs2"
|
||||||
|
style="width: 100%;"></select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-sm-3 mb-3 mt-auto mb-0">
|
||||||
|
<button id="insertarDireccionFP1" type="button"
|
||||||
|
class="btn btn-secondary waves-effect waves-light">Insertar</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3 justify-content-center">
|
||||||
|
<div class="form-check form-switch mb-2">
|
||||||
|
<input class="form-check-input" type="checkbox" id="sameAddPrincipalFP1" name="sameAddPrincipalFP1"
|
||||||
|
value="1">
|
||||||
|
<label class="form-check-label"
|
||||||
|
for="sameAddPrincipalFP1"><?= lang('PresupuestosDirecciones.sameAddPrincipal') ?></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="divDireccionesFerroPrototipo"
|
||||||
|
class="calcular-presupuesto col-sm-12 d-flex flex-column align-items-center div-direcciones-ferro-prototipo">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="direccionesFerroPrototipo2" class="col-sm-12 d-flex flex-column align-items-center d-none">
|
||||||
|
<div class="col-sm-8 mb-3 d-flex flex-column align-items-center">
|
||||||
|
<h3 class="mb-1 fw-bold"> Dirección de envío ferro/prototipo 2</h3>
|
||||||
|
</div><!--//.mb-3 -->
|
||||||
|
|
||||||
|
<div class="row mb-3 justify-content-center div-direcciones">
|
||||||
|
<div class="col-sm-6 mb-3">
|
||||||
|
<label for="direcciones" class="form-label">Mis direcciones</label>
|
||||||
|
<select id="direccionesFP1" name="direcciones" class="form-control select2bs2"
|
||||||
|
style="width: 100%;"></select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-sm-3 mb-3 mt-auto mb-0">
|
||||||
|
<button id="insertarDireccionFP1" type="button"
|
||||||
|
class="btn btn-secondary waves-effect waves-light">Insertar</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3 justify-content-center">
|
||||||
|
<div class="form-check form-switch mb-2">
|
||||||
|
<input class="form-check-input" type="checkbox" id="sameAddPrincipalFP2" name="sameAddPrincipalFP2"
|
||||||
|
value="1">
|
||||||
|
<label class="form-check-label"
|
||||||
|
for="sameAddPrincipalFP2"><?= lang('PresupuestosDirecciones.sameAddPrincipal') ?></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3 justify-content-center">
|
||||||
|
<div class="form-check form-switch mb-2">
|
||||||
|
<input class="form-check-input" type="checkbox" id="sameAddFP1" name="sameAddFP1" value="1">
|
||||||
|
<label class="form-check-label"
|
||||||
|
for="sameAddFP1"><?= lang('PresupuestosDirecciones.sameAddFP1') ?></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="divDireccionesFerroPrototipo2"
|
||||||
|
class="calcular-presupuesto col-sm-12 d-flex flex-column align-items-center div-direcciones-ferro-prototipo">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -17,9 +17,10 @@ class ConfigVariableDatatable
|
|||||||
init(){
|
init(){
|
||||||
this.datatable = this.datatableItem.DataTable({
|
this.datatable = this.datatableItem.DataTable({
|
||||||
processing: true,
|
processing: true,
|
||||||
dom: 'Brtip',
|
dom: 'Blrtip',
|
||||||
serverSide: true,
|
serverSide: true,
|
||||||
|
lengthMenu: [ 25, 50, 100, 200 ],
|
||||||
|
pageLength: 50,
|
||||||
language: {
|
language: {
|
||||||
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
|
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
|
||||||
},
|
},
|
||||||
|
|||||||
@ -103,6 +103,34 @@ class DatosGenerales {
|
|||||||
this.pagColorConsecutivas.on('change', this.#handPaginasConsecutivas.bind(this));
|
this.pagColorConsecutivas.on('change', this.#handPaginasConsecutivas.bind(this));
|
||||||
this.papelDiferente.on('change', this.#handlePapelDiferente.bind(this));
|
this.papelDiferente.on('change', this.#handlePapelDiferente.bind(this));
|
||||||
|
|
||||||
|
// check ferro y prototipo
|
||||||
|
this.domItem.on('change', 'input[type="checkbox"][data-tarifa-extra-excluyente="1"]', (e) => {
|
||||||
|
if (!this.cargando) {
|
||||||
|
const current = $(e.target);
|
||||||
|
|
||||||
|
if (current.is(':checked')) {
|
||||||
|
this.domItem.find('input[type="checkbox"][data-tarifa-extra-excluyente="1"]')
|
||||||
|
.not(current)
|
||||||
|
.prop('checked', false);
|
||||||
|
|
||||||
|
if ((current.data('tarifa-nombre')?.toString().toLowerCase() || '').includes('2')) {
|
||||||
|
$('#direccionesFerroPrototipo2').removeClass('d-none');
|
||||||
|
}
|
||||||
|
$('#direccionesFerroPrototipo').removeClass('d-none');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (this.domItem.find('input[type="checkbox"][data-tarifa-extra-excluyente="1"]').prop('checked').length === 0) {
|
||||||
|
|
||||||
|
$('#direccionesFerroPrototipo').addClass('d-none');
|
||||||
|
$('#divDireccionesFerroPrototipo').empty();
|
||||||
|
$('#direccionesFerroPrototipo2').addClass('d-none');
|
||||||
|
$('#divDireccionesFerroPrototipo2').empty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$('.tirada-presupuesto').on('change', () => {
|
$('.tirada-presupuesto').on('change', () => {
|
||||||
|
|
||||||
@ -110,7 +138,7 @@ class DatosGenerales {
|
|||||||
this.removeError(window.translations["validation"].tirada_integer_greatherThan_0);
|
this.removeError(window.translations["validation"].tirada_integer_greatherThan_0);
|
||||||
this.removeError(window.translations["validation"].tirada_pod_nopod);
|
this.removeError(window.translations["validation"].tirada_pod_nopod);
|
||||||
}
|
}
|
||||||
else{
|
else {
|
||||||
this.addErrors();
|
this.addErrors();
|
||||||
}
|
}
|
||||||
let tiradas = self.getTiradas();
|
let tiradas = self.getTiradas();
|
||||||
@ -141,7 +169,7 @@ class DatosGenerales {
|
|||||||
if (this.validateCliente()) {
|
if (this.validateCliente()) {
|
||||||
this.removeError(window.translations["validation"].cliente);
|
this.removeError(window.translations["validation"].cliente);
|
||||||
}
|
}
|
||||||
else{
|
else {
|
||||||
this.addErrors();
|
this.addErrors();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -210,6 +238,8 @@ class DatosGenerales {
|
|||||||
this.domItem.find('#divTipoLibro').addClass('is-invalid');
|
this.domItem.find('#divTipoLibro').addClass('is-invalid');
|
||||||
noError = false;
|
noError = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return noError;
|
||||||
}
|
}
|
||||||
|
|
||||||
validatePaginas() {
|
validatePaginas() {
|
||||||
@ -658,7 +688,7 @@ class DatosGenerales {
|
|||||||
this.removeError(window.translations["validation"].papelFormatoAncho);
|
this.removeError(window.translations["validation"].papelFormatoAncho);
|
||||||
this.removeError(window.translations["validation"].papelFormatoAlto);
|
this.removeError(window.translations["validation"].papelFormatoAlto);
|
||||||
}
|
}
|
||||||
else{
|
else {
|
||||||
this.addErrors();
|
this.addErrors();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -730,11 +760,11 @@ class DatosGenerales {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.validateTipoLibro()) {
|
if (this.validateTipoLibro()) {
|
||||||
this.removeError(window.translations["validation"].tipo_libro);
|
this.removeError(window.translations["validation"].tipo_libro);
|
||||||
this.removeError(window.translations["validation"].paginas_multiplo_4);
|
this.removeError(window.translations["validation"].paginas_multiplo_4);
|
||||||
}
|
}
|
||||||
else{
|
else {
|
||||||
this.addErrors();
|
this.addErrors();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -829,13 +859,13 @@ class DatosGenerales {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$('.calcular-lomo').trigger('change');
|
$('.calcular-lomo').trigger('change');
|
||||||
if(this.validatePaginas()) {
|
if (this.validatePaginas()) {
|
||||||
this.removeError(window.translations["validation"].paginas);
|
this.removeError(window.translations["validation"].paginas);
|
||||||
this.removeError(window.translations["validation"].paginasColor);
|
this.removeError(window.translations["validation"].paginasColor);
|
||||||
this.removeError(window.translations["validation"].paginasNegro);
|
this.removeError(window.translations["validation"].paginasNegro);
|
||||||
this.removeError(window.translations["validation"].paginas_pares);
|
this.removeError(window.translations["validation"].paginas_pares);
|
||||||
}
|
}
|
||||||
else{
|
else {
|
||||||
this.addErrors();
|
this.addErrors();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -955,7 +985,7 @@ class DatosGenerales {
|
|||||||
</ul>`;
|
</ul>`;
|
||||||
popErrorAlert(message, 'sk-alert', false);
|
popErrorAlert(message, 'sk-alert', false);
|
||||||
}
|
}
|
||||||
else{
|
else {
|
||||||
skAlert.innerHTML = '';
|
skAlert.innerHTML = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user