Olá Pessoal!
Estou com uma certa dificuldade em usar variáveis globais no javascript.
Eu tenho duas funções que utilizam o callback (dwr) para comunicação com o java, cada função retorna uma mensagem, eu gostaria de setar essa mensagem em variáveis globais para a exibição delas na tela de uma só vez, se eu fizer a exibição dentro da função uma sobrescreve a outra.
Quando chega na função crtiticasRegua as variáveis globais estão todas indefinidas
Alguém sabe como poderia fazer isso
segue meu código:
var msgAuto;
var msgResidencial;
var msgContrato;
var msgGravLog;
var msgServicoAuto;
function enviar() {
gravaDadosNaBaseSIMAS();
efetuaEnvioEmail();
crtiticasRegua();
}
}
function efetuaEnvioEmail() {
try {
var melhorDiaAuto = jQuery('#melhorDiaDF').val();
var prazoCorteAuto = jQuery("#prazoCorrenteDF").val();
var prazoPreviaAuto = jQuery("#prazoPreviaDF").val();
var bean = {
numeroDoContrato : jQuery("#contratoResidencial").val(),
prazoDePreviaAtual : jQuery("#prazoPreviaDF").val(),
prazoDePreviaNovo : jQuery("#cdPrazoPreviaSimulacao").val(),
prazoDeCorteAtual : jQuery("#prazoCorrenteDF").val(),
prazoDeCorteNovo : jQuery("#cdPrazoCorteSimulacao").val(),
codWorksite : jQuery("#cdWorksite").val()
};
if (melhorDiaAuto != '' && prazoCorteAuto != '' && prazoPreviaAuto != '') {
FacadeReguaFatura.efetuaEnvioEmail(bean, {
callback : function(retorno) {
if (retorno[0] !== null && retorno[1] !== "") {
msgServicoAuto = retorno[0];
alert("Envio Email" + msgServicoAuto);
}
if (retorno[1] !== null && retorno[1] !== "") {
if (retorno[1] > 1) {
msgAuto = "E-Mail enviado para GECOF com Sucesso!";
alert("Envio Email" + msgAuto);
} else
msgAuto = "Não foi possível enviar o e-mail para a GECOF!";
alert("Envio Email" + msgAuto);
}
}
if (retorno[2] !== null && retorno[2] !== "") {
msgGravLog = retorno[2];
alert("Envio Email" + msgGravLog);
}
},
errorHandler:function(errorString, exception) {
alert("Erro ao chamar o metodo gravaDadosNaBaseSIMAS "+errorString);
}
});
}
} catch (e) {
alert("Deu erro envio email");
}
}
function gravaDadosNaBaseSIMAS() {
msgCriticas = new Array();
try {
var melhorDiaResidencial = jQuery('#melhorDiaMD').val();
var prazoCorteReidencial = jQuery('#prazoCorrenteMD').val();
var prazoPreviaResidencial = jQuery('#prazoPreviaMD').val();
var numeroContrato = jQuery("#contratoResidencial").val();
var quatidadeDeDiasReserva = jQuery("#cdPrazoPreviaSimulacao").val();
var quantidadeDeDiasCorte = jQuery("#cdPrazoCorteSimulacao").val();
if (numeroContrato != '' && numeroContrato != null) {
if (melhorDiaResidencial != '' && prazoCorteReidencial != '' && prazoPreviaResidencial != '') {
FacadeReguaFatura.gravaDadosNaBaseSIMAS(numeroContrato,
quatidadeDeDiasReserva, quantidadeDeDiasCorte, {
callback : function(retorno) {
msgResidencial = retorno.mensagem;
alert("Grava SIMAS" + msgResidencial);
},
errorHandler:function(errorString, exception) {
alert("Erro ao chamar o metodo gravaDadosNaBaseSIMAS "+errorString);
}
});
}
} else {
jQuery("#msgContrato").val("Não foi possivel gravar os dados da grid residencial porque o contrato não foi localizado.");
alert("CONTRATO" + jQuery('#msgContrato').val());
}
} catch (e) {
alert("Deu erro grava dados SIMAS!");
}
}
function crtiticasRegua() {
var msgCriticas = new Array();
msgCriticas[0] = msgAuto;
msgCriticas[1] = msgResidencial;
msgCriticas[2] = msgContrato;
msgCriticas[3] = msgGravLog;
msgCriticas[4] = msgServicoAuto;
var criticas = new Array();
var tamanho = msgCriticas.length;
for ( var i = 0; i < tamanho; i++) {
if (msgCriticas[i] !== null && msgCriticas[i] !== "") {
criticas.add(msgCriticas[i]);
}
}
}