You are on page 1of 11

/**

* TODO1 SERVICES, INC. (TODO1) All rights reserved, 2000 2017.


* This work is protected by the United States of America copyright laws.
* All information contained herein is and remains the property of TODO1 [and its
suppliers, if any].
* Dissemination of this information or reproduction of this material is not
permitted unless prior written consent is obtained from TODO1 SERVICES, INC.
*/
(function () {
"use strict";
var localSettings = null;
var productos = null;
var timout;
var estaAbiertoElBanner;
var ejecturaVerBanner = true;

/**
* Asociacin de control con vista y carga inicial de componentes
*/
var ControlConstructorProductoPreAprobado =
WinJS.UI.Pages.define("/controls/saldosConsolidados/productoPreAprobado.html", {
processed: function (e) {
return WinJS.Resources.processAll(e)
},
ready: function (element, options) {
ejecturaVerBanner = true;
options = options || {};
WinJS.Utilities.query("a").listen("click",
Funciones.linkClickEventHandler, false);
initializesObjects();
WinJS.UI.processAll().done(loadHelps());
},
unload: function () {
Funciones.disableAppBar();
}
});

/**
* Esta funcin carga las especificaciones necesarias y primarias para el
control
* Maqueta la vista en caso de que el los productos ya se encuentren en memoria
*/
function initializesObjects() {
var applicationData = Windows.Storage.ApplicationData.current;
localSettings = applicationData.localSettings;
}

function loadHelps() {
if (localSettings.values['primerazVezParaCargarBannerDePromociones']) {
estaAbiertoElBanner = true;
window.AppSession.ObtenerProductosPreAprobados = new
ObtenerProductosPreAprobados();
var _request =
window.AppSession.ObtenerProductosPreAprobados.createRequest();
if (session.user != null && _request != null) {
_request.setValuesRequest(session.user.userInfo.id,
session.user.t1Assertion, session.user.wamSession);

window.AppSession.ObtenerProductosPreAprobados.executeRequest(VerifyProductosPreApr
obadosRequestCallBack);
}
localSettings.values['primerazVezParaCargarBannerDePromociones'] =
false;
}
else {
if (productos != null) {
maquetarProductosPreAprobados();
}
}
}

/**
* Por cada producto se iterara, al momento el banco solo solicita mostrar solo
un producto por lo que se rompe
* la ejecucin al ejecutar el primer ciclo este con el fin de dejar el control
generico, en caso de necesitar agregar ms productos quitar la prioridad
*/

function createElements(elements) {

elements.forEach(function (ele) {

ele.properties(function (prop) {
switch (prop.operation) {
case "create":
prop.name = document.createElement(prop.value);
break;
case "add_class":
prop.name.classList.add(prop.value);
default:
prop.name = prop.value;
break;
}
});

});

function maquetarProductosPreAprobados() {
var asignadorVariable = 0;
var menorValor = obtenerMenorValorDeLosObjetosDelBanner(productos);
for (var i = 0; i < productos.length; i++) {
var mensaje = productos[i].msgProPre;
var splitMensaje = mensaje.split("$");
if (parseInt(productos[i].priProd.trim()) ==
parseInt(menorValor.trim())) {

if (splitMensaje[0] == "") {
break;
}

var valorPreAprobado = formatAmountTodo1(productos[i].cupo,


'SIN_CURRENCY_DEC');
var bannerProductosPreAprobados =
document.getElementById("bannerProductos");

createElements([
{

properties: [
{
name:
window["divDialogInformacionProductoSinColapsar"],
operation: 'create',
value: 'div'
},
{
name:
window["divDialogInformacionProductoSinColapsar"].id,
operation: 'id',
value: "divDialogInformacionProductoSinColapsar" +
asignadorVariable
},
{
name:
window["divDialogInformacionProductoSinColapsar"],
operation: 'add_class',
value: "banner-preaprobado-saldos-consolidades-sin-
colapsar"
}
]
}
,
{

properties: [
{
name:
window["divDialogInformacionProductoColapsado"],
operation: 'create',
value: 'div'
},
{
name:
window["divDialogInformacionProductoColapsado"].id,
operation: 'id',
value: "divDialogInformacionProductoColapsado" +
asignadorVariable
}
]
}
,
{

properties: [
{
name:
window["textoDialogInformacionProductoSinColapsar"],
operation: 'create',
value: 'h6'
},
{
name:
window["textoDialogInformacionProductoSinColapsar"].innerText,
operation: 'text',
value: "Tienes un cupo aprobado"
},
{
name:
window["textoDialogInformacionProductoSinColapsar"],
operation: 'add_class',
value: "banner-preaprobado-saldos-consolidades-sin-
colapsar-texto"
}
]
}
,
{

properties: [
{
name:
window["numeroDialogInformacionProductoSinColapsar"],
operation: 'create',
value: 'banner-preaprobado-saldos-consolidades-sin-
colapsar-number'
},
{
name:
window["numeroDialogInformacionProductoSinColapsar"].innerText,
operation: 'text',
value: " $ " + valorPreAprobado
}
]
}
,
{

properties: [
{
name:
window["divimagenDialogInformacionProductoSinColapsar"],
operation: 'create',
value: 'div'
},
{
name:
window["divimagenDialogInformacionProductoSinColapsar"].style.marginLeft,
operation: 'style',
value: "90%"
},
{
name:
window["divimagenDialogInformacionProductoSinColapsar"].id,
operation: 'id',
value: asignadorVariable
}
]
}
,
{

properties: [
{
name:
window["imagenDialogInformacionProductoSinColapsar"],
operation: 'create',
value: 'img'
},
{
name:
window["imagenDialogInformacionProductoSinColapsar"],
operation: 'add_class',
value: "banner-preaprobado-saldos-consolidades-sin-
colapsar-image"
},
{
name:
window["imagenDialogInformacionProductoSinColapsar"].src,
operation: 'src',
value: "../../images/Icono-Flecha-abajo-svg.svg"
}

]
},
{

properties: [
{
name:
window["divimagenDialogInformacionProductoSinColapsar"],
operation: 'add_elem',
value:
window["imagenDialogInformacionProductoSinColapsar"]
},
{
name:
window["textoDialogInformacionProductoSinColapsar"],
operation: 'add_elem',
value:
window["numeroDialogInformacionProductoSinColapsar"]
},
{
name:
window["divDialogInformacionProductoSinColapsar"],
operation: 'add_elem',
value:
window["textoDialogInformacionProductoSinColapsar"]
},
{
name:
window["divDialogInformacionProductoSinColapsar"],
operation: 'add_elem',
value:
window["divimagenDialogInformacionProductoSinColapsar"]
}
]
},
{
properties: [
{
name: bannerProductosPreAprobados,
operation: 'add_elem',
value:
window["divDialogInformacionProductoSinColapsar"]
},
]
},
{
properties: [
{
name:
window["divDialogInformacionProductoColapsado"],
operation: 'add_class',
value: window["banner-preaprobado-saldos-
consolidades-colapsado"]
}
]
},
{
properties: [
{
name:
window["textoDialogInformacionProductoColapsadoSegundo"],
operation: 'create',
value: 'h6'
}
]
}
]);

if (splitMensaje[1] != "") {

createElements([
{
properties: [
{
name:
window["textoDialogInformacionProductoColapsado"],
operation: 'create',
value: 'h6'
},
{
name:
window["textoDialogInformacionProductoColapsado"],
operation: 'add_class',
value: "banner-preaprobado-saldos-consolidades-
colapsado-texto-con-signo-peso"
},
{
name:
window["textoDialogInformacionProductoColapsado"].innerText,
operation: 'text',
value: splitMensaje[0]
}
]
},
{
properties: [

]
},
{
properties: [

]
},
{
properties: [

]
}
])

//window["textoDialogInformacionProductoColapsado"] =
document.createElement("h6");

//window["textoDialogInformacionProductoColapsado"].classList.add("banner-
preaprobado-saldos-consolidades-colapsado-texto-con-signo-peso");
//window["textoDialogInformacionProductoColapsado"].innerText =
splitMensaje[0];

window["numeroDialogInformacionProductoColapsado"] =
document.createElement("banner-preaprobado-saldos-consolidades-colapsado-number-
con-signo-peso");
window["numeroDialogInformacionProductoColapsado"].innerText =
"$ " + valorPreAprobado;

window["numeroDialogInformacionProductoColapsado"].style.fontWeight = "600";

window["textoDialogInformacionProductoColapsado"].appendChild(window["numeroDialogI
nformacionProductoColapsado"])

window["textoDialogInformacionProductoColapsadoSegundo"] =
document.createElement("banner-preaprobado-saldos-consolidades-colapsado-texto-con-
signo-peso");

window["textoDialogInformacionProductoColapsadoSegundo"].innerText =
splitMensaje[1];

window["textoDialogInformacionProductoColapsado"].appendChild(window["textoDialogIn
formacionProductoColapsadoSegundo"])

window["divDialogInformacionProductoColapsado"].appendChild(window["textoDialogInfo
rmacionProductoColapsado"]);
}
else {
window["textoDialogInformacionProductoColapsado"] =
document.createElement("h6");

window["textoDialogInformacionProductoColapsado"].classList.add("banner-
preaprobado-saldos-consolidades-colapsado-texto");
window["textoDialogInformacionProductoColapsado"].innerText =
splitMensaje[0];

window["numeroDialogInformacionProductoColapsado"] =
document.createElement("h5");

window["numeroDialogInformacionProductoColapsado"].classList.add("banner-
preaprobado-saldos-consolidades-colapsado-number");
window["numeroDialogInformacionProductoColapsado"].innerText =
"$ " + valorPreAprobado;

window["divDialogInformacionProductoColapsado"].appendChild(window["textoDialogInfo
rmacionProductoColapsado"]);

window["divDialogInformacionProductoColapsado"].appendChild(window["numeroDialogInf
ormacionProductoColapsado"])
}

window["divButtonAndImage"] = document.createElement("div");
window["divButtonAndImage"].style.display = "flex";
window["divButtonAndImage"].style.justifyContent = "space-between";

window["divDivider"] = document.createElement("div");

window["divButton"] = document.createElement("div");
window["divButton"].style.marginLeft = "11%";

window["button"] = document.createElement("button");
window["button"].classList.add("banner-preaprobado-saldos-
consolidades-colapsado-boton");
window["button"].innerText = "Solictalo aqu";
window["button"].addEventListener("click", abrirWebView, false);

window["divButton"].appendChild(window["button"]);

window["divImage"] = document.createElement("div");
window["divImage"].style.marginTop = "5%";
window["divImage"].id = asignadorVariable;

window["divImage"].addEventListener("click", recogerBanner, false);

window["divimagenDialogInformacionProductoSinColapsar"].addEventListener("click",
colapsarBanner, false);

window["image"] = document.createElement("img");
window["image"].classList.add("banner-preaprobado-saldos-
consolidades-colapsado-image");
window["image"].src = "../../images/Icono-Flecha-arriba-svg.svg";

window["divImage"].appendChild(window["image"]);

window["divButtonAndImage"].appendChild(window["divDivider"]);
window["divButtonAndImage"].appendChild(window["divButton"]);
window["divButtonAndImage"].appendChild(window["divImage"]);

window["divDialogInformacionProductoColapsado"].appendChild(window["divButtonAndIma
ge"]);

bannerProductosPreAprobados.appendChild(window["divDialogInformacionProductoColapsa
do"]);
validarsiBannerEstaAbierto(asignadorVariable);
break;
}
}
}

/**
* Metodo que permite obtener el menor valor de prioridad para ser mostrado
*/
function obtenerMenorValorDeLosObjetosDelBanner(productos) {
var menorValor = parseInt(productos[0].priProd.trim());
for (var i = 0; i < productos.length; i++) {
if (parseInt(productos[i].priProd.trim()) < menorValor) {
menorValor = productos[i].priProd;
}
}
menorValor = menorValor.toString();
return menorValor;
}

/**
* metodo que permite cargar el webView
*/
function abrirWebView() {
window.e.showError("Se ha presentado un error");
}

/*
* Este metodo permite identificar si el banner esta/estaba abierto o cerrado
para ser cargado de la misma manera
*/
function validarsiBannerEstaAbierto(identificador) {
if (estaAbiertoElBanner) {
window["divDialogInformacionProductoColapsado" +
identificador].style.display = '';
window["divDialogInformacionProductoSinColapsar" +
identificador].style.display = 'none';
} else {
window["divDialogInformacionProductoColapsado" +
identificador].style.display = 'none';
window["divDialogInformacionProductoSinColapsar" +
identificador].style.display = '';
}
}

/**
* Este metododo se ejecuta despues de la respuesta del servicio con los
productos pre aprobados
*/
function VerifyProductosPreAprobadosRequestCallBack(Response) {
if (Response != null) {
if (Response.getLastError() == 0) {
hidePageProgress();
productos = Response.getPreAprobados();
if (productos != null) {
maquetarProductosPreAprobados();
}
}
else {
Todo1WP.Utils.log(Response.getResponse());
}
}
}

/*
* Metodo que permite colapsar el banner al hacer click sobre la imagen
*/
function colapsarBanner(event) {
if (event.target.id != "") {
document.getElementById("divDialogInformacionProductoColapsado" +
event.target.id).classList.remove("ocultarconAnimacionBanner")
document.getElementById("divDialogInformacionProductoSinColapsar" +
event.target.id).classList.remove("ocultarconAnimacionBanner")
document.getElementById("divDialogInformacionProductoColapsado" +
event.target.id).style.display = '';
document.getElementById("divDialogInformacionProductoSinColapsar" +
event.target.id).style.display = 'none';
estaAbiertoElBanner = true;
}
}

/*
* Metodo que permite recoger el banner al hacer click sobre la imagen
*/
function recogerBanner(event) {
if (event.target.id != "") {
document.getElementById("divDialogInformacionProductoColapsado" +
event.target.id).classList.remove("ocultarconAnimacionBanner")
document.getElementById("divDialogInformacionProductoSinColapsar" +
event.target.id).classList.remove("ocultarconAnimacionBanner")
document.getElementById("divDialogInformacionProductoColapsado" +
event.target.id).style.display = 'none';
document.getElementById("divDialogInformacionProductoSinColapsar" +
event.target.id).style.display = '';
clearTimeout(timout);
estaAbiertoElBanner = false;
}
}

/*
*Metodo que permite esconder todo el banner con animacin
*/
function ocultarBanner(event) {
if (event.target.id != "") {
document.getElementById("divDialogInformacionProductoColapsado" +
event.target.id).classList.add("ocultarconAnimacionBanner")
document.getElementById("divDialogInformacionProductoSinColapsar" +
event.target.id).classList.add("ocultarconAnimacionBanner")
timout = setTimeout(function () {
document.getElementById("divDialogInformacionProductoColapsado" +
event.target.id).style.display = 'none';
document.getElementById("divDialogInformacionProductoSinColapsar" +
event.target.id).style.display = 'none';
}, 900);
estaAbiertoElBanner = false;
}
}
/*
* Se agrega el define de la clase para quesea colocada en el scope global y ser
llamada en las dems clases controladoras
*/
WinJS.Namespace.define("productoPreAprobado", {
constructor: ControlConstructorProductoPreAprobado,
recogerBanner: recogerBanner,
colapsarBanner: colapsarBanner,
ocultarBanner: ocultarBanner
});
})();

You might also like