class Web
{
static init()
{
Web.warningMessage = "Si abandonas ahora la web se perderán los cambios realizados.";
Web.warningMessageActivated = false;
$(document).ready(function()
{
$("form.check-change").on("change", "select, input, textarea", function()
{
Web.activateDeactivateWarning(true);
});
//$(".bloqueLegalCookiesEnlaceMasInfo, .masInfoCookie").attr("href", "politica-cookies/").attr("target", "_blank");
$(".tooltipStandardHTML").not(".tooltipstered").tooltipster({
animation: 'grow',
interactive: true,
position: 'bottom',
contentAsHTML: true
});
});
}
static initInicio()
{
$(document).ready(function()
{
$(".carousel-servicios").each(function(i, e)
{
let to = null;
let itemCarousel = $(e);
const numItems = itemCarousel.find(".item-servicio").length;
if (itemCarousel.length) {
itemCarousel.owlCarousel({
smartSpeed: 650,
loop:false,
checkVisible:false,
margin: 30,
nav:true,
lazyLoad: true,
navText: [
'',
'',
],
dots: false,
mouseDrag: false,
items:1,
responsive: {
0: {
items: 1,
margin: 30,
mouseDrag: true,
loop: true,
stagePadding: 65,
},
576: {
mouseDrag: numItems > 2 ? true : false,
loop: numItems > 2 ? true : false,
items: 2
},
768: {
mouseDrag: false,
loop: numItems > 3 ? true : false,
items: 3
},
},
onTranslate: function(e) {
itemCarousel.removeClass("owl-shadow");
clearTimeout(to);
to = setTimeout(function(){itemCarousel.addClass("owl-shadow");}, 400);
},
onDrag: function(e) {
itemCarousel.removeClass("owl-shadow");
},
});
}
});
let itemCarousel2 = $(".carousel-noticias");
const numItems2 = itemCarousel2.find(".itemNoticia").length;
if (itemCarousel2.length) {
itemCarousel2.owlCarousel({
smartSpeed: 650,
loop:false,
checkVisible:false,
margin: 30,
lazyLoad: true,
nav:false,
dots: false,
mouseDrag: false,
items:1,
responsive: {
0: {
items: 1.5,
margin: 30,
mouseDrag: true,
loop: true,
},
576: {
mouseDrag: numItems2 > 2 ? true : false,
touchDrag: numItems2 > 2 ? true : false,
loop: numItems2 > 2 ? true : false,
items: 2
},
768: {
mouseDrag: false,
touchDrag: false,
loop: numItems2 > 3 ? true : false,
items: 3
},
},
onTranslate: function(e) {
itemCarousel2.removeClass("owl-shadow");
clearTimeout(to);
to = setTimeout(function () {
itemCarousel2.addClass("owl-shadow");
}, 400);
},
onDrag: function(e) {
itemCarousel2.removeClass("owl-shadow");
},
});
}
let itemCarousel3 = $("#nuestros-clientes");
const numItems3 = itemCarousel3.find(".item-cliente").length;
if (itemCarousel3.length) {
itemCarousel3.owlCarousel({
margin: 75,
nav: false,
dots: false,
lazyLoad: true,
loop: numItems3 > 5 ? true : false,
autoWidth: true,
autoplay: true,
autoplayTimeout: 4000,
autoplayHoverPause: true
});
}
});
}
static initGaleria()
{
$(document).ready(function ()
{
$(".item-galeria").simpleLightbox({maxZoom: 2});
});
}
static initContacto()
{
var validacion;
$(document).ready(function(e) {
$("#btnEnviarContacto").click(enviarFormulario);
var opciones_validacion = {showLabels: false};
validacion = $("#formContacto").validate(opciones_validacion);
});
function enviarFormulario(event) {
event.preventDefault();
var extraMsg = "";
if (!$("#politica").is(":checked")) {
extraMsg = $("#politica").attr("title");
}
Utils.sendStandardAjax("formContacto", "ajax/Contacto.enviar.php", {
extraErroresForm: extraMsg,
successCallback: null,
resetFormOnSuccess: true,
});
}
}
static initTexto()
{
$("document").ready(function()
{
//$(".textoSeccion a").attr("target", "_blank");
$(".textoSeccion a[href^='tel']").removeAttr("target");
$(".textoSeccion img[style^='float: left'], .textoSeccion img[style^='float:left']").addClass("margin-right-20 margin-bottom-20 img-float");
$(".textoSeccion img[style^='float: right'], .textoSeccion img[style^='float:right']").addClass("margin-left-20 margin-bottom-20 img-float");
$(".textoSeccion img:not(.imagenDerecha)").addClass("img-fluid").css("max-width", "100%").css("height", "auto").css("object-fit", "cover");
});
}
static initBanner()
{
$(document).ready(function () {
if ($('#carousel-banner').length) {
$('#carousel-banner').owlCarousel({
animateOut: 'fadeOut',
animateIn: 'fadeIn',
loop:true,
margin:0,
nav:true,
navText: [
'',
'',
],
dots:false,
mouseDrag: false,
smartSpeed: 900,
autoplay: true,
autoplayTimeout: 7000,
items:1,
});
}
});
}
}
$(document).ready(function()
{
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": "Mostrar _MENU_",
"sZeroRecords": "No se han encontrado resultados",
"sEmptyTable": "Sin datos todavía",
"sInfo": "_START_-_END_ de _TOTAL_",
"sInfoEmpty": "Todavía no hay datos",
"sInfoFiltered": "(filtrado de _MENU_ entradas)",
"sSearchPlaceholder": "Buscar",
"sInfoPostFix": "",
"sSearch": "",
"sUrl": "",
"oPaginate": {
"sFirst": " ",
"sPrevious": " ",
"sNext": " ",
"sLast": " "
},
"buttons":{
"colvis":"Columnas"
}
}
});
}
});
/*
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)
{
$(".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 () {
if (restaurarElemento !== false)
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 = "Espera 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: ""});
},
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, revisa los campos porque se han detectado los 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);
}
},
initOlvido: function () {
$(document).ready(function () {
$("#btnEnviarOlvido").click(ClassUsuarios.enviarOlvido);
});
},
initConfirmarOlvido: function () {
$(document).ready( function ()
{
$(".btnEnviarNuevoPass").click(ClassUsuarios.guardaClaveOlvidoPass);
$("#password2").pressEnter(ClassUsuarios.guardaClaveOlvidoPass);
});
}
};
class ClassWeb
{
static actualizarTarifaOferta(productoDual)
{
let tarifa = productoDual === false ? $("#frmContratoIdTarifa") : $("#frmDualIdTarifa");
let oferta = productoDual === false ? $("#frmContratoIdOferta") : $("#frmDualIdOferta");
let idCompania = productoDual === false ? $("#frmContratoIdCompania").val() : $("#frmDualIdCompania").val();
let idProducto = productoDual === false ? $("#frmContratoIdProducto").val() : $("#frmDualIdProducto").val();
let idTipoTarifa = productoDual === false ? $("#frmContratoIdTipoTarifa").val() : $("#frmDualIdTipoTarifa").val();
ClassWeb.actualizarTarifaOfertaInput(tarifa, oferta, idCompania, idProducto, idTipoTarifa);
};
static actualizarTarifaOfertaInput(tarifa, oferta, idCompania, idProducto, idTipoTarifa, idTarifaSelected = undefined, idOfertaSelected = undefined)
{
let bootStrapSelect = false;
let previousTarifa = tarifa.val();
tarifa.empty();
tarifa.append("");
oferta.empty();
oferta.append("");
let esperePorFavor = Utils.sendStandardAjax(null, "ajax/Companias.tarifasOfertas.php?idCompania=" + idCompania + "&idProducto=" + idProducto+"&idTipoTarifa="+idTipoTarifa, {
"successCallback": function (data, textStatus, XMLHttpRequest)
{
tarifa.empty();
tarifa.append("");
for (var index in data["tarifas"])
{
if (data["tarifas"].hasOwnProperty(index))
{
tarifa.append("");
}
}
oferta.empty();
oferta.append("");
for (var j in data["ofertas"])
{
if (data["ofertas"].hasOwnProperty(j))
{
oferta.append("");
}
}
var options = tarifa.find('option');
var arr = options.map(function (_, o)
{
return {t: $(o).text(), v: o.value};
}).get();
arr.sort(function (o1, o2)
{
return o2.v == "" ? 1 : (o1.t > o2.t ? 1 : o1.t < o2.t ? -1 : 0);
});
options.each(function (i, o)
{
o.value = arr[i].v;
$(o).text(arr[i].t);
});
var options2 = oferta.find('option');
var arr2 = options2.map(function (_, o)
{
return {t: $(o).text(), v: o.value};
}).get();
arr2.sort(function (o1, o2)
{
return o2.v == "" ? 1 : (o1.t > o2.t ? 1 : o1.t < o2.t ? -1 : 0);
});
options2.each(function (i, o)
{
o.value = arr2[i].v;
$(o).text(arr2[i].t);
});
esperePorFavor.modal("hide");
if (previousTarifa > 0 || idTarifaSelected > 0)
{
tarifa.val((idTarifaSelected > 0 ? idTarifaSelected : previousTarifa));
}
if(idOfertaSelected > 0)
oferta.val(idOfertaSelected);
}
});
}
static initConfiguracion(ofertasActuales, idCompania)
{
ClassWeb.idCompania = idCompania;
$(document).ready(function ()
{
var body = $("body");
body.on("click", ".btnEditarProducto, .btnAnadirProducto", function (e)
{
ClassBlockUI.abrirBlockUIEstandar("modalProductos", undefined, "Gestionar Producto", "modal493");
$("#frmProductosID").val($(this).attr("data-id"));
$("#frmProductosTitulo").val($(this).attr("data-title"));
return false;
});
body.on("click", ".btnGuardarProducto", function (e)
{
Utils.sendStandardAjax("frmProductos", "ajax/Productos.editar.php");
return false;
});
body.on("click", ".btnBorrarImagen", function (e)
{
let logo = $("#frmCompaniaBorrarLogo");
let icono = $(".btnBorrarImagen");
if (logo.val() * 1 === 1)
{
logo.val(0);
icono.attr("title", "La imagen no se borrara");
icono.css("color", "black");
}
else
{
logo.val(1);
icono.attr("title", "Se ha marcado para borrar");
icono.css("color", "red");
}
return false;
});
body.on("click", ".btnEliminarProducto", function (e)
{
var idProducto = $(this).attr("data-id");
ClassBlockUI.abrirBlockUIConfirm("¿Esta seguro de que desea borrar el producto %1%?".replaceAll("%1%", $(this).attr("data-title")), "Aceptar", function ()
{
Utils.sendStandardAjax(null, "ajax/Productos.eliminar.php?id=" + idProducto);
}, "Cancelar");
return false;
});
body.on("click", ".btnEditarTarifa, .btnAnadirTarifa", function (e)
{
var modal = ClassBlockUI.abrirBlockUIEstandar("modalTarifas", undefined, "Gestionar Tarifa", "modal493");
$("#frmTarifasID").val($(this).attr("data-id"));
$("#frmTarifasTitulo").val($(this).attr("data-title"));
$("input[name=frmTarifasProducto]").val([$(this).attr("data-idProducto")]);
return false;
});
body.on("click", ".btnGuardarTarifa", function (e)
{
Utils.sendStandardAjax("frmTarifas", "ajax/Tarifas.editar.php");
return false;
});
body.on("click", ".btnEliminarTarifa", function (e)
{
var idTarifa = $(this).attr("data-id");
ClassBlockUI.abrirBlockUIConfirm("¿Esta seguro de que desea borrar la tarifa %1%?".replaceAll("%1%", $(this).attr("data-title")), "Aceptar", function ()
{
Utils.sendStandardAjax(null, "ajax/Tarifas.eliminar.php?id=" + idTarifa);
}, "Cancelar");
return false;
});
body.on("click", ".btnActivaDesactivaCompañia", function (e)
{
if (!e.target.classList.contains('form-check-input'))
return;
var activo = $(e.target).is(":checked") ? 1 : 0;
var idCompania = $(e.target).attr("data-id");
Utils.sendStandardAjax(null, "ajax/Companias.activarDesactivar.php?id=" + idCompania + "&activo=" + activo, {
"esperePorFavor": false,
"successCallback": function ()
{
}
});
return true;
});
body.on("click", ".btnEditarCompañia, .btnAnadirCompañia", function (e)
{
var id = $(this).attr("data-id");
if (id === undefined)
{
id = 0;
}
window.location = "/configuraciones/?c=compañias&id=" + id;
return false;
});
body.on("click", ".btnEliminarCompañia", function (e)
{
var idCompania = $(this).attr("data-id");
ClassBlockUI.abrirBlockUIConfirm("¿Esta seguro de que desea borrar la compañía %1%?".replaceAll("%1%", $(this).attr("data-title")), "Aceptar", function ()
{
Utils.sendStandardAjax(null, "ajax/Companias.eliminar.php?id=" + idCompania);
}, "Cancelar");
return false;
});
body.on("click", ".btnGuardarCompañia", function (e)
{
Utils.sendStandardAjax("frmCompania", "ajax/Companias.editar.php", {"successCallback": "data-location"});
return false;
});
body.on("click", ".btnEditarCompañiaOferta, .btnAnadirCompañiaOferta", function (e)
{
ClassWeb.modalEditarOferta = ClassBlockUI.abrirBlockUIEstandar("modalOfertas", undefined, "Gestionar Oferta", "modal493", false);
const idOferta = $(this).attr("data-id") || Math.floor(new Date().getTime() / 1000.0) * -1;
$("#frmOfertasidOferta").val(idOferta);
$("#frmOfertasidCompania").val($(this).attr("data-idCompania"));
$("#frmOfertasTitulo").val($(this).attr("data-title"));
let idProducto = $(this).attr("data-idProducto");
let tipoTarifa = $(this).attr("data-tarifa");
let radio = $("input:radio[name='frmOfertasProducto']");
let radioTarifa = $("input:radio[name='frmOfertasTipoTarifa']");
$("#comisiones-ofertas").html("");
if (idProducto > 0)
{
radio.attr("checked", false);
radio.attr("disabled", true);
radioTarifa.attr("checked", false);
radioTarifa.attr("disabled", true);
$("input:radio[name='frmOfertasProducto'][value=" + idProducto + "]").attr("checked", true);
$("input:radio[name='frmOfertasTipoTarifa'][value=" + tipoTarifa + "]").attr("checked", true);
cargarComisiones(idOferta);
}
else
{
$("input:radio[name='frmOfertasProducto'], input:radio[name='frmOfertasTipoTarifa']").attr("checked", false);
radio.attr("disabled", false);
radioTarifa.attr("disabled", false);
}
return false;
});
body.on("click", "#btn-anadir-comision, .btn-comision-editar", function (e)
{
$("#frmComisiones")[0].reset();
const comisionId = $(this).attr("data-id") || -1;
$("#comision-id").val(comisionId);
$("#oferta-id").val($("#frmOfertasidOferta").val());
if (comisionId > 0)
{
const elementComision = $(this).parents(".item-comision");
const rInicio = elementComision.attr("data-inicio");
const rFin = elementComision.attr("data-fin");
const comision = elementComision.attr("data-comision");
$("#rango-inicio").val(rInicio);
$("#rango-fin").val(rFin);
$("#comision").val(comision);
}
ClassWeb.modalEditarComisiones = ClassBlockUI.abrirBlockUIEstandar("modalComisiones", undefined, "Comisión", "modal493", false);
return false;
});
body.on("click", ".btnActivaDesactivaCompañiaOferta", function (e)
{
if (!e.target.classList.contains('form-check-input'))
return;
var activo = $(e.target).is(":checked") ? 1 : 0;
var idOferta = $(e.target).attr("data-id");
Utils.sendStandardAjax(null, "ajax/CompaniasOfertas.activarDesactivar.php?id=" + idOferta + "&activo=" + activo, {
"esperePorFavor": false,
"successCallback": function ()
{
}
});
return true;
});
body.on("click", ".btnEliminarCompañiaOferta", function (e)
{
var idCompaniaOferta = $(this).attr("data-id");
let modalConfirmarBorrar = ClassBlockUI.abrirBlockUIConfirm("¿Esta seguro de que desea borrar la oferta %1%?".replaceAll("%1%", $(this).attr("data-title")), "Aceptar", function ()
{
let esperePorFavor = Utils.sendStandardAjax(null, "ajax/CompaniasOfertas.eliminar.php?id=" + idCompaniaOferta, {
"successCallback": function (data, textStatus, XMLHttpRequest)
{
modalConfirmarBorrar.modal("hide");
esperePorFavor.modal("hide");
if (data["error_number"] >= 0)
{
tablatablaOfertas.ajax.reload();
}
else
{
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true)
}
}
});
}, "Cancelar");
return false;
});
body.on("click", ".btnGuardarCompañiaOferta", function (e)
{
let esperePorFavor = Utils.sendStandardAjax("frmOfertas", "ajax/CompaniasOfertas.editar.php", {
"onBeforeSend": function ()
{
let radio = $("input:radio[name='frmOfertasProducto']");
radio.attr("disabled", false);
}, "successCallback": function (data, textStatus, XMLHttpRequest)
{
esperePorFavor.modal("hide");
if (ClassWeb.modalEditarOferta)
{
ClassWeb.modalEditarOferta.modal("hide");
}
//eval("tablatablaOfertas"+data["idProducto"]).ajax.reload();
tablatablaOfertas.ajax.reload();
}
});
return false;
});
/*
body.on("click", ".btnGuardarComision", function (e)
{
let esperePorFavor = Utils.sendStandardAjax("frmComisiones", "ajax/CompaniasComisiones.editar.php", {
successCallback: function (data, textStatus, XMLHttpRequest)
{
esperePorFavor.modal("hide");
if (data["error_number"] * 1 < 0)
{
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true);
}
else
{
if (ClassWeb.modalEditarComisiones)
{
ClassWeb.modalEditarComisiones.modal("hide");
}
}
if (data["comisiones"] && data["comisiones"].length > 0)
{
const comisiones = data["comisiones"];
let htmlComisiones = "";
$.each(comisiones, function (i, e)
{
htmlComisiones += getHtmlComision(e);
});
$("#comisiones-ofertas").html(htmlComisiones);
}
}
});
return false;
});
body.on("click", ".btn-comision-eliminar", function (e)
{
const id = $(this).attr("data-id");
let modalConfirm = ClassBlockUI.abrirBlockUIConfirm("Va a eliminar una comisión, ¿Desea continuar?", "Aceptar", function ()
{
modalConfirm.modal("hide");
let esperePorFavor = Utils.sendStandardAjax(null, "ajax/CompaniasComisiones.eliminar.php?id="+id, {
successCallback: function (data, textStatus, XMLHttpRequest)
{
esperePorFavor.modal("hide");
if (data["error_number"] * 1 < 0)
{
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true);
}
else
{
$.notify(
{
title: "Aviso: ",
message: data["error_message"],
},
{
type: 'success',
placement: {
from: "top",
align: "center"
},
delay: 6000
});
}
if (data["comisiones"] && data["comisiones"].length > 0)
{
const comisiones = data["comisiones"];
let htmlComisiones = "";
$.each(comisiones, function (i, e)
{
htmlComisiones += getHtmlComision(e);
});
$("#comisiones-ofertas").html(htmlComisiones);
}
}
});
},
"Cancelar");
return false;
});
*/
var lastCall = 0;
if (Object.keys(ofertasActuales).length > 0)
{
$.each(ofertasActuales, function (id, item)
{
var currentDropdown = $('#etiquetasDropdown' + id);
currentDropdown.dropdownSUI({
allowAdditions: true,
apiSettings: {
url: 'ajax/ProductosOfertas.buscar.php?CSRF=' + CSRF + '&q={query}&idProducto=' + id + "&idCompania=" + ClassWeb.idCompania,
cache: true,
beforeSend: function (a)
{
let currentCall = new Date().getTime();
//Limitar llamadas vacias a 1 cada segundo porque se ponia a llamar sin parar una y otra vez
if (a.urlData.query === "" && currentCall - lastCall < 1000)
{
return false;
}
lastCall = currentCall;
return a;
},
onResponse: function (response)
{
var currentValues = ("," + currentDropdown.dropdownSUI("get value") + ",");
var results = [];
// Quitar los que ya tienen valor.
for (var k in response["results"])
{
if (!response["results"].hasOwnProperty(k))
{
continue;
}
if (currentValues.indexOf("," + response["results"][k]["value"] + ",") === -1)
{
results.push(response["results"][k]);
}
}
return {
success: true,
results: results
};
}
},
saveRemoteData: true
});
$.each(item, function (index, element)
{
currentDropdown.dropdownSUI("set selected", element);
});
currentDropdown.dropdownSUI('refresh');
});
}
body.on("click", ".btnGuardarTextoLOPD", function (e)
{
if (CKEDITOR.instances)
{
for (var i in CKEDITOR.instances)
{
CKEDITOR.instances[i].updateElement();
}
}
Utils.sendStandardAjax("frmTextoLOPD", "ajax/TextoLOPD.editar.php");
return false;
});
body.on("click", ".btnGuardarEnlaceDropbox", function (e)
{
Utils.sendStandardAjax("frmEnlaceDropbox", "ajax/EnlaceDropbox.editar.php");
return false;
});
$(".barra_busqueda_global").html("");
if ($(".dataTables_filter input").length == 1)
{
$(".barra_busqueda_global").append($(".dataTables_filter input").detach());
}
});
function cargarComisiones(id)
{
let successCallback = function (data, textStatus, XMLHttpRequest)
{
$(".modalAutoHide").modal("hide");
if (data["comisiones"] && data["comisiones"].length > 0)
{
const comisiones = data["comisiones"];
let htmlComisiones = "";
$.each(comisiones, function (i, e)
{
htmlComisiones += getHtmlComision(e);
});
$("#comisiones-ofertas").html(htmlComisiones);
}
};
Utils.sendStandardAjax(null, "https://gestion.fotonasesoreshellin.com/ajax/CompaniasComisiones.cargar.php?CSRF=" + CSRF + "&id=" + id, {
successCallback: successCallback,
});
}
function getHtmlComision(item)
{
let html = "";
html += ``;
html += item.rango_inicio + "kw - " + item.rango_fin + "kw - " + item.comision + "€";
html += `
`;
html += `
`;
html += `
`;
html += "
";
html += "
";
return html;
}
};
static initConfiguracionComisiones(urlAjax)
{
$(document).ready(function ()
{
const body = $("body");
$("#frmBuscarIdCompania, #frmBuscarIdProducto, #frmBuscarIdTipoTarifa, #frmBuscarIdTarifa, #frmBuscarIdOferta").change(actualizaTablaFiltros);
let companiaBuscar = $("#frmBuscarIdCompania, #frmBuscarIdProducto, #frmBuscarIdTipoTarifa");
companiaBuscar.change(function ()
{
let idCompania = $("#frmBuscarIdCompania").val();
let idProducto = $("#frmBuscarIdProducto").val();
let idTipoTarifa = $("#frmBuscarIdTipoTarifa").val();
ClassWeb.actualizarTarifaOfertaInput($("#frmBuscarIdTarifa"), $("#frmBuscarIdOferta"), idCompania, idProducto, idTipoTarifa);
});
let toRangos;
$("#frmBuscarRangoInicio, #frmBuscarRangoFin").keyup(function ()
{
clearTimeout(toRangos);
toRangos = setTimeout(actualizaTablaFiltros, 400);
});
let tarifa = $("#frmComisionIdTarifa");
let oferta = $("#frmComisionIdOferta");
let companiaProducto = $("#frmComisionIdCompania, #frmComisionIdProducto, #frmComisionIdTipoTarifa");
companiaProducto.change(function ()
{
let idCompania = $("#frmComisionIdCompania").val();
let idProducto = $("#frmComisionIdProducto").val();
let idTipoTarifa = $("#frmComisionIdTipoTarifa").val();
ClassWeb.actualizarTarifaOfertaInput(tarifa, oferta, idCompania, idProducto, idTipoTarifa);
});
body.on("click", ".btnAnadirComision, .btnEditarComision", function (e)
{
//$("#frmComisiones")[0].reset();
$("#rango-inicio").val("");
$("#rango-fin").val("");
$("#comision").val("");
const comisionId = $(this).attr("data-id") || -1;
$("#comision-id").val(comisionId);
if (comisionId > 0)
{
const datos = JSON.parse($(this).attr("data-datos"));
$("#frmComisionIdCompania").val(datos.idCompania);
$("#frmComisionIdProducto").val(datos.idProducto);
$("#frmComisionIdTipoTarifa").val(datos.idTipoTarifa);
ClassWeb.actualizarTarifaOfertaInput(tarifa, oferta, datos.idCompania, datos.idProducto, datos.idTipoTarifa, datos.idTarifa, datos.idOferta);
$("#rango-inicio").val(datos.rangoInicio);
$("#rango-fin").val(datos.rangoFin);
$("#comision").val(datos.comision);
}
ClassWeb.modalEditarComisiones = ClassBlockUI.abrirBlockUIEstandar("modalComisiones", undefined, "Comisión", "modal750", false);
return false;
});
body.on("click", ".btnGuardarComision", function (e)
{
let esperePorFavor = Utils.sendStandardAjax("frmComisiones", "ajax/CompaniasComisiones.editar.php", {
successCallback: function (data, textStatus, XMLHttpRequest)
{
esperePorFavor.modal("hide");
if (data["error_number"] * 1 < 0)
{
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true);
}
else
{
tablatablaComisiones.ajax.reload();
if (ClassWeb.modalEditarComisiones)
ClassWeb.modalEditarComisiones.modal("hide");
}
}
});
return false;
});
body.on("click", ".btnEliminarComision", function (e)
{
const id = $(this).attr("data-id");
let modalConfirm = ClassBlockUI.abrirBlockUIConfirm("Va a eliminar una comisión, ¿Desea continuar?", "Aceptar", function ()
{
modalConfirm.modal("hide");
let esperePorFavor = Utils.sendStandardAjax(null, "ajax/CompaniasComisiones.eliminar.php?id="+id, {
successCallback: function (data, textStatus, XMLHttpRequest)
{
esperePorFavor.modal("hide");
if (data["error_number"] * 1 < 0)
{
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true);
}
else
{
$.notify(
{
title: "Aviso: ",
message: data["error_message"],
},
{
type: 'success',
placement: {
from: "top",
align: "center"
},
delay: 6000
});
}
actualizaTablaFiltros();
}
});
},
"Cancelar");
return false;
});
});
function actualizaTablaFiltros()
{
tablatablaComisiones.ajax.url(urlAjax+"&"+$("#frmBuscar").serialize()).load();
}
}
static initConfiguracionCanales(urlAjax)
{
$(document).ready(function ()
{
const body = $("body");
body.on("click", ".btnAnadirCanal, .btnEditarCanal", function (e)
{
const idItem = $(this).attr("data-id") || -1;
$("#canal-id").val(idItem);
if (idItem > 0)
{
const datos = JSON.parse($(this).attr("data-datos"));
$("#canal").val(datos.gcan_canal);
}
ClassWeb.modalEditarCanales = ClassBlockUI.abrirBlockUIEstandar("modalCanal", undefined, "Canal", "modal750", false);
return false;
});
body.on("click", ".btnGuardarCanal", function (e)
{
let esperePorFavor = Utils.sendStandardAjax("frmCanales", "ajax/Canales.editar.php", {
successCallback: function (data, textStatus, XMLHttpRequest)
{
esperePorFavor.modal("hide");
if (data["error_number"] * 1 < 0)
{
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true);
}
else
{
tablatablaCanales.ajax.reload();
if (ClassWeb.modalEditarCanales)
ClassWeb.modalEditarCanales.modal("hide");
}
}
});
return false;
});
body.on("click", ".btnEliminarCanal", function (e)
{
const id = $(this).attr("data-id");
let modalConfirm = ClassBlockUI.abrirBlockUIConfirm("Va a eliminar un canal, ¿Desea continuar?", "Aceptar", function ()
{
modalConfirm.modal("hide");
let esperePorFavor = Utils.sendStandardAjax(null, "ajax/Canales.eliminar.php?id="+id, {
successCallback: function (data, textStatus, XMLHttpRequest)
{
esperePorFavor.modal("hide");
if (data["error_number"] * 1 < 0)
{
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true);
}
else
{
$.notify(
{
title: "Aviso: ",
message: data["error_message"],
},
{
type: 'success',
placement: {
from: "top",
align: "center"
},
delay: 6000
});
}
actualizaTablaFiltros();
}
});
},
"Cancelar");
return false;
});
});
function actualizaTablaFiltros()
{
tablatablaCanales.ajax.url(urlAjax+"&"+$("#frmBuscar").serialize()).load();
}
}
static initClientes()
{
$(document).ready(function ()
{
tablatablaClientes.on('click', 'tr', function ()
{
var data = tablatablaClientes.row(this).data();
window.location = "/clientes/?id=" + data[1];
});
var body = $("body");
body.on("click", ".btnNuevoCliente, .btnAnadirProducto", function (e)
{
window.location = "/clientes/?nc=1";
return false;
});
body.on("click", ".btnExportarClientes", function (e)
{
window.location = "/exportarDatos.php?t=gc_&draw=" + tablatablaClientes.ajax.params().draw;
return false;
});
})
};
static initClickTablaContratos()
{
$(document).ready(function ()
{
tablatablaContratos.on('click', 'tr td:not(.contieneBtnEstado, .noVis, .contieneDNI)', function ()
{
var data = tablatablaContratos.row($(this).parent()).data();
window.open("/contratos/?id=" + data[1], '_blank');
//window.location = "/contratos/?id="+data[1];
});
});
}
static initBusquedaGlobal(busqueda, pos, idCliente)
{
let autocompleteBuscarCliente = $("#frmBuscarClienteDNI");
autocompleteBuscarCliente.keyup(function ()
{
if ($(this).val() === "")
{
if (ClassWeb.busquedaGlobal)
{
ClassWeb.cargarDatosCliente(ClassWeb.busquedaGlobal.urlAjax, undefined, ClassWeb.busquedaGlobal.idCompania, ClassWeb.busquedaGlobal.idEstado, ClassWeb.busquedaGlobal.hoy);
}
}
});
autocompleteBuscarCliente.autocomplete({
source: "ajax/Clientes.buscar.php?CSRF=" + CSRF,
minLength: 3,
response: function (event, ui)
{
$(event.target).removeClass("ui-autocomplete-loading");
},
change: function (event, ui)
{
$(event.target).removeClass("ui-autocomplete-loading");
if (!ui.item)
{
$(event.target).val("").data("item", null).removeClass("selected");
if (ClassWeb.busquedaGlobal)
{
ClassWeb.cargarDatosCliente(ClassWeb.busquedaGlobal.urlAjax, undefined, ClassWeb.busquedaGlobal.idCompania, ClassWeb.busquedaGlobal.idEstado, ClassWeb.busquedaGlobal.hoy);
}
}
},
select: function (event, ui)
{
$(event.target).data("item", ui.item).addClass("selected");
if (ClassWeb.busquedaGlobal)
{
ClassWeb.cargarDatosCliente(ClassWeb.busquedaGlobal.urlAjax, ui.item, ClassWeb.busquedaGlobal.idCompania, ClassWeb.busquedaGlobal.idEstado, ClassWeb.busquedaGlobal.hoy);
}
else
{
window.location = "/contratos/?busqueda=" + ui.item.datos.gc_DNI + "&pos=" + ui.item.index + "&cliente=" + ui.item.datos.gc_idCliente;
}
},
open: function (event, ui)
{
if (ClassWeb.autocompleteBuscarClientePrimerResultado)
{
ClassWeb.autocompleteBuscarClientePrimerResultado = false;
if (idCliente > 0)
{
$(".ui-menu-item[data-value='" + idCliente + "']").trigger("click");
}
else
{
if ($(".ui-menu-item").length >= pos + 1)
{
$(".ui-menu-item:eq(" + pos + ")").trigger("click");
return false;
}
else
{
$(".ui-menu-item:eq(0)").trigger("click");
return false;
}
}
}
},
});
autocompleteBuscarCliente.autocomplete("instance")._renderItem = function (ul, item)
{
return $("")
.attr("data-value", item.id)
.append(item.label)
.appendTo(ul);
};
autocompleteBuscarCliente.autocomplete("instance")._renderItem = function (ul, item)
{
let classAC = item.bloqueado ? "opcionAutoCompleteBloqueado" : "opcionAutoCompleteNormal";
return $("")
.attr("data-value", item.id)
.append(item.label)
.appendTo(ul);
};
if (busqueda !== undefined && busqueda !== "")
{
ClassWeb.autocompleteBuscarClientePrimerResultado = true;
autocompleteBuscarCliente.autocomplete("search", autocompleteBuscarCliente.val());
}
}
static initContratos(urlAjax, esAdmin, idCompania, idTarifa, idEstado, hoy)
{
ClassWeb.initClickTablaContratos();
ClassWeb.busquedaGlobal = {
"urlAjax": urlAjax,
"idCompania": idCompania,
"idTarifa": idTarifa,
"idEstado": idEstado,
"hoy": hoy
};
$(document).ready(function ()
{
var body = $("body");
if (esAdmin)
{
body.on("click", ".contrato-estado", ClassWeb.cambiarEstadoContrato);
body.on("change", "#frmCCEIdEstado", ClassWeb.mostarOcultarNotas);
body.on("click", ".btnCambiarEstado", ClassWeb.enivarCambiarEstadoContrato);
}
body.on("click", ".btnAñadirContratos", function (e)
{
let idCliente = $(this).attr("data-idCliente");
if (idCliente > 0)
{
window.location = "/contratos/?idCliente=" + idCliente + "&c=1";
}
else
{
let dni = $("#frmBuscarClienteDNI");
dni.focus();
dni.animate({backgroundColor: "#2768C2"}, "slow").animate({backgroundColor: "#FFFFFF"}, "slow");
$.notify(
{
title: "Aviso: ",
message: "Para poder añadir un contrato, por favor busca un cliente por su DNI para utilizar un cliente existente o bien crearlo para poder añadirle el contrato",
},
{
type: 'danger',
placement: {
from: "top",
align: "center"
},
delay: 10000
});
//ClassBlockUI.abrirBlockUIEstandarMensaje("Para poder añadir un contrato, por favor busca un cliente por su DNI para utilizar un cliente existente o bien crearlo para poder añadirle el contrato", true, undefined, "");
}
return false;
});
body.on("keyup", "#frmFechaDesde, #frmFechaHasta", ClassWeb.getFechasFiltradasValidas);
body.on("click", ".btnFiltrarFechas", function ()
{
let fechas = ClassWeb.getFechasFiltradasValidas();
ClassWeb.recargaTablaContratos(urlAjax, $("#frmClienteID").val(), idCompania, idTarifa, idEstado, fechas, hoy);
if (ClassWeb.modalFiltrarFechas)
{
ClassWeb.modalFiltrarFechas.modal("hide");
ClassWeb.modalFiltrarFechas = null;
}
});
body.on("click", ".btnExportarContratos", function (e)
{
window.location = "/exportarDatos.php?t=gcont_&draw=" + tablatablaContratos.ajax.params().draw;
return false;
});
});
};
static getFechasFiltradasValidas()
{
let fechaDesde = $("#frmFechaDesde").val().split("-");
let fechaHasta = $("#frmFechaHasta").val().split("-");
let fechaDesdeFiltrar = ClassWeb.isValidDate(fechaDesde[2], fechaDesde[1], fechaDesde[0]) ? fechaDesde : null;
let fechaHastaFiltrar = ClassWeb.isValidDate(fechaHasta[2], fechaHasta[1], fechaHasta[0]) ? fechaHasta : null;
//console.log(fechaDesdeFiltrar, fechaHastaFiltrar);
return [fechaDesdeFiltrar, fechaHastaFiltrar];
};
static isValidDate(day, month, year)
{
var validDate = /^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/.test(month + "/" + day + "/" + year);
return (validDate && !/Invalid|NaN/.test(new Date(month + "/" + day + "/" + year)));
};
static cambiarEstadoContrato(e)
{
if ($(this).attr("data-idEstado") == 6)
return;
ClassWeb.modalCambiarEstado = ClassBlockUI.abrirBlockUIEstandar("modalCambiarEstado", undefined, "Cambiar Estado", "modal493");
let estado = $("#frmCCEIdEstado");
estado.val($(this).attr("data-idEstado"));
$("#frmCCEIDContrato").val($(this).attr("data-idContrato"));
$("#frmCCENotas").val("");
estado.trigger("change");
return false;
};
static mostarOcultarNotas(e)
{
if ($("#frmCCEIdEstado").val() * 1 === 3)
{
$(".contieneCCENotas").show();
}
else
{
$(".contieneCCENotas").hide();
$("#frmCCENotas").val("");
}
return false;
}
static enivarCambiarEstadoContrato(e)
{
let modal = Utils.sendStandardAjax("frmContratosCambiarEstado", "ajax/Contrato.cambiarEstado.php", {
"successCallback": function (data, textStatus, XMLHttpRequest)
{
tablatablaContratos.ajax.reload();
modal.modal("hide");
if (ClassWeb.modalCambiarEstado)
{
ClassWeb.modalCambiarEstado.modal("hide");
}
}
});
return false;
};
static initRenovaciones(esAdmin)
{
$(document).ready(function ()
{
tablatablaRenovaciones.on('click', 'tr td:not(.contieneBtnEstado, .noVis)', function ()
{
var data = tablatablaRenovaciones.row($(this).parent()).data();
window.location = "/contratos/?id=" + data[1];
});
var body = $("body");
if (esAdmin)
{
body.on("click", ".contrato-estado", ClassWeb.cambiarEstadoContrato);
body.on("change", "#frmCCEIdEstado", ClassWeb.mostarOcultarNotas);
body.on("click", ".btnCambiarEstado", ClassWeb.enivarCambiarEstadoContrato);
}
body.on("click", ".btnExportarContratos", function (e)
{
window.location = "/exportarDatos.php?t=gcont_&draw=" + tablatablaRenovaciones.ajax.params().draw;
return false;
});
});
};
static recargaTablaContratos(urlAjax, idCliente, idCompania, idTarifa, idEstado, fechas, hoy)
{
var url = urlAjax.replaceAll("%idCliente%", idCliente > 0 ? idCliente : 0).replaceAll("%idCompania%", idCompania).replaceAll("%idTarifa%", idTarifa).replaceAll("%idEstado%", idEstado).replaceAll("%hoy%", hoy);
if (fechas != undefined)
{
if (fechas[0])
{
url = url + "&fechaInicio=" + fechas[0].join("/");
}
if (fechas[1])
{
url = url + "&fechaFin=" + fechas[1].join("/");
}
}
tablatablaContratos.ajax.url(url).load();
}
static cargarDatosCliente(urlAjax, cliente, idCompania, idEstado, hoy)
{
//Quitamos CONTRATOS DE COMPANIA y que ponga solo CONTRATOS al buscar un cliente
let tituloContratos = $(".tituloContratos");
tituloContratos.html(tituloContratos.attr("data-titulo"));
ClassWeb.recargaTablaContratos(urlAjax, cliente === undefined || cliente.bloqueado ? "0" : cliente.datos.gc_idCliente, idCompania, idEstado, hoy);
let mostrarOcultarBloques = $(".datosAdjuntos, .btnEditarCliente, #frmCliente");
let btnAnadirContratos = $(".btnAñadirContratos");
if (cliente === undefined)
{
mostrarOcultarBloques.addClass("d-none");
$("#frmCliente")[0].reset();
btnAnadirContratos.attr("data-idCliente", 0);
return;
}
else if (cliente.id === -1)
{
window.location = "/contratos/?dniNuevoCliente=" + cliente.datos.gc_DNI;
return;
}
else if (cliente.bloqueado)
{
let modal = ClassBlockUI.abrirBlockUIEstandarMensaje("El cliente que estás tratando de gestionar pertenece a otro comercial y por tanto no puedes hacer contratos ni editar este cliente.", true, function ()
{
modal.modal("hide");
$("#frmBuscarClienteDNI").val("");
}, "");
mostrarOcultarBloques.addClass("d-none");
$("#frmCliente")[0].reset();
btnAnadirContratos.attr("data-idCliente", 0);
return;
}
mostrarOcultarBloques.removeClass("d-none");
$("#frmClienteID").val(cliente["datos"]["gc_idCliente"]);
$("#frmClienteDNI").val(cliente["datos"]["gc_DNI"]);
$("#frmClienteNombre").val(cliente["datos"]["gc_nombre"]);
$("#frmClienteTelefono").val(cliente["datos"]["gc_telefono"]);
$("#frmClienteEmail").val(cliente["datos"]["gc_email"]);
$("#frmClienteApodo").val(cliente["datos"]["gc_apodo"]);
//$("#frmClienteIBAN").val(cliente["datos"]["gc_IBAN"]);
$("#frmClienteRepresentante").val(cliente["datos"]["gc_representante"]);
$("#frmClienteNIFRepresentante").val(cliente["datos"]["gc_NIF_representante"]);
$("#frmClienteNombreRepresentante").val(cliente["datos"]["gc_nombre_representante"]);
$("#frmClienteComercial").val(cliente["datos"]["nombre"]);
$("#frmClienteidComercial").val(cliente["datos"]["gc_idComercial"]);
$.each(cliente["datos"]["iban"], function (i, e)
{
$("#frmClienteIBAN_"+(i + 1)+"_nombre").val(e.nombre);
$("#frmClienteIBAN_"+(i + 1)+"_IBAN").val(e.iban);
});
$("#frmClienteRepresentante").trigger("change");
$(".datosAdjuntos").html("");
if (cliente["adjuntos"] !== undefined)
{
$(".bloqueDatosAdjuntos").removeClass("d-none");
let template = ' ';
for (var index in cliente["adjuntos"])
{
let adjunto = cliente["adjuntos"][index];
$(".datosAdjuntos").append(template.replaceAll("%titulo%", adjunto["gcd_titulo"]).replaceAll("%gcd_idClienteDocumento%", adjunto["gcd_idClienteDocumento"]).replaceAll("%readonly%", "readonly").replaceAll("%deleteVisible%", "d-none"));
}
$(".tooltipStandard").not(".tooltipstered").tooltipster({
animation: 'grow',
interactive: true,
position: 'bottom'
});
}
else
{
$(".bloqueDatosAdjuntos").addClass("d-none");
}
btnAnadirContratos.attr("data-idCliente", cliente["datos"]["gc_idCliente"]);
setTimeout(function ()
{
$("#frmBuscarClienteDNI").val("");
}, 100);
}
static cargarDatosComercial(comercial, formIdField, formIdName, formPorcentajeField = "porcentajeComisionComercial")
{
let formIdComercial = $("#" + formIdField);
let formComercial = $("#" + formIdName);
let formPorcentaje = $("#" + formPorcentajeField);
if (comercial === undefined || comercial["id"] * 1 === -1)
{
formIdComercial.val("");
formComercial.val("");
formPorcentaje.val(0);
setTimeout(function ()
{
formComercial.val("");
}, 400)
return;
}
formIdComercial.val(comercial["datos"]["idUsuario"]);
formComercial.val(comercial["datos"]["nombre"]);
formPorcentaje.val(comercial["datos"]["porcentajeComision"]);
}
static initGuardarCliente(redireccion)
{
$(document).ready(function ()
{
var body = $("body");
body.on("click", ".btnGuardarCliente", function (e)
{
let esperaPorFavor = Utils.sendStandardAjax("frmCliente", "ajax/Clientes.editar.php", {
"opcionesValidacion": {
showLabels: false,
rules:
{
"frmClienteNIFRepresentante":
{
required: function ()
{
return $("#frmClienteRepresentante").val() * 1 == 1
}
},
"frmClienteNombreRepresentante":
{
required: function ()
{
return $("#frmClienteRepresentante").val() * 1 == 1
}
}
}
},
successCallback: function (data, textStatus, XMLHttpRequest)
{
if (data["error_number"] * 1 >= 0)
{
if (redireccion !== undefined && redireccion !== "")
{
window.location = redireccion;
}
else
{
esperaPorFavor.modal("hide");
$("#frmContratoIdCliente").val(data["idCliente"])
$(".btnGuardarCliente").hide();
$(".btnGuardarContrato").removeClass("d-none");
$("#frmContrato").removeClass("d-none");
$("#frmCliente input, #frmCliente select, #frmCliente textarea").each(function ()
{
$(this).prop("readonly", true);
$(this).prop("disabled", true);
$(this).addClass("readonly");
});
}
}
else
{
var errorMessage = "
";
var lastError = "";
for (var i in data["info"])
{
if (typeof (data["info"][i]) == "function")
continue;
errorMessage += data["info"][i] + "
\r\n";
lastError = i;
}
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"] + errorMessage, true, undefined);
}
}
});
});
body.on("click", ".btnEliminarDocumento", function (e)
{
let idDocumento = $(this).attr("data-idClienteDocumento");
let titulo = $(this).attr("data-titulo");
let confirmar = ClassBlockUI.abrirBlockUIConfirm("¿Estas seguro de que deseas borrar el documento %1%?".replaceAll("%1%", titulo), "Aceptar", function ()
{
let esperePorFavor = Utils.sendStandardAjax(null, "ajax/ClientesDocumentos.eliminar.php?id=" + idDocumento, {
"successCallback": function (data, textStatus, XMLHttpRequest)
{
if (data["error_number"] >= 0)
{
$(".documento_" + idDocumento).hide();
esperePorFavor.modal("hide");
confirmar.modal("hide");
}
else
{
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined, "");
}
}
});
}, "Cancelar")
});
});
};
static isValidNumericoPuntoSeparadorMiles(value)
{
let regex = /^([1-9]\d{0,2}(.?\d{3})*|0)?$/
//console.log(value, regex.test(value), "isValidNumericoPuntoSeparadorMiles");
return regex.test(value);
};
static isValidNumericoDecimalesComa(value)
{
let regex = /^(?:\d{1,3}(?:\.\d{3})+|\d+)(?:,\d+)?$/
//console.log(value, regex.test(value), "isValidNumericoDecimalesComa");
return regex.test(value);
};
static isValidCUPS(value)
{
let ret = false;
const reCUPS = /^[A-Z]{2}(\d{4}\d{12})([A-Z]{2})(\d[FPCRXYZ])?$/i;
if (reCUPS.test(value))
{
const mCUPS = value.toUpperCase().match(reCUPS);
const [, cups16, control] = mCUPS;
const letters = [
'T', 'R', 'W', 'A', 'G', 'M',
'Y', 'F', 'P', 'D', 'X', 'B',
'N', 'J', 'Z', 'S', 'Q', 'V',
'H', 'L', 'C', 'K', 'E',
];
const cup16Mod = +cups16 % 529,
quotient = Math.floor(cup16Mod / letters.length),
remainder = cup16Mod % letters.length;
//console.log(letters[quotient] + letters[remainder]);
ret = (control === letters[quotient] + letters[remainder]);
}
return ret;
}
static isDateES(value, element, validator, forceGetDate)
{
var date = null;
var separators = new Array("\\", "-", "/");
for (var index in separators)
{
if (value.indexOf(separators[index]) != -1)
{
date = value.split(separators[index]);
}
}
if (date == null || date.length != 3 || date[1] * 1 > 12 || date[0] * 1 > 31)
{
return (validator.optional(element) || false);
}
var validDate = /^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/.test(date[1] + "/" + date[0] + "/" + date[2]);
if (forceGetDate == undefined)
{
return validator.optional(element) || (validDate && !/Invalid|NaN/.test(new Date(date[1] + "/" + date[0] + "/" + date[2])));
}
else
{
if ((validDate && !/Invalid|NaN/.test(new Date(date[1] + "/" + date[0] + "/" + date[2]))))
{
return new Date(date[1] + "/" + date[0] + "/" + date[2]);
}
else
{
return false;
}
}
};
static dateENtoES(value)
{
//de 2023-08-02 a 02/08/2023
return value.split("-").reverse().join("/");
}
static initGuardarContrato()
{
$(document).ready(function ()
{
jQuery.validator.addMethod("numericoPuntoSeparadorMiles", function (value, element)
{
return this.optional(element) || (ClassWeb.isValidNumericoPuntoSeparadorMiles(value))
}, "Debes escribir un número con un formato válido (1000 o 1.000)");
jQuery.validator.addMethod("numericoDecimalesComa", function (value, element)
{
return this.optional(element) || (ClassWeb.isValidNumericoDecimalesComa(value))
}, "Debes escribir un número con un formato válido (100,39)");
jQuery.validator.addMethod("CUPS", function (value, element)
{
return this.optional(element) || (ClassWeb.isValidCUPS(value))
}, "Debes escribir un CUPS valido (20 digitos de la forma: ES0000000000000000XX)");
jQuery.validator.addMethod("dateES", function (value, element)
{
return this.optional(element) || ClassWeb.isDateES(value, element, this)
}, "
Escriba una fecha del formato DD/MM/AAAA (dia, mes y año)");
jQuery.validator.addMethod("dateInputES", function (value, element)
{
value = ClassWeb.dateENtoES(value);
return this.optional(element) || ClassWeb.isDateES(value, element, this)
}, "
Escriba una fecha del formato DD/MM/AAAA (dia, mes y año)");
var body = $("body");
body.on("click", ".btnGuardarContrato", function (e)
{
let esperaPorFavor = Utils.sendStandardAjax("frmContrato", "ajax/Contrato.editar.php?idCliente=" + $("#frmContratoIdCliente").val() + "&frmDualIdProducto=" + $("#frmDualIdProducto").val(), {
successCallback: function (data, textStatus, XMLHttpRequest)
{
if (data["error_number"] * 1 >= 0)
{
window.location = "/contratos/?id=" + data["id"];
//window.location.reload();
}
else
{
var errorMessage = "
";
var lastError = "";
for (var i in data["info"])
{
if (typeof (data["info"][i]) == "function")
continue;
errorMessage += data["info"][i] + "
\r\n";
lastError = i;
}
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"] + errorMessage, true, undefined);
}
},
"opcionesValidacion": {
showLabels: false,
rules: {
"frmContratoCP": {
number: true,
minlength: 5,
maxlength: 5,
},
"frmContratoPotencia":
{
numericoDecimalesComa: true,
required: function ()
{
return ($("#frmContratoIdProducto").val() * 1 === 1)
}
},
"frmContratoComisionAdministrador": {numericoDecimalesComa: true},
"frmContratoPotencia1": {numericoDecimalesComa: true},
"frmContratoPotencia2": {numericoDecimalesComa: true},
"frmContratoPotencia3": {numericoDecimalesComa: true},
"frmContratoPotencia4": {numericoDecimalesComa: true},
"frmContratoPotencia5": {numericoDecimalesComa: true},
"frmContratoPotencia6": {numericoDecimalesComa: true},
//"frmContratoPrecioKWActual":
//{
// numericoDecimalesComa: true,
//},
//"frmContratoPrecioKWNuevo":
//{
// numericoDecimalesComa: true,
//},
"frmContratoConsumo": {numericoDecimalesComa: true},
"frmContratoConsumo1": {numericoDecimalesComa: true},
"frmContratoConsumo2": {numericoDecimalesComa: true},
"frmContratoConsumo3": {numericoDecimalesComa: true},
"frmContratoConsumo4": {numericoDecimalesComa: true},
"frmContratoConsumo5": {numericoDecimalesComa: true},
"frmContratoConsumo6": {numericoDecimalesComa: true},
"frmContratoCUPS": {CUPS: true},
"frmDualPotencia":
{
numericoDecimalesComa: true,
required: function ()
{
return ($("#frmDualIdProducto").val() * 1 === 1)
}
},
"frmDualConsumo":
{
numericoPuntoSeparadorMiles: true
},
"frmDualCUPS":
{
CUPS: true
},
}
}
});
});
});
};
static muestraOcultaRepresentante()
{
if ($(this).val() * 1 === 1)
{
$(".contieneDatosRepresentante").show();
}
else
{
$(".contieneDatosRepresentante").hide();
}
};
static initClientesDatos(idCliente)
{
$(document).ready(function ()
{
var body = $("body");
let autocompleteBuscarComercial = $("#frmClienteComercial");
autocompleteBuscarComercial.keyup(function ()
{
if ($(this).val() === "")
{
ClassWeb.cargarDatosComercial(undefined, "frmClienteidComercial", "frmClienteComercial");
}
});
autocompleteBuscarComercial.autocomplete({
source: "ajax/Comerciales.buscar.php?CSRF=" + CSRF,
minLength: 3,
response: function (event, ui)
{
$(event.target).removeClass("ui-autocomplete-loading");
},
change: function (event, ui)
{
$(event.target).removeClass("ui-autocomplete-loading");
if (!ui.item)
{
$(event.target).val("").data("item", null).removeClass("selected");
ClassWeb.cargarDatosComercial(undefined, "frmClienteidComercial", "frmClienteComercial");
}
},
select: function (event, ui)
{
$(event.target).data("item", ui.item).addClass("selected");
ClassWeb.cargarDatosComercial(ui.item, "frmClienteidComercial", "frmClienteComercial");
}
});
$("#frmClienteRepresentante").change(ClassWeb.muestraOcultaRepresentante).trigger("change");
body.on("click", ".btnEditarCliente", function (e)
{
window.location = "/contratos/?idCliente=" + $("#frmClienteID").val();
return false;
});
let template = ' ';
var uploader = new plupload.Uploader({
runtimes: 'html5',
browse_button: 'pickfiles', // you can pass in id...
container: document.getElementById('container'), // ... or DOM Element itself
url: "/ajax/ClientesDocumentos.subirFicheros.php?CSRF=" + CSRF + "&idCliente=" + idCliente,
filters: {
max_file_size: '100mb'
},
init: {
PostInit: function ()
{
document.getElementById('filelist').innerHTML = '';
},
FilesAdded: function (up, files)
{
plupload.each(files, function (file)
{
document.getElementById('filelist').innerHTML += '' + file.name + ' (' + plupload.formatSize(file.size) + ')
';
});
uploader.start();
},
UploadProgress: function (up, file)
{
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '' + file.percent + "%";
},
Error: function (up, err)
{
document.getElementById('console').innerHTML += "\nError #" + err.code + ": " + err.message;
},
FileUploaded: function (up, file, object)
{
let response = jQuery.parseJSON(object.response);
if (object.status === 200 && response.OK === 1)
{
$(".datosAdjuntos").append(template.replaceAll("%titulo%", response.info.name).replaceAll("%gcd_idClienteDocumento%", response.info.gcd_idClienteDocumento).replaceAll("%readonly%", "").replaceAll("%deleteVisible%", ""));
}
else
{
if (response.error_number * 1 <= 0)
{
$.notify(
{
title: "Aviso: ",
message: response.error_message,
},
{
type: 'danger',
placement: {
from: "top",
align: "center"
},
delay: 10000
});
}
}
},
UploadComplete: function (up, files)
{
document.getElementById('filelist').innerHTML = '';
document.getElementById('console').innerHTML = '';
$(".tooltipStandard").not(".tooltipstered").tooltipster({
animation: 'grow',
interactive: true,
position: 'bottom'
});
}
}
});
uploader.init();
});
};
static compruebaGasPotencia(contratoDual)
{
const NUM_POTENCIAS = 6;
let potencia = contratoDual === false ? $("#frmContratoPotencia") : $("#frmDualPotencia");
let producto = contratoDual === false ? $("#frmContratoIdProducto") : $("#frmDualIdProducto");
if (producto.is('[readonly]') && !contratoDual)
{
if (producto.val() * 1 === 2)
{
for (let i = 0; i <= NUM_POTENCIAS; i++)
{
const idInput = contratoDual ? "#frmDualPotencia" : "#frmContratoPotencia";
const elementPotencia = i === 0 ? potencia : $(idInput+i);
elementPotencia.val("");
}
}
return;
}
for (let i = 0; i <= NUM_POTENCIAS; i++)
{
const idInput = contratoDual ? "#frmDualPotencia" : "#frmContratoPotencia";
const elementPotencia = i === 0 ? potencia : $(idInput+i);
if (producto.val() * 1 === 2)
{
elementPotencia.prop("readonly", true);
elementPotencia.addClass("readonly");
elementPotencia.data("value", elementPotencia.val());
elementPotencia.val("");
}
else
{
if (i > 0)
{
elementPotencia.prop("readonly", false);
elementPotencia.removeClass("readonly");
}
let value = elementPotencia.data("value");
if (value !== undefined)
{
elementPotencia.val(value);
}
}
}
}
static productoCambiado()
{
ClassWeb.actualizarTarifaOferta(false);
ClassWeb.compruebaGasPotencia(false);
ClassWeb.compruebaGasPotencia(true);
$(".contratoDual").hide();
ClassWeb.actualizaContratoDual();
}
static productoCambiadoDual()
{
ClassWeb.actualizarTarifaOferta(true);
ClassWeb.compruebaGasPotencia(true);
}
static muestraOcultaContratoDual()
{
let contratoDual = $("#frmContratoDual").val() * 1;
let producto = $("#frmContratoIdProducto").val() * 1;
if (contratoDual === 1 && producto > 0)
{
$(".contratoDual").show();
}
else
{
$(".contratoDual").hide();
}
$("#frmDualIdCompania").trigger("change");
}
static actualizaContratoDual()
{
let producto = $("#frmContratoIdProducto");
if (producto.val() * 1 === 1)
{
$("#frmDualIdProducto").val(2);
ClassWeb.muestraOcultaContratoDual();
}
else if (producto.val() * 1 === 2)
{
$("#frmDualIdProducto").val(1);
ClassWeb.muestraOcultaContratoDual();
}
}
static initDatosContratos(esAdmin, idCompania, idProducto, idTarifa, idOferta)
{
let lastComisionCargada = 0;
$(document).ready(function ()
{
$("#frmContratoIdEstado").change(function ()
{
if ($(this).prop("disabled"))
return;
const val = $(this).val();
const frmContratoTramitacion = $("#frmContratoTramitacion");
const frmContratoActivacion = $("#frmContratoActivacion");
if (val == 2)
{
frmContratoTramitacion.prop("readonly", false);
if (frmContratoTramitacion.data("mask") != 1)
{
frmContratoTramitacion.mask("99/99/9999");
frmContratoTramitacion.data("mask", 1);
}
frmContratoActivacion.prop("readonly", true);
}
else if (val == 4)
{
frmContratoActivacion.prop("readonly", false);
if (frmContratoActivacion.data("mask") != 1)
{
frmContratoActivacion.mask("99/99/9999");
frmContratoActivacion.data("mask", 1);
}
frmContratoTramitacion.prop("readonly", true);
}
else
{
frmContratoTramitacion.prop("readonly", true);
frmContratoActivacion.prop("readonly", true);
}
});
$("#frmContratoIdEstado").trigger("change");
$("#frmContratoDual").change(ClassWeb.muestraOcultaContratoDual);
let companiaProducto = $("#frmContratoIdCompania, #frmContratoIdProducto, #frmContratoIdTipoTarifa");
companiaProducto.change(ClassWeb.productoCambiado);
let companiaProductoDual = $("#frmDualIdCompania, #frmDualIdProducto");
companiaProductoDual.change(ClassWeb.productoCambiadoDual);
//ClassWeb.actualizarTarifaOferta();
var body = $("body");
if (esAdmin)
{
let autocompleteBuscarComercial = $("#frmContratoUsuario");
autocompleteBuscarComercial.keyup(function ()
{
if ($(this).val() === "")
{
ClassWeb.cargarDatosComercial(undefined, "frmContratoIdUsuario", "frmContratoUsuario");
}
});
autocompleteBuscarComercial.autocomplete({
source: "ajax/Comerciales.buscar.php?CSRF=" + CSRF,
minLength: 3,
response: function (event, ui)
{
$(event.target).removeClass("ui-autocomplete-loading");
},
change: function (event, ui)
{
$(event.target).removeClass("ui-autocomplete-loading");
if (!ui.item)
{
$(event.target).val("").data("item", null).removeClass("selected");
ClassWeb.cargarDatosComercial(undefined, "frmContratoIdUsuario", "frmContratoUsuario");
calculaComisiones();
}
},
select: function (event, ui)
{
$(event.target).data("item", ui.item).addClass("selected");
ClassWeb.cargarDatosComercial(ui.item, "frmContratoIdUsuario", "frmContratoUsuario");
calculaComisiones();
}
});
}
body.on("click", ".btnEliminarContrato", function (e)
{
var idContrato = $(this).attr("data-id");
ClassBlockUI.abrirBlockUIConfirm("¿Estas seguro de que deseas borrar el contrato?", "Aceptar", function ()
{
Utils.sendStandardAjax(null, "ajax/Contrato.eliminar.php?id=" + idContrato);
}, "Cancelar");
return false;
});
body.on("click", ".btnEditarContrato", function (e)
{
var idContrato = $(this).attr("data-id");
window.location = "/contratos/?id=" + idContrato + "&e=1";
return false;
});
let compania = $("#frmContratoIdCompania");
if (idCompania > 0 && compania.val() * 1 !== idCompania)
{
compania.append("");
compania.val(idCompania);
}
let producto = $("#frmContratoIdProducto");
if (idProducto > 0 && producto.val() * 1 !== idProducto)
{
producto.append("");
producto.val(idProducto);
}
let tarifa = $("#frmContratoIdTarifa");
if (idTarifa > 0 && tarifa.val() * 1 !== idTarifa)
{
tarifa.append("");
tarifa.val(idTarifa);
}
let oferta = $("#frmContratoIdOferta");
if (idOferta > 0 && oferta.val() * 1 !== idOferta)
{
oferta.append("");
oferta.val(idOferta);
}
tarifa.change(cargarComisiones);
oferta.change(cargarComisiones);
$("#frmContratoComisionServicio").keyup(calculaComisiones);
let comisionDown = 0;
$("#frmContratoComisionAdministrador").keydown(function ()
{
comisionDown = $(this).val();
});
$("#frmContratoComisionAdministrador").keyup(function ()
{
const val = $(this).val();
$("#frmContratoComisionAdministrador").val(val.replace(".", ","));
if (comisionDown !== val && val.length > 0)
$("#comisionAdminCambiado").val(1);
else
$("#comisionAdminCambiado").val(0);
//$("#frmContratoComisionAdministrador").val($("#frmContratoComisionAdministrador").val().replace(",", "."));
calculaComisiones();
});
let autocompleteBuscarCP = $("#frmContratoCP");
if (!autocompleteBuscarCP.is('[readonly]'))
{
autocompleteBuscarCP.keyup(function ()
{
if ($(this).val() === "")
{
ClassWeb.cargarPoblacion();
}
});
autocompleteBuscarCP.autocomplete({
source: "ajax/CP.buscar.php?CSRF=" + CSRF,
minLength: 3,
response: function (event, ui)
{
if (!ui.content.length)
{
var noResult = {value: "", label: "No results found"};
ui.content.push(noResult);
$.notify(
{
title: "Error: ",
message: "No se ha podido buscar el CP indicado, por favor asegurese de que escribe un codigo postal correcto y dispone de conexion a internet.",
},
{
type: 'danger',
placement: {
from: "top",
align: "center"
},
delay: 10000
});
}
$(event.target).removeClass("ui-autocomplete-loading");
},
change: function (event, ui)
{
$(event.target).removeClass("ui-autocomplete-loading");
if (!ui.item)
{
$(event.target).val("").data("item", null).removeClass("selected");
ClassWeb.cargarPoblacion();
}
},
select: function (event, ui)
{
$(event.target).data("item", ui.item).addClass("selected");
ClassWeb.cargarPoblacion(ui.item);
},
open: function (event, ui)
{
if ($(".ui-menu-item").length == 1)
{
$(".ui-menu-item:eq(0)").trigger("click");
return false;
}
},
focus: function ()
{
return false;
}
});
autocompleteBuscarCP.on('autocompleteselect', function (e, ui)
{
var cp_input = $(this),
poblacion_input = $('#frmContratoPoblacion'),
provincia_input = $('#frmContratoProvincia'),
cp = (e.type == 'autocompleteresponse' ? ui.content[0].cp : ui.item.cp),
poblacion = (e.type == 'autocompleteresponse' ? ui.content[0].poblacion : ui.item.poblacion),
provincia = (e.type == 'autocompleteresponse' ? ui.content[0].provincia : ui.item.provincia);
cp_input.val(cp);
poblacion_input.val(poblacion);
provincia_input.val(provincia);
return false;
});
autocompleteBuscarCP.click(function ()
{
autocompleteBuscarCP.autocomplete("search", autocompleteBuscarCP.val());
});
}
const elementsPotenciaConsumo = $(".input-potencia, .input-consumo");
elementsPotenciaConsumo.keyup(function ()
{
//$(this).val($(this).val().replace(".", ","));
let elements;
if ($(this).hasClass("input-potencia"))
elements = $(".input-potencia");
else
elements = $(".input-consumo");
let total = 0;
elements.each(function (i, e)
{
total += $(e).val().replace(",", ".") * 1 || 0;
});
if ($(this).hasClass("input-potencia"))
{
$("#frmContratoPotencia").val(Utils.number_format(total, {
decimalSeparator: ",",
thousandSeparator: "",
}));
}
else
{
$("#frmContratoConsumo").val(Utils.number_format(total, {
decimalSeparator: ",",
thousandSeparator: "",
}));
cargarComisiones();
}
//$(this).val($(this).val().replace(",", ".") * 1 || "");
});
//
//let precioKWActual = $("#frmContratoPrecioKWActual");
//precioKWActual.keyup(function () {
// $(this).val($(this).val().replace(".", ","));
//});
//
//let precioKWNuevo = $("#frmContratoPrecioKWNuevo");
//precioKWNuevo.keyup(function () {
// $(this).val($(this).val().replace(".", ","));
//});
ClassWeb.compruebaGasPotencia(false);
ClassWeb.compruebaGasPotencia(true);
});
let timeOutCargar;
function cargarComisiones()
{
const consumo = $("#frmContratoConsumo").val().replace(",", ".")*1 || 0;
const idOferta = $("#frmContratoIdOferta").val();
const idTarifa = $("#frmContratoIdTarifa").val();
if (!idOferta || !idTarifa || consumo === 0)
return;
clearTimeout(timeOutCargar);
timeOutCargar = setTimeout(function ()
{
let successCallback = function (data, textStatus, XMLHttpRequest)
{
$(".modalAutoHide").modal("hide");
if (data["error_number"] >= 0)
{
lastComisionCargada = data["comision"];
calculaComisiones();
}
};
Utils.sendStandardAjax(null, "https://gestion.fotonasesoreshellin.com/ajax/ContratosComisiones.cargar.php?CSRF=" + CSRF + "&idOferta=" + idOferta+"&idTarifa=" + idTarifa+"&consumo="+consumo, {
successCallback: successCallback,
esperePorFavor: false,
});
}, 300);
}
function calculaComisiones()
{
const comisionAdminCambiado = $("#comisionAdminCambiado").val()*1 || 0;
const comisionServicio = $("#frmContratoComisionServicio").val().replace(",", ".")*1 || 0;
const porcentajeComercial = $("#porcentajeComisionComercial").val()*1 || 0;
const elementComisionAdmin = $("#frmContratoComisionAdministrador");
let comisionAdmin = elementComisionAdmin.val().replace(",", ".")*1 || 0;
if (comisionAdminCambiado === 0)
{
comisionAdmin = lastComisionCargada + comisionServicio;
elementComisionAdmin.val(Utils.number_format((Math.round((comisionAdmin + Number.EPSILON) * 100) / 100), {
decimalSeparator: ",",
thousandSeparator: ""
}));
}
let comisionComercial = comisionAdmin > 0 ? porcentajeComercial * comisionAdmin / 100 : 0;
$("#frmContratoComision").val(Utils.number_format((Math.round((comisionComercial + Number.EPSILON) * 100) / 100), {
decimalSeparator: ",",
thousandSeparator: ""
}));
}
};
static cargarPoblacion(item)
{
$("#frmContratoIdPoblacion").val(item === undefined ? "" : item["id"]);
}
static initGestionUsuario()
{
var body = $("body");
body.on("click", ".btnGuardarGestionUsuario", function (e)
{
var opciones = {
"opcionesValidacion":
{
showLabels: false,
rules:
{
"frmUsuariosRepiteContrasena":
{
"equalTo": "#frmUsuariosContrasena"
}
}
},
};
Utils.sendStandardAjax("frmUsuarios", "ajax/Usuarios.editar.php", opciones);
return false;
});
body.on("change", "input[name='frmProductosTipoUsuario']", ClassWeb.preparaTipoUsuario);
ClassWeb.preparaTipoUsuario();
};
static preparaTipoUsuario()
{
switch ($("input[name='frmProductosTipoUsuario']:checked").val() * 1)
{
case 1:
{
$(".fg-comision").addClass("d-none");
$("#frmProductosIdPadreAdministrador").attr("disabled", true);
$("#frmProductosIdPadreGerente").attr("disabled", true);
break;
}
default:
case 3:
{
$(".fg-comision").removeClass("d-none");
$("#frmProductosIdPadreAdministrador").attr("disabled", true);
$("#frmProductosIdPadreGerente").attr("disabled", false);
break;
}
case 2:
{
$(".fg-comision").removeClass("d-none");
$("#frmProductosIdPadreAdministrador").attr("disabled", false);
$("#frmProductosIdPadreGerente").attr("disabled", true);
break;
}
}
}
static initEquipo()
{
$(document).ready(function ()
{
var body = $("body");
body.on("click", ".btnEditarUsuario", function (e)
{
let idUsuario = $(this).attr("data-idUsuario");
let esperePorFavor = Utils.sendStandardAjax(null, "ajax/Usuarios.datos.php?idUsuario=" + idUsuario, {
"successCallback": function (data, textStatus, XMLHttpRequest)
{
if (data["error_number"] >= 0)
{
esperePorFavor.modal("hide");
ClassWeb.abrirEditarUsuario(idUsuario);
/*
objetivo*/
$("#frmUsuariosNombre").val(data["datos"]["nombre"]);
$("#frmUsuariosTelefono").val(data["datos"]["telefono"]);
$("#frmUsuariosComision").val(data["datos"]["porcentajeComision"]);
$("#frmUsuariosEmail").val(data["datos"]["email"]);
$("#frmProductosTipoUsuario").val(data["datos"]["idRol"]);
$("input[name^='frmUsuariosLiquidacion']").val("");
$.each(data["extraLiquidaciones"], function (i, e)
{
$("#frmUsuariosLiquidacion_"+(i + 1)+"_nombre").val(e.concepto);
$("#frmUsuariosLiquidacion_"+(i + 1)+"_cantidad").val(e.cantidad);
$("#frmUsuariosLiquidacion_"+(i + 1)+"_quincena").val(e.quincena);
});
ClassWeb.setIdRol(data["datos"]["idRol"] * 1, data["datos"]["idSuperior"]);
}
else
{
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined, "");
}
}
})
return false;
});
body.on("click", ".btnBloquearDesbloquear", function (e)
{
let idUsuario = $(this).attr("data-idUsuario");
let estado = $(this).attr("data-estado") * 1;
let bloqueado = estado === 0 ? 1 : 0;
let esperePorFavor = Utils.sendStandardAjax(null, "ajax/Usuarios.bloquearDesbloquear.php?idUsuario=" + idUsuario + "&bloqueado=" + bloqueado, {
"successCallback": function (data, textStatus, XMLHttpRequest)
{
if (data["error_number"] >= 0)
{
esperePorFavor.modal("hide");
tablatablaEquipo.ajax.reload();
}
else
{
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined, "");
}
}
})
return false;
});
body.on("click", ".btnAnadirUsuario", function (e)
{
ClassWeb.abrirEditarUsuario(0);
$("#frmUsuarios")[0].reset();
ClassWeb.setIdRol(1);
$(".soloExistentes").hide();
$("#frmUsuariosContrasena, #frmUsuariosRepiteContrasena").addClass("required");
return false;
});
$(".barra_busqueda_global").html("");
$(".barra_busqueda_global").append($(".dataTables_filter input").detach());
});
};
static setIdRol(idRol, idSuperior)
{
switch (idRol)
{
case 1:
{
$("#frmProductosTipoUsuarioAdministrador").prop("checked", true).trigger('change');
break;
}
case 2:
{
$("input[name='frmProductosTipoUsuario'][value=" + 2 + "]").attr("checked", "checked");
$("#frmProductosIdPadreAdministrador").val(idSuperior);
$("#frmProductosTipoUsuarioGerente").prop("checked", true).trigger('change');
break;
}
default:
case 3:
{
$("input[name='frmProductosTipoUsuario'][value=" + 3 + "]").attr("checked", "checked");
$("#frmProductosIdPadreGerente").val(idSuperior);
$("#frmProductosTipoUsuarioComercial").prop("checked", true).trigger('change');
break;
}
}
};
static abrirEditarUsuario(idUsuario)
{
$("#frmUsuariosID").val(idUsuario);
$(".soloExistentes").show();
$("#frmUsuariosContrasena, #frmUsuariosRepiteContrasena").removeClass("required");
ClassBlockUI.abrirBlockUIEstandar("modalUsuarios", undefined, "Gestión de Usuarios", "modal670");
};
static requierePasswordActualNuevo()
{
return $("#frmUsuarioPassActual").val() !== "" || $("#frmUsuarioPassNueva").val() !== "" || $("#frmUsuarioPassRepite").val() !== "";
}
static initMisDatos()
{
$(document).ready(function ()
{
var body = $("body");
body.on("click", ".btnGuardarMisDatos", function (e)
{
let esperePorFavor = Utils.sendStandardAjax("frmUsuario", "ajax/Usuarios.actualizar.php", {
"opcionesValidacion": {
showLabels: false,
rules:
{
"frmUsuarioPassActual":
{
required: ClassWeb.requierePasswordActualNuevo
},
"frmUsuarioPassNueva":
{
required: ClassWeb.requierePasswordActualNuevo
},
"frmUsuarioPassRepite":
{
required: ClassWeb.requierePasswordActualNuevo,
"equalTo": "#frmUsuarioPassNueva"
}
}
},
"successCallback": function (data, textStatus, XMLHttpRequest)
{
if (data["error_number"] * 1 >= 0)
{
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined, "");
}
else
{
var errorMessage = "
";
var lastError = "";
for (var i in data["info"])
{
if (typeof (data["info"][i]) == "function")
continue;
errorMessage += data["info"][i] + "
\r\n";
lastError = i;
}
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"] + errorMessage, true, undefined);
}
}
})
return false;
});
});
};
static initObjetivos()
{
$(document).ready(function ()
{
var body = $("body");
body.on("click", ".btnGuardarMisObjetivos", function (e)
{
let esperePorFavor = Utils.sendStandardAjax("frmObjetivos", "ajax/Usuarios.objetivos.php", {
"successCallback": function (data, textStatus, XMLHttpRequest)
{
if (data["error_number"] * 1 >= 0)
{
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined, "");
}
else
{
var errorMessage = "
";
var lastError = "";
for (var i in data["info"])
{
if (typeof (data["info"][i]) == "function")
continue;
errorMessage += data["info"][i] + "
\r\n";
lastError = i;
}
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"] + errorMessage, true, undefined);
}
}
})
return false;
});
});
};
static refrescaTabla(idTabla, indexTablaMovil)
{
$(".tooltipStandard").not(".tooltipstered").tooltipster({
animation: 'grow',
interactive: true,
position: 'bottom',
contentAsHTML: true
});
$(".inputIconLupa, .inputMostrar").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;
}
//if (numItems > $("#"+idTabla+"_length select").val()) {
// $("#"+idTabla+"_wrapper .pagination-footer").removeClass("opacity-0");
//} else {
// $("#"+idTabla+"_wrapper .pagination-footer").addClass("opacity-0");
//}
//Formato movil
const numColumnaMv = indexTablaMovil !== undefined ? indexTablaMovil : 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));
}
}
else //Mostrar
{
for (let i = 0; i < numColumnas; i++)
{
let txt = $(tabla.columns(i).header()).text();
let noVis = $(tabla.columns(i).header()).hasClass("forceNoVis");
tabla.column(i).visible((!(txt === "oculto" || numColumnaMv === i || noVis)));
}
}
}
};
static filtrarFechaContratos()
{
ClassWeb.modalFiltrarFechas = ClassBlockUI.abrirBlockUIEstandar("modalFiltrarFecha", undefined, "Filtrar Fechas", "");
};
static borrarAvanzadosContratos()
{
$(".select2").val("").trigger("change");
$("#frmFechaDesde").val("");
$("#frmFechaHasta").val("");
};
static activarFiltrosAvanzadosContratos(idTabla)
{
if (ClassWeb.filtrosContratosActivados === 1)
{
return;
}
$(".btnActivarFiltros").addClass("d-none");
$(".btnBorrarFiltros").removeClass("d-none");
ClassWeb.filtrosContratosActivados = 1;
let count = 0;
//$(".select2").remove();
$("#" + idTabla).dataTable().api().columns().every(function (columnIndex)
{
let columnName = this.settings()[0].aoColumns[columnIndex]["name"];
let columnTitle = this.settings()[0].aoColumns[columnIndex]["titulo"];
var column = this;
if (!columnName || columnName === "ignorar" || columnName === "oculto" || !column.visible())
{
return;
}
var title = columnTitle.replace(/[\W]/g, '-');
var select = $('')
.appendTo($(column.header()))
.on('change', function ()
{
//Get the "text" property from each selected data
//regex escape the value and store in array
var data = $.map($(this).select2('data'), function (value, key)
{
return value.id ? '' + $.fn.dataTable.util.escapeRegex(value.id) + '' : null;
});
//if no data selected use ""
if (data.length === 0)
{
data = [""];
}
//join array into string with regex or (|)
var val = data.join('||');
//search for the option(s) selected
column
.search(val ? val : '')
.draw();
});
//column.data().unique().sort().each( function ( d, j ) {
// select.append( '' );
//} );
//use column title as selector and placeholder
$('#' + columnName).select2({
multiple: true,
closeOnSelect: false,
placeholder: columnTitle,
ajax: {
url: 'ajax/Contratos.datosColumna.php?CSRF=' + CSRF + '&idColumna=' + columnName + "&idTabla=" + idTabla,
dataType: 'json',
// Additional AJAX parameters go here; see the end of this chapter for the full code of this example
processResults: function (data)
{
// Transforms the top-level key of the response object from 'items' to 'results'
return {
results: data.items
};
}
}
});
});
//initially clear select otherwise first option is selected
//$('.select2').val(null).trigger('change');
};
static borrarAvanzadosEquipo()
{
$(".select2").val("").trigger("change");
};
static activarFiltrosAvanzadosEquipo(idTabla)
{
if (ClassWeb.filtrosContratosActivados === 1)
{
return;
}
$(".btnActivarFiltros").addClass("d-none");
$(".btnBorrarFiltros").removeClass("d-none");
ClassWeb.filtrosContratosActivados = 1;
let count = 0;
//$(".select2").remove();
$("#" + idTabla).dataTable().api().columns().every(function (columnIndex)
{
let columnName = this.settings()[0].aoColumns[columnIndex]["name"];
let columnTitle = this.settings()[0].aoColumns[columnIndex]["titulo"];
var column = this;
if (!columnName || columnName === "ignorar" || columnName === "oculto" || !column.visible())
{
return;
}
var title = columnTitle.replace(/[\W]/g, '-');
var select = $('')
.appendTo($(column.header()))
.on('change', function ()
{
//Get the "text" property from each selected data
//regex escape the value and store in array
var data = $.map($(this).select2('data'), function (value, key)
{
return value.id ? '' + $.fn.dataTable.util.escapeRegex(value.id) + '' : null;
});
//if no data selected use ""
if (data.length === 0)
{
data = [""];
}
//join array into string with regex or (|)
var val = data.join('||');
//search for the option(s) selected
column
.search(val ? val : '')
.draw();
});
//column.data().unique().sort().each( function ( d, j ) {
// select.append( '' );
//} );
//use column title as selector and placeholder
$('#' + columnName).select2({
multiple: true,
closeOnSelect: false,
placeholder: columnTitle,
ajax: {
url: 'ajax/Equipo.datosColumna.php?CSRF=' + CSRF + '&idColumna=' + columnName + "&idTabla=" + idTabla,
dataType: 'json',
// Additional AJAX parameters go here; see the end of this chapter for the full code of this example
processResults: function (data)
{
// Transforms the top-level key of the response object from 'items' to 'results'
return {
results: data.items
};
}
}
});
});
//initially clear select otherwise first option is selected
//$('.select2').val(null).trigger('change');
};
static initVerContrato(idCliente)
{
let body = $("body");
body.on("click", ".btnAñadirContratos", function (e)
{
window.location = "/contratos/?idCliente=" + idCliente + "&c=1";
});
};
static initAgenda()
{
$(document).ready(function ()
{
ClassWeb.resourceData = [];
ClassWeb.visibleResourceIds = [];
$("#frm-filtro-calendar .btnCerrar, .btnAbrirComerciales").click(function ()
{
$("#frm-filtro-calendar").toggleClass("open");
});
$(".item-usuario-filtro input").each(function ()
{
ClassWeb.resourceData.push({
id: $(this).attr("data-id"),
title: $(this).attr("data-usuario"),
"eventClassNames": $(this).attr("data-color") + " active showOnAgenda"
});
ClassWeb.visibleResourceIds.push($(this).attr("data-id"));
$(this).change(function ()
{
$(this).toggleClass("active");
toggleResource($(this).attr("data-id"));
});
});
ClassWeb.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 (e)
{
ClassBlockUI.abrirBlockUIEstandarMensaje("Se ha producido un error al cargar la agenda", 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 (ClassWeb.resourceData)
{
filteredResources = ClassWeb.resourceData.filter(function (x)
{
return ClassWeb.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)
{
ClassWeb.lastDateSelected = moment(info.dateStr);
$("#btn-anadir").attr("href", $("#btn-anadir").attr("data-url") + "?fecha=" + ClassWeb.lastDateSelected.format("DD/MM/YYYY"));
},
//eventMouseEnter
eventClick: function (info)
{
ClassWeb.calendarEventClick(info);
},
height: "100%"
});
ClassWeb.fullCalendar.render();
function toggleResource(resourceId)
{
var index = ClassWeb.visibleResourceIds.indexOf(resourceId);
if (index !== -1)
{
ClassWeb.visibleResourceIds.splice(index, 1);
}
else
{
ClassWeb.visibleResourceIds.push(resourceId);
}
ClassWeb.fullCalendar.refetchResources();
}
});
}
static initCita(idUsuario, currentDate)
{
currentDate = new Date(currentDate);
var spanishCalendar = {
days: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
daysShort: ['Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab'],
daysMin: ['D', 'L', 'M', 'X', 'J', 'V', 'S'],
months: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
monthsShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
today: 'Hoy',
clear: 'Limpiar',
dateFormat: 'dd/MM/yyyy',
timeFormat: 'hh:mm aa',
firstDay: 1
};
ClassWeb.datapicker = null;
$(document).ready(function ()
{
$("#cita-inicio").mask("99:99");
const elementUsuarioSeleccionado = $("#cita-comerciales input:checked")[0];
if (elementUsuarioSeleccionado)
{
elementUsuarioSeleccionado.setAttribute('tabindex', '-1');
elementUsuarioSeleccionado.focus();
elementUsuarioSeleccionado.removeAttribute('tabindex');
}
ClassWeb.datapicker = new AirDatepicker('#cita-calendario', {
locale: spanishCalendar,
inline: true,
selectedDates: [currentDate],
minDate: new Date(1766315886 * 1000),
maxDate: new Date(1776766686 * 1000),
onSelect({date, formattedDate, datepicker})
{
if (date !== undefined)
{
const fecha = new Date(date);
const opciones = {weekday: 'long', year: 'numeric', month: 'long', day: 'numeric'};
const fechaFormateada = fecha.toLocaleDateString('es-ES', opciones);
$("#barra-resumen-cita-dia").html(capitalizeFirstLetter(fechaFormateada.split(', ')[0]) + ', ' + fechaFormateada.split(' ')[1] + ' de ' + capitalizeFirstLetter(fechaFormateada.split(' ')[3]));
$("#cita-fecha").val(formattedDate);
fecha.setHours(10); ClassWeb.fullCalendar.gotoDate(fecha);
}
}
})
initCalendar();
initGuardarCita();
$("#cita-comerciales input").change(function ()
{
const nombre = $(this).parent().find(".form-checkbox-text").html();
$("#barra-resumen-cita-comercial").html(nombre);
ClassWeb.fullCalendar.refetchEvents();
});
});
function initGuardarCita()
{
$(".btnGuardarCita").click(function ()
{
Utils.sendStandardAjax("frm-cita", "https://gestion.fotonasesoreshellin.com/ajax/Cita.guardar.php?CSRF=" + CSRF, {
successCallback: "https://gestion.fotonasesoreshellin.com/agenda/",
});
});
}
function initCalendar()
{
ClassWeb.fullCalendar = new FullCalendar.Calendar($("#calendar")[0], {
//timeZone: "America/New_York",
timeZone: "Europe/Madrid",
schedulerLicenseKey: "0221401364-fcs-1627045855",
headerToolbar:
{
left: '',
center: '',
right: '',
},
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: currentDate.toISOString(),
initialView: 'timeGridDay',
nowIndicator: true,
eventSources:
{
url: "ajax/Usuarios.agenda.php",
method: 'POST',
extraParams: function ()
{ // a function that returns an object
return {
"CSRF": CSRF,
"idComercial": $("#cita-comerciales input:checked").val() || idUsuario,
};
},
failure: function ()
{
ClassBlockUI.abrirBlockUIEstandarMensaje("Se ha producido un error al cargar la agenda", 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 (ClassWeb.resourceData) {
filteredResources = ClassWeb.resourceData.filter(function (x) {
return ClassWeb.visibleResourceIds.indexOf(x.id) !== -1;
});
}
successCallback(filteredResources);
},*/
editable: false,
selectable: true,
loading: function (bool)
{
if (bool)
{
$(".loadingText").remove();
}
},
slotMinTime: '07:00',
slotMaxTime: '22:00',
businessHours: {
daysOfWeek: [1, 2, 3, 4, 5, 6, 0],
startTime: '07:00',
endTime: '22:00',
},
selectConstraint: null,
eventConstraint: "businessHours",
eventOrder: 'numOrder,start',
dateClick: function (info)
{
const fecha = new Date(info.dateStr);
//if($("#cita-inicio").val() == "")
{
$("#cita-inicio").val(fecha.getHours() + ":" + (fecha.getMinutes() < 10 ? '0' : '') + fecha.getMinutes())
}
},
//eventMouseEnter
eventClick: function (info)
{
ClassWeb.calendarEventClick(info);
},
height: "100%"
});
ClassWeb.fullCalendar.render();
}
function capitalizeFirstLetter(string)
{
return string[0].toUpperCase() + string.slice(1);
}
}
static calendarEventClick(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")
.replaceAll("%0%", !event.extendedProps.esEditable ? "d-none" : "")
//.replace("%1%", ""+event.extendedProps.usuario+"
"+event.extendedProps.descripcion)
.replace("%1%", event.extendedProps.usuario)
.replace("%2%", event.extendedProps.fecha)
.replace("%3%", event.extendedProps.cliente)
.replace("%5%", event.extendedProps.telefono)
.replace("%4%", "https://gestion.fotonasesoreshellin.com/editar-cita/?cita=" + event.extendedProps.idEvento)
.replace("%6%", 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).find(".btnCalendarEliminar").unbind("click").bind("click", function ()
{
const id = $(this).attr("data-id");
ClassBlockUI.abrirBlockUIConfirm("Va a eliminar una cita, ¿Desea continuar?", "Aceptar", function ()
{
eliminarCita(id);
}, "Cancelar");
});
$(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");
function eliminarCita(id)
{
let successCallback = function (data, textStatus, XMLHttpRequest)
{
if (data["error_number"] >= 0)
{
$(".modal").modal("hide");
ClassWeb.fullCalendar.refetchEvents();
}
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true);
};
Utils.sendStandardAjax(null, "https://gestion.fotonasesoreshellin.com/ajax/Cita.eliminar.php?CSRF=" + CSRF + "&id=" + id, {
successCallback: successCallback,
});
}
}
static initLiquidaciones(urlAjax)
{
$(document).ready(function ()
{
$("#fInicio, #fFin").mask("99/99/9999");
var body = $("body");
$(".barra_busqueda_global").html("");
$(".barra_busqueda_global").append($(".dataTables_filter input").detach());
body.on("change", ".btn-marcar-cobrada input", function (e)
{
const id = $(this).attr("data-id")*1;
let successCallback = function (data, textStatus, XMLHttpRequest)
{
if (data["error_number"] >= 0)
{
$(".modal").modal("hide");
tablatablaLiquidacionesContratos.ajax.reload();
}
if (data["error_message"])
ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true);
};
Utils.sendStandardAjax(null, "https://gestion.fotonasesoreshellin.com/ajax/LiquidacionContrato.marcarComisionPagada.php?CSRF=" + CSRF + "&id=" + id, {
successCallback: successCallback,
});
});
body.on("click", ".btnExportarLiquidaciones", function (e)
{
const item = $("#usuario").data("item");
const usuario = item ? item.id : "";
const fInicio = $("#fInicio").val();
const fFin = $("#fFin").val();
let extraUrl = "";
if (fInicio.replaceAll("_", "").length === 10)
extraUrl += "&fInicio=" + fInicio;
if (fFin.replaceAll("_", "").length === 10)
extraUrl += "&fFin=" + fFin;
window.location = "/exportarDatos.php?t=gl_&usuario=" + usuario + extraUrl;
return false;
});
let toFecha;
body.on("keyup", "#fInicio, #fFin", function ()
{
clearTimeout(toFecha);
toFecha = setTimeout(
actualizaTabla,
800
)
});
let autocompleteBuscarComercial = $("#usuario");
autocompleteBuscarComercial.keyup(function ()
{
if ($(this).val() === "") {
autocompleteBuscarComercial.data("item", null);
actualizaTabla();
}
});
autocompleteBuscarComercial.autocomplete({
source: "ajax/Comerciales.buscar.php?CSRF=" + CSRF,
minLength: 3,
response: function (event, ui)
{
$(event.target).removeClass("ui-autocomplete-loading");
},
change: function (event, ui)
{
$(event.target).removeClass("ui-autocomplete-loading");
if (!ui.item)
{
$(event.target).val("").data("item", null).removeClass("selected");
actualizaTabla();
}
},
select: function (event, ui)
{
$(event.target).data("item", ui.item).addClass("selected");
actualizaTabla();
}
});
});
function actualizaTabla()
{
const item = $("#usuario").data("item");
const usuario = item ? item.id : "";
const fInicio = $("#fInicio").val();
const fFin = $("#fFin").val();
let extraUrl = "";
if (fInicio.replaceAll("_", "").length === 10)
extraUrl += "&fInicio=" + fInicio;
if (fFin.replaceAll("_", "").length === 10)
extraUrl += "&fFin=" + fFin;
tablatablaLiquidaciones.ajax.url(urlAjax+"&usuario="+usuario+extraUrl).load();
}
}
}