void oFrmChave_DoOnOkClick(object sender, EventArgs e) { //consulta status do servidor ClientEnvironment manager = null; try { manager = Conexao.CreateManager(Program.ConAux); FuncaoAutomacao oFuncao = new FuncaoAutomacao(Program.empresaSelecionada, manager, Program.enviarInformacoesSobreErros); if (!oFuncao.ConsultaProcNFe(oFrmChave.TextResposta.Text)) { throw new Exception("Erro não mapeado. Verificar o LOG do sistema."); } else { //arquivo de retorno estara em oParam.pastaRecibo + ChaveNFe + "-sit.xml", ITRetConsSitNFe oRetConsSitNFe = (ITRetConsSitNFe)XMLUtils.CarregaXML_HD(Program.GetParametro(Program.empresaSelecionada, manager).pastaRecibo + oFrmChave.TextResposta.Text + "-sit.xml", oFuncao.oParam.versao, "TRetConsSitNFe"); oFrmChave.Close(); oFrmChave.Dispose(); FrmVisualizaXML oFrmXML = new FrmVisualizaXML(XMLUtils.GetXML(oRetConsSitNFe, oFuncao.oParam.versao)); oFrmXML.ShowDialog(); oRetConsSitNFe = null; oFuncao = null; } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Conexao.DisposeManager(manager); } }
void oFrm_DoOnOkEvtCanc_Click(object sender, EventArgs e) { ClientEnvironment manager = null; Parametro oParam = null; try { if (String.IsNullOrEmpty(oFrm.TextResposta.Text)) { throw new Exception("Motivo não foi informado."); } manager = Conexao.CreateManager(Program.ConAux); oParam = Program.GetParametro(Program.empresaSelecionada, manager); //verificar se já existe algum evento desse tipo registrado para a NFe //verificar nSeqEvento int nSeqEvento = oNFe.CarregarEventos(manager) .Count(ev => ev.tpEvento == TEventoInfEventoTpEvento.Cancelamento && (ev.codigoSituacao == TipoSituacaoEvento.FinalizadoAprovado135 || ev.codigoSituacao == TipoSituacaoEvento.FinalizadoAprovado136 || ev.codigoSituacao == TipoSituacaoEvento.FinalizadoAprovado155)) + 1; var oEvento = (ITEvento)XMLUtils.XMLFactory(oParam.versao, "TEvento"); var oProtNFe = (ITProtNFe)XMLUtils.CarregaXML_STR(oNFe.xmlProcesso, oNFe.versao, "TProtNFe"); //carregar dados do evento - Cancelamento oEvento.versao = oParam.versaoDadosEventos; oEvento.infEvento = (ITEventoInfEvento)XMLUtils.XMLFactory(oParam.versao, "TEventoInfEvento"); //“ID” + tpEvento + chave da NF-e + nSeqEvento oEvento.infEvento.Id = String.Format("ID110111{0}{1:00}", oProtNFe.infProt.chNFe, nSeqEvento); oEvento.infEvento.cOrgao = oParam.UF.ToCOrgaoIBGE(); oEvento.infEvento.tpAmb = oProtNFe.infProt.tpAmb; oEvento.infEvento.Item = oNFe.chaveNota.Substring(9, 14); oEvento.infEvento.ItemElementName = ITCTypeCNPJCPF.CNPJ; oEvento.infEvento.chNFe = oProtNFe.infProt.chNFe; //Data e hora do evento no formato AAAA-MM-DDThh:mm:ssTZD //(UTC - Universal Coordinated Time, onde TZD pode ser -02:00 (Fernando de Noronha), //-03:00 (Brasília) ou -04:00 (Manaus), no horário de verão serão -01:00, -02:00 e -03:00. //Ex.: 2010-08-19T13:00:15-03:00. oEvento.infEvento.dhEvento = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzzz"); oEvento.infEvento.tpEvento = TEventoInfEventoTpEvento.Cancelamento.GetXmlEnumAttributeValueFromEnum(); oEvento.infEvento.nSeqEvento = nSeqEvento.ToString(); oEvento.infEvento.verEvento = TEventoInfEventoVerEvento.Item100; oEvento.infEvento.detEvento = (ITEventoInfEventoDetEvento)XMLUtils.XMLFactory(oParam.versao, "TEventoInfEventoDetEvento"); oEvento.infEvento.detEvento.descEvento = TEventoInfEventoDetEventoDescEvento.Cancelamento.GetXmlEnumAttributeValueFromEnum(); oEvento.infEvento.detEvento.versao = TEventoInfEventoDetEventoVersao.Item100; oEvento.infEvento.detEvento.nProt = oProtNFe.infProt.nProt; oEvento.infEvento.detEvento.xJust = oFrm.TextResposta.Text.Trim(); oProtNFe = null; //salvar na caixa de entrada var date = DateTime.Now; XMLUtils.SalvaXML(oParam.pastaEntrada + "evtCanc_" + date.ToString("yyMMdd") + oParam.empresa + date.Ticks.ToString() + ".xml", oEvento, oParam.versao); String msgRet = "Pedido gerado com sucesso!"; if (!Program.empresasHabilitadas.First(em => em.cnpj == Program.empresaSelecionada).AutomacaoHabilitada&& !Program.ServicoHabilitado) { msgRet += " Automação esta desabilitada. Favor Iniciar Automação para enviar pedido."; } MessageBox.Show(msgRet); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { oFrm.Close(); oFrm.Dispose(); Conexao.DisposeManager(manager); } }
void oFrm_DoOnOkClick(object sender, EventArgs e) { ClientEnvironment manager = null; try { //FrmInfNRec oFrm = (FrmInfNRec)((Button)sender).Parent; String nRec = oFrm.TextResposta.Text; if (String.IsNullOrEmpty(nRec)) { throw new Exception("Informe o número do Recibo."); } manager = Conexao.CreateManager(Program.ConAux); ServicoPendente oServicoPendente = (ServicoPendente)ServicoPendenteDAL.Instance.Find(oSrv.keyString, manager); Parametro oParam = Program.GetParametro(oServicoPendente.empresa, manager); //criar o recibo no disco RDI.NFe2.SchemaXML.NFe_v200.TRetEnviNFe oRetEnviNFe = new RDI.NFe2.SchemaXML.NFe_v200.TRetEnviNFe(); oRetEnviNFe.tpAmb = oServicoPendente.tipoAmbiente; oRetEnviNFe.verAplic = "2.00"; oRetEnviNFe.cUF = oServicoPendente.UF; oRetEnviNFe.cStat = "103"; oRetEnviNFe.xMotivo = "Lote recebido com sucesso"; oRetEnviNFe.dhRecbto = DateTime.Now; oRetEnviNFe.infRec = new RDI.NFe2.SchemaXML.NFe_v200.TRetEnviNFeInfRec(); oRetEnviNFe.infRec.nRec = nRec; oRetEnviNFe.infRec.tMed = "1"; XMLUtils.SaveXML(oParam.pastaRecibo + oServicoPendente.numeroLote.ToString() + "-rec.xml", oRetEnviNFe, oServicoPendente.versao); oServicoPendente.xmlRecibo = XMLUtils.GetXML(oRetEnviNFe, oServicoPendente.versao); oServicoPendente.numeroRecibo = nRec; oServicoPendente.dataSituacao = DateTime.Now; oServicoPendente.codigoSituacao = TipoSituacaoServico.AguardandoRetornoAprovacao; //setar todas as notas desse servico como enviadas. NotaFiscalQry oNFeQry = new NotaFiscalQry(); oNFeQry.empresa = oServicoPendente.empresa; oNFeQry.numeroLote = oServicoPendente.numeroLote.ToString(); //somente as que foram assinadas e inseridas no lote. oNFeQry.codigoSituacao = TipoSituacaoNota.Assinada;// "0"; ArrayList notasProcessadas = NotaFiscalDAL.Instance.GetInstances(oNFeQry, manager); foreach (NotaFiscal oNFeProc in notasProcessadas) { oNFeProc.codigoSituacao = TipoSituacaoNota.Enviada;// 12; //Enviada oNFeProc.descricaoSituacao = "Nota enviada"; oNFeProc.dataSituacao = oServicoPendente.dataSituacao; oNFeProc.Save(manager); Log oLog = new Log(); oLog.codigoSituacao = 13; oLog.descricaoSituacao = "Nota Enviada"; oLog.nota = new NotaFiscal(); oLog.nota.chaveNota = oNFeProc.chaveNota; oLog.data = DateTime.Now; oLog.empresa = oServicoPendente.empresa; oLog.Save(manager); } oServicoPendente.Save(manager); Log oLogSrv = new Log(); oLogSrv.codigoSituacao = 998; oLogSrv.descricaoSituacao = "Recibo informado pelo usuario."; oLogSrv.nota = new NotaFiscal(); oLogSrv.nota.chaveNota = String.Empty; oLogSrv.data = DateTime.Now; oLogSrv.empresa = oServicoPendente.empresa; oLogSrv.Save(manager); MessageBox.Show("Lote atualizado com sucesso."); oFrm.Close(); oFrm.Dispose(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Conexao.DisposeManager(manager); } }