protected void btnEmitir_Click(object sender, EventArgs e) { try { var retornoEmissao = ManifestoEletronicoDAO.Instance.EmitirMDFe(idMDFe.GetValueOrDefault(), false); if (retornoEmissao != "Arquivo recebido com sucesso") { // Se houver falha de emissão do MDFe por erro de conexão, verifica se o usuário deseja emitir em contingencia offline if (retornoEmissao.Contains("Impossível conectar-se ao servidor remoto")) { Response.Redirect("~/Listas/LstManifestoEletronico.aspx?FalhaEmitirMDFe=true&IdMDFe=" + idMDFe.GetValueOrDefault()); } // Redireciona para a lista com a mensagem de retorno Response.Redirect("~/Listas/LstManifestoEletronico.aspx?Retorno=" + retornoEmissao); } // Consulta a situação var retorno = ConsultaSituacao.ConsultaSitLoteMDFe(idMDFe.GetValueOrDefault()); Response.Redirect("~/Listas/LstManifestoEletronico.aspx?Retorno=" + retorno); } catch (Exception ex) { // Se for erro na validação do arquivo XML, abre popup para mostrar erros if (ex.Message.Contains("XML inconsistente.")) { string msg = MensagemAlerta.FormatErrorMsg("", ex).Replace("XML inconsistente.", "").Replace("Linha:", "%bl%%bl%Linha:"); ClientScript.RegisterClientScriptBlock(typeof(string), "msg", "openWindow(410, 540, '../Utils/ShowMsg.aspx?title=Falha na validação do arquivo do MDF-e&msg=" + msg + "')", true); } else { MensagemAlerta.ErrorMsg("Falha ao emitir o MDFe.", ex, Page); } } }
protected void grdManifestoEletronico_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "ConsultaSitLoteMDFe") { try { // Consulta a situação do lote e da MDFe, caso o lote tenha sido processado string msg = ConsultaSituacao.ConsultaSitLoteMDFe(Glass.Conversoes.StrParaInt(e.CommandArgument.ToString())); MensagemAlerta.ShowMsg(msg, Page); grdManifestoEletronico.DataBind(); } catch (Exception ex) { MensagemAlerta.ErrorMsg("Falha ao consultar situação.", ex, Page); } } else if (e.CommandName == "ConsultaSitMDFe") { try { // Consulta a situação do lote e do MDFe, caso o lote tenha sido processado string msg = ConsultaSituacao.ConsultaSitMDFe(Glass.Conversoes.StrParaInt(e.CommandArgument.ToString())); MensagemAlerta.ShowMsg(msg, Page); grdManifestoEletronico.DataBind(); } catch (Exception ex) { MensagemAlerta.ErrorMsg("Falha ao consultar situação.", ex, Page); } } else if (e.CommandName == "EmitirMDFeOffline") { try { var idManifestoEletronico = Glass.Conversoes.StrParaInt(e.CommandArgument.ToString()); var retorno = ManifestoEletronicoDAO.Instance.EmitirMDFeOffline(idManifestoEletronico); // Consulta a situação se o arquivo tiver sido enviado corretamente. if (retorno == "Arquivo recebido com sucesso") { retorno = ConsultaSituacao.ConsultaSitLoteMDFe(idManifestoEletronico); } Response.Redirect("~/Listas/LstManifestoEletronico.aspx?Retorno=" + retorno); } catch (Exception ex) { // Se for erro na validação do arquivo XML, abre popup para mostrar erros if (ex.Message.Contains("XML inconsistente.")) { string msg = MensagemAlerta.FormatErrorMsg("", ex).Replace("XML inconsistente.", "").Replace("Linha:", "%bl%%bl%Linha:"); ClientScript.RegisterClientScriptBlock(typeof(string), "msg", "openWindow(410, 540, '../Utils/ShowMsg.aspx?title=Falha na validação do arquivo do MDF-e&msg=" + msg + "')", true); } else { MensagemAlerta.ErrorMsg("Falha ao emitir o MDFe.", ex, Page); } } } }