$(document).ready(function () {
montaPedeCPF();
});
function montaPedeCPF() {
const listaSequencia = {
ident: { label: "identificação" }, cad: { label: "cadastro" }, curs: { label: "cursos" }, confirm: { label: "confirmação" },
ord: ["ident", "cad", "curs", "confirm"]
};
_sequencia = new clSequencia({ lista: listaSequencia, onde: obj('mainInicial') });
new Cadastro({
dados: {},
item: { objCabecalho: {}, pai: {} },
naoVinculaComItem: true,
onde: obj('areaCadastro'),
iniciaEditando: true,
botoes: [{ tipo: 'padrao', conteudo: "enviar", classe: 'botPadrao enviar', funcao: 'enviar', id: 'enviar' }],
campos: [
{ label: "CPF do aluno a ser matriculado", id: 'cpf', tipo: CampoCpf, cmp: 'naoGrava', max: 14, quebra: true, /* valorInicial: '676.869.334-40', */
eventos: { 'keyup': { obj: 'cadastro', 'funcao': 'clique' } } }
],
antesMontar: function () { $(_fd).insertBefore(this.onde); "pede" },
enviar: function () { enviaCPF.call(this); },
clique: function (e) { cliqueCPF.call(this, e)}
});
}
function cliqueCPF(e) { if (e.keyCode == 13) enviaCPF.call(this); }
function enviaCPF() {
// o this desta função é o cadastro do envio de CPF
const campoCPF = this.camposID['cpf'].objetoCampo;
const valida = campoCPF.validaEspecifico();
const cpf = campoCPF.valor;
if (cpf == '') aviso.call(this, "Por favor preencha o CPF");
else if (valida && valida.aviso) aviso.call(this, valida.aviso);
else {
const bot = this.botoes.find(bot => bot.id == "enviar").objBotao;
bot.desabilita();
campoCPF.desabilita()
const url = "matriculaonline/cadCpf.php";
const info = "cpf=" + cpf + "&idEsc=" + _idEsc;
const esteCadastro = this;
new cnx.carrega(url, function () { retornoCPF.call(esteCadastro, this.resposta) }, null, "POST", info);
}
}
function aviso(msg, classe, tempo = 3000, botoes = []) {
// o this desta função é o cadastro
const bot = this.botoes[0].objBotao.elementoDom; // o primeiro botão do cadastro
classe = (classe) ? " " + classe : "";
const divAviso = $("
" + msg + "
").insertAfter(bot);
botoes.map(botao => $("" + botao.label + " ").on("click", botao.funcao).appendTo(divAviso));
if (tempo > 0) setTimeout(function () { divAviso.remove() }, tempo);
}
function retornoCPF(retorno) {
retorno = jQuery.parseJSON(retorno);
let paramAluno = { dados: retorno };
paramAluno.dados["cpf"] = formataCPF(this.camposID['cpf'].objetoCampo.valor);
if (retorno['erro'] == "novo_aluno") {
paramAluno.titulo = "Por favor informe seus dados" + ":";
montaEditAluno.call(this, paramAluno);
} else if (retorno['erro'] == "perfilNaoValido") {
const botFechar = [{ label: "fechar", classe: "", funcao: function() { limpaAreaCadastro(); montaPedeCPF(); } }];
aviso.call(this, "perfil não é válido para matricula online", "perfilNaoValido", 0, botFechar);
} else {
paramAluno.titulo = "Olá" + " " + retorno.nome + ", " + "informe seus dados de acesso para continuar o processo"+":";
pedeSenha.call(this, paramAluno);
}
}
function retornoLoginMatricOnline(retorno) {
const cadastro = login.cadastroOriginal;
let paramAluno = { dados: retorno };
paramAluno.dados["cpf"] = formataCPF(cadastro.camposID['cpf'].objetoCampo.valor);
paramAluno.titulo = "Por favor confira seus dados e atualize-os se necessário"+":";
montaEditAluno.call(cadastro, paramAluno);
}
function pedeSenha(parametros) {
const campos = [
{ label: "CPF", id: 'cpf', tipo: CampoCpf, tab: 20, sqlTipo: "texto", quebra: true },
{ label: "Digite seu nome de usuário", id: 'divUsu', tipo: CampoTexto, cmp: "nome", quebra: true, /* valorInicial: 'adams', */ obrigatorio: true },
{ label: "Digite sua senha", id: 'divSen', tipo: CampoSenha, cmp: "email", quebra: true, /* valorInicial: 'ffry8453', */obrigatorio: true },
];
const botEnviar = {
tipo: 'padrao', conteudo: "enviar", classe: 'botPadrao', tip: "enviar", id: 'enviar',
funcao: 'enviaSenha', enviaSenha: function() { }
};
if (parametros.dados.idResp > 0) {
campos.splice (1, 0,
{ label: "acesso do aluno", id: "acessoAluno", tipo: CampoRadio, name: 'acesso', value: 1, inverte: true, cmp: 'naoGrava', valorInicial: 1 },
{ label: "acesso do responsável financeiro", id: "acessoResp", tipo: CampoRadio, name: 'acesso', value: 2, inverte: true, cmp: 'naoGrava' },
)
}
return montaCadastro.call(this, parametros, 'pedeSenha', campos, null, [ botEnviar ]);
}
function retornaRespFinanc(retorno) {
retorno = jQuery.parseJSON(retorno);
}
function antesEnviarSenha() {
const botCancelar = this.botoes.filter(bot => bot.id == 'cancelar')[0].objBotao;
botCancelar.desabilita.call(botCancelar);
this.camposID["divSen"].objetoCampo.botRecup.hide();
}
function naoEnviouSenha() {
const botCancelar = this.botoes.filter(bot => bot.id == 'cancelar')[0].objBotao;
botCancelar.habilita.call(botCancelar);
this.camposID["divSen"].objetoCampo.botRecup.show();
}
function hoje() {
const dataAtual = new Date();
const dia = dataAtual.getDate();
const mes = (dataAtual.getMonth()) + 1;
const ano = dataAtual.getFullYear();
const data = formataData(dia + "/" + mes + "/" + ano, null, true);
return data;
}
function montaEditAluno(parametros) {
parametros.refExt = {};
_sequencia.seleciona("cad");
const campos = [
{ id: "cadastroCompilado", tipo: CampoSemCampo, tab: 20, cmp: "cadastroCompilado", sqlTipo: "num", gravaSeAlterouTabela: true, valorInicial: 1 },
{ label: "nome", id: 'nome', tipo: CampoTexto, max: 250, tab: 20, cmp: "nome", sqlTipo: "texto", quebra: true, obrigatorio: true},
{ label: "email", id: 'email', tipo: CampoEmail, tab: 20, cmp: "email", sqlTipo: "texto", quebra: true, },
{ label: "CPF", id: 'cpf', tipo: CampoCpf, quebra: true },
{ label: "DDI", id: "ddiFone", tipo: CampoSelect, tab: 20, lista: parametros.dados.ddiPais, cmp: "paisFone", sqlTipo: "num", quebra: true, classeEspecial: "ddi" },
{ label: "DDD", id: "dddFone", tipo: CampoNumerico, tab: 20, cmp: "dddFone", sqlTipo: "num", quebra: true, classeEspecial: "ddd" },
{ label: "número", id: "fone", tipo: CampoTexto, tab: 20, cmp: "fone", sqlTipo: "num", quebra: true },
{ label: "DDI", id: "ddiCel", tipo: CampoSelect, tab: 20, lista: parametros.dados.ddiPais, cmp: "paisCel", sqlTipo: "num", quebra: true, classeEspecial: "ddi" },
{ label: "DDD", id: "dddCel", tipo: CampoNumerico, tab: 20, cmp: "dddCel", sqlTipo: "num", quebra: true, classeEspecial: "ddd", },
{ label: "número", id: "cel", tipo: CampoTexto, tab: 20, cmp: "cel", sqlTipo: "num", quebra: true, },
{ label: "rua", id: "rua", tipo: CampoTexto, max: 250, tab: 20, cmp: "rua", sqlTipo: "texto", quebra: true, },
{ label: "número", id: "num", tipo: CampoTexto, tab: 20, cmp: "num", sqlTipo: "texto", quebra: true, },
{ label: "complemento", id: "compl", tipo: CampoTexto, tab: 20, cmp: "compl", sqlTipo: "texto", quebra: true },
{ label: "bairro", id: "bairro", tipo: CampoTexto, max: 250, tab: 20, cmp: "bairro", sqlTipo: "texto", quebra: true, },
{ label: "pais", id: "pais", tipo: CampoSelect, tab: 20, lista: parametros.dados.paises, cmp: "naoGrava", sqlTipo: "num", quebra: true },
{ label: "estado", id: "est", tipo: CampoSelect, tab: 20, cmp: "naoGrava", sqlTipo: "num", basearEm: "pais", quebra: true },
{ label: "cidade", id: "cid", tipo: CampoCidade, tab: 20, cmp: "id_cid", sqlTipo: "num", basearEm: "est", quebra: true },
{ label: "CEP", id: "cep", tipo: CampoCep, tab: 20, cmp: "cep", sqlTipo: "texto", quebra: true,
camposEnd: { "rua": "rua", "compl": "compl", "bairro": "bairro", "cid": "cid", "est": "est", "pais": "pais" } },
{ id: "origemAlunoUsu", tipo: CampoSemCampo, tab: 20, cmp: "origem", sqlTipo: "texto", valorInicial: 'matriculaonline', gravaSeAlterouTabela: true }
];
const camposDadosAluno = ["nome","email", "cpf"];
if (parametros.dados && parametros.dados.campos) parametros.dados.campos.map(campo => {
campos.push(campo);
camposDadosAluno.push(campo.id);
if (parametros.dados.id.substr(0, 4) != "novo") parametros.refExt[20] = parametros.dados.id;
});
const gruposCampos = [
{ id: "dadosAluno", legenda: "aluno", campos: camposDadosAluno, naoClear: true, classeEspecial: "foneCompleto" },
{ id: "foneCompleto", legenda: "telefone", campos: ["ddiFone", "dddFone", "fone"], naoClear: true, classeEspecial: "foneCompleto" },
{ id: "celCompleto", legenda: "celular", campos: ["ddiCel", "dddCel", "cel"], naoClear: true, classeEspecial: "foneCompleto" },
{ id: "endereco", legenda: "endereço", campos: ["cep", "rua", "num", "compl", "bairro", "pais", "est", "cid"], naoClear: true },
{ id: "aluno", legenda: "cadastro aluno", campos: [ "dadosAluno", "foneCompleto", "celCompleto", 'endereco'] },
];
const botoes = [{ tipo: 'gravar', conteudo: "gravar", classe: 'botPadrao', id: 'gravar' }];
if (parametros.dados.idTabelaUsuResp > "") parametros.refExt[1280] = parametros.dados.idTabelaUsuResp;
const novoAluno = (parametros.dados.id == "novo_aluno");
const temResp = (parametros.dados.idResp > "");
if (novoAluno || temResp) {
campos.push(
{ id: "cadastroRespCompilado", tipo: CampoSemCampo, tab: 1280, cmp: "cadastroRespCompilado", sqlTipo: "num", gravaSeAlterouTabela: true, valorInicial: 1 },
{ label: "nome", id: "nomeResp", tipo: CampoTexto, quebra: true },
{ label: "email", id: "emailResp", tipo: CampoEmail, tab: 1280, cmp: "email", sqlTipo: "texto", quebra: true, },
{ label: "CPF", id: "cpfResp", tipo: CampoCpf, quebra: true },
{ label: "DDI", id: "ddiFoneResp", tipo: CampoSelect, tab: 1280, lista: parametros.dados.ddiPais, cmp: "paisFone", sqlTipo: "num", quebra: true, classeEspecial: "ddi" },
{ label: "DDD", id: "dddFoneResp", tipo: CampoNumerico, tab: 1280, cmp: "dddFone", sqlTipo: "num", quebra: true, classeEspecial: "ddd" },
{ label: "número", id: "foneResp", tipo: CampoTexto, tab: 1280, cmp: "fone", sqlTipo: "num", quebra: true },
{ label: "DDI", id: "ddiCelResp", tipo: CampoSelect, tab: 1280, lista: parametros.dados.ddiPais, cmp: "paisCel", sqlTipo: "num", quebra: true, classeEspecial: "ddi" },
{ label: "DDD", id: "dddCelResp", tipo: CampoNumerico, tab: 1280, cmp: "dddCel", sqlTipo: "num", quebra: true, classeEspecial: "ddd", },
{ label: "número", id: "celResp", tipo: CampoTexto, tab: 1280, cmp: "cel", sqlTipo: "num", quebra: true, },
{ label: "rua", id: "ruaResp", tipo: CampoTexto, max: 250, tab: 1280, cmp: "rua", sqlTipo: "texto", quebra: true, },
{ label: "número", id: "numResp", tipo: CampoTexto, tab: 1280, cmp: "num", sqlTipo: "texto", quebra: true, },
{ label: "complemento", id: "complResp", tipo: CampoTexto, tab: 1280, cmp: "compl", sqlTipo: "texto", quebra: true, },
{ label: "bairro", id: "bairroResp", tipo: CampoTexto, max: 250, tab: 1280, cmp: "bairro", sqlTipo: "texto", quebra: true, },
{ label: "cep", id: "cepResp", tipo: CampoCep, tab: 1280, cmp: "cep", sqlTipo: "texto", quebra: true,
camposEnd: { "rua": "ruaResp", "compl": "complResp", "bairro": "bairroResp", "cid": "cidResp", "est": "estResp", "pais": "paisResp" }},
{ label: "país", id: "paisResp", tipo: CampoSelect, lista: parametros.dados.paises, tab: 1280, cmp: "naoGrava", sqlTipo: "num", quebra: true },
{ label: "estado", id: "estResp", tipo: CampoSelect, tab: 1280, cmp: "naoGrava", sqlTipo: "num", basearEm: "paisResp", quebra: true },
{ label: "cidade", id: "cidResp", tipo: CampoCidade, tab: 1280, cmp: "id_cid", sqlTipo: "num", basearEm: "estResp", quebra: true },
{ id: "origemResp", tipo: CampoSemCampo, tab: 1280, cmp: "origemResp", sqlTipo: "texto", valorInicial: 'matriculaonline', gravaSeAlterouTabela: true }
);
gruposCampos.push(
{ id: "respFinancAluno", legenda: "dados responsável", campos: [ "nomeResp", "emailResp","cpfResp" ], naoClear: true, classeEspecial: "foneCompleto" },
{ id: "foneCompletoResp", legenda: "telefone", campos: [ "ddiFoneResp", "dddFoneResp", "foneResp" ], naoClear: true, classeEspecial: "foneCompleto" },
{ id: "celCompletoResp", legenda: "celular", campos: [ "ddiCelResp", "dddCelResp", "celResp" ], naoClear: true, classeEspecial: "foneCompleto" },
{ id: "enderecoResp", legenda: "endereço", campos: [ "cepResp", "ruaResp", "numResp", "complResp", "bairroResp", "paisResp", "estResp", "cidResp" ] },
{ id: "respFinanc", legenda: "cadastro responsável financeiro", campos: [ "respFinancAluno", "foneCompletoResp", "celCompletoResp", "enderecoResp" ] }
);
if (novoAluno) {
const paramCpfAluno = { tab: 20, sqlTipo: "texto", obrigatorio: true };
const campoCpfAluno = campos.filter(campo => campo.id == "cpf")[0];
Object.keys(paramCpfAluno).map(param => campoCpfAluno[param] = paramCpfAluno[param]);
const paramNomeResp = { cmp: 'nome', tab: 1280, sqlTipo: "texto", max: 250, obrigatorio: true };
const campoNomeResp = campos.filter(campo => campo.id == "nomeResp")[0];
Object.keys(paramNomeResp).map(param => campoNomeResp[param] = paramNomeResp[param]);
const paramCpfResp = { cmp: 'cpf', tab: 1280, sqlTipo: "texto", obrigatorio: true };
const campoCpfResp = campos.filter(campo => campo.id == "cpfResp")[0];
Object.keys(paramCpfResp).map(param => campoCpfResp[param] = paramCpfResp[param]);
campos.splice(17, 0,
{ id: "id_perf", tipo: CampoSemCampo, tab: 30, cmp: "id_perf", sqlTipo: "num", valorInicial: parametros.dados.setup["perfilPadrao"], gravaSempre: true },
{ id: "ini", tipo: CampoSemCampo, tab: 30, cmp: "ini", sqlTipo: "data", valorInicial: hoje(), gravaSempre: true },
{ id: "fim", tipo: CampoSemCampo, tab: 30, cmp: "fim", sqlTipo: "data", valorInicial: hoje(), gravaSempre: true },
{ id: "origemAlunoLicen", tipo: CampoSemCampo, tab: 30, cmp: "origem", sqlTipo: "texto", valorInicial: 'matriculaonline', gravaSeAlterouTabela: true },
{ label: "sim", id: "respSim", classeEspecial: "simNao", tipo: CampoRadio, inverte: true, name: "registroAuto", cmp: "respSim",
sqlTipo: "num", valorInicial: 1, value: 1, campoUnico: true, eventos: { "click": { obj: "cadastro", funcao: "verificaMontaResp" }}},
{ label: "não", id: "respNao", classeEspecial: "simNao", tipo: CampoRadio, inverte: true, name: "registroAuto", cmp: "respNao",
sqlTipo: "num", campoUnico: true, eventos: { "click": { obj: "cadastro", funcao: "verificaMontaResp" }}}
);
gruposCampos.unshift(
{ id: "incluiResp", legenda: "incluir responsável financeiro", campos: ["respSim", "respNao"], naoClear: true }
);
gruposCampos.filter(grupo => grupo.id == "aluno")[0].campos.push("incluiResp");
}
}
if (!novoAluno) {
botoes.unshift({ tipo: 'padrao', conteudo: 'não alterar', classe: 'botPadrao', id: 'naoAlterar',
funcao: 'naoAlterar', naoAlterar: function() { naoAlterar.call(this.pai) } });
}
//se tem conta configurada efi ou RecebaFacil. remove campos obrigatorios
let campObrig = parametros.dados.obrig
campos.filter(grupo => grupo.id).forEach(campo => {
if (campObrig.includes(campo.id)) {
campo.obrigatorio = true;
}
});
parametros.avisoGravarEspecifico = "grave as alterações clicando abaixo";
parametros.verificaMontaResp = function() { verificaMontaResp.call(this)};
montaCadastro.call(this, parametros, 'cadAluno', campos, gruposCampos, botoes);
}
function montaCadastro(parametros, classe, campos, gruposCampos, botoes) {
$("#intro").hide(); // show()
limpaAreaCadastro();
const areaCadastro = obj('areaCadastro');
colocaClasse(areaCadastro, classe);
botoes.unshift({ tipo: 'padrao', conteudo: "cancelar", classe: 'botPadrao', tip: "cancelar", id: 'cancelar', funcao: 'testaCancelar' });
const paramCadastro = {
dados: parametros.dados,
item: { objCabecalho: {}, pai: {}, li: { childNodes: [] } },
naoVinculaComItem: true,
onde: areaCadastro,
iniciaEditando: true,
naoRemontaAoGravar: true,
acaoBusca: 380,
botoes: botoes,
avisoExcluir: "Deseja cancelar ao processo de matrícula online" + "?",
incluiGravaGet: { pag: 40 }, // pagina de alunos para o cadastro do aluno
campos: campos,
gruposCampos: gruposCampos,
classe: classe,
antesDeExcluir: function () { return cancelar.call(this) },
antesMontar: function () { antesMontar.call(this) },
aposMontar: function () { aposMontar.call(this, parametros.titulo) },
antesDeGravar: function() { antesDeGravar.call(this) },
aposGravar: function (retorno) { gravouDadosAluno.call(this, retorno) },
testaCancelar: function () { testaCancelar.call(this) }
};
if (parametros.avisoGravarEspecifico) paramCadastro.avisoGravarEspecifico = parametros.avisoGravarEspecifico;
if (parametros.verificaMontaResp) paramCadastro.verificaMontaResp = parametros.verificaMontaResp;
if (parametros.refExt) paramCadastro.refExt = parametros.refExt;
const cadastro = new Cadastro(paramCadastro);
return cadastro;
}
function limpaAreaCadastro() {
const areaCadastro = obj('areaCadastro');
limpaConteudo(areaCadastro);
tiraClasse(areaCadastro, 'pedeCpf');
tiraClasse(areaCadastro, 'cadAluno');
tiraClasse(areaCadastro, 'pedeSenha');
tiraClasse(areaCadastro, 'pedeEmail');
tiraClasse(areaCadastro, 'escCurso');
tiraClasse(areaCadastro, 'confirMatric');
//tiraClasse(areaCadastro, 'valores');
}
function testaCancelar() {
// troca o id se for novo para não excluir direto, pedir a confirmação antes
const idOld = this.dados.id;
if (this.dados.id.toString().substring(0, 4) == 'novo') this.dados.id = this.dados.id.substring(2);
this.testaExclusao.call(this);
this.dados.id = idOld;
}
function cancelar() {
// aplica o "cancelar" não deixando passar para a função de exclusão padrão do cadastro
// volta ao início
$("#intro").show();
limpaAreaCadastro();
montaPedeCPF();
return false;
}
function antesMontar() {
this.incluiGravaPost = { idLicen: this.dados.idLicen };
$(_fd).insertBefore(this.onde);
if (this.classe == "cadAluno") {
testaDadosCobranca.call(this);
}
}
function aposMontar(msg) {
colocaTitulo.call(this, msg);
const campoCPF = this.camposID["cpf"];
campoCPF.objetoCampo.cmp = "cpf";
campoCPF.objetoCampo.gravaSempre = true;
if (this.classe == 'pedeSenha') {
const este = this;
const campoSenha = this.camposID["divSen"].objetoCampo;
const divSenha = campoSenha.elementoDiv;
campoSenha.botRecup = $("" + "recupere sua senha" + " ")
.appendTo(divSenha).on("click", function () { pedeEmailParaSenha.call(este) });
ajustaParaLogin.call(this);
//exibe e oculta senha digitada
let divSen = this.camposID["divSen"].objetoCampo.elementoDiv;
this.iconeOlho = $(' ').appendTo(divSen)
.on("click", function () {
let senhaInput = $("#sen");
let exibeSenha = senhaInput.attr("type") == "password" ? "text" : "password";
senhaInput.attr("type", exibeSenha);
$(this).removeClass( exibeSenha == "password" ? "olho_aberto" : "olho_fechado")
.addClass(exibeSenha == "password" ? "olho_fechado" : "olho_aberto");
});
}
if (this.classe != 'pedeSenha') botaoCopiaContatos.call(this);
}
function ajustaParaLogin() {
// coloca o ID "bot" no botão de enviar
const botEnviar = this.objBotoes.listaBotoes.find(bot => bot.objBotao.funcao == 'enviaSenha');
botEnviar.objBotao.elementoDom.setAttribute('id', 'bot');
// cria um form inócuo
$("").appendTo(this.divCadastro);
// troca o ID dos campos de usuário e senha
const camposID = this.camposID;
const dadosCPF = this.dados;
camposID['divUsu'].objetoCampo.campo.setAttribute('id', 'usu');
camposID['divSen'].objetoCampo.campo.setAttribute('id', 'sen');
// incializa os campos de login
login.ini();
// ajusta os parâmetros
login.url = "func/login.php";
login.origem = "matriculaonline";
login.text.botEntra = 'enviar';
login.cadastroOriginal = this;
login.bot.onclick = function(e) {
if (login.testa(e) != false) antesEnviarSenha.call(login.cadastroOriginal);
}
login.completaDados = function(dados) {
dados['idUsu'] = dadosCPF.id;
dados['idResp'] = dadosCPF.idResp;
dados['tipoAcesso'] = (camposID["acessoResp"]) ? camposID["acessoResp"].objetoCampo.valorRadioSelecionado() : 1;
}
}
function colocaTitulo(msg) {
this.titulo = $("" + msg + " ").appendTo(this.onde);
}
function antesDeGravar() {
if (this.classe == "cadAluno") {
desabilitaBotoes.call(this);
}
}
function gravouDadosAluno(retorno) {
if (retorno.grava != 1) {
// deu erro na gravação. informar ao usuário
} else {
// quando grava o responsável junto o idUsu do aluno retorna no infoRetorno
this.dados.id = (retorno.infoRetorno && retorno.infoRetorno.idUsu) ? retorno.infoRetorno.idUsu : retorno.id;
// gravou com sucesso -> próximo passo
buscaCursos.call(this, this.dados.id);
}
}
function buscaCursos(idUsu) {
limpaAreaCadastro();
$("#areaCadastro").addClass("escCurso");
$(" " + "Escolha o curso e a turma que irá cursar" + ": ").appendTo($("#areaCadastro"));
this.divCarregando = $("" + "buscando os cursos disponíveis" + "." + "por favor aguarde" + "...
").appendTo($('#areaCadastro'));
const url = 'matriculaonline/escCurso.php';
const info = "acao=turmas&idEsc=" + _idEsc + "&curs=" + _curso + "&idAluno=" + idUsu;
const esteCadastro = this;
new cnx.carrega(url, function () { retornoCursos.call(esteCadastro, this.resposta) }, null, "POST", info);
}
function retornoCursos(retorno) {
retorno = jQuery.parseJSON(retorno);
this.divCarregando.remove();
if (retorno['erro']) {
aviso.call(this, "entre em contato com a escola");
} else {
_sequencia.seleciona("curs");
infoCursos.call(this, retorno.cursos, retorno.pacotes, retorno.proximoEstagio, retorno.dadosMatric, retorno.rematric);
}
}
function carregaEvento(lista, esteCadastro){
return lista
.on("click", "ul.turmas>li:not(.mostraValores)", function() { buscaValores.call(esteCadastro, this); })
.on("click", "ul.turmas a.confirmar", function(event) { confirmaMatric.call(esteCadastro, this, event) })
.on("click", "ul.turmas a.cancelar", function(e) { e.stopPropagation(); cancelaMatric.call(esteCadastro, this) })
.on("click", "h5", function() { $(this).parent().children().not("h5, h6").toggle(); $(this).toggleClass("active")
});
}
function infoCursos(retornoCursos,retornoPacotes, voltouProxEstagio, ultimaMatric, rematric) {
const cursos = {};
const estagios = {};
const esteCadastro = this;
const listaCursos = carregaEvento($(""), esteCadastro);
const listaPacotes = carregaEvento($(""), esteCadastro);
var listaEstagios, listaTurmas;
if (ultimaMatric) {
let txtUltimaMatric = "Dando continuidade à sua matrícula" + ": ";
if (ultimaMatric.curso) txtUltimaMatric += ultimaMatric.curso;
if (ultimaMatric.estagio) txtUltimaMatric += ' - ' + ultimaMatric.estagio;
if (ultimaMatric.turma) txtUltimaMatric += ", " + "turma" + ": " + ultimaMatric.turma;
if (ultimaMatric.fim) txtUltimaMatric += " " +
((ultimaMatric.atual == "1") ? "que terminará em" : "finalizada em") + " " + ultimaMatric.fim + " ";
$("" + txtUltimaMatric + "
").insertBefore('#areaCadastro').append(_fd);
if (retornoCursos.length == 0) {
$("" + "Não existem próximos estágios para sua rematrícula automática" + ", "
+ " por favor entre em contato com a escola" + "." + " ").appendTo(listaCursos);
$("#areaCadastro.escCurso h6.titulo").hide()
}
}
function criaHorariosTurmas(turma){
horarios = turma.horarios ? "" : "
";
if (turma.horarios) {
const hora = { "ini": turma.horarios[0].ini, "fim": turma.horarios[0].fim };
const horaDiferente = turma.horarios.find(horario => horario.ini != hora.ini || horario.fim != hora.fim);
const horariosTxt = [];
turma.horarios.map(horario => {
horariosTxt.push(horario.dia + ((horaDiferente) ? " das " + horario.ini + " às " + horario.fim : ""));
});
horarios = horariosTxt.join(" / ");
if (!horaDiferente) horarios += " das " + hora.ini + " às " + hora.fim;
horarios = "" + horarios + "
";
}
return horarios;
}
function criaLiTurma(turma) {
const liTurma = $(" ");
if (turma.cursoEstagio) liTurma.append($("" + turma.cursoEstagio + " "));
liTurma.append($("" + "turma" + ": " + turma.turma + "
"));
if (turma.obsTurma) liTurma.append($("" + turma.obsTurma + " "));
if (turma.ini) liTurma.append($("" + "início" + ": " + turma.ini + "
"));
if (turma.fim) liTurma.append($("" + "término" + ": " + turma.fim + "
"));
const horariosTurmas = criaHorariosTurmas(turma);
liTurma.append(horariosTurmas);
return liTurma;
}
retornoCursos.map(turma => {
if (!cursos[turma.idCurs]) {
const liCurso = $(" ").appendTo(listaCursos);
liCurso.append($("" + turma.curso + " "));
if (turma.objCurso) liCurso.append($("" + turma.objCurso + " "));
listaEstagios = $("").appendTo(liCurso);
cursos[turma.idCurs] = turma.curso;
}
if (!estagios[turma.idEst]) {
const liEstagio = $(" ").appendTo(listaEstagios);
if (turma.estagio) {
liEstagio.append($("" + turma.estagio + " "));
if (turma.objEstagio) liEstagio.append($("" + turma.objEstagio + " "));
}
listaTurmas = $("").appendTo(liEstagio);
estagios[turma.idEst] = turma.estagio;
}
const liTurma = criaLiTurma(turma);
listaTurmas.append(liTurma);
});
retornoPacotes.map(pacote => {
const liPacote = $(" ").appendTo(listaPacotes);
liPacote.append($("" + pacote.nome + " "));
const ulGrupoTurmas = $("
").appendTo(liPacote);
pacote.gruposTurmas.forEach(grupoTurmas => {
const camposTurmas = $("").appendTo(ulGrupoTurmas);
grupoTurmas.turmas.forEach(turma => {
const liTurma = criaLiTurma(turma);
camposTurmas.append(liTurma);
});
});
});
if (rematric.outrosCursos == "1" && voltouProxEstagio == "1") {
const botVerCursos = $("").on('click', 'a:not(.desabilitado)', function () { buscaOutrosCursos.call( esteCadastro )})
listaCursos.append(botVerCursos);
}
$("#areaCadastro").append(_fd).append(listaCursos);
$("#areaCadastro").append(_fd).append(listaPacotes);
}
function buscaOutrosCursos ( ){
limpaAreaCadastro();
idUsu = this.dados.id
$("#areaCadastro").addClass("escCurso");
$(" " + "Escolha o curso e a turma que irá cursar" + ": ").appendTo($("#areaCadastro"));
this.divCarregando = $("" + "buscando os cursos disponíveis" + "." + "por favor aguarde" + "...
").appendTo($('#areaCadastro'));
const url = 'matriculaonline/escCurso.php';
const info = "acao=turmas&idEsc=" + _idEsc + "&curs=" + _curso + "&todos=1" + "&idUsu=" + idUsu;
//log(this)
const esteCadastro = this;
new cnx.carrega(url, function () { retornoCursos.call(esteCadastro, this.resposta) }, null, "POST", info);
}
function pedeEmailParaSenha() {
const parametros = { dados: { id: this.dados.id }, titulo: "Por favor informe seu e-mail para recuperar a senha" };
parametros.dados["cpf"] = formataCPF(this.camposID['cpf'].objetoCampo.valor);
const campos = [
{ label: "CPF", id: 'cpf', tipo: CampoCpf, tab: 20, sqlTipo: "texto", quebra: true },
{ label: "informe seu e-mail cadastrado", id: 'email', tipo: CampoEmail, cmp: "email", quebra: true, obrigatorio: true,
posLabel: "Se não lembra seu e-mail cadastrado" + "," + " por favor entre em contato com a escola" },
];
const botEnviar = {
tipo: 'padrao', conteudo: 'enviar', classe: 'botPadrao enviar', tip: 'enviar', id: 'enviar',
funcao: 'enviaEmailParaSenha', enviaEmailParaSenha: function () { enviaEmailParaSenha.call(this.pai) }
};
montaCadastro.call(this, parametros, 'pedeEmail', campos, null, [ botEnviar ]);
}
function enviaEmailParaSenha() {
const campoEmail = this.camposID['email'].objetoCampo;
const valida = campoEmail.validaEspecifico();
const email = campoEmail.valor;
if (email == '') aviso.call(this, 'por favor informe seu e-mail cadastrado', 'emailVazio');
else if (valida && valida.aviso) aviso.call(this, valida.aviso);
else {
this.botEnviar = this.botoes.find(bot => bot.id == "enviar").objBotao;
this.botEnviar.desabilita();
const url = 'matriculaonline/buscaEmail.php';
const info = 'email=' + email + '&id=' + this.dados.id + "&idEsc=" + _idEsc;
const esteCadastro = this;
new cnx.carrega(url, function () { retornaEmailSenha.call(esteCadastro, this.resposta) }, null, "POST", info);
}
}
function retornaEmailSenha(retorno) {
retorno = jQuery.parseJSON(retorno);
if (retorno.erro > 0) {
aviso.call(this, retorno.msg || retorno.erro);
this.botEnviar.habilita();
} else if (retorno.envio == 1) {
let nome = retorno.emails.split('<')[0];
nome = nome.substr(0, nome.length - 1);
let email = retorno.emails.split('<')[1];
email = email.substr(0, email.length - 1);
let paramAluno = { dados: { id: this.dados.id, cpf: this.dados.cpf } };
paramAluno.titulo = "Olá" + nome + "," + "informe seus dados de acesso para continuar o processo"+":"
const novoCadastro = pedeSenha.call(this, paramAluno);
aviso.call(novoCadastro, "O e-mail de senha foi enviado para" + email);
} else {
aviso.call(this, "O e-mail não pôde ser enviado"+"." + "Por favor tente novamente"+". ");
this.botEnviar.habilita();
}
}
function naoAlterar() {
var avisos = [];
// volta os campos para os valores originais e testa-os
for (var i = 0; i < this.campos.length; i++) {
const campo = this.campos[i].objetoCampo;
if (campo.campo) campo.colocaValorOriginal.call(campo);
campo.validaCampo.call(campo, avisos);
}
if (avisos.length > 0) {
const cadastro = this;
this.avisoNaoGrava = new clAviso( { avisos: avisos, tempoAberto: 0, temFechar: true,
textoTit: "por favor verifique" + ":", aposFechar: function() { habilitaBotoes.call(cadastro); } } );
this.onde.appendChild(this.avisoNaoGrava.cria());
this.avisoNaoGrava.mostra();
desabilitaBotoes.call(this);
} else {
const idUsu = this.dados.id;
if (!this.naoGrava) buscaCursos.call(this, idUsu);
}
}
function desabilitaBotoes() { this.botoes.map(bot => bot.objBotao.desabilita.call(bot.objBotao)); }
function habilitaBotoes() { this.botoes.map(bot => bot.objBotao.habilita.call(bot.objBotao)); }
function buscaValores(li) {
colocaClasse(li, 'mostraValores');
$("" + "buscando valores"+"..."+"
").appendTo(li);
const idPacote = $(li).closest('div.divGrupoTurmas').attr('id')
const idTurm = li.getAttribute("id").split("_")[1];
const url = 'matriculaonline/escCurso.php';
const info = "acao=valores&idTurm=" + idTurm + "&idPacote=" + idPacote ;
const esteCadastro = this;
new cnx.carrega(url, function () { retornoValores.call(esteCadastro, this.resposta, li, idTurm) }, null, "POST", info);
}
function retornoValores(retorno, li, idTurm) {
retorno = jQuery.parseJSON(retorno);
$(li).find("div.carregando").remove();
if (!retorno.idTurm) {
// deu algum erro, informar ao usuário
} else {
if (retorno.idTurm == idTurm) infoValores.call(this, retorno.valores, li, idTurm);
}
}
function infoValores(valores, li, idTurm) {
const ulGrupoTurmas = $(li).closest('ul.turmas')
const ulCursos = ulGrupoTurmas.closest('ul.cursos');
const divValores = $("
");
const listaValores = $("").appendTo(divValores);
const taxaMatricula = valores.filter(val => val.idCat == 1);
const desconto = valores.filter(val => val.idCat == 1);
if (desconto > 0) { }
if (taxaMatricula.length > 0) listaValores.append(valoresPorTipo.call(this, "taxa de matrícula", taxaMatricula, 'txMat', idTurm));
const matDidat = valores.filter(val => val.idCat == 48);
if (matDidat.length > 0) listaValores.append(valoresPorTipo.call(this, "material didático", matDidat, 'matDid', idTurm));
const pagamentos = valores.filter(val => val.idCat != 1 && val.idCat != 48);
if (pagamentos.length > 0) listaValores.append(valoresPorTipo.call(this, "pagamentos", pagamentos, 'pagtos', idTurm));
var texto = "Confirma a matrícula nesta turma" + " ";
if (taxaMatricula.length > 0 || matDidat.length > 0 || pagamentos.length > 0) {
if (taxaMatricula.length > 1 || matDidat.length > 1 || pagamentos.length > 1) {
texto += "com os valores selecionados";
} else {
texto += "com os valores indicados";
}
}
divValores.append($("" + texto + "? "));
$("").appendTo(divValores);
if(ulCursos.length > 0){
$(li).addClass('turma').append(divValores);
$(li).find('div.nome, span.obj, div.data, p.horarios').css({'opacity': '0.5', 'pointer-events': 'none'});
} else{ divValores
ulGrupoTurmas.find('li:last').after(divValores);
ulGrupoTurmas.find('>li').css({'opacity': '0.5', 'pointer-events': 'none'});
ulGrupoTurmas.find('span.obj, div.data, p.horarios').css('display', 'none');
}
}
function valoresPorTipo(titulo, lista, nome, idTurm) {
const li = $("" + titulo + " ");
const ul = $("").appendTo(li);
const quant = lista.length;
lista.map(val => {
const liValor = $(" ");
const tipoInput = (quant > 1) ? "radio" : "hidden";
$(" ").appendTo(liValor);
const labelValor = $(" 1) ? " for='val_" + val.id + "' class='comInput'" : "") + "> ").appendTo(liValor);
if (val.nome.length > 0) $("" + val.nome + ": ").appendTo(labelValor);
if (val.valor.length > 0) $("R$" + val.valor + " ").appendTo(labelValor);
if (val.vezes.length > 0) $("em " + val.vezes + " " + ((val.vezes > 1) ? "vezes" : "vez") + " ").appendTo(labelValor);
if (val.desc) {
let desconto = val.tipDesc == 1 ? `${val.desc}%` : `R$${val.desc}`;
$("" + "desconto de" + ": " + desconto + " ").appendTo(labelValor);
}
if (val.descAntecip) {
let descontoAntecip = val.tipDescAntecip == 1 ? `${val.descAntecip}%` : `R$${val.descAntecip}`;
$("" + "desconto até o vencimento"+":" + descontoAntecip + " ").appendTo(labelValor);
}
liValor.appendTo(ul);
});
return li;
}
function confirmaMatric(bot) {
bot = $(bot);
const divBotoes = bot.parent()
const divValores = bot.closest("div.valores");
const inputs = divValores.find("input[type=radio]");
if (!this.divCarregando) { this.divCarregando = $("Carregando...
"); }
if (inputs.length > 0) {
const grupos = [];
inputs.each((cont, input) => grupos[input.getAttribute("name")] = true);
const avisos = [];
Object.keys(grupos).map(nome => {
const grupo = inputs.filter("[name='" + nome + "']");
const selecionadosGrupo = grupo.filter(":checked");
if (selecionadosGrupo.length == 0) { const titulo = grupo.first().closest('li:not(.valoresTipo)').find('h7').html();
avisos.push("* " + "Selecione uma opção de" + " " + titulo);
}
});
if (avisos.length > 0) {
bot.prop('disabled', true).addClass("desabilitado");
const divAviso = $("" + avisos.join(" ") + "
");
bot.before(divAviso);
inputs.on('click', function () { divAviso.remove(); bot.prop('disabled', false).removeClass("desabilitado"); });
} else {
$("ul.cursos, ul.pacotes").addClass("desabilitado");
exibirCarregamento.call(this, divBotoes);
gravaMatricula.call(this, divBotoes);
}
} else {
$("ul.cursos, ul.pacotes").addClass("desabilitado");
exibirCarregamento.call(this, divBotoes);
gravaMatricula.call(this, divBotoes);
}
}
function exibirCarregamento(divBotoes) {
let msgEtapa = 'enviando informações.';
this.divCarregando = $("" + msgEtapa + "
");
this.divCarregando.appendTo(divBotoes.empty());
this.divEvolucao = $("
").appendTo(this.divCarregando);
}
function cancelaMatric(bot) {
const ulTurmas = $(bot).closest('ul.turmas');
ulTurmas.find('li').css({ 'opacity': '', 'pointer-events': ''
}).each(function() {
$(this).find('span.obj, div.data, div.nome, p.horarios').removeAttr('style');
});
ulTurmas.find("div.valores").remove();
ulTurmas.find('li').removeClass('mostraValores');
}
function gravaMatricula(divBotoes, etapa, dadosMatric) {
const idPacote = divBotoes.closest('div.divGrupoTurmas').attr('id');
const divValores = divBotoes.closest("div.valores");
const idTurm = [];
if(idPacote){ const ulTurmas = divValores.closest("ul.turmas");
ulTurmas.children().filter("li").each((cont, li) => idTurm.push(li.getAttribute("id").split("_")[1]));
}else { const liTurma = divValores.closest("li.turma");
liTurma.filter("li").each((cont, li) => idTurm.push(li.getAttribute("id").split("_")[1]));
}
const idUsu = this.dados.id;
const idsTaxas = [];
divValores.find("input:checked, input[type=hidden]").each((cont, input) => idsTaxas.push(input.getAttribute("id").split("_")[1]));
//*let msgEtapa = novaMsgEtapa || 'enviando informações.';
etapa = etapa || "1";
let totCobrancas = this.totCobrancas || 0;
if (dadosMatric && typeof(dadosMatric["totCobrancas"]) != "undefined") this.totCobrancas = dadosMatric["totCobrancas"];
// para no começo do processo a barrinha andar um pouco colocamos o total = 30 (antes de calcular o total de cobranças)
this.totEtapas = (typeof(this.totCobrancas) != "undefined") ? this.totCobrancas + 5 : 30;
// para não chegar no 100% antes de finalizar
this.totEtapas += 1;
if (etapa > 1) {
const percent = (100 * etapa / this.totEtapas).toFixed(1) + "%";
const spanBarrinha = this.divEvolucao.find("span");
spanBarrinha.animate({ "width": percent }, 500);
this.divEvolucao.find("label").text(percent);
}
const url = 'matriculaonline/escCurso.php';
let info = "acao=matric&idUsu=" + idUsu + "&idTurm=" + idTurm.join(",") + "&idTaxa=" + idsTaxas.join(",")
+ "&idEsc=" + _idEsc + "&etapa=" + etapa;
if (idPacote) info += "&idPacote=" + idPacote;
//if (dadosMatric) info += "&dadosMatric=" + JSON.stringify(dadosMatric);
if (dadosMatric) {
if (!Array.isArray(dadosMatric)) dadosMatric = [dadosMatric];
info += "&dadosMatric=" + JSON.stringify(dadosMatric);
if (totCobrancas > 0) info += "&totCobrancas=" + totCobrancas;
let etapaCob = 'fim'; // coloca EtapaCob no info se todas as matrículas estiverem = 'fim'
let etapaFim = -1; // coloca etapaFim no info se todas as matrículas estiverem com etapaFim iguais
dadosMatric.map(matric => {
if (matric.etapaCob != 'fim') etapaCob = '';
if (etapaFim == -1 && matric.etapaFim) etapaFim = matric.etapaFim;
if (matric.etapaFim != etapaFim) etapaFim = '';
});
if (etapaCob == 'fim') info += "&etapaCob=fim";
if (etapaFim != '' && etapaFim != -1) info += "&etapaFim=" + etapaFim;
}
const esteCadastro = this;
new cnx.carrega(url, function() { gravandoMatric.call(esteCadastro, this.resposta, divBotoes) }, null, "POST", info);
}
function gravandoMatric(resposta, divBotoes) {
resposta = jQuery.parseJSON(resposta);
let etapa = (resposta.etapa > "0") ? resposta.etapa : "fim";
const idPacote = divBotoes.closest('div.divGrupoTurmas').attr('id');
//const infoValores = resposta.matric.valores
//log(infoValores);
//if (infoValores) {
//log("entrou");
//etapa = "taxa de matricula"
//}
const novaMsgEtapa = resposta.msgEtapa;
this.divCarregando.children().first().text(novaMsgEtapa);
const dadosMatric = resposta.matric;
if (etapa != "fim") {
const proximaEtapa = parseInt(etapa) + 1;
gravaMatricula.call(this, divBotoes, proximaEtapa, dadosMatric);
} else if (etapa == "fim") {
gravouMatric.call(this, resposta, idPacote );
}
}
function gravouMatric(retorno, idPacote) {
if (retorno.gravou == '1') {
limpaAreaCadastro();
_sequencia.seleciona("confirm");
const areaCadastro = $("#areaCadastro").addClass("confirMatric");
const matric = (idPacote) ? retorno.matric[0] : retorno.matric;
const dadosMatric = (idPacote) ? matric.dadosMatric[0] : matric.dadosMatric;
const dadosPacoteCurso = matric.dadosMatric
var html = "" +
"
" + "Parabéns" + "!!!" + " " +
"
" + "Seu cadastro foi realizado junto à escola" + "." + "
" +
"
" + "Confira as informações abaixo" + ". " + "Qualquer dúvida, por favor entre em contato direto com sua escola" + "." +
"
" + "nome" + ": " + dadosMatric.nome + " " +
"" + "CPF" + ": " + dadosMatric.cpf + " " +
"" + "email" + ": " + dadosMatric.email + " " +
"" + "celular" + ": " + ((dadosMatric.ddi) ? "+" + dadosMatric.ddi + " " : "") +
((dadosMatric.ddd) ? "(" + dadosMatric.ddd + ") " : "") + dadosMatric.cel + " " +
"
";
if (idPacote) {
html += "
" + dadosMatric.pacote + "
";
dadosPacoteCurso.forEach(dadosCurso => { html += visualizaCurso(dadosCurso);});
} else {
const dadosCurso = dadosPacoteCurso; html += visualizaCurso(dadosCurso);
}
const valores = matric.valores;
if (valores && valores.length) {
html += "
";
};
if (matric.cobrancas && matric.cobrancas.length > 0) {
const linkBoleto = "../interno/pag_boleto.asp?cod=";
const txtCobranca = (matric.cobrancas.length > 1) ? "dos valores abaixo" : "do valor abaixo";
html += "
Para confirmar a sua matrícula por favor efetue o pagamento " + txtCobranca +
" (clique sobre cada link para abrir o boleto):
";
};
html += "
";
areaCadastro.append(_fd).append($(html));
if (matric.idContrato) {
const esteCadastro = this;
this.botContrato = $("").appendTo($("div.confirmacao"))
.on('click', 'a:not(.desabilitado)', function () { dialogContrato.call(esteCadastro, matric.idContrato, retorno) });
};
if (matric.cobrancas && matric.cobrancas.length > 0) {
areaCadastro.find("a.abreBoleto").on('click', function(e) {
e.preventDefault();
const url = this.getAttribute("href");
const iframe = "";
const altura = Math.floor(tamanhoTela().altura * 0.80);
$("" + iframe + "
").dialog({ autoOpen: false, modal: true, height: altura,
width: '80%', show: false }).dialog('open');
});
}
}
}
function visualizaCurso(dadosCurso) {
return "" +
"" + "curso" + ": " + dadosCurso.curso + ((dadosCurso.estagio) ? " - " + dadosCurso.estagio : "") + " " +
"" + "turma" + ": " + dadosCurso.turma + " " +
"" + "início" + ": " + dadosCurso.ini + " " +
"" + "término" + ": " + dadosCurso.fim + " " +
"
";
}
function verificaMontaResp() {
const camposID = this.camposID;
const comResp = camposID["respSim"].objetoCampo.valor;
const campos = ["nomeResp", "emailResp","cpfResp", "ddiFoneResp", "dddFoneResp", "foneResp", "ddiCelResp", "dddCelResp",
"celResp", "cepResp", "ruaResp", "numResp", "complResp", "bairroResp", "paisResp", "estResp", "cidResp" ];
const funcaoHabilita = (comResp == 1) ? "habilita" : "desabilita";
const funcaoExibe = (comResp == 1) ? "exibe" : "oculta";
campos.map(nomeCampo => {
const objCampo = camposID[nomeCampo].objetoCampo;
objCampo[funcaoHabilita].call(objCampo);
objCampo[funcaoExibe].call(objCampo);
});
const gruposCampos = ["respFinanc"]
gruposCampos.map(nomeCampo => $(this.gruposCamposID[nomeCampo].divGrupo)[comResp == 1 ? "show" : "hide"]());
}
function botaoCopiaContatos() {
const cadastro = this;
const campoBot = this.gruposCamposID["respFinancAluno"].divGrupo;
campoBot.botaoCopia = $("" +
"copiar dados"+ " ").appendTo(campoBot)
.on("click", function () { copiaContatos.call(cadastro) });
}
function copiaContatos() {
const cadastro = this;
const campos = {
"email": "emailResp", "ddiFone": "ddiFoneResp", "dddFone": "dddFoneResp", "fone": "foneResp",
"ddiCel": "ddiCelResp", "dddCel": "dddCelResp", "cel": "celResp", "cep": "cepResp", "rua": "ruaResp",
"num": "numResp", "compl": "complResp", "bairro": "bairroResp", "pais": "paisResp", "est": "estResp","cid": "cidResp"
};
Object.keys(campos).map(nomeCampo => { copiacadaCampo.call(cadastro, nomeCampo, campos) });
}
function copiacadaCampo(nomeCampo, campos) {
const camposID = this.camposID;
const campoAluno = camposID[nomeCampo].objetoCampo;
const campoResp = camposID[campos[nomeCampo]].objetoCampo;
campoResp.colocaValor($(campoAluno.campo).val());
// se for campo de país, após colocar o valor atualiza a lista de estados para depois poder selecionar o estado
if (nomeCampo == "pais") {
const campoEstado = camposID["estResp"].objetoCampo;
campoEstado.verificaLista.call(campoEstado, campoResp);
}
// se for campo de estado, após colocar o valor atualiza a lista de cidades para depois poder selecionar a cidade
if (nomeCampo == "est") {
const campoCidade = camposID["cidResp"].objetoCampo;
campoCidade.verificaLista.call(campoCidade, campoResp);
}
}