/**
* @name PagamentoContas
* @requires BasicoFinal
* @requires MomentJs
*/
$(function () {
/**
* @description Obtem a posição do cursos do mouse em um input
*/
$.fn.getCursorPosition = function () {
var input = this.get(0);
if (!input) return; // No (input) element found
if ('selectionStart' in input) {
// Standard-compliant browsers
return input.selectionStart;
} else if (document.selection) {
// IE
input.focus();
var sel = document.selection.createRange();
var selLen = document.selection.createRange().text.length;
sel.moveStart('character', -input.value.length);
return sel.text.length - selLen;
}
}
window.pagamento_contas = (function (options) {
options = jQuery.extend({
locale: 'pt-br',
leitora: undefined,
botaoLimpar: undefined,
grupoLinha: undefined,
limite: 0,
compatibilidadeIE: typeof verifica_requisitos !== 'undefined' ? verifica_requisitos.navegador_ie : true,
campos: {
dataAgendamento: undefined,
dataVencimento: undefined,
valor: undefined,
historico: undefined,
CPFCNPJPagador: undefined,
CPFCNPJBeneficiario: undefined,
linhaDigitavel: {},
},
camposHidden: {
leitora: undefined,
tipoPagamento: undefined,
codigoBarras: undefined,
linhaDigitavel: {},
boletoTipoArrecadacao: undefined,
},
}, options);
var eventos = {
backspace_continuo: function (evento) {
if (evento.key !== "Backspace") return;
var $this = $(evento.target);
var tabIndex = parseInt(VMasker.toNumber($this.data('campo')));
var oldIndex = tabIndex;
var cursorPosition = $this.getCursorPosition();
var cursorOldPosition = $this.data('cursorOldPosition');
var voltarCampo = cursorPosition === 0 && cursorOldPosition === cursorPosition;
if (voltarCampo) tabIndex -= 1;
if (tabIndex === 0 && helpers.obter_linha_digitavel_campos(options.campos.linhaDigitavel).length === 0) {
helpers.limpar_campos();
html.load.campo_temporario();
} else {
var campo = options.campos.linhaDigitavel['campo' + tabIndex]
if (campo !== undefined && oldIndex !== tabIndex) campo.find('input').focus()
}
$this.data('cursorOldPosition', cursorPosition);
},
pular_campo_preenchimento: function (evento) {
if (evento.key === "Tab" || evento.key === "ArrowRight" || evento.key === "ArrowLeft") return;
var $this = $(evento.target);
var tabIndex = parseInt(VMasker.toNumber($this.data('campo')));
var oldIndex = tabIndex;
var valorCampo = $this.val();
var campoTotalmentePreenchido = $this.val().length === $this.prop('maxLength');
var campoJaVazio = $this.val().length === 0 && $this.data('oldlenght') === 0;
if (campoTotalmentePreenchido) tabIndex += 1;
else if (campoJaVazio) tabIndex -= 1;
var campo = options.campos.linhaDigitavel['campo' + tabIndex]
if (campo !== undefined && oldIndex !== tabIndex) campo.find('input').focus()
$this.data('oldlenght', valorCampo.length);
return oldIndex !== tabIndex;
},
pular_campos_setas_navegacao: function (evento) {
if (evento.key === "Tab" || (evento.key !== "ArrowRight" && evento.key !== "ArrowLeft")) return;
var $this = $(evento.target);
var tabIndex = parseInt(VMasker.toNumber($this.data('campo')));
var oldIndex = tabIndex;
var cursorPosition = $this.getCursorPosition();
var cursorOldPosition = $this.data('cursorOldPosition');
var cursoJaAEsqueda = evento.key === "ArrowLeft" && cursorPosition === 0 && cursorOldPosition === cursorPosition;
var cursoJaADireita = evento.key === "ArrowRight" && cursorPosition === $this.val().length && cursorOldPosition === cursorPosition;
if (cursoJaAEsqueda) tabIndex -= 1;
else if (cursoJaADireita) tabIndex += 1;
var campo = options.campos.linhaDigitavel['campo' + tabIndex]
if (campo !== undefined && oldIndex !== tabIndex) campo.find('input').focus()
$this.data('cursorOldPosition', cursorPosition);
},
impedir_envio_formulario: function (evento) {
if (evento.key === "Enter")
evento.preventDefault();
},
definir_uso_leitora_no_padrao_44caracteres: function (evento) {
clearInterval(eventos.definir_uso_leitora_no_padrao_44caracteres.intevalLeitora);
if (evento.target.value.length === 0) options.leitora = undefined;
if (evento.type === "paste") {
options.leitora = false;
} else {
eventos.definir_uso_leitora_no_padrao_44caracteres.intevalLeitora = setTimeout(function () {
options.leitora = evento.target.value.length === 44;
options.camposHidden.leitora.val(options.leitora ? "sim" : "nao");
eventos.preenchimento_campo_temporario(evento);
}, 300);
}
options.camposHidden.leitora.val(options.leitora ? "sim" : "nao");
},
preenchimento_campo_temporario: function (evento) {
if (evento.key === "Enter" || evento.type === "paste") evento.preventDefault();
if (evento.type === "paste") {
options.leitora = false;
var clipboardData = evento.clipboardData || evento.originalEvent.clipboardData || window.clipboardData;
evento.target.value = VMasker.toNumber(clipboardData.getData('text'));
} else {
evento.target.value = VMasker.toNumber(evento.target.value);
}
if (options.leitora !== undefined) {
options.camposHidden.boletoTipoArrecadacao = evento.target.value.charAt(0) === boleto.tipo.arrecadacao;
if ((options.leitora && evento.target.value.length === 44)) {
helpers.preencher_dados_do_boleto(evento.target.value, options.leitora);
options.camposHidden.codigoBarras.val(evento.target.value);
options.campos.dataAgendamento.val("").focus();
} else if (!options.leitora && evento.target.value.length >= 5) {
html.load.linha_digitavel(evento.target.value);
if (evento.target.value.length >= 47) {
setTimeout(function () {
options.campos.dataAgendamento.val("").focus();
}, 200);
}
}
}
},
preenchimento_linha_digitavel: function (evento) {
helpers.preencher_dados_do_boleto(helpers.obter_linha_digitavel_campos(options.campos.linhaDigitavel), false);
},
preencher_campo_hidden_leitora: function (evento) {
if (evento.target) options.camposHidden.codigoBarras.val(options.leitora ? evento.target.val() : "");
},
preencher_campos_hidden_codigo_barras: function () {
Object.keys(options.campos.linhaDigitavel).forEach(function (campo, index, campos) {
options.camposHidden.linhaDigitavel[campo].val(options.campos.linhaDigitavel[campo].find('input').val());
})
},
definir_visibilidade_campos_indetificacao: function (evento) {
var valor = boleto.moneyToFloat(evento.target.value);
if (valor >= options.limite) {
options.campos.CPFCNPJPagador.closest('.divCPFCNPJ').css('display', 'block');
options.campos.CPFCNPJBeneficiario.closest('.divCPFCNPJ').css('display', 'block');
} else {
options.campos.CPFCNPJPagador.closest('.divCPFCNPJ').css('display', 'none');
options.campos.CPFCNPJBeneficiario.closest('.divCPFCNPJ').css('display', 'none');
}
}
};
var helpers = {
definir_visibilidade_campos_identificacao: function (valor) {
helpers.alterar_visibilidade_grupo_campos([options.campos.CPFCNPJPagador, options.campos.CPFCNPJBeneficiario], valor >= options.limite);
},
focar_no_campo_preenchimento_codigo_barras: function () {
return Object.keys(options.campos.linhaDigitavel).every(function (campo, index, campos) {
if (options.campos.linhaDigitavel[campo]) {
var valor = options.campos.linhaDigitavel[campo].find('input').val();
var maxLength = options.campos.linhaDigitavel[campo].find('input').prop('maxLength')
if (valor.length < maxLength) {
if (!options.compatibilidadeIE) options.campos.linhaDigitavel[campo].find('input').focus()
return false;
}
}
return options.campos.linhaDigitavel[campos[index + 1]] !== undefined;
})
},
alterar_visibilidade_elemento: function (campo, mostrar) {
if(options.camposHidden.boletoTipoArrecadacao) {
if (mostrar == null || mostrar == true)
campo.removeClass('hide');
else
campo.addClass('hide');
}
},
alterar_visibilidade_grupo_campos: function (campos, mostrar) {
if (campos instanceof Array) {
campos.forEach(function (campo) {
helpers.alterar_visibilidade_elemento(campo.closest('.campo'), mostrar);
});
} else {
helpers.alterar_visibilidade_elemento(campos.closest('.campo'), mostrar);
}
},
limpar_campos: function () {
options.leitora = undefined;
options.campos.dataAgendamento.val('');
options.campos.dataVencimento.val('');
options.campos.valor.val('');
options.campos.historico.val('');
options.campos.CPFCNPJPagador.val('');
options.campos.CPFCNPJBeneficiario.val('');
options.camposHidden.leitora.val();
options.camposHidden.tipoPagamento.val();
options.camposHidden.codigoBarras.val();
Object.keys(options.camposHidden.linhaDigitavel).forEach(function (campo, index, campos) {
options.camposHidden.linhaDigitavel[campo].val('');
});
},
preencher_linha_digitavel_campos: function (linhaDigitavel) {
var stringIndex = 0;
Object.keys(options.campos.linhaDigitavel).every(function (campo, index, campos) {
if (options.campos.linhaDigitavel[campo]) {
var maxlength = options.campos.linhaDigitavel[campo].find('input').prop('maxlength') || linhaDigitavel.length;
var parteDoCodigo = linhaDigitavel.substring(stringIndex, stringIndex + maxlength);
options.campos.linhaDigitavel[campo].find('input').val(parteDoCodigo);
options.camposHidden.linhaDigitavel[campo].val(parteDoCodigo);
stringIndex = stringIndex + maxlength
}
return options.campos.linhaDigitavel[campos[index + 1]] !== undefined;
})
},
obter_linha_digitavel_campos: function (objetoCampos) {
var linhaDigitavel = '';
Object.keys(objetoCampos || {}).every(function (campo, index, campos) {
if (objetoCampos[campo])
linhaDigitavel += objetoCampos[campo].find('input').val();
return objetoCampos[campos[index + 1]] !== undefined;
})
return linhaDigitavel;
},
obter_linha_digitavel_campos_hidden: function (campos) {
var linhaDigitavel = '';
Object.keys(options.camposHidden.linhaDigitavel || {}).every(function (campo, index, campos) {
if (options.camposHidden.linhaDigitavel[campo])
linhaDigitavel += options.camposHidden.linhaDigitavel[campo].val();
return options.camposHidden.linhaDigitavel[campos[index + 1]] !== undefined;
})
return linhaDigitavel;
},
preencher_dados_do_boleto: function (linhaDigitavelOuCodigoBarras, leitora) {
if (linhaDigitavelOuCodigoBarras.length === 0) return;
var tipo = linhaDigitavelOuCodigoBarras[0];
var obter_dados_boleto = tipo === boleto.tipo.arrecadacao ? boleto.quatro_campos : boleto.oito_campos
if(options.camposHidden.boletoTipoArrecadacao) {
options.campos.valor
.val(obter_dados_boleto.valor(linhaDigitavelOuCodigoBarras, options.leitora))
.trigger("input")
.closest('.campo')
.removeClass('hide');
options.campos.divCampoPreenchimentoObrigatorio
.removeClass('hide');
}
var valor = obter_dados_boleto.valor(linhaDigitavelOuCodigoBarras, leitora);
if (tipo === boleto.tipo.arrecadacao) {
options.btnCartaoCredito.removeClass("hide");
}
if (valor != null) {
valor = boleto.moneyToFloat(valor);
helpers.alterar_visibilidade_grupo_campos([options.campos.CPFCNPJPagador, options.campos.CPFCNPJBeneficiario], valor >= options.limite)
}
options.campos.dataVencimento
.val(obter_dados_boleto.data(linhaDigitavelOuCodigoBarras, options.leitora))
.trigger("change")
.closest('.campo');
if(options.camposHidden.boletoTipoArrecadacao) {
options.campos.dataVencimento.removeClass('hide');
}
options.camposHidden.tipoPagamento.val(obter_dados_boleto.tipo_pagamento(linhaDigitavelOuCodigoBarras, leitora));
forma_pagamento.definir_visibilidade_forma_pagamento_cartao(tipo === boleto.tipo.arrecadacao);
helpers.alterar_visibilidade_grupo_campos([
options.campos.dataVencimento,
options.campos.historico,
options.campos.dataAgendamento,
]);
},
campo_preenchido: function (dado) {
return dado != undefined && dado.length != 0;
},
};
var html = {
template: {
campo_codigo_barras: function (config) {
config = jQuery.extend({ tamanho: '', maxlength: '' }, config);
return '
'.format(config.tamanho, config.maxlength);
},
cartao: function (codigo, bandeiraCartao, tipocartao, titulo) {
return ''.format(codigo, bandeiraCartao, tipocartao, titulo);
},
plano_pagamento: function (plano) {
return '\
\
\
| \
{1}x | \
R$ {2} | \
{3}% a.m. | \
'.format(plano.key, plano.qtdParcelas, plano.vlrParcela, plano.taxaJuros);
}
},
load: {
campo_temporario: function (codigoBarras) {
options.campos.linhaDigitavel = {};
options.grupoLinha.html('');
options.campos.linhaDigitavel.campo1 = $(html.template.campo_codigo_barras({ maxlength: 50 }));
options.campos.linhaDigitavel.campo1.find('input')
.on('keypress', eventos.impedir_envio_formulario)
.on('input', eventos.preencher_campo_hidden_leitora)
.on('input paste', eventos.definir_uso_leitora_no_padrao_44caracteres)
.on('keypress keyup paste', eventos.preenchimento_campo_temporario)
.val(codigoBarras || "")
if (!options.compatibilidadeIE) VMasker(options.campos.linhaDigitavel.campo1.find('input')).maskNumber();
helpers.preencher_dados_do_boleto(codigoBarras || "", options.leitora);
options.grupoLinha.append(options.campos.linhaDigitavel.campo1);
options.campos.linhaDigitavel.campo1.find('input').focus();
},
linha_digitavel: function (codigoBarras) {
options.campos.linhaDigitavel = {};
options.grupoLinha.html('');
var tipo = codigoBarras[0];
var tamanhoDosCampos = tipo === boleto.tipo.arrecadacao ? [12, 12, 12, 12] : [5, 5, 5, 6, 5, 6, 1, 14];
tamanhoDosCampos.forEach(function (maxlength, index) {
var campo = 'campo' + (index + 1);
options.campos.linhaDigitavel[campo] = $(html.template.campo_codigo_barras({
tamanho: 'col-xs-3 campo-dinamico length-{0}'.format(maxlength),
maxlength: maxlength,
}))
options.campos.linhaDigitavel[campo].find('input')
.on('keypress', eventos.impedir_envio_formulario)
.on('keyup', eventos.pular_campos_setas_navegacao)
.on('keyup', eventos.preenchimento_linha_digitavel)
.on('keydown', eventos.backspace_continuo)
.on('input', eventos.pular_campo_preenchimento)
.on('input', eventos.preencher_campos_hidden_codigo_barras)
.on('paste', function (evento) {
helpers.limpar_campos();
html.load.campo_temporario();
options.campos.linhaDigitavel.campo1.find('input').trigger(evento);
})
.data('campo', campo);
if (!options.compatibilidadeIE) VMasker(options.campos.linhaDigitavel[campo].find('input')).maskNumber();
options.grupoLinha.append(options.campos.linhaDigitavel[campo]);
});
helpers.preencher_linha_digitavel_campos(codigoBarras || "");
helpers.preencher_dados_do_boleto(codigoBarras || "");
helpers.focar_no_campo_preenchimento_codigo_barras();
},
cartao: function (cartao) {
return $(html.template.cartao(cartao.codigo, cartao.bandeiraCartao, cartao.tipocartao, cartao.titulo));
},
plano_pagamento: function (plano) {
plano.vlrParcela = VMasker.toMoney(parseFloat(plano.vlrParcela).toFixed(2));
plano.tarifa = VMasker.toMoney(parseFloat(plano.tarifa).toFixed(2));
plano.taxaJuros = VMasker.toMoney(parseFloat(plano.taxaJuros).toFixed(2));
plano.vlrJuros = VMasker.toMoney(parseFloat(plano.vlrJuros).toFixed(2));
plano.iof = VMasker.toMoney(parseFloat(plano.iof).toFixed(2));
plano.cet = VMasker.toMoney(parseFloat(plano.cet).toFixed(2));
return $(html.template.plano_pagamento(plano));
}
}
};
var boleto = {
tipo: {
prefeitura: '1',
saneamento: '2',
energia: '3',
telecomunicacao: '4',
governo: '5',
empresa: '6',
transito: '7',
arrecadacao: '8',
banco: '9',
},
moneyToFloat: function (moneyString) {
return parseFloat(moneyString.replaceAll(".", "").replaceAll(",", "."));
},
calcular_data: function (dias) {
//PADRAO é 07/04/1997
var data = new Date("10/07/1997");
if (dias) {
data.setDate(data.getDate() + dias);
var dia = data.getDate() >= 10 ? data.getDate() : ("0" + data.getDate());
var mes = data.getMonth() + 1;
mes = mes >= 10 ? mes : ("0" + mes);
var ano = data.getFullYear();
return "{0}/{1}/{2}".format(dia, mes, ano);
}
return undefined;
},
verificar_data: function (data) {
var momentDate = moment({ years: data.ano, months: parseInt(data.mes) - 1, days: data.dia });
return momentDate.isValid() && momentDate.year() >= 2000 && momentDate.year() <= (moment().year() + 10);
},
quatro_campos: {
valor: function (dados, formato44caracteres) {
if (formato44caracteres) {
if (dados.length >= 20) {
var valor = parseFloat(dados.substring(5, 15), 10);
return VMasker.toMoney(valor);
}
} else {
var codigoBarraCampo1 = dados.substring(0, 12);
var codigoBarraCampo2 = dados.substring(12, 24);
if ((codigoBarraCampo1.length == 12) && (codigoBarraCampo2.length == 12)) {
var valor1 = codigoBarraCampo1.substring(4, 11);
var valor2 = codigoBarraCampo2.substring(0, 4);
var total = valor1 + valor2;
total = boleto.moneyToFloat(total);
return VMasker.toMoney(total);
}
}
return null;
},
data: function (linha, formato44caracteres) {
var data;
if (formato44caracteres) {
data = linha.substring(19, 27);
} else {
data = linha.substring(20, 23) + linha.substring(24, 29);
}
data = { dia: data.substring(6, 8), mes: data.substring(4, 6), ano: data.substring(0, 4) };
return boleto.verificar_data(data) ? "{0}/{1}/{2}".format(data.dia, data.mes, data.ano) : "";
},
tipo_pagamento: function (linha, formato44caracteres) {
if (!linha.trim()) return;
var identificador = [
{
'codigo': '0270',
'nome': 'gps'
}, {
'codigo': '0064',
'nome': 'darf'
}, {
'codigo': '0179',
'nome': 'fgts'
}, {
'codigo': '0239',
'nome': 'fgts'
}, {
'codigo': '0328',
'nome': 'das'
}, {
'codigo': '0219',
'nome': 'dua'
},
];
var codigoPagamento = formato44caracteres
? linha.substring(15, 19)
: linha.substring(16, 20);
try {
return identificador.filter(function (id) {
return id.codigo == codigoPagamento
})[0].nome;
}
catch (erro) { return 'governo' }
},
},
oito_campos: {
valor: function (dados, formato44caracteres) {
if (formato44caracteres) {
var valorBarra = parseFloat(dados.substring(10, 17), 10) + "." + dados.substring(17, 19);
if (dados.length >= 37) {
var valor = parseFloat(dados.substring(10, 17), 10) + "." + dados.substring(17, 19);
return VMasker.toMoney(valor);
}
} else {
var ultimoCampo = dados.substring(33, dados.length)
if (ultimoCampo.length >= 14) {
var valor = parseFloat(ultimoCampo.substring(5, 12), 10) + "," + ultimoCampo.substring(12);
return VMasker.toMoney(valor);
}
}
return null;
},
data: function (dados, formato44caracteres) {
var data;
if (formato44caracteres) {
if (dados.length >= 10) {
var diasBarra = Number(dados.substring(5, 9));
return boleto.calcular_data(diasBarra);
}
} else {
var ultimoCampo = dados.substring(33, dados.length)
if (ultimoCampo.length >= 14) {
var diasBarra = Number(ultimoCampo.substring(0, 4));
return boleto.calcular_data(diasBarra);
}
}
return null;
},
tipo_pagamento: function (linha, leitora) {
return 'titulo'
}
}
};
var forma_pagamento = {
dados_pagamento: function (data) {
return jQuery.extend({
op: "",
DataVencimento: options.campos.dataVencimento.val(),
DataAgendamento: options.campos.dataAgendamento.val(),
Inteiro: options.campos.valor.val(),
Historico: options.campos.historico.val(),
tpPagamento: options.camposHidden.tipoPagamento.val(),
numerocartao: options.formaPagamento.numeroCartaoSelecionado.val(),
valorEmCreditoFidelidade: options.fidelidade.debitarFidelidade.val(),
}, data);
},
carregar_selecao_cartoes: function () {
if (forma_pagamento.carregar_selecao_cartoes.loaded == true) return;
var $owl = $('.owl-carousel');
if ($owl.find('.cartao-credito').length == 0) {
forma_pagamento.alerta.danger("Situação do seu cartão não permite pagamento. Entre em contato com a Central de Atendimento.");
$('button[type="submit"]').attr('disabled', 'disabled');
helpers.alterar_visibilidade_elemento(options.formaPagamento.tabelaPlanosPagamento, false);
helpers.alterar_visibilidade_elemento(options.formaPagamento.metodosPagamento.find('.cartao-loading'), false);
return;
}
var evento_selecao_cartao = function () {
var cartao = $(".owl-item.active.center").find('.item').data("value");
if (cartao == undefined) {
cartao = $(".owl-item").first().find('.item').data("value");
}
options.formaPagamento.numeroCartaoSelecionado.val(cartao);
forma_pagamento.consultar_planos_pagamento();
}
try {
helpers.alterar_visibilidade_elemento($owl, true);
$owl.owlCarousel({
slideSpeed: 300,
paginationSpeed: 400,
singleItem: true,
autoWidth: true,
center: true,
margin: 30,
mouseDrag: false,
touchDrag: false,
nav: false,
navRewind: false,
dots: false,
items: 1,
});
} catch (error) {}
$owl.find(".owl-item").on('click', function (event) {
var $ativo = $owl.find(".owl-item.active");
if ($(this).next()) {
$owl.css("width", "0");
}
if ($(this).hasClass('center') === false) {
if ($ativo.prev().is($(this))) {
$owl.trigger('prev.owl.carousel');
} else if ($ativo.next().is($(this))) {
$owl.trigger('next.owl.carousel');
}
}
evento_selecao_cartao();
$owl.css("width", "100%");
});
options.formaPagamento.numeroCartaoSelecionado.val($(".owl-item").first().find('.item').data("value"));
evento_selecao_cartao();
forma_pagamento.carregar_selecao_cartoes.load = true;
},
preencher_cartoes: function (cartoes) {
if (forma_pagamento.preencher_cartoes.loaded && forma_pagamento.preencher_cartoes.loaded == true) return;
if (cartoes.itens == undefined || cartoes.itens.length == 0) {
return;
}
cartoes.itens.forEach(function (cartao) {
if (cartao.dataFields.bandeiraCartao !== "banescard") return;
options.formaPagamento.selectorCartao.append(html.load.cartao(cartao.dataFields));
});
forma_pagamento.preencher_cartoes.loaded = true;
},
consultar_cartoes: function () {
var response_consulta_cartoes = function (response) {
if (response.erro) forma_pagamento.alerta.danger(response.erro)
if (response.data && response.data.cartoes) {
forma_pagamento.alerta.hide();
helpers.alterar_visibilidade_elemento(options.formaPagamento.tabelaPlanosPagamento);
helpers.alterar_visibilidade_elemento(options.formaPagamento.metodosPagamento.find('.cartao-loading'));
forma_pagamento.preencher_cartoes(response.data.cartoes);
}
}
if (forma_pagamento.ajax_cartoes == undefined) {
forma_pagamento.ajax_cartoes = $.ajax({
url: "/netib/PlanoPagamentoBanescardJson",
method: "POST",
dataType: "json",
data: forma_pagamento.dados_pagamento(),
});
}
forma_pagamento.ajax_cartoes.done(response_consulta_cartoes);
forma_pagamento.ajax_cartoes.fail(function (error) {
if (error.responseJSON && error.responseJSON.erro) {
forma_pagamento.alerta.danger(error.responseJSON.erro)
} else {
forma_pagamento.alerta.danger(error)
}
helpers.alterar_visibilidade_elemento(options.formaPagamento.tabelaPlanosPagamento, false);
helpers.alterar_visibilidade_elemento(options.formaPagamento.metodosPagamento.find('.cartao-loading'), false);
});
},
limpar_planos_pagamento: function () {
options.formaPagamento.tabelaPlanosPagamento.find('tbody').html("");
helpers.alterar_visibilidade_elemento(options.formaPagamento.tabelaPlanosPagamento);
},
consultar_planos_pagamento: function () {
var dados = forma_pagamento.dados_pagamento({
op: "listar"
});
var consultar = helpers.campo_preenchido(dados.op) &&
helpers.campo_preenchido(dados.DataVencimento) &&
helpers.campo_preenchido(dados.DataAgendamento) &&
helpers.campo_preenchido(dados.Inteiro) &&
helpers.campo_preenchido(dados.tpPagamento) &&
helpers.campo_preenchido(dados.numerocartao);
if (consultar) {
forma_pagamento.limpar_planos_pagamento();
helpers.alterar_visibilidade_elemento(options.formaPagamento.metodosPagamento.find('.cartao-loading'));
$.post('/netib/PlanoPagamentoBanescardJson', dados, function (response) {
if (response.erro) {
forma_pagamento.alerta.danger(response.erro);
}
if (response.data.plano && response.data.plano.itens) {
forma_pagamento.alerta.hide();
forma_pagamento.preencher_planos(response.data.plano);
forma_pagamento.consultar_planos_pagamento.dadosAnteriores = JSON.stringify(dados);
}
}, "json")
.fail(function (error) {
if (error.responseJSON && error.responseJSON.erro) {
forma_pagamento.alerta.danger(error.responseJSON.erro)
} else {
forma_pagamento.alerta.danger(error)
}
$('button[type="submit"]').attr('disabled', 'disabled');
helpers.alterar_visibilidade_elemento(options.formaPagamento.tabelaPlanosPagamento, false);
helpers.alterar_visibilidade_elemento(options.formaPagamento.metodosPagamento.find('.cartao-loading'), false);
});
}
},
preencher_planos: function (planos) {
var $tbody = options.formaPagamento.tabelaPlanosPagamento.find('tbody');
$tbody.html("");
planos.itens.forEach(function (plano) {
var $planoPagamento = html.load.plano_pagamento(plano.dataFields);
$planoPagamento.on('click', function () {
$(this).find('[type="radio"][name="plano"]').prop('checked', true);
})
$tbody.append($planoPagamento);
});
helpers.alterar_visibilidade_elemento(options.formaPagamento.metodosPagamento.find('.cartao-loading'), false);
},
definir_visibilidade_sessao_pagamentos: function () {
var dados = forma_pagamento.dados_pagamento();
var mostrar = helpers.campo_preenchido(dados.DataAgendamento) &&
helpers.campo_preenchido(dados.DataVencimento) &&
helpers.campo_preenchido(dados.Inteiro);
helpers.alterar_visibilidade_grupo_campos(options.formaPagamento.metodosPagamento, mostrar);
},
definir_visibilidade_forma_pagamento_cartao: function (mostrar) {
helpers.alterar_visibilidade_elemento(options.formaPagamento.metodosPagamento.find(".aba-forma-pagamento-cartao"), mostrar);
if (mostrar) {
options.formaPagamento.metodosPagamento.find(".nav-tabs>li").first().find("a").click()
}
},
load: function () {
forma_pagamento.alerta = new Alerta({
aposOElemento: options.formaPagamento.metodosPagamento.find(".alerta-cartao"),
scrollTop: false,
});
forma_pagamento.consultar_cartoes();
options.formaPagamento.metodosPagamento.find(".forma-pagamento-action").on('click', function () {
options.formaPagamento.metodoPagamento.val($(this).data('forma-pagamento'));
if ($(this).data('forma-pagamento') === 'cartao') {
forma_pagamento.carregar_selecao_cartoes();
}
});
var alteracoes_de_campo_necessario = function (evento) {
if (evento.type == "change") {
$('button[type="submit"]').removeAttr('disabled');
forma_pagamento.limpar_planos_pagamento();
forma_pagamento.consultar_planos_pagamento();
}
forma_pagamento.definir_visibilidade_sessao_pagamentos();
};
options.campos.dataAgendamento.on('keyup input change', alteracoes_de_campo_necessario);
options.campos.dataVencimento.on('keyup input change', alteracoes_de_campo_necessario);
options.campos.valor.on('keyup input change', alteracoes_de_campo_necessario);
options.fidelidade.debitarFidelidade.on('keyup input change', alteracoes_de_campo_necessario);
}
};
var load = (function () {
options.limite = parseFloat(options.limite);
moment.locale(options.locale);
if (options.camposHidden.linhaDigitavel.campo1.val().length !== 0) {
options.leitora = false;
html.load.linha_digitavel(helpers.obter_linha_digitavel_campos_hidden());
} else {
options.leitora = options.camposHidden.leitora.val() === "sim" ? true : undefined;
html.load.campo_temporario(options.camposHidden.codigoBarras.val());
}
options.campos.valor.on('input', function () {
var valor = boleto.moneyToFloat($(this).val());
options.fidelidade.debitarConta.val(valor);
setTimeout(function () {
helpers.definir_visibilidade_campos_identificacao(valor);
}, 500)}).trigger('input');
options.botaoLimpar.on('click', function (evento) {
helpers.limpar_campos();
html.load.campo_temporario();
});
forma_pagamento.load();
})();
});
});