var oHomeMenu = oHomeMenu || {};
/**
* @param prm
* Object que puede ser una función callback o prm.fnCallback, se
* acepta cualquiera de las dos
*/
oHomeMenu.fnSelProductor = function (prm) {
if (oGlobal.menuQNect) {
MessageAlert.messagePopupFunctionCall('Menú QNect', 'No se ha seleccionado Productor.'
+ ' Se enviará a la página principal.', function () {
// Limpia el productor en la sesión
oGen.fnAbandonaTransaccion({
toUrl : 'ovError',
confirmacion: false
});
}, 100, 20);
return;
}
// No es la pagina del HOME
if (window.location.pathname.lastIndexOf('do/vm/ovQbe_home') < 0) {
if (!oGlobal.productor.NOMBRE != "") {
// Se enviár al HOME
oGen.fnBloqueoUnicoHide();
MessageAlert.messagePopupFunctionCall('Trabajar Como', 'No se ha seleccionado Productor.
\n'
+ 'Se enviará a la página principal.', function () {
// Limpia el productor en la sesión
oGen.fnAbandonaTransaccion({
toUrl : 'ovError',
confirmacion: false
});
});
return;
}
// NO está en el menú, una vez que cambie de Productor se debe enviar al
// home
MessageAlert.confirmation('Trabajar Como', //
'Si cambia de Productor regresará a la Página Inicial de la Oficina Virtual Individuos.
\n'
+ '¿Desea cambiar el Productor?', function () {
// Limpia el productor en la sesión
oGen.fnSetSession({
key: 'productor',
value: 'null',
fnCallback: function () {
// Enviá al home
oGen.fnAbandonaTransaccion({
toUrl : 'ovError',
confirmacion: false
});
}
}, null, null, null, 0, 30);
});
return;
}
// estamos en el HOME
oGen.fnGetStore({
titulo: ' ',
params: {
prm_dataSource: 'ovQbe',
prm_funcion: 'ovMqUsuario.getRolesAdministrativos',
prm_usuario: oGlobal.QNect.aisUserCode || oGlobal.cUsuario
},
fnCallback: function (oResp) {
if (!oResp.success || !oResp.records || oResp.records.length == 0) {
MessageAlert.confirmation('Sistema de Seguridad', 'No ha sido posible obtener '//
+ 'su perfil de usuario y roles.
\n' //
+ '¿Desea insistir?', function () {
// Hace lo mismo que F5
location.reload();
}, null, 'Salir', function () {
oGen.fnLogout();
}, null, null, null, 0, 30);
return;
}
// Con los datos obtenidos del servicio se carga la siguiente
// consulta
var bCancelable = (oGlobal.productor.NOMBRE != "");
oConsulta.show({
titulo: 'Trabajar Como',
consulta: 'OV_ROLES_ADMIN',
cancelable: bCancelable,
data: oResp.records,
fnCallback: function (row) {
oGlobal.productor = row;
oGen.fnSetProductor();
// Set productor en las variables de sesión
oGen.fnSetSession({
values: [{
key: 'productor',
value: JSON.stringify(row)
}, {
key: 'clientSec',
value: row.CLIENSEC
}, {
key: 'clientLevel',
value: row.NIVEL
}]
});
if (prm) {
if (typeof prm == 'function')
prm();
else if (typeof prm.fnCallback == 'function')
prm.fnCallback();
}
}
});
}
});
};
/**
*
* Si existe la componente con el id DIALOG-POPUP, se muestra después de
* verificar todo lo demás, solo si está en la opción de MENU
*
*/
oHomeMenu.fnShowPopupInicio = function () {
// Sale si no es la opción de menú
if ((window.location.pathname.lastIndexOf('do/vm/ovQbe_home') < 0)
&& (window.location.pathname.lastIndexOf('do/vm/andresHome') < 0)) {
// console.log('No está ovQbe_home');
return true;
}
var div = $('#DIALOG-POPUP-MENU');
// No hay menú
if (div.length == 0) {
// console.log('No está el dialogo DIALOG-POPUP');
return true;
}
div.modal('show');
};
oHomeMenu.fnLeeCanal = function () {
console.log(' ov.paOVSqlGenAPI.p_parov_canales->prm_instacod :', oGlobal.ais.BANCOCOD);
// Carga canales en la oGlobal
oGen.fnGetStore({
titulo: 'Lee Canales de Venta',
params: {
prm_dataSource: 'ovQbe',
prm_funcion: 'ov.paOVSqlGenAPI.p_parov_canales',
prm_instacod: oGlobal.ais.BANCOCOD
},
fnCallback: function (data) {
// Carga los productos una vez que tiene los canales definidos
if (data.records.length == 0) {
//
oGlobal.ais.GRUPOHSBC = "N";
oGlobal.canales = {
CANALHSBC: "N"
};
} else {
oGlobal.canales = data.records[0];
console.log(' ov.paOVSqlGenAPI.p_parov_canales->oGlobal.canales :', oGlobal.canales);
}
}
});
};
oHomeMenu.setUserProfile = function () {
/*
* Consulta el perfil de usuario para establecer los permisos al menú.
* Además trae el tipo de usuario o NIVEL.
*/
// Si no es producción y href es void(0), poner el click también
if (oGlobal.ambiente == 'PROD') {
// Deshabilita las opciones de menú en Producción
$('.enConstruccion').on('click', function (e) {
var hRef = $(e.target);
MessageAlert.messagePopup('Oficina Virtual Individuos', 'La opción:
' //
+ '' + hRef.html() + '
' + 'aún no está disponible.');
});
$('.enConstruccion').attr('href', '#');
}
// Si no estamos en el menú de QNECT se muestran todos los div o secciones
// que tengan la clase qbeNoQNect
if (!oGlobal.menuQNect)
$('.qbeNoQNect').attr('style', 'display:inherit;');
/*
* Denuncia Hogar no se usa desde OV, y no debe llamar a
* paConsultaMqGestion.perfilUsuario
*/
if (window.location.pathname.lastIndexOf('do/vm/ovQbe_denunciaHogar') >= 0)
return;
oGen.fnGetStore({
titulo: ' ',
params: {
prm_dataSource: 'ovQbe',
prm_funcion: 'paConsultaMqGestion.perfilUsuario',
prm_usuario: oGlobal.QNect.aisUserCode || oGlobal.cUsuario
},
fnCallback: function (oResp) {
if (!oResp.success) {
//oGen.fnBloqueaHide();
if (oGlobal.menuQNect) {
if(oGlobal.isOneEnv()){
oGen.fnAbandonaTransaccion({
confirmation: false,
toUrl: 'ovError'
});
} else {
MessageAlert.messagePopupFunctionCall('Perfil de Usuario',
'No se pudo cargar su Perfil de Usuario.
\n' //
+ 'Se redireccionará a la página de Conexión.');
}
} else {
// Se envia al HOME
oGen.fnSalir({
titulo: 'Perfil de Usuario',
mensaje: 'No se pudo cargar su Perfil de Usuario.
\n' //
+ 'Se redireccionará a la página de Conexión.'
});
}
return;
}
$.each(oResp.ACCESO, function (idx, value) {
$('#ovMenu_' + value.MMENU).show();
});
console.log(" ovQbe_homeMenuJS.js -> oGlobal.ais", oGlobal.ais.BANCONOM);
oGlobal.ais = oGlobal.ais || {};
var data = oResp.records[0];
oGlobal.ais.USER_NIVEL = data.USER_NIVEL;
oGlobal.ais.BANCOCOD = data.BANCOCOD;
oGlobal.ais.BANCONOM = data.BANCONOM;
oGlobal.ais.CLIENTIP = data.CLIENTIP;
oGlobal.ais.GRUPOHSBC = data.GRUPOHSBC;
oGlobal.ais.EXTERNALUSERFLAG = (data.CLIENTIP === "I" ? "false" : "true");
oGlobal.ais.TIPOUSUARIO = (data.CLIENTIP == "I" ? "I" : "E");
console.log('CANAL LOGIN', oGlobal.ais, oGlobal.ais.GRUPOHSBC);
oHomeMenu.fnLeeCanal();
oGen.fnSetSession({
values: [{
key: 'USER_NIVEL',
value: data.USER_NIVEL
}, {
key: 'BANCOCOD',
value: data.BANCOCOD
}, {
key: 'BANCONOM',
value: data.BANCONOM
}, {
key: 'CLIENTIP',
value: data.CLIENTIP
}, {
key: 'GRUPOHSBC',
value: data.GRUPOHSBC
}, {
key : 'EXTERNALUSERFLAG',
value : oGlobal.ais.EXTERNALUSERFLAG
}, {
key : 'TIPOUSUARIO',
value : oGlobal.ais.TIPOUSUARIO
}],
fnCallback: function (oResp) {
// Una vez que estas variables están en la sesión
oGlobal.cNombre = data.USUARNOM;
$('#homeMenu_cNombreID').html(data.USUARNOM);
// Consulta los roles permitidos del usuario Administrativo
if (oGlobal.ais.USER_NIVEL == 'A') {
// Menu superior, activa Productor
$.each($('.qbeHeaderSection').find('.ovMenu_productor'), function (idx, item) {
$(item).show();
});
// Inicializa el CLICK del menú
$('a[class=ovMenu_productor]').on('click', function (event) {
oHomeMenu.fnSelProductor();
});
}
/*
* Verifica si es ROL ADMINISTRATIVO. Esto podría haber sido
* definido ya en QNECT.
*/
if (oGlobal.QNect.aisUserCode && oGlobal.QNect.clientLevel && oGlobal.QNect.clientSec) {
// Si está correctamente conectado desde QNECT y además
// viene el productor seleccionado
oGen.fnGetStore({
titulo: 'Rol Administrativo QNect',
params: {
prm_dataSource: 'ovQbe',
prm_funcion: 'ovMqUsuario.getRolesAdministrativos',
prm_USUARIO: oGlobal.QNect.aisUserCode,
prm_NIVEL: oGlobal.QNect.clientLevel,
prm_CLIENTSEC: oGlobal.QNect.clientSec
},
fnCallback: function (oResp) {
// Se espara que traiga UN SOLO PRODUCTOR
if (!oResp.success || oResp.records.length != 1) {
MessageAlert.messagePopup('Rol Administrativo', //
'No se pudo verificar productor seleccionado');
oHomeMenu.fnSelProductor(function () {
oHomeMenu.fnShowPopupInicio();
});
return;
}
oGlobal.productor = oResp.records[0];
oGen.fnSetProductor();
// Set productor en las variables de sesión
oGen.fnSetSession({
key: 'productor',
value: JSON.stringify(oGlobal.productor)
});
// Muestra el POPUP inicial en el menú
oHomeMenu.fnShowPopupInicio();
oGlobal.initialize();
}
});
} else {
if (oGlobal.ais.USER_NIVEL == 'A') {
// Cargar un productor si no está definido en la
// sesión
if (oGlobal.productor.NOMBRE != "")
oHomeMenu.fnShowPopupInicio();
else {
oHomeMenu.fnSelProductor(function () {
oHomeMenu.fnShowPopupInicio();
});
}
} else {
if (!oGlobal.productor.NOMBRE != "") {
oGlobal.productor = {
NOMBRE: oGlobal.cNombre,
NIVEL: '',
CLIENSEC: ''
};
}
}
oGlobal.initialize();
}
}
});
}
});
};
oHomeMenu.doubleClick_timeOut = null;
oHomeMenu.fnDoubleClick = function () {
var $div = $('');
$div.attr('id', 'stopClick');
$div.css({
'position': 'fixed',
'top': '-1px',
'right': '-1px',
'bottom': '-1px',
'left': '-1px',
'display': 'none',
'cursor': 'wait', // Otra opcion -> not-allowed
'background-color': 'rgba(0 ,0 , 0, 0)',
'z-index': '99999'
});
$div.click(function (e) {
// console.log("ignorando click.");
});
$('body').append($div);
$('body').click(function (e) {
if (e.target !== undefined) {
var $target = $(e.target);
if ($target.attr('id') !== undefined || $target.attr('id') != 'stopClick') {
if ($target.data('dbclick') === undefined || !$target.data('dbclick')) {
var diferencia = e.timeStamp - $("#stopClick").data('lastClick');
$("#stopClick").data('lastClick', e.timeStamp);
if (!(diferencia <= 400)) {
// console.log("single click detected");
$("#stopClick").show();
oHomeMenu.doubleClick_timeOut = setTimeout(function () {
$("#stopClick").hide();
}, 400);
} else {
// console.log("double click detected");
clearTimeout(oHomeMenu.doubleClick_timeOut);
oHomeMenu.doubleClick_timeOut = setTimeout(function () {
$("#stopClick").hide();
}, 400);
}
}
}
}
});
// Fix para los checkbox de bootstrap
$('body').on('switchChange.bootstrapSwitch', '.bootstrap-switch', function () {
$('body').trigger('click');
});
};
$(document).ready(function () {
oGen.fnBloqueoUnico();
oHomeMenu.setUserProfile();
oHomeMenu.fnDoubleClick();
oGen.fnBloqueoUnicoHide();
});