" ).html( label ) )
.appendTo( ul );
};
});
$("#btns").on("click", ".btn-guardar-presupuesto", function(e)
{
e.preventDefault();
let btn = $(this);
let extraErroresForm = "";
let cliente = $("#frm-presupuesto-cliente").data("item");
if (cliente == null || cliente == undefined)
extraErroresForm += "Seleccione un cliente
";
else
$("#frm-presupuesto-cliente-id").val(cliente.id);
if ($("#frm-presupuesto-moto").val() <= 0)
extraErroresForm += "Debe seleccionar una moto";
let mes = $("#frm-presupuesto-plazo-meses").val();
if (mes == undefined || mes == '')
mes = $("#frm-presupuesto-plazo-meses option").last().attr('value');
let agenteId = -1;
if ($("#frm-presupuesto-estado").val()*1 == 6)
{
let agente = $("#frm-psp-aceptado-agente").data("item");
if (agente == null || agente == undefined)
extraErroresForm += "Debe seleccionar un agente";
else
agenteId = agente.id;
}
let bastidor = $("#frm-psp-aceptado-bastidor").val();
const successCallback = function (data, textStatus, XMLHttpRequest) {
$(".modal").modal("hide");
if (data["error_number"] >= 0) {
if (btn.attr("id") == "btn-imprimir-presupuesto" || btn.attr("id") == "btn-imprimir-proforma")
{
let tipo = btn.attr("id") == "btn-imprimir-presupuesto" ? 1 : 2;
if (tipo == 2 && data["datosSinEnviar"] === true)
{
ClassBlockUI.abrirBlockUIEstandarMensaje(("Para poder descargar la Proforma el cliente debe tener todos los datos rellenados, haz click
aquí para ir al perfil del cliente, una vez rellenado debe volver a cargar el cliente.").replace("%1%", $("#frm-presupuesto-cliente-id").val()), true, undefined);
}
else {
window.location = "descargarPresupuesto.php?id=" + data["id"] + "&tipo="+tipo;
}
}
else if (btn.attr("id") == "btn-enviar-presupuesto")
{
//Aqui no muestro mensaje de guardado OK
$("#frm-enviar-email-id").val(data["id"]);
$("#frm-enviar-email-asunto").val("Presupuesto de Vespa Turia");
$("#frm-enviar-email-descripcion").val("Ha sido adjuntado un documento PDF con el presupuesto de Vespa Turia.");
ClassBlockUI.abrirBlockUIEstandar("bloqueEnviarEmail", undefined, "Datos del email", "modal500");
//enviarPresupuesto(data["id"]);
}
else
{
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, "https://gestion.vespaturia.es/presupuestos.html");
}
} else {
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined);
}
};
Utils.sendStandardAjax(
"frm-presupuesto",
"ajax/Presupuesto.guardar.php?meses-financiacion=" + mes + "&bastidor=" + bastidor + "&agente=" + agenteId,
{
extraErroresForm: extraErroresForm,
successCallback: successCallback,
prepareFormData: function ()
{
let formData = new FormData($("#frm-presupuesto")[0]);
let formDataDocs = new FormData($("#form-presupuesto-documentos")[0]);
for (var pair of formDataDocs.entries()) {
formData.append(pair[0], pair[1]);
}
return formData;
},
}
);
});
$("#bloqueEnviarEmail").on("click", "#btn-enviar-datos-email", enviarPresupuesto);
function enviarPresupuesto()
{
const successCallback = function (data, textStatus, XMLHttpRequest) {
if (data["error_number"] >= 0) {
$(".modal").modal("hide");
}
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined);
};
Utils.sendStandardAjax("frm-enviar-email", "ajax/Presupuesto.enviar.php", {successCallback: successCallback});
}
function cargarOpciones(input, selectedValue = undefined)
{
const tipoMoto = $("#tabs-tipo a.active").attr("data-tipomoto") || -1;
$("#frm-presupuesto-moto").val(-1);
$(".extra-dato-moto").prop("readonly", true).val("");
$("#frm-presupuesto-moto-precio").val("");
$("#frm-presupuesto-ocasion").val("").data("item", null);
if (input != undefined)
$("#bloque-importe-presupuesto").removeClass("open");
$.ajax(
{
type: "POST",
dataType:"json",
url:"ajax/Moto.cargarOpciones.php?CSRF="+CSRF,
data: {
tipoMoto: tipoMoto,
tipo: campoTipo.val(),
marca: campoMarca.val(),
cilindrada: campoCilindrada.val(),
modelo: campoModelo.val(),
version: campoVersion.val(),
color: campoColor.val(),
},
success: function(data, textStatus, XMLHttpRequest)
{
if (data["error_number"] < 0)
{
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined);
}
else
{
$("#frm-presupuesto-tipo-nueva-ocasion").val(1);
motoSeleccionada(data);
if (data["mesesFinanciacion"] != undefined)
{
$("#bloque-intereses").removeClass("d-none");
Web.intereses = data["mesesFinanciacion"];
let campoMeses = $("#frm-presupuesto-plazo-meses");
let valorMes = campoMeses.val();
eliminarOpcionesSelect(campoMeses);
campoMeses.append("
");
$.each(Web.intereses, function(i, e)
{
campoMeses.append("
");
});
campoMeses.val(valorMes);
campoMeses.selectpicker("refresh");
rellenaFinanciacion();
}
if (input != undefined)
{
$.each(data["opciones"], function (id, opc)
{
input.append("
");
});
if (selectedValue !== undefined)
{
input.val(selectedValue);
if (data["moto"] == undefined && input.attr("id") == "frm-presupuesto-color")
cargarOpciones();
}
input.selectpicker("refresh");
if (data["cilindradas"] != undefined)
{
$.each(data["cilindradas"], function (id, opc)
{
campoCilindrada.append("
");
});
campoCilindrada.selectpicker("refresh");
}
}
}
}
});
}
function motoSeleccionada(data, primeraVez)
{
if (data == undefined)
return;
if (primeraVez == undefined)
primeraVez = false;
if (data["moto"] != undefined)
{
$(".extra-dato-moto").prop("readonly", false);
let moto = data["moto"];
$("#frm-presupuesto-moto").val(moto.id);
$("#frm-presupuesto-moto-precio").attr("data-precio", moto.precio);
//Si no ha cambiado el IVA actualizamos
if ($("#frm-presupuesto-moto-iva").prop("readonly") && !primeraVez)
$("#frm-presupuesto-moto-iva").val(moto.porcentajeIVA);
//Si no ha cambiado el IMPUESTO actualizamos
if ($("#frm-presupuesto-moto-impuesto").prop("readonly"))
$("#frm-presupuesto-moto-impuesto").val(moto.porcentajeMatriculacion);
$("#bloque-importe-presupuesto").addClass("open");
calculaPrecios();
}
if (data["opcsFinanciacion"] != undefined)
{
Web.intereses = data["opcsFinanciacion"];
}
}
function calculaPrecios()
{
let precioSinIVAMoto = $("#frm-presupuesto-moto-precio").attr("data-precio");
let porcIVAMoto = $("#frm-presupuesto-moto-iva").val()*1;
let porcImpuestoMoto = $("#frm-presupuesto-moto-impuesto").val()*1;
Web.PVP = 0;
Web.PVPDescuento = 0;
Web.financiacionMes = 0;
//Reviso que este bien
if (precioSinIVAMoto != undefined && !isNaN(porcIVAMoto))
{
let pvp = precioSinIVAMoto*(1 + porcIVAMoto / 100);
let totalIva = pvp - precioSinIVAMoto;
let impuestoMatriculacion = precioSinIVAMoto * (porcImpuestoMoto / 100);
pvp += impuestoMatriculacion;
Web.PVP = round(pvp);
$("#frm-presupuesto-moto-precio").val(Utils.number_format(pvp, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"})).attr("data-pvp", round(pvp)).attr("data-preciodescuento", 0);
//Calculo precio sobre porcDescuento
/*let porcDescuento = parseInt(inpPorcDescuento.val()) || 0;
if (porcDescuento > 0)
{
precioSinIVAMoto = precioSinIVAMoto * (1 - porcDescuento / 100);
pvp = precioSinIVAMoto*(1 + porcIVAMoto / 100);
totalIva = pvp - precioSinIVAMoto;
}*/
//Por importe descuento seria mas exacto
let importeDescuento = parseFloat(inpImporteDescuento.val()) || 0
if (importeDescuento > 0)
{
inpFinalDescuento.val(round(Utils.number_format(pvp - importeDescuento, {decimalSeparator: ".", thousandSeparator: ""})));
pvp = pvp - importeDescuento;
let precioSinImpuestos = pvp / (1 + ((porcIVAMoto + porcImpuestoMoto) / 100));
inpFinalDescuento.val(round(Utils.number_format(pvp, {decimalSeparator: ".", thousandSeparator: ""})));
$("#frm-presupuesto-moto-precio").attr("data-preciodescuento", precioSinImpuestos);
Web.PVPDescuento = round(pvp);
}
rellenaFinanciacion();
}
}
function rellenaFinanciacion()
{
$("#bloque-intereses").removeClass("d-none");
let pvpDescuento = Web.PVPDescuento ? Web.PVPDescuento : Web.PVP;
let sumarAccesorios = $("#frm-presupuesto-anadir-accesorios").is(":checked");
let sumarGestoria = $("#frm-presupuesto-anadir-gestoria").is(":checked");
$(".importe-moto-descuento").text(Utils.number_format(pvpDescuento, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}));
let PVPAccesorios = 0;
let PVPGestoria = 0;
let PVPTasacion = $("#frm-presupuesto-tasacion-precio").val()*1 || 0;
if (sumarAccesorios)
{
$.each(Web.importeAccesorios, function (i, e) {
PVPAccesorios += e.pvp;
});
}
$(".importe-accesorios-impuestos").text(Utils.number_format(PVPAccesorios, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}));
if (sumarGestoria)
PVPGestoria = $("#frm-presupuesto-gestoria-precio").val()*1 || 0;
$(".importe-gestoria").text(Utils.number_format(PVPGestoria, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}));
let importeTotal = pvpDescuento+PVPAccesorios+PVPGestoria;
$(".importe-total").text(Utils.number_format(importeTotal, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}));
$(".importe-tasacion").text(Utils.number_format(PVPTasacion*-1, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}));
let entrada = $("#frm-presupuesto-entrada").val()*1 || 0;
let importeFinanciar = importeTotal-entrada-PVPTasacion;
$(".importe-financiar").text(Utils.number_format(importeFinanciar, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}));
//FINANCIACION POR MES
let mes = $("#frm-presupuesto-plazo-meses").val();
if (mes == undefined || mes == '')
mes = $("#frm-presupuesto-plazo-meses option").last().attr('value');
let financiacion = round(importeFinanciar * Web.intereses[mes]);
Web.financiacionMes = financiacion;
$(".resumen-financiacion-precio span").text(Utils.number_format(financiacion, {decimalSeparator: ",", thousandSeparator: "."}));
$(".item-resumen-entrada").text(Utils.number_format(entrada, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}));
$(".item-resumen-plazo-meses").text(mes+" meses");
if (mes == -1)
{
$(".resumen-financiacion, .item-resumen-financiacion").addClass("d-none");
}
else
{
$(".resumen-financiacion, .item-resumen-financiacion").removeClass("d-none");
}
rellenaResumenPresupuesto();
}
function rellenaResumenPresupuesto()
{
let PVP = Web.PVP;
let PVPDescuento = Web.PVPDescuento;
let ivas = {};
let porcentajeIVAMoto = $("#frm-presupuesto-moto-iva").val() * 1;
let PVPSinIVANiDescuento = $("#frm-presupuesto-moto-precio").attr("data-precio") * 1;
let PVPSinIVA = PVPSinIVANiDescuento;
$(".item-resumen-pvp").text(Utils.number_format(PVPSinIVA, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}));
if (PVPDescuento > 0)
{
PVPSinIVA = $("#frm-presupuesto-moto-precio").attr("data-preciodescuento") * 1;
let importeDescuentoSinIVA = PVPSinIVANiDescuento - PVPSinIVA;
$(".item-resumen-presupuesto-descuento").removeClass("d-none");
$(".item-resumen-descuento").text(Utils.number_format(importeDescuentoSinIVA*-1, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}));
$(".item-resumen-total-descuento").text(Utils.number_format(PVPSinIVA, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}));
//PVP = PVPDescuento;
}
else
{
$(".item-resumen-presupuesto-descuento").addClass("d-none");
}
let IVAMoto = round(PVPSinIVA * (porcentajeIVAMoto / 100));
PVP = PVPSinIVA + IVAMoto;
if (ivas[porcentajeIVAMoto] == undefined)
ivas[porcentajeIVAMoto] = 0;
ivas[porcentajeIVAMoto] += IVAMoto;
let PVPTodosAccesorios = 0;
let precioAccesorios = 0;
let precioOtros = 0;
$.each(Web.importeAccesorios, function (i, e) {
if (ivas[i] == undefined)
ivas[i] = 0;
precioAccesorios += e.precio;
PVPTodosAccesorios += e.pvp;
ivas[i] += e.iva;
});
$.each(Web.otrosAccesorios, function (i, e) {
if (ivas[i] == undefined)
ivas[i] = 0;
precioOtros += e.precio;
PVPTodosAccesorios += e.pvp;
ivas[i] += e.iva;
});
$(".item-resumen-accesorios").text(Utils.number_format(precioAccesorios, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}));
$(".item-resumen-otros").text(Utils.number_format(precioOtros, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}));
$(".item-resumen-presupuesto-ivas > div").remove();
$.each(ivas, function (i, e) {
$(".item-resumen-presupuesto-ivas").append("
IVA "+i+"%:"+Utils.number_format(e, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"})+"
");
});
let porcentajeMatriculacion = $("#frm-presupuesto-moto-impuesto").val()*1 || 0;
let impuestoMatriculacion = PVPSinIVA * (porcentajeMatriculacion / 100);
$(".item-resumen-matriculacion").text(Utils.number_format(impuestoMatriculacion, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}));
let gestoria = $("#frm-presupuesto-gestoria-precio").val()*1 || 0;
$(".item-resumen-gestoria").text(Utils.number_format(gestoria, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}));
$(".item-resumen-total").text(Utils.number_format(PVP + PVPTodosAccesorios + impuestoMatriculacion + gestoria, {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}));
$(".item-resumen-tasacion").text(Utils.number_format(-1*($("#frm-presupuesto-tasacion-precio").val()*1 || 0), {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}));
$(".item-resumen-seguro").text(Utils.number_format(($("#frm-presupuesto-seguro-precio").val()*1 || 0), {decimalSeparator: ",", thousandSeparator: ".", symbol: "€"}));
}
function validaInpNumero(inp, defecto)
{
inp.val(inp.val().replace(",", "."));
let valor = inp.val();
if (isNaN(valor))
inp.val(defecto);
}
function round(num)
{
return Math.round(num * 100) / 100;
}
function eliminarOpcionesSelect(input)
{
Web.eliminarOpcionesSelect(input);
}
}
static eliminarOpcionesSelect(input)
{
input.children("option:not(.disabled)").remove();
input.val(0);
input.selectpicker("refresh");
}
static initAgenda()
{
Web.FC_RESERVAR = 1;
Web.FC_EDITAR = 2;
Web.FC_NUEVA = 3;
Web.FC_AGENDA = 4;
Web.FC_CITA_RECURRENTE = 5;
$(document).ready(function() {
Web.resourceData = [];
Web.visibleResourceIds = [];
$(".item-usuario-filtro input").each(function () {
Web.resourceData.push({ id: $(this).attr("data-id"), title: $(this).attr("data-usuario"), "eventClassNames":$(this).attr("data-color")+" active showOnAgenda" });
Web.visibleResourceIds.push($(this).attr("data-id"));
$(this).change(function () {
$(this).toggleClass("active");
toggleResource($(this).attr("data-id"));
});
});
Web.fullCalendar = new FullCalendar.Calendar($("#calendar")[0], {
//timeZone: "America/New_York",
timeZone: "Europe/Madrid",
schedulerLicenseKey: "0221401364-fcs-1627045855",
headerToolbar:
{
left: 'prev,next today',
center: 'title',
right: "dayGridMonth timeGridWeek timeGridDay",
},
views: {
resourceTimeGridDay: { // name of view
titleFormat: {year: 'numeric', month: 'long', day: 'numeric', weekday: 'long'}
}
},
dayMaxEvents: 3,
//dayPopoverFormat: {month: 'long', day: 'numeric', year: 'numeric'},
locale: 'es',
allDaySlot: false,
initialDate: new Date().toISOString(),
initialView: 'dayGridMonth',
nowIndicator: true,
eventSources:
[
{
url: "ajax/Usuarios.agenda.php",
method: 'POST',
extraParams:
{
"CSRF": CSRF,
},
failure: function () {
ClassBlockUI.abrirBlockUIEstandarMensaje("", true);
},
success: function (content, xhr) {
let currentUnixtime = new Date().getTime() / 1000;
return content.eventArray;
}
},
],
eventTimeFormat: { // like '14:30:00'
hour: '2-digit',
minute: '2-digit',
//omitZeroMinute: true,
//second: '2-digit',
meridiem: false
},
resources: function (fetchInfo, successCallback, failureCallback) {
// Filter resources by whether their id is in visibleResourceIds.
var filteredResources = [];
if (Web.resourceData) {
filteredResources = Web.resourceData.filter(function (x) {
return Web.visibleResourceIds.indexOf(x.id) !== -1;
});
}
successCallback(filteredResources);
},
editable: false,
selectable: true,
loading: function (bool) {
if (bool) {
$(".loadingText").remove();
}
},
selectConstraint: "businessHours",
eventConstraint: "businessHours",
eventOrder: 'numOrder,start',
dateClick: function (info) {
Web.lastDateSelected = moment(info.dateStr);
$("#btn-anadir").attr("href", $("#btn-anadir").attr("data-url")+"?fecha="+Web.lastDateSelected.format("DD/MM/YYYY"));
},
//eventMouseEnter
eventClick: function (info) {
let infoCalendar = $('.infoCalendar');
if (infoCalendar.length !== 1) {
return;
}
let event = info.event;
let jsEvent = info.jsEvent;
let view = info.view;
//
let parent = $(jsEvent.target).closest(view.type === "dayGridMonth" ? '.fc-daygrid-event' : '.fc-timegrid-event');
//let parent = $(jsEvent.target).closest('.fc-timegrid-event');
if (!parent.hasClass("tooltipstered")) {
let colorClass = $(".form-check-input[data-id=" + event.extendedProps.idUsuario + "]").attr("data-color");
colorClass = colorClass !== undefined ? colorClass : "ownAgenda";
//let childToolTipstered = null;
let content = $("
");
var extraClass = "";
content.addClass("infoCalendarOnToolTipster " + extraClass);
content.append(
infoCalendar.html()
.replace("%colorClass%", colorClass + " active")
.replace("%0%", !event.extendedProps.esEditable ? "d-none" : "")
.replace("%1%", "
"+event.extendedProps.usuario+""+event.extendedProps.descripcion)
.replace("%2%", event.extendedProps.fecha)
.replace("%3%", "
"+event.extendedProps.cliente+"")
.replace("%4%", "editar-evento.html?id="+event.extendedProps.idEvento)
);
content.data("event", event);
parent.tooltipster({
autoClose: false,
hideOnClick: false,
contentAsHTML: true,
trigger: "custom",
content: content,
minWidth: 325,
maxWidth: 325,
theme: "infoCalendarToolTipster",
interactive: true,
functionReady: function (instance, helper) {
$(helper.tooltip).find(".btnCalendarButtonClose").unbind("click").bind("click", function () {
parent.tooltipster("hide");
//instance.close();
});
$(helper.tooltip).data("instance", instance);
$(".infoCalendarOnToolTipster .tooltipOver").tooltipster({
multiple: true,
animation: 'grow',
interactive: true,
position: 'bottom'
});
},
functionBefore: function (origin, continueTooltip) {
$.each($.tooltipster.instances(), function (i, instance) {
instance.close();
});
}/*,
functionAfter: function(origin) {
}*/
});
}
parent.tooltipster("show");
},
height: "100%"
});
Web.fullCalendar.render();
function toggleResource(resourceId) {
var index = Web.visibleResourceIds.indexOf(resourceId);
if (index !== -1) {
Web.visibleResourceIds.splice(index, 1);
} else {
Web.visibleResourceIds.push(resourceId);
}
Web.fullCalendar.refetchResources();
}
});
}
static refrescaTabla(idTabla)
{
$(".tooltipStandard").not(".tooltipstered").tooltipster({animation: 'grow',interactive:true, position:'bottom', contentAsHTML: true});
$(".inputIconLupa, .inputMostrar, #filtros").removeClass("d-none");
$(".form-control").removeClass().addClass("form-control-b");
var numItems = 0;
let tabla = eval("tabla"+idTabla);
if (typeof tabla != "undefined") {
numItems = tabla.page.info().recordsDisplay;
} else if ($.fn.dataTable.isDataTable( '#'+idTabla )) {
tabla = $('#'+idTabla).DataTable();
numItems = tabla.page.info().recordsDisplay;
}
let itemsMostrando = $("#"+idTabla+"_length select").length > 0 ? $("#"+idTabla+"_length select").val() : 10;
if (numItems > itemsMostrando) {
$("#"+idTabla+"_wrapper .pagination-footer").removeClass("opacity-0");
} else {
$("#"+idTabla+"_wrapper .pagination-footer").addClass("opacity-0");
}
//Formato movil
const numColumnaMv = 1; const numColumnas = tabla.columns()[0].length;
if ($("#"+idTabla).hasClass("tablaMovil"))
{
const w = $(window).outerWidth();
if (w <= 767) //Ocultar
{
for(let i = 0; i < numColumnas; i++)
{
tabla.column(i).visible((numColumnaMv == i ? true : false));
}
}
else //Mostrar
{
for(let i = 0; i < numColumnas; i++)
{
let txt = $(tabla.columns(i).header()).text();
tabla.column(i).visible((txt == "oculto" || numColumnaMv == i ? false : true));
}
}
}
}
static notify(msg, error = false)
{
const type = error ? "danger" : "success";
console.log(type);
$.notify({
message: msg,
}, {
type: type,
placement: {
from: "bottom",
align: "right"
},
delay: 2000
});
}
}
$(document).ready(function () {
$(".editar-campo").click(function()
{
let element = $(this).parent().next();
element.prop("readonly", false);
if (element.hasClass("bootstrap-select"))
{
let select = element.find("select");
select.prop("disabled", false);
select.selectpicker('refresh');
}
});
if ($.fn.dataTable != undefined) {
$.fn.dataTable.ext.errMode = function (settings, helpPage, message) {
$.notify(
{
title: "
Error: ",
message: "Se ha producido un error inesperado",
},
{
type: 'danger',
placement: {
from: "top",
align: "center"
},
delay: 10000
});
};
$.extend($.fn.dataTable.defaults,
{
"language":
{
"sProcessing": "Procesando...",
"sLengthMenu": "Filas por página: _MENU_",
"sZeroRecords": "No se han encontrado resultados",
"sEmptyTable": "Sin datos todavía",
"sInfo": "_START_-_END_ de _TOTAL_",
"sInfoEmpty": "Todavía no hay datos",
"sInfoFiltered": "()",
"sSearchPlaceholder": "Buscar",
"sInfoPostFix": "",
"sSearch": "",
"sUrl": "",
"oPaginate": {
"sFirst": " ",
"sPrevious": " ",
"sNext": " ",
"sLast": " "
}
}
});
}
});
/*
ClassBlockUI.abrirBlockUIEstandar(contenedorIDAMostrar[, accionCerrar, headerText, extraClass, restaurarElemento]);
ClassBlockUI.abrirBlockUIEstandarMensaje(mensaje[, isAlertOrButtons, onClose]);
ClassBlockUI.abrirBlockUIConfirm(mensaje, textoBotonAceptar, accionBotonAceptar, textoBotonCancelar[, accionBotonCancelar]); //accionBotonCancelar="close"
ClassBlockUI.abrirBlockUIEsperePorFavor:([mensaje]);
*/
var ClassBlockUI =
{
restaurarElemento: function()
{
var data = $("body").data('blockUIEstandar.history');
if (data)
{
data.el.style.display = data.display;
data.el.style.position = data.position;
if (data.parent)
data.parent.appendChild(data.el);
$("body").removeData('blockUIEstandar.history');
$("#"+data.generatedId).remove();
}
},
abrirBlockUIEstandar: function(contenedorIDAMostrar, accionCerrar, headerText, extraClass, restaurarElemento)
{
if(restaurarElemento || restaurarElemento == undefined)
{
ClassBlockUI.restaurarElemento();
}
$(".modalAutoHide").modal("hide");
if($(".modal").length>0){$("body").addClass("modal-open")}
if(contenedorIDAMostrar == undefined || $("#"+contenedorIDAMostrar).length == 0){return;}
//var blockUIId="blockUI_"+new Date().getTime();
var blockUIId="blockUI_"+contenedorIDAMostrar;
extraClass = extraClass == undefined ? "" : extraClass; //modal-lg
var object = $("#"+contenedorIDAMostrar);
var node = object[0];
var data = {};
$("body").data('blockUIEstandar.history', data);
data.el = node;
data.parent = node.parentNode;
data.display = node.style.display;
data.position = node.style.position;
data.generatedId = blockUIId;
data.object = object;
if (data.parent)
data.parent.removeChild(node);
var header = headerText != undefined ? headerText : "";
var message = ''+
'
'+
' '+
'
';
$("body").append(message);
var modal = $("#"+blockUIId);
modal.find(".modal-body").append(node);
modal.find(".modal-dialog").addClass("jackInTheBox");
modal.on('hidden.bs.modal', function () {
ClassBlockUI.restaurarElemento();
})
var myModal = new bootstrap.Modal($(modal)[0], {
keyboard: false
})
myModal.show();
if(accionCerrar==undefined) //boton cerrar tiene accion por defecto
{
$("#"+blockUIId+" .btnCerrarModalEquis").click(function(){
myModal.hide();
if($(".modal").length>0){$("body").addClass("modal-open")}
});
}
else if(accionCerrar==false) //oculta el boton cerrar
{
$("#"+blockUIId+" .btnCerrarModalEquis").hide();
}
else //boton cerrar con accion especial
{
$("#"+blockUIId+" .btnCerrarModalEquis").click(accionCerrar);
}
return modal;
},
abrirBlockUIEstandarMensaje: function(mensaje, isAlertOrButtons, onClose, extraClass, title)
{
$(".modalAutoHide").modal("hide");
if($(".modal").length>0){$("body").addClass("modal-open")}
var blockUIId="blockUI_"+new Date().getTime();
extraClass = extraClass == null || extraClass == undefined ? "" : extraClass; //modal-lg
title = title == null || title == undefined ? "Aviso" : title;
if(isAlertOrButtons==undefined) isAlertOrButtons=false;
if(onClose==undefined) onClose=false;
var botonera = "";
var botoneraEspecial = false;
if(isAlertOrButtons === false)
{
botonera = "";
}
else if (isAlertOrButtons === true)
{
botonera = "
Aceptar
";
}
else
{
botoneraEspecial = true;
botonera = "
";
for(var index in isAlertOrButtons)
{
botonera += " "+isAlertOrButtons[index]["text"]+" ";
}
botonera += "
";
}
var message = '';
message += '
';
message += ' ';
message += '
';
$("body").append(message);
var modal = $("#"+blockUIId);
modal.find(".modal-dialog").css("animation-duration", "500ms").addClass("zoomIn");
modal.on('hidden.bs.modal', function () {
modal.remove();
})
var myModal = new bootstrap.Modal($(modal)[0], {
keyboard: false
});
myModal.show();
//Acciones de los botones especiales
if(botoneraEspecial)
{
for(var index in isAlertOrButtons)
{
if(isAlertOrButtons[index]["action"] == "close")
{
isAlertOrButtons[index]["action"] = function(){
myModal.hide();
if($(".modal").length>0){$("body").addClass("modal-open")}
};
}
$("#"+blockUIId+" ."+index).unbind("click").click(isAlertOrButtons[index]["action"]);
}
}
var fnOnClose;
if(onClose==false)
{
fnOnClose = function(){
myModal.hide();
if($(".modal").length>0){$("body").addClass("modal-open")}
};
}
else if (typeof onClose === "function")
{
fnOnClose = function(){onClose()};
}
else if (onClose == "location")
{
fnOnClose = function(){window.location.reload()};
}
else if (onClose == "back")
{
fnOnClose = function(){history.go(-1);};
}
else
{
fnOnClose = function(){window.location = onClose};
}
$("#"+blockUIId+" .btnCerrarBlockUIAlert, #"+blockUIId+" .btnCerrarModalEquis").unbind("click").click(fnOnClose);
return modal;
},
abrirBlockUIConfirm: function(mensaje, textoAceptar, accionAceptar, textoCancelar, accionCancelar, extraClass, title)
{
accionCancelar = accionCancelar == undefined ? "close" : accionCancelar;
extraClass = extraClass == null || extraClass == undefined ? "" : extraClass;
var buttons =
{
"btnAceptarBUI_CONFIRM":
{
"text": textoAceptar,
"action": accionAceptar
},
"btnCancelarBUI_CONFIRM":
{
"text": textoCancelar,
"action": accionCancelar
}
};
return ClassBlockUI.abrirBlockUIEstandarMensaje(mensaje, buttons, false, extraClass, title);
},
abrirBlockUIEsperePorFavor: function(mensaje)
{
if(mensaje == undefined){ mensaje = "
Espere por favor...
"; };
return ClassBlockUI.abrirBlockUIEstandarMensaje(mensaje, undefined, false, "modalEspere");
}
};
var ClassUsuarios =
{
guardaClaveOlvidoPass: function ()
{
var opciones_validacion=
{
showLabels: false,
rules: {
passwordOlvido:
{
required: true,
minlength: 6
},
password2: {
equalTo: "#passwordOlvido"
}
}
};
Utils.sendStandardAjax("form_olvido", "ajax/Usuarios.guardaClave.php?CSRF="+CSRF, {opcionesValidacion: opciones_validacion, successCallback: "https://gestion.vespaturia.es/acceder.html"});
},
enviarOlvido: function()
{
Utils.sendStandardAjax("frmEnviarOlvido", "ajax/Usuarios.olvidarContrasena.php", {successCallback: null, resetFormOnSuccess: true});
},
initAcceso: function()
{
let validacionLogin;
$(document).ready(function()
{
$("#btnAcceder").click(login);
$("#emailLogin").pressEnter(login);
$("#passwordLogin").pressEnter(login);
const opciones_validacion_login = {showLabels: false};
validacionLogin = $("#frmLogin").validate(opciones_validacion_login);
});
function login()
{
var validation = $("#frmLogin").valid();
if(!validation)
{
ClassBlockUI.abrirBlockUIEstandarMensaje("Por favor revise los campos marcados en distinto color porque se han detectado lo siguientes errores
"+validacionLogin.invalidMessages("
"), true, undefined, "");
return;
}
var opcionesDatos =
{
type:"POST",
dataType:"json",
url:"ajax/Usuarios.login.php", data: $("#frmLogin").serialize(),
success: function(data, textStatus, XMLHttpRequest)
{
//Registro a mitad
if(data["error_number"]>=0)
{
window.location = data["urlOnLogin"].replace(/&/,"&");
}
//Login error
else
{
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined, "");
$("#passwordLogin").val("");
}
}
};
ClassBlockUI.abrirBlockUIEsperePorFavor();
$.ajax(opcionesDatos);
}
},
initListado: function()
{
$(document).ready(function ()
{
$("#btn-anadir").click(function ()
{
$("#frm-usuario")[0].reset();
$("#frm-usuario-id").val(-1);
$("#bloque-usuario .bloque-flotante-header").text("Añadir Usuario");
$("#btn-guardar-usuario").text("Añadir");
$("#frm-usuario-contrasena, #frm-usuario-contrasena2").addClass("required");
});
$("body").on("click", ".editar-usuario", function(e)
{
e.preventDefault();
$("#frm-usuario")[0].reset();
$("#bloque-usuario .bloque-flotante-header").text("Editar Usuario");
$("#btn-guardar-usuario").text("Editar");
let datos = JSON.parse($(this).attr("data-datos"));
$("#frm-usuario-id").val(datos.id);
$("#frm-usuario-nombre").val(datos.nombre);
$("#frm-usuario-email").val(datos.email);
$("#frm-usuario-telefono").val(datos.telefono);
$("#frm-usuario-rol").val(datos.rol);
$("#frm-usuario-rol").selectpicker('refresh');
$("#frm-usuario-contrasena, #frm-usuario-contrasena2").removeClass("required");
Web.abreBloque("bloque-usuario");
});
$("#btn-guardar-usuario").click(function ()
{
let opciones_validacion = {
showLabels: false,
rules: {
"frm-usuario-contrasena": {
minlength: 6
},
"frm-usuario-contrasena2": {
equalTo: "#frm-usuario-contrasena"
}
}
};
const successCallback = function (data, textStatus, XMLHttpRequest) {
$(".modal").modal("hide");
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined);
if (data["error_number"] >= 0) {
Web.cerrarBloque("bloque-usuario");
tablatablaUsuarios.ajax.reload();
}
};
Utils.sendStandardAjax("frm-usuario", "ajax/Usuarios.modificar.php?CSRF="+CSRF, {opcionesValidacion: opciones_validacion, successCallback: successCallback});
});
});
},
};