Beispiel #1
0
        public void ProcessaArquivo(Empresa empresa, string arquivoXmlEnvio, string localSalvarXmlRetorno, Servicos servico)
        {
            if (servico == Servicos.Nulo)
                throw new Exception("Não pode identificar o tipo de serviço baseado no arquivo " + arquivoXmlEnvio);

            NFSE.Net.Core.ConfiguracaoApp.ValidarConfig(empresa);
            NFSE.Net.Core.ConfiguracaoApp.CarregarDados();
            if (Propriedade.TipoAplicativo == TipoAplicativo.Nfse)
            {
                #region Executar o serviço da NFS-e
                switch (servico)
                {
                    case Servicos.ConsultarLoteRps:
                        CertVencido(empresa);
                        IsConnectedToInternet();
                        this.DirecionarArquivo(empresa, arquivoXmlEnvio, localSalvarXmlRetorno, new TaskConsultarLoteRps());
                        break;

                    case Servicos.CancelarNfse:
                        CertVencido(empresa);
                        IsConnectedToInternet();
                        this.DirecionarArquivo(empresa, arquivoXmlEnvio, localSalvarXmlRetorno, new TaskCancelarNfse());
                        break;

                    case Servicos.ConsultarSituacaoLoteRps:
                        CertVencido(empresa);
                        IsConnectedToInternet();
                        this.DirecionarArquivo(empresa, arquivoXmlEnvio, localSalvarXmlRetorno, new TaskConsultaSituacaoLoteRps());
                        break;

                    case Servicos.ConsultarNfse:
                        CertVencido(empresa);
                        IsConnectedToInternet();
                        this.DirecionarArquivo(empresa, arquivoXmlEnvio, localSalvarXmlRetorno, new TaskConsultarNfse());
                        break;

                    case Servicos.ConsultarNfsePorRps:
                        CertVencido(empresa);
                        IsConnectedToInternet();
                        this.DirecionarArquivo(empresa, arquivoXmlEnvio, localSalvarXmlRetorno, new TaskConsultarNfsePorRps());
                        break;

                    case Servicos.RecepcionarLoteRps:
                        CertVencido(empresa);
                        IsConnectedToInternet();
                        this.DirecionarArquivo(empresa, arquivoXmlEnvio, localSalvarXmlRetorno, new TaskRecepcionarLoteRps());
                        break;

                    case Servicos.ConsultarURLNfse:
                        CertVencido(empresa);
                        IsConnectedToInternet();
                        this.DirecionarArquivo(empresa, arquivoXmlEnvio, localSalvarXmlRetorno, new TaskConsultarURLNfse());
                        break;
                }
                #endregion
            }
        }
Beispiel #2
0
        public void ProcessaArquivo(int emp, string arquivoXmlEnvio, string localSalvarXmlRetorno, Servicos servico)
        {
            if (Empresa.Configuracoes.Count == 0)
                Empresa.CarregarEmpresasConfiguradas();

            if (Empresa.Configuracoes.Count > emp)
                ProcessaArquivo(Empresa.Configuracoes[emp], arquivoXmlEnvio, localSalvarXmlRetorno, servico);
            else
                throw new Exception("Você não configurou nenhuma empresa.");
        }
 public void saveServico(Servicos servico)
 {
     if (servico.IDServico == 0) {
     servico = MarteUpdatesContext.Servicos.Add(servico);
     MarteUpdatesContext.SaveChanges();
       } else {
     MarteUpdatesContext.Servicos.Attach(servico);
     MarteUpdatesContext.Entry(servico).State = EntityState.Modified;
     MarteUpdatesContext.SaveChanges();
       }
 }
        public bool deleteServico(Servicos servico)
        {
            try {
            MarteUpdatesContext.Servicos.Remove(servico);
            MarteUpdatesContext.SaveChanges();
              } catch { //TODO: Vamos implementar o Log
            return false;
              }

              return true;
        }
        public ActionResult Delete(string Id)
        {
            Servicos servicosToDelete = context.Find(Id);

            if (servicosToDelete == null)
            {
                return(HttpNotFound());
            }
            else
            {
                return(View(servicosToDelete));
            }
        }
Beispiel #6
0
 public Boolean editar(Ticket ticket, Carro carro, Cliente cliente, Servicos servico)
 {
     Connection con = new Connection();
     con.openConnection();
     SqlCommand command = new SqlCommand();
     String sql = "UPDATE Tickets SET Id_cliente = " + cliente.id_cliente + ", id_Carro = " + carro.id_carro + ", Id_Servico = " + servico.id_servico + ", DataEntrada = '" + ticket.data_entrada + "', DataSaida = '" + ticket.data_saida + "', ValorTotal = " + ticket.valorTotal + ", Placa = '" + ticket.placa + "', UF = '" + ticket.uf + "', Cidade = '" + ticket.cidade + "'";
     command.CommandText = sql;
     command.CommandType = CommandType.Text;
     command.Connection = con.getConnection();
     command.ExecuteNonQuery();
     con.closeConnection();
     return true;
 }
Beispiel #7
0
        public void Update(Servicos servico)
        {
            Servicos servicoToUpdate = servicos.Find(s => s.Id == servico.Id);

            if (servicoToUpdate != null)
            {
                servicoToUpdate = servico;
            }
            else
            {
                throw new Exception("Servicos nao encontrado");
            }
        }
Beispiel #8
0
        /// <summary>
        /// Retorna o nome da classe do serviço passado por parâmetro do WebService do SEFAZ - CTe
        /// </summary>
        /// <param name="servico">Servico</param>
        /// <param name="cUF">Código da UF</param>
        /// <returns>Nome da classe</returns>
        protected string NomeClasseWS(Servicos servico, int cUF)
        {
            string retorna = string.Empty;

            switch (Propriedade.TipoAplicativo)
            {
                case TipoAplicativo.Nfse:
                    retorna = NomeClasseWSNFSe(servico, cUF);
                    break;
            }

            return retorna;
        }
Beispiel #9
0
        // GET: Servicos/Delete/5
        public async Task <ActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Servicos servicos = await db.Servicos.FindAsync(id);

            if (servicos == null)
            {
                return(HttpNotFound());
            }
            return(View(servicos));
        }
        public ActionResult Create(Servicos servicos)
        {
            if (!ModelState.IsValid)
            {
                return(View(servicos));
            }
            else
            {
                context.Insert(servicos);
                context.Commit();

                return(RedirectToAction("Index"));
            }
        }
        public ActionResult Edit(int id)
        {
            Servicos servico = ServicoService.getServico(id);

            if (servico == null)
            {
                this.addMensagemErro("Serviço não encontrado");
                return(RedirectToAction("Index", "Servico"));
            }
            else
            {
                return(View(getViewModel(servico)));
            }
        }
        // GET: Servicos/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Servicos servicos = db.Servicos.Find(id);

            if (servicos == null)
            {
                return(HttpNotFound());
            }
            return(View(servicos));
        }
Beispiel #13
0
        private async void AsyncServicos(string _origem)
        {
            var t = Task.Factory.StartNew(() => new mData().Servicos(_origem));

            await t;

            if (t.IsCompleted)
            {
                foreach (mTiposGenericos s in t.Result)
                {
                    Servicos.Add(s.Nome);
                }
            }
        }
Beispiel #14
0
 public void saveServico(Servicos servico)
 {
     if (servico.IDServico == 0)
     {
         servico = MarteUpdatesContext.Servicos.Add(servico);
         MarteUpdatesContext.SaveChanges();
     }
     else
     {
         MarteUpdatesContext.Servicos.Attach(servico);
         MarteUpdatesContext.Entry(servico).State = EntityState.Modified;
         MarteUpdatesContext.SaveChanges();
     }
 }
        public ActionResult ConfirmDelete(string Id)
        {
            Servicos servicosToDelete = context.Find(Id);

            if (servicosToDelete == null)
            {
                return(HttpNotFound());
            }
            else
            {
                context.Delete(Id);
                context.Commit();
                return(RedirectToAction("Index"));
            }
        }
Beispiel #16
0
        public bool add(Modelo prEntity)
        {
            try
            {
                Servico Entity = (Servico)prEntity;

                Servicos.Add(Entity);

                return(SaveChanges() > 0);
            }
            catch (Exception e)
            {
                return(false);
            }
        }
Beispiel #17
0
        public void Dispose(bool primaryService)
        {
            Setup.RemoverSessaoDeRequisicao(this.IdentificadorDaSessao);
            ObjetosDaTransacao?.Dispose();

            foreach (var service in this.Servicos.Values)
            {
                service.Dispose(false);
            }

            if (primaryService)
            {
                Servicos.Clear();
            }
        }
        public ActionResult EditarServico(int id, Servicos servicoObj)
        {
            try
            {
                _repositorio = new ServicoRepositorio();
                _repositorio.AtualizarServico(servicoObj);

                return(RedirectToAction("ObterServicos", _repositorio.ObterServicos()));
            }
            catch (Exception e)
            {
                var ja = e.Message;
                return(View("ObterServicos", _repositorio.ObterServicos()));
            }
        }
        public List <Servicos> ObterTodos()
        {
            List <Servicos> servicos = new List <Servicos>();

            string[] linhas = File.ReadAllLines(PATH);
            foreach (var linha in linhas)
            {
                Servicos s     = new Servicos();
                string[] dados = linha.Split(";");
                s.Nome  = dados[0];
                s.Preco = double.Parse(dados[1]);
                servicos.Add(s);
            }
            return(servicos);
        }
Beispiel #20
0
 private object SelecionaServico()
 {
     Servico = null;
     if (gvServico.CurrentRow != null)
     {
         var      proRow = gvServico.CurrentRow.DataBoundItem as DataRowView;
         Servicos Serv   = CtrlServico.BuscarPorID(proRow["codigo"]) as  Servicos;
         return(Servico = Serv);
     }
     else
     {
         MessageBox.Show("Nenhum serviço foi selecionado");
         return(null);
     }
 }
Beispiel #21
0
        private void REL_SERVICOS_Load(object sender, EventArgs e)
        {
            gridControlServicos.DataSource = Servicos.Get();
            repositoryItemGridLookUpEditClientes.DataSource    = Clientes.Get();
            repositoryItemGridLookUpEditClientes.ValueMember   = "CLI_ID";
            repositoryItemGridLookUpEditClientes.DisplayMember = "CLI_RAZAO";

            repositoryItemGridLookUpEditTipoSer.DataSource    = TipoServico.Get();
            repositoryItemGridLookUpEditTipoSer.ValueMember   = "TIPO_SER_ID";
            repositoryItemGridLookUpEditTipoSer.DisplayMember = "TIPO_SER_NOME";

            repositoryItemGridLookUpEditPets.DataSource    = Pets.Get();
            repositoryItemGridLookUpEditPets.ValueMember   = "PET_ID";
            repositoryItemGridLookUpEditPets.DisplayMember = "PET_NOME";
        }
Beispiel #22
0
        public JsonResult JsCreate(Servicos model)
        {
            var daoServicos = new DAOServicos();

            daoServicos.Insert(model);
            var result = new
            {
                type    = "success",
                field   = "",
                message = "Registro adicionado com sucesso!",
                model   = model
            };

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Beispiel #23
0
        public IActionResult Registrar(IFormCollection form)
        {
            ViewData["Action"] = "Servicos";
            Servicos pedido = new Servicos();

            Shake shake     = new Shake();
            var   nomeShake = form["shake"];

            shake.Nome  = nomeShake;
            shake.Preco = shakeRepository.ObterPrecoDe(nomeShake);

            pedido.Shake = shake;

            var        nomeHamburguer = form["hamburguer"];
            Hamburguer hamburguer     = new Hamburguer(
                nomeHamburguer,
                hamburguerRepository.ObterPrecoDe(nomeHamburguer));

            pedido.Hamburguer = hamburguer;

            Cliente cliente = new Cliente()
            {
                Nome     = form["nome"],
                Endereco = form["endereco"],
                Telefone = form["telefone"],
                Email    = form["email"]
            };

            pedido.Cliente = cliente;

            pedido.DataDoPedido = DateTime.Now;

            pedido.PrecoTotal = hamburguer.Preco + shake.Preco;

            if (pedidoRepository.Inserir(pedido))
            {
                return(View("Sucesso", new RespostaViewModel()
                {
                    NomeView = "Servicos",
                    UsuarioEmail = ObterUsuarioSession(),
                    UsuarioNome = ObterUsuarioNomeSession()
                }));
            }
            else
            {
                return(View("Erro", new RespostaViewModel("Mensagem")));
            }
        }
        public void ListarTarefas(int ID_Item)
        {
            ServicosDAL sDal = new ServicosDAL();
            Servicos    ser  = sDal.PesquisarPorCodigo(ID_Item);

            if (ser != null)
            {
                Descricao.Text             = ser.Descricao;
                cbxUsuarios.SelectedIndex  = (ser.ID_Usuario - 1);
                StatusTarefa.SelectedValue = ser.Status;
            }
            else
            {
                lblMensagem.Text = "Tarefa não encontrada";
            }
        }
        public ActionResult Edit(string Id)
        {
            Servicos servicos = context.Find(Id);

            if (servicos == null)
            {
                return(HttpNotFound());
            }
            else
            {
                ServicosManagerViewModel viewModel = new ServicosManagerViewModel();
                viewModel.Servicos           = servicos;
                viewModel.Servicoscategories = servicoscategories.Collection();
                return(View(viewModel));
            }
        }
        public ContentResult deletarOrcamento(int codorcamento)
        {
            var content = new ContentResult();

            Servicos servicos_banco = (from S in _context.Servicos where S.CodCliente == codorcamento select S).FirstOrDefault();

            if (servicos_banco != null)
            {
                _context.Servicos.Remove(servicos_banco);
                _context.SaveChanges();
            }



            return(content);
        }
Beispiel #27
0
        public JsonResult JsUpdate(Servicos model)
        {
            var daoServicos = new DAOServicos();

            daoServicos.Update(model);
            //model.idMarca = bean.idMarca;
            var result = new
            {
                type    = "success",
                field   = "",
                message = "Registro alterado com sucesso!",
                model   = model
            };

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Beispiel #28
0
        public void Atualizar(Servicos servico)
        {
            using (PluftContext ctx = new PluftContext())
            {
                Servicos atualizaServico = new Servicos();

                atualizaServico.Id            = servico.Id;
                atualizaServico.NomeServico   = servico.NomeServico;
                atualizaServico.Descricao     = servico.Descricao;
                atualizaServico.IdCapacidades = servico.IdCapacidades;
                atualizaServico.IdValores     = servico.IdValores;

                ctx.Servicos.Update(servico);
                ctx.SaveChanges();
            }
        }
Beispiel #29
0
 private void botaoPDF_Click(object sender, RoutedEventArgs e)
 {
     if (listaOrc.SelectedIndex != -1)
     {
         List <ClasseProduto> produtos = new List <ClasseProduto>();
         List <Servicos>      servicos = new List <Servicos>();
         int         index             = listaOrc.SelectedIndex;
         DataRowView row     = (DataRowView)listaOrc.Items[index];
         string      login   = row[1].ToString();
         string      cd      = row[0].ToString();
         string      cliente = row[9].ToString();
         DateTime    data    = DateTime.Parse(row[3].ToString());
         DateTime    dataV   = DateTime.Parse(row[5].ToString());
         string      obs     = row[8].ToString();
         for (int i = 0; i < viewOrcP.Items.Count; i++)
         {
             row = (DataRowView)viewOrcP.Items[i];
             ClasseProduto p = new ClasseProduto();
             p.Nome      = row[0].ToString();
             p.Descricao = row[1].ToString();
             p.Tipo      = row[2].ToString();
             p.Imagem    = row[3].ToString();
             p.Dimensao  = row[4].ToString() + "m x " +
                           row[5].ToString() + "m";
             p.Quantidade = Convert.ToInt32(row[6]);
             p.PrecoU     = Convert.ToDouble(row[8]);
             p.PrecoT     = p.Quantidade * p.PrecoU;
             produtos.Add(p);
         }
         for (int i = 0; i < viewOrcS.Items.Count; i++)
         {
             row = (DataRowView)viewOrcS.Items[i];
             Servicos s = new Servicos();
             s.Nome      = row[0].ToString();
             s.Descricao = row[1].ToString();
             s.PrecoT    = Convert.ToDouble(row[3]);
             servicos.Add(s);
         }
         ClasseOrcamento o = new ClasseOrcamento(cdUsuario);
         o.ExportarRelatorio(produtos, servicos, data, dataV, cd, cliente, obs, login,
                             viewOrcP.Items.Count + viewOrcS.Items.Count);
     }
     else
     {
         Xceed.Wpf.Toolkit.MessageBox.Show("Você não selecionou");
     }
 }
Beispiel #30
0
 public ConfirmaAgendamentoPage(Servicos servico, DateTime dateTime, string hora)
 {
     InitializeComponent();
     BindingContext    = new ConfirmaAgendamentoViewModel();
     this.DateTime     = dateTime;
     this.Hora         = hora;
     this.Profissional = Convert.ToInt32(servico.id_profissional);
     this.IdProf_serv  = servico.id_servico;
     this.Data         = dateTime.ToString("dd/MM/yyyy");
     this.Servicos     = servico;
     lDescricao.Text   = Servicos.descricao;
     //lData.Text = String.Format("Data {0} hora {1}", Data, this.Hora.Substring(0,5));
     lData.Text    = Data;
     lHora.Text    = this.Hora.Substring(0, 5);
     lDuracao.Text = String.Format("{0} minutos", servico.duracao);
     lValor.Text   = String.Format("{0:C}", servico.valor);
 }
Beispiel #31
0
        protected void btnExcluirServico(object sender, EventArgs e)
        {
            try
            {
                int         ID_Item = Convert.ToInt32((sender as LinkButton).CommandArgument);
                Servicos    s       = new Servicos();
                ServicosDAL sd      = new ServicosDAL();


                sd.Excluir(ID_Item);
                lblMensagem.Text = "Tarefa excluída com sucesso!";
                ListarGrid();
            }
            catch (Exception ex)
            {
                lblMensagem.Text = ex.Message;
            }
        }
Beispiel #32
0
        public void Carregar(object codigo)
        {
            Servico = CtrlServico.BuscarPorID(codigo) as Servicos;


            txtCodFornecedor.Text = Convert.ToString(Servico.Funcionario.codigo);
            txtFuncionario.Text   = Convert.ToString(Servico.Funcionario.funcionario);

            txtCodigo.Text      = Convert.ToString(Servico.codigo);
            txtServico.Text     = Servico.servico;
            txtComissao.Text    = Convert.ToString(Servico.comissao);
            txtPrecoVenda.Text  = Convert.ToString(Servico.precoVenda);
            txtObservacao.Text  = Servico.observacoes;
            txtDtCadastro.Text  = Convert.ToString(Servico.dtCadastro);
            txtDtAlteracao.Text = Convert.ToString(Servico.dtAlteracao);
            txtUsuario.Text     = Servico.usuario;
            btnSalvar.Text      = "ALTERAR";
        }
Beispiel #33
0
 public IActionResult Post([FromBody] Servicos servicos)
 {
     try
     {
         if (ModelState.IsValid)
         {
             _servicosRepository.AddServicos(servicos);
             return(Ok(servicos));
         }
         else
         {
             return(BadRequest());
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(500, ex.Message));
     }
 }
        public void Editar(Servicos servicoPassado)
        {
            using (WebsiteDaSaudeContext ctx = new WebsiteDaSaudeContext())
            {
                var servicoBuscado = ctx.Servicos.FirstOrDefault(x => x.IdServico == servicoPassado.IdServico);

                if (servicoBuscado == null)
                {
                    throw new Exception("Serviço não encontrado.");
                }
                else
                {
                    servicoBuscado.IdCategoria = servicoPassado.IdCategoria;
                    servicoBuscado.NomeServico = servicoPassado.NomeServico;
                    ctx.Update(servicoBuscado);
                    ctx.SaveChanges();
                }
            }
        }
 public void AddServicos(Servicos servicos)
 {
     using IDbConnection dbConnection = Connection;
     try
     {
         string sQuery = @"INSERT INTO SERVICOS (Protocolo,Descricao,TipoServico,Preco,DataServico) 
                         VALUES (@Protocolo,@Descricao,@TipoServico,@Preco,@DataServico)";
         dbConnection.Open();
         dbConnection.Execute(sQuery, servicos);
     }
     catch (Exception ex)
     {
         throw ex;
     }
     finally
     {
         dbConnection.Close();
     }
 }
Beispiel #36
0
        private void botaoSalvar_Click(object sender, RoutedEventArgs e)
        {
            Servicos s = new Servicos(cdUsuario);
            bool     v = false;

            if (op == 0)
            {
                v = s.CadastrarServicos(campoNome.Text, campoDesc.Text);
            }
            else if (op == 1)
            {
                v = s.AlterarServicos(id, campoNome.Text, campoDesc.Text);
            }
            else if (op == 2)
            {
                Dictionary <string, string> pesquisa = new Dictionary <string, string>();
                if (campoNome.Text != "")
                {
                    pesquisa.Add("nmServico", campoNome.Text);
                }
                if (campoDesc.Text != "")
                {
                    pesquisa.Add("dsServico", campoDesc.Text);
                }
                if (pesquisa.Count > 0)
                {
                    string cmdText = "select cdServico 'Código', nmServico 'Serviço', dsServico 'Descrição' from tbServico where ";
                    foreach (var filtro in pesquisa)
                    {
                        cmdText += filtro.Key + " like '" + filtro.Value + "%' and ";
                    }
                    cmdText = cmdText.Substring(0, cmdText.Length - 5);
                    listaSer.DataContext = Connect.LiteConnection(cmdText);
                    AtivarCampos(false);
                }
            }
            if (v)
            {
                Atualizar();
                AtivarCampos(false);
            }
        }
Beispiel #37
0
        /// <summary>
        /// Retorna o nome do método da classe de serviço - NFe
        /// </summary>
        /// <param name="servico">Servico</param>
        /// <param name="cUF">Código da UF</param>
        /// <param name="versao">Versão do XML</param>
        /// <returns>nome do método da classe de serviço</returns>
        private string NomeMetodoWSNFe(Servicos servico, int cUF, string versao)
        {
            string retorna = string.Empty;
            string cUFeVersao = cUF.ToString().Trim() + "|" + versao;

            switch (servico)
            {
                #region NF-e
                case Servicos.NFeInutilizarNumeros:
                    retorna = "nfeInutilizacaoNF2";
                    break;
                case Servicos.NFePedidoConsultaSituacao:
                    retorna = "nfeConsultaNF2";
                    break;
                case Servicos.NFeConsultaStatusServico:
                    switch (cUFeVersao)
                    {
                        case "29|3.10": //Bahia - XML versão 3.10
                            retorna = "NfeStatusServicoNF";
                            break;
                        default:
                            retorna = "nfeStatusServicoNF2";
                            break;
                    }
                    break;
                case Servicos.NFePedidoSituacaoLote:
                    retorna = "nfeRetRecepcao2";
                    break;
                case Servicos.NFePedidoSituacaoLote2:
                    switch (cUFeVersao)
                    {
                        case "29|3.10": //Bahia - XML versão 3.10
                            retorna = "NfeRetAutorizacaoLote";
                            break;
                        default:
                            retorna = "nfeRetAutorizacaoLote";
                            break;
                    }
                    break;
                case Servicos.ConsultaCadastroContribuinte:
                    retorna = "consultaCadastro2";
                    break;
                case Servicos.NFeEnviarLote2:
                    switch (cUFeVersao)
                    {
                        case "29|3.10": //Bahia - XML versão 3.10
                            retorna = "NfeAutorizacaoLote";
                            break;
                        default:
                            retorna = "nfeAutorizacaoLote";
                            break;
                    }
                    break;
                case Servicos.NFeEnviarLoteZip2:
                    switch (cUFeVersao)
                    {
                        case "29|3.10": //Bahia - XML versão 3.10
                            retorna = "NfeAutorizacaoLoteZip";
                            break;
                        default:
                            retorna = "nfeAutorizacaoLoteZip";
                            break;
                    }
                    break;
                case Servicos.NFeEnviarLote:
                    retorna = "nfeRecepcaoLote2";
                    break;
                case Servicos.EventoCCe:
                case Servicos.EventoCancelamento:
                case Servicos.EventoManifestacaoDest:
                case Servicos.EventoRecepcao:
                    retorna = "nfeRecepcaoEvento";
                    break;
                #endregion

                #region MDF-e
                case Servicos.MDFeConsultaStatusServico:
                    retorna = "mdfeStatusServicoMDF";
                    break;
                case Servicos.MDFeEnviarLote:
                    retorna = "mdfeRecepcaoLote";
                    break;
                case Servicos.MDFePedidoSituacaoLote:
                    retorna = "mdfeRetRecepcao";
                    break;
                case Servicos.MDFePedidoConsultaSituacao:
                    retorna = "mdfeConsultaMDF";
                    break;
                case Servicos.MDFeRecepcaoEvento:
                    retorna = "mdfeRecepcaoEvento";
                    break;
                #endregion

                #region CT-e
                case Servicos.CTeConsultaStatusServico:
                    retorna = "cteStatusServicoCT";
                    break;
                case Servicos.CTeEnviarLote:
                    retorna = "cteRecepcaoLote";
                    break;
                case Servicos.CTePedidoSituacaoLote:
                    retorna = "cteRetRecepcao";
                    break;
                case Servicos.CTePedidoConsultaSituacao:
                    retorna = "cteConsultaCT";
                    break;
                case Servicos.CTeInutilizarNumeros:
                    retorna = "cteInutilizacaoCT";
                    break;
                case Servicos.CTeRecepcaoEvento:
                    retorna = "cteRecepcaoEvento";
                    break;

                #endregion

                default:
                    break;
            }

            return retorna;
        }
Beispiel #38
0
 protected string NomeMetodoWS(Servicos servico, int cUF)
 {
     return NomeMetodoWS(servico, cUF, "");
 }
Beispiel #39
0
        /// <summary>
        /// Envia o XML de consulta do registro do DPEC para o SCE (Sistema de Contingência Eletronica)
        /// </summary>
        /// <remarks>
        /// Autor: Wandrey Mundin Ferreira
        /// Data: 19/10/2010
        /// </remarks>
        /// 
#if notused
        public override void ConsultaDPEC()
        {
            //           throw new NotImplementedException();
            int emp = new FindEmpresaThread(Thread.CurrentThread).Index;

            //Definir o serviço que será executado para a classe
            Servico = Servicos.ConsultarDPEC;

            try
            {
                //Ler o XML para pegar parâmetros de envio
                LerXML oLer = new LerXML();
                oLer.ConsDPEC(emp, NomeArquivoXML);

                if (vXmlNfeDadosMsgEhXML)  //danasa 12-9-2009
                {
                    //Definir o objeto do WebService
                    WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servicos.ConsultarDPEC, emp, 0, oLer.dadosConsDPEC.tpAmb, oLer.dadosConsDPEC.tpEmis);

                    //Criar objetos das classes dos serviços dos webservices do SEFAZ
                    object oRecepcaoDPEC = wsProxy.CriarObjeto("SCEConsultaRFB");
                    object oCabecMsg = wsProxy.CriarObjeto("sceCabecMsg");

                    //Atribuir conteúdo para duas propriedades da classe nfeCabecMsg
                    wsProxy.SetProp(oCabecMsg, "versaoDados", ConfiguracaoApp.VersaoXMLConsDPEC);

                    //Invocar o método que envia o XML para o SEFAZ
                    oInvocarObj.Invocar(wsProxy, oRecepcaoDPEC, "sceConsultaDPEC", oCabecMsg, this);

                    //Ler o retorno
                    LerRetConsDPEC(emp);

                    //Gravar o XML retornado pelo WebService do SEFAZ na pasta de retorno para o ERP
                    //Tem que ser feito neste ponto, pois somente aqui terminamos todo o processo
                    oGerarXML.XmlRetorno(Propriedade.ExtEnvio.ConsDPEC_XML, Propriedade.ExtRetorno.retConsDPEC_XML, vStrXmlRetorno);
                }
                else
                {
                    // Gerar o XML de solicitacao de situacao do servico a partir do TXT gerado pelo ERP
                    oGerarXML.ConsultaDPEC(Path.GetFileNameWithoutExtension(NomeArquivoXML) + ".xml", oLer.dadosConsDPEC);
                }
            }
            catch (Exception ex)
            {
                var ExtRet = vXmlNfeDadosMsgEhXML ? Propriedade.ExtEnvio.ConsDPEC_XML : Propriedade.ExtEnvio.ConsDPEC_TXT;

                try
                {
                    //Gravar o arquivo de erro de retorno para o ERP, caso ocorra
                    GravarArqErroServico(NomeArquivoXML, ExtRet, Propriedade.ExtRetorno.retConsDPEC_ERR, ex);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                    //Wandrey 09/03/2010
                }
            }
            finally
            {
                try
                {
                    Functions.DeletarArquivo(NomeArquivoXML);
                }
                catch
                {
                    //Se falhou algo na hora de deletar o XML de cancelamento de NFe, infelizmente
                    //não posso fazer mais nada, o UniNFe vai tentar mandar o arquivo novamente para o webservice, pois ainda não foi excluido.
                    //Wandrey 09/03/2010
                }
            }
        }
Beispiel #40
0
        /// <summary>
        /// Metodo responsável por invocar o serviço do WebService do SEFAZ
        /// </summary>
        /// <param name="wsProxy">Objeto da classe construida do WSDL</param>
        /// <param name="servicoWS">Objeto da classe de envio do XML</param>
        /// <param name="metodo">Método da classe de envio do XML que faz o envio</param>
        /// <param name="cabecMsg">Objeto da classe de cabecalho do serviço</param>
        /// <param name="servicoNFe">Objeto do Serviço de envio da NFE do UniNFe</param>
        /// <param name="finalArqEnvio">string do final do arquivo a ser enviado. Sem a extensão ".xml"</param>
        /// <param name="finalArqRetorno">string do final do arquivo a ser gravado com o conteúdo do retorno. Sem a extensão ".xml"</param>
        /// <remarks>
        /// Autor: Wandrey Mundin Ferreira
        /// Data: 17/03/2010
        /// </remarks>
        public void InvocarNFSe(WebServiceProxy wsProxy,
                            object servicoWS,
                            string metodo,
                            string cabecMsg,
                            object servicoNFe,
                            string finalArqEnvio,
                            string finalArqRetorno,
                            PadroesNFSe padraoNFSe,
                            Servicos servicoNFSe)
        {
            int emp = Empresas.FindEmpresaByThread();

            XmlDocument docXML = new XmlDocument();

            // Definir o tipo de serviço da NFe
            Type typeServicoNFe = servicoNFe.GetType();

            // Resgatar o nome do arquivo XML a ser enviado para o webservice
            string XmlNfeDadosMsg = (string)(typeServicoNFe.InvokeMember("NomeArquivoXML", System.Reflection.BindingFlags.GetProperty, null, servicoNFe, null));

            // Exclui o Arquivo de Erro
            Functions.DeletarArquivo(Empresas.Configuracoes[emp].PastaXmlRetorno + "\\" + Functions.ExtrairNomeArq(XmlNfeDadosMsg, finalArqEnvio + ".xml") + finalArqRetorno + ".err");

            // Validar o Arquivo XML
            ValidarXML validar = new ValidarXML(XmlNfeDadosMsg, Empresas.Configuracoes[emp].UnidadeFederativaCodigo);
            string cResultadoValidacao = validar.ValidarArqXML(XmlNfeDadosMsg);
            if (cResultadoValidacao != "")
            {
                switch (padraoNFSe)
                {
                    case PadroesNFSe.ISSONLINE4R:
                        break;
                    case PadroesNFSe.SMARAPD:
                        break;
                    default:
                        throw new Exception(cResultadoValidacao);
                }

            }

            // Montar o XML de Lote de envio de Notas fiscais
            docXML.Load(XmlNfeDadosMsg);

            // Definir Proxy
            if (ConfiguracaoApp.Proxy)
                if (padraoNFSe != PadroesNFSe.BETHA)
                {
                    wsProxy.SetProp(servicoWS, "Proxy", Proxy.DefinirProxy(ConfiguracaoApp.ProxyServidor, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyPorta, ConfiguracaoApp.DetectarConfiguracaoProxyAuto));
                }
                else
                {
                    wsProxy.Betha.Proxy = Proxy.DefinirProxy(ConfiguracaoApp.ProxyServidor, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyPorta, ConfiguracaoApp.DetectarConfiguracaoProxyAuto);
                }

            // Limpa a variável de retorno
            string strRetorno = string.Empty;

            //Vou mudar o timeout para evitar que demore a resposta e o uninfe aborte antes de recebe-la. Wandrey 17/09/2009
            //Isso talvez evite de não conseguir o número do recibo se o serviço do SEFAZ estiver lento.
            if (padraoNFSe != PadroesNFSe.BETHA)
                wsProxy.SetProp(servicoWS, "Timeout", 120000);

            //Verificar antes se tem conexão com a internet, se não tiver já gera uma exceção no padrão já esperado pelo ERP
            if (ConfiguracaoApp.ChecarConexaoInternet)  //danasa: 12/2013
                if (!Functions.IsConnectedToInternet())
                {
                    //Registrar o erro da validação para o sistema ERP
                    throw new ExceptionSemInternet(ErroPadrao.FalhaInternet, "\r\nArquivo: " + XmlNfeDadosMsg);
                }

            //Invocar o membro
            switch (padraoNFSe)
            {
                #region Padrão BETHA
                case PadroesNFSe.BETHA:
                    switch (metodo)
                    {
                        case "ConsultarSituacaoLoteRps":
                            strRetorno = wsProxy.Betha.ConsultarSituacaoLoteRps(docXML, Empresas.Configuracoes[emp].AmbienteCodigo);
                            break;

                        case "ConsultarLoteRps":
                            strRetorno = wsProxy.Betha.ConsultarLoteRps(docXML, Empresas.Configuracoes[emp].AmbienteCodigo);
                            break;

                        case "CancelarNfse":
                            strRetorno = wsProxy.Betha.CancelarNfse(docXML, Empresas.Configuracoes[emp].AmbienteCodigo);
                            break;

                        case "ConsultarNfse":
                            strRetorno = wsProxy.Betha.ConsultarNfse(docXML, Empresas.Configuracoes[emp].AmbienteCodigo);
                            break;

                        case "ConsultarNfsePorRps":
                            strRetorno = wsProxy.Betha.ConsultarNfsePorRps(docXML, Empresas.Configuracoes[emp].AmbienteCodigo);
                            break;

                        case "RecepcionarLoteRps":
                            strRetorno = wsProxy.Betha.RecepcionarLoteRps(docXML, Empresas.Configuracoes[emp].AmbienteCodigo);
                            break;
                    }
                    break;
                #endregion

                #region Padrão ISSONLINE
                case PadroesNFSe.ISSONLINE:
                    int operacao;
                    string senhaWs = Functions.GetMD5Hash(Empresas.Configuracoes[emp].SenhaWS);

                    switch (servicoNFSe)
                    {
                        case Servicos.NFSeRecepcionarLoteRps:
                            operacao = 1;
                            break;
                        case Servicos.NFSeCancelar:
                            operacao = 2;
                            break;
                        default:
                            operacao = 3;
                            break;
                    }

                    strRetorno = wsProxy.InvokeStr(servicoWS, metodo, new object[] { Convert.ToSByte(operacao), Empresas.Configuracoes[emp].UsuarioWS, senhaWs, docXML.OuterXml });
                    break;
                #endregion

                #region Padrão Blumenau-SC
                case PadroesNFSe.BLUMENAU_SC:
                    strRetorno = wsProxy.InvokeStr(servicoWS, metodo, new object[] { 1, docXML.OuterXml });
                    break;
                #endregion

                #region Padrão Paulistana
                case PadroesNFSe.PAULISTANA:
                    strRetorno = wsProxy.InvokeStr(servicoWS, metodo, new object[] { 1, docXML.OuterXml });
                    break;
                #endregion

                #region Demais padrões
                case PadroesNFSe.TECNOSISTEMAS:
                    strRetorno = wsProxy.InvokeStr(servicoWS, metodo, new object[] { docXML.OuterXml, cabecMsg.ToString() });
                    break;

                case PadroesNFSe.SMARAPD:
                    if (metodo == "nfdEntradaCancelar")
                        strRetorno = wsProxy.InvokeStr(servicoWS, metodo, new object[] { Empresas.Configuracoes[emp].UsuarioWS,
                        TFunctions.EncryptSHA1(Empresas.Configuracoes[emp].SenhaWS),
                        docXML.OuterXml });
                    else
                        strRetorno = wsProxy.InvokeStr(servicoWS, metodo, new object[] { Empresas.Configuracoes[emp].UsuarioWS,
                        TFunctions.EncryptSHA1(Empresas.Configuracoes[emp].SenhaWS),
                        Empresas.Configuracoes[emp].UnidadeFederativaCodigo, 
                        docXML.OuterXml });
                    break;

                case PadroesNFSe.ISSWEB:
                    string versao = docXML.DocumentElement.GetElementsByTagName("Versao")[0].InnerText;
                    string cnpj = docXML.DocumentElement.GetElementsByTagName("CNPJCPFPrestador")[0].InnerText;
                    strRetorno = wsProxy.InvokeStr(servicoWS, metodo, new object[] { cnpj, docXML.OuterXml, versao });
                    break;

                case PadroesNFSe.GINFES:
                case PadroesNFSe.THEMA:
                case PadroesNFSe.SALVADOR_BA:
                case PadroesNFSe.CANOAS_RS:
                case PadroesNFSe.ISSNET:
                default:
                    if (string.IsNullOrEmpty(cabecMsg))
                        strRetorno = wsProxy.InvokeStr(servicoWS, metodo, new object[] { docXML.OuterXml });
                    else
                        strRetorno = wsProxy.InvokeStr(servicoWS, metodo, new object[] { cabecMsg.ToString(), docXML.OuterXml });
                    break;
                #endregion
            }
            #region gerar arquivos assinados(somente debug)
#if DEBUG
            string path = Application.StartupPath + "\\teste_assintura\\";

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            StreamWriter sw = new StreamWriter(path + "nfseMsg_assinado.xml", true);
            sw.Write(docXML.OuterXml);
            sw.Close();

            StreamWriter sw2 = new StreamWriter(path + "cabecMsg_assinado.xml", true);
            sw2.Write(cabecMsg.ToString());
            sw2.Close();
#endif
            #endregion

            //Atualizar o atributo do serviço da Nfe com o conteúdo retornado do webservice do sefaz                  
            typeServicoNFe.InvokeMember("vStrXmlRetorno", System.Reflection.BindingFlags.SetProperty, null, servicoNFe, new object[] { strRetorno });

            // Registra o retorno de acordo com o status obtido
            if (finalArqEnvio != string.Empty && finalArqRetorno != string.Empty)
            {
                typeServicoNFe.InvokeMember("XmlRetorno", System.Reflection.BindingFlags.InvokeMethod, null, servicoNFe, new Object[] { finalArqEnvio + ".xml", finalArqRetorno + ".xml" });
            }
        }
Beispiel #41
0
        public static WebServiceProxy DefinirWS(Servicos servico, Core.Empresa emp, int cUF, int tpAmb, int tpEmis, PadroesNFSe padraoNFSe)
        {
            WebServiceProxy wsProxy = null;
            string key = servico + " " + cUF + " " + tpAmb + " " + tpEmis;
            while (true)
            {
                if (emp.WSProxy.ContainsKey(key))
                {
                    wsProxy = emp.WSProxy[key];
                }
                else
                {
                    //Definir a URI para conexão com o Webservice
                    string Url = ConfiguracaoApp.DefLocalWSDL(cUF, tpAmb, tpEmis, servico);

                    wsProxy = new WebServiceProxy(Url, emp.X509Certificado, padraoNFSe);
                    emp.WSProxy.Add(key, wsProxy);
                }
                break;
            }
            return wsProxy;
        }
Beispiel #42
0
 /// <summary>
 /// Construtor
 /// </summary>
 /// <param name="service">nome do servico que esta indisponivel para o ambiente</param>
 public ServicoInexistenteHomologacaoException(Servicos service)
 {
     _Service = EnumHelper.GetDescription(service);
 }
Beispiel #43
0
        protected bool IsUtilizaCompilacaoWs(PadroesNFSe padrao, Servicos servico = Servicos.Nulo)
        {
            bool retorno = true;

            switch (padrao)
            {
                case PadroesNFSe.MGM:
                case PadroesNFSe.ELOTECH:
                case PadroesNFSe.GOVDIGITAL:
                case PadroesNFSe.EL:
                case PadroesNFSe.EGOVERNE:
                case PadroesNFSe.IPM:
                case PadroesNFSe.SYSTEMPRO:
                case PadroesNFSe.SIGCORP_SIGISS:
                case PadroesNFSe.FIORILLI:
                case PadroesNFSe.CONAM:
                case PadroesNFSe.SIMPLISS:
                case PadroesNFSe.RLZ_INFORMATICA:
                    retorno = false;
                    break;

                case PadroesNFSe.FISSLEX:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarPorRps:
                        case Servicos.NFSeConsultar:
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                        case Servicos.NFSeConsultarLoteRps:
                            retorno = false;
                            break;

                        default:
                            retorno = true;
                            break;
                    }
                    break;
            }

            return retorno;
        }
Beispiel #44
0
        /// <summary>
        /// Retorna o nome da classe do serviço passado por parâmetro do WebService do SEFAZ - NFe
        /// </summary>
        /// <param name="servico">Servico</param>
        /// <param name="cUF">Código da UF</param>
        /// <param name="versao">Versão do XML</param>
        /// <returns>Nome da classe</returns>
        private string NomeClasseWSNFe(Servicos servico, int cUF, string versao)
        {
            string retorna = string.Empty;
            string cUFeVersao = cUF.ToString().Trim() + "|" + versao.Trim();

            switch (servico)
            {
        #region NF-e
                case Servicos.NFeInutilizarNumeros:
                    retorna = "NfeInutilizacao2";
                    break;
                case Servicos.NFePedidoConsultaSituacao:
                    retorna = "NfeConsulta2";
                    break;
                case Servicos.NFeConsultaStatusServico:
                    switch (cUFeVersao)
                    {
                        case "29|3.10": //Bahia - XML versão 3.10
                            retorna = "NfeStatusServico";
                            break;
                        default:
                            retorna = "NfeStatusServico2";
                            break;
                    }
                    break;
                case Servicos.NFePedidoSituacaoLote:
                    retorna = "NfeRetRecepcao2";
                    break;
                case Servicos.NFePedidoSituacaoLote2:
                    retorna = "NfeRetAutorizacao";
                    break;
                case Servicos.ConsultaCadastroContribuinte:
                    retorna = "CadConsultaCadastro2";
                    break;
                case Servicos.NFeEnviarLote:
                    retorna = "NfeRecepcao2";
                    break;
                case Servicos.NFeEnviarLote2:
                    retorna = "NfeAutorizacao";
                    break;
                case Servicos.NFeEnviarLoteZip2:
                    retorna = "NfeAutorizacao";
                    break;

                case Servicos.EventoRecepcao:
                case Servicos.EventoCancelamento:
                case Servicos.EventoManifestacaoDest:
                case Servicos.EventoCCe:    //danasa 2/7/2011
                case Servicos.EventoEPEC:
                    retorna = "RecepcaoEvento";
                    break;
                case Servicos.NFeConsultaNFDest:
                    retorna = "NFeConsultaDest";
                    break;
                case Servicos.NFeDownload:
                    retorna = "NfeDownloadNF";
                    break;
        #endregion

        #region MDF-e
                case Servicos.MDFeConsultaStatusServico:
                    retorna = "MDFeStatusServico";
                    break;
                case Servicos.MDFeEnviarLote:
                    retorna = "MDFeRecepcao";
                    break;
                case Servicos.MDFePedidoSituacaoLote:
                    retorna = "MDFeRetRecepcao";
                    break;
                case Servicos.MDFePedidoConsultaSituacao:
                    retorna = "MDFeConsulta";
                    break;
                case Servicos.MDFeRecepcaoEvento:
                    retorna = "MDFeRecepcaoEvento";
                    break;
        #endregion

        #region CT-e
                case Servicos.CTeConsultaStatusServico:
                    retorna = "CteStatusServico";
                    break;
                case Servicos.CTeEnviarLote:
                    retorna = "CteRecepcao";
                    break;
                case Servicos.CTePedidoSituacaoLote:
                    retorna = "CteRetRecepcao";
                    break;
                case Servicos.CTePedidoConsultaSituacao:
                    retorna = "CteConsulta";
                    break;
                case Servicos.CTeInutilizarNumeros:
                    retorna = "CteInutilizacao";
                    break;
                case Servicos.CTeRecepcaoEvento:
                    if (cUF == 31) //Minas Gerais (MG)
                        retorna = "RecepcaoEvento";
                    else
                        retorna = "CteRecepcaoEvento";
                    break;
        #endregion
            }

            return retorna;
        }
Beispiel #45
0
 protected string NomeClasseWS(Servicos servico, int cUF)
 {
     return xNomeClasseWS(servico, cUF, "");
 }
Beispiel #46
0
        /// <summary>
        /// Busca no WebService da NFe a situação da nota fiscal enviada
        /// </summary>
        /// <remarks>
        /// Atualiza a propriedade this.vNfeRetorno da classe com o conteúdo
        /// XML com o retorno que foi dado do serviço do WebService.
        /// No caso do RetRecepcao se tudo estiver correto retorna um XML
        /// dizendo que o lote foi processado ou não e se as notas foram 
        /// autorizadas ou não.
        /// Se der algum erro ele grava um arquivo txt com o erro em questão.
        /// </remarks>
        /// <example>
        /// oUniNfe.vXmlNfeDadosMsg = "c:\teste-ped-rec.xml";
        /// oUniNfe.RetRecepcao();
        /// this.textBox_xmlretorno.Text = oUniNfe.vNfeRetorno;
        /// //
        /// //
        /// //O conteúdo de retorno vai ser algo mais ou menos assim:
        /// //
        /// //<?xml version="1.0" encoding="UTF-8"?>
        /// //   <retEnviNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.10">
        /// //      <tpAmb>2</tpAmb>
        /// //      <verAplic>1.10</verAplic>
        /// //      <cStat>103</cStat>
        /// //      <xMotivo>Lote recebido com sucesso</xMotivo>
        /// //      <cUF>51</cUF>
        /// //      <infRec>
        /// //         <nRec>510000000106704</nRec>
        /// //         <dhRecbto>2008-06-12T10:49:30</dhRecbto>
        /// //         <tMed>2</tMed>
        /// //      </infRec>
        /// //   </retEnviNFe>
        /// </example>
        /// <by>Wandrey Mundin Ferreira</by>
        /// <date>04/06/2008</date>        
        /// 
#if notused
        public override void RetRecepcao()
        {
            int emp = new FindEmpresaThread(Thread.CurrentThread).Index;
            //Definir o serviço que será executado para a classe
            Servico = Servicos.PedidoSituacaoLoteNFe;

            try
            {
                #region Parte do código que envia o XML de pedido de consulta do recibo
                var oLer = new LerXML();
                oLer.PedRec(NomeArquivoXML);

                //Definir o objeto do WebService
                WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servicos.PedidoSituacaoLoteNFe, emp, oLer.oDadosPedRec.cUF, oLer.oDadosPedRec.tpAmb, oLer.oDadosPedRec.tpEmis);

                //Criar objetos das classes dos serviços dos webservices do SEFAZ
                var oCancelamento = wsProxy.CriarObjeto(NomeClasseWS(Servico, oLer.oDadosPedRec.cUF));
                var oCabecMsg = wsProxy.CriarObjeto(NomeClasseCabecWS());

                //Atribuir conteúdo para duas propriedades da classe nfeCabecMsg
                wsProxy.SetProp(oCabecMsg, "cUF", oLer.oDadosPedRec.cUF.ToString());
                wsProxy.SetProp(oCabecMsg, "versaoDados", ConfiguracaoApp.VersaoXMLPedRec);

                //Invocar o método que envia o XML para o SEFAZ
                oInvocarObj.Invocar(wsProxy, oCancelamento, NomeMetodoWS(Servico, oLer.oDadosPedRec.cUF), oCabecMsg, this);
                #endregion

                #region Parte do código que trata o XML de retorno da consulta do recibo
                //Efetuar a leituras das notas do lote para ver se foi autorizada ou não
                switch (Propriedade.TipoAplicativo)
                {
                    case TipoAplicativo.Cte:
                        LerRetornoLoteCTe();
                        break;
                    case TipoAplicativo.Nfe:
                        LerRetornoLoteNFe();
                        break;
                    default:
                        break;
                }

                //Gravar o XML retornado pelo WebService do SEFAZ na pasta de retorno para o ERP
                //Tem que ser feito neste ponto, pois somente aqui terminamos todo o processo
                //Wandrey 18/06/2009
                oGerarXML.XmlRetorno(Propriedade.ExtEnvio.PedRec_XML, Propriedade.ExtRetorno.ProRec_XML, vStrXmlRetorno);
                #endregion
            }
            catch (Exception ex)
            {
                try
                {
                    GravarArqErroServico(NomeArquivoXML, Propriedade.ExtEnvio.PedRec_XML, Propriedade.ExtRetorno.ProRec_ERR, ex);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                    //Pois ocorreu algum erro de rede, hd, permissão das pastas, etc. Wandrey 22/03/2010
                }
            }
            finally
            {
                //Deletar o arquivo de solicitação do serviço
                Functions.DeletarArquivo(NomeArquivoXML);
            }
        }
Beispiel #47
0
        /// <summary>
        /// Envia o XML de inutilização de numeração de notas fiscais
        /// </summary>
        /// <remarks>
        /// Atualiza a propriedade this.vNfeRetorno da classe com o conteúdo
        /// XML com o retorno que foi dado do serviço do WebService.
        /// No caso da Inutilização se tudo estiver correto retorna um XML
        /// dizendo se foi inutilizado corretamente ou não.
        /// Se der algum erro ele grava um arquivo txt com o erro em questão.
        /// </remarks>
        /// <example>
        /// oUniNfe.vXmlNfeDadosMsg = "c:\teste-ped-sit.xml";
        /// oUniNfe.Inutilizacao();
        /// this.textBox_xmlretorno.Text = oUniNfe.vNfeRetorno;
        /// //
        /// //
        /// //O conteúdo de retorno vai ser algo mais ou menos assim:
        /// //
        /// //<?xml version="1.0" encoding="UTF-8" ?> 
        /// //<retInutNFe xmlns="http://www.portalfiscal.inf.br/nfe" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.portalfiscal.inf.br/nfe retInutNFe_v1.07.xsd" versao="1.07">
        /// //   <infInut>
        /// //      <tpAmb>2</tpAmb> 
        /// //      <verAplic>1.10</verAplic> 
        /// //      <cStat>102</cStat> 
        /// //      <xMotivo>Inutilizacao de numero homologado</xMotivo> 
        /// //      <cUF>51</cUF> 
        /// //      <ano>08</ano> 
        /// //      <CNPJ>12345678901234</CNPJ> 
        /// //      <mod>55</mod> 
        /// //      <serie>1</serie> 
        /// //      <nNFIni>101</nNFIni> 
        /// //      <nNFFin>101</nNFFin> 
        /// //      <dhRecbto>2008-07-01T16:47:11</dhRecbto> 
        /// //      <nProt>151080000197712</nProt> 
        /// //   </infInut>
        /// //</retInutNFe>
        /// </example>
        /// <by>Wandrey Mundin Ferreira</by>
        /// <date>03/04/2009</date>
      
#if notused
        public override void Inutilizacao()
        {
            int emp = new FindEmpresaThread(Thread.CurrentThread).Index;

            //Definir o serviço que será executado para a classe
            Servico = Servicos.InutilizarNumerosNFe;

            try
            {
                //Ler o XML para pegar parâmetros de envio
                LerXML oLer = new LerXML();
                oLer.PedInut(NomeArquivoXML);

                if (this.vXmlNfeDadosMsgEhXML)  //danasa 12-9-2009
                {
                    //Definir o objeto do WebService
                    WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servicos.InutilizarNumerosNFe, emp, oLer.oDadosPedInut.cUF, oLer.oDadosPedInut.tpAmb, oLer.oDadosPedInut.tpEmis);

                    //Criar objetos das classes dos serviços dos webservices do SEFAZ
                    object oInutilizacao = wsProxy.CriarObjeto(NomeClasseWS(Servico, oLer.oDadosPedInut.cUF));
                    object oCabecMsg = wsProxy.CriarObjeto(NomeClasseCabecWS());

                    //Atribuir conteúdo para duas propriedades da classe nfeCabecMsg
                    wsProxy.SetProp(oCabecMsg, "cUF", oLer.oDadosPedInut.cUF.ToString());
                    wsProxy.SetProp(oCabecMsg, "versaoDados", ConfiguracaoApp.VersaoXMLInut);

                    //Criar objeto da classe de assinatura digita
                    AssinaturaDigital oAD = new AssinaturaDigital();

                    //Assinar o XML
                    oAD.Assinar(NomeArquivoXML, emp, Convert.ToInt32(oLer.oDadosPedInut.cUF));

                    //Invocar o método que envia o XML para o SEFAZ
                    oInvocarObj.Invocar(wsProxy, oInutilizacao, NomeMetodoWS(Servico, oLer.oDadosPedInut.cUF), oCabecMsg, this, "-ped-inu", "-inu");

                    //Ler o retorno do webservice
                    this.LerRetornoInut();
                }
                else
                {
                    oGerarXML.Inutilizacao(Path.GetFileNameWithoutExtension(NomeArquivoXML) + ".xml",
                        oLer.oDadosPedInut.tpAmb,
                        oLer.oDadosPedInut.tpEmis,
                        oLer.oDadosPedInut.cUF,
                        oLer.oDadosPedInut.ano,
                        oLer.oDadosPedInut.CNPJ,
                        oLer.oDadosPedInut.mod,
                        oLer.oDadosPedInut.serie,
                        oLer.oDadosPedInut.nNFIni,
                        oLer.oDadosPedInut.nNFFin,
                        oLer.oDadosPedInut.xJust);
                }

            }
            catch (Exception ex)
            {
                string ExtRet = string.Empty;

                if (this.vXmlNfeDadosMsgEhXML) //Se for XML
                    ExtRet = Propriedade.ExtEnvio.PedInu_XML;
                else //Se for TXT
                    ExtRet = Propriedade.ExtEnvio.PedInu_TXT;

                try
                {
                    //Gravar o arquivo de erro de retorno para o ERP, caso ocorra
                    GravarArqErroServico(NomeArquivoXML, ExtRet, Propriedade.ExtRetorno.Inu_ERR, ex);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                    //Wandrey 09/03/2010
                }
            }
            finally
            {
                try
                {
                    if (!this.vXmlNfeDadosMsgEhXML) //Se for o TXT para ser transformado em XML, vamos excluir o TXT depois de gerado o XML
                        Functions.DeletarArquivo(NomeArquivoXML);
                }
                catch
                {
                    //Se falhou algo na hora de deletar o XML de inutilização, infelizmente não posso 
                    //fazer mais nada. Com certeza o uninfe sendo restabelecido novamente vai tentar enviar o mesmo 
                    //xml de inutilização para o SEFAZ. Este erro pode ocorrer por falha no HD, rede, Permissão de pastas, etc. Wandrey 23/03/2010
                }
            }
        }
Beispiel #48
0
        /// <summary>
        /// Envia o XML de consulta do cadastro do contribuinte para o web-service do sefaz
        /// </summary>
        /// <remark>
        /// Como retorno, o método atualiza a propriedade this.vNfeRetorno da classe 
        /// com o conteúdo do retorno do WebService.
        /// No caso do consultaCadastro se tudo estiver correto retorna um XML
        /// com o resultado da consulta
        /// Se der algum erro ele grava um arquivo txt com a extensão .ERR com o conteúdo do erro
        /// </remark>
        /// <example>
        /// oUniNfe.vUF = 51; //Setar o Estado que é para efetuar a consulta
        /// oUniNfe.vXmlNfeDadosMsg = "c:\00000000000000-cons-cad.xml";
        /// oUniNfe.ConsultaCadastro();
        /// this.textBox_xmlretorno.Text = oUniNfe.vNfeRetorno;
        /// //
        /// //O conteúdo de retorno vai ser algo mais ou menos assim:
        /// //
        /// //<retConsCad xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.01">
        /// //   <infCons>
        /// //      <verAplic>SP_NFE_PL_005c</verAplic>
        /// //      <cStat>111</cStat>
        /// //      <xMotivo>Consulta cadastro com uma ocorrência</xMotivo>
        /// //      <UF>SP</UF>
        /// //      <CNPJ>00000000000000</CNPJ>
        /// //      <dhCons>2009-01-29T10:36:33</dhCons>
        /// //      <cUF>35</cUF>
        /// //      <infCad>
        /// //         <IE>000000000000</IE>
        /// //         <CPF />
        /// //         <CNPJ>00000000000000</CNPJ>
        /// //         <UF>SP</UF>
        /// //         <cSit>1</cSit>
        /// //         <xNome>EMPRESA DE TESTE PARA AVALIACAO DO SERVICO</xNome>
        /// //      </infCad>
        /// //   </infCons>
        /// //</retConsCad>
        /// </example>
        /// <by>
        /// Wandrey Mundin Ferreira
        /// </by>
        /// <date>
        /// 15/01/2009
        /// </date>
        /// 
#if notused
        public override void ConsultaCadastro()
        {
            int emp = new FindEmpresaThread(Thread.CurrentThread).Index;

            //Definir o serviço que será executado para a classe
            Servico = Servicos.ConsultaCadastroContribuinte;

            try
            {
                //Ler o XML para pegar parâmetros de envio
                LerXML oLer = new LerXML();
                oLer.ConsCad(NomeArquivoXML);

                if (this.vXmlNfeDadosMsgEhXML)  //danasa 12-9-2009
                {
                    //Definir o objeto do WebService
                    WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servicos.ConsultaCadastroContribuinte, emp, oLer.oDadosConsCad.cUF, oLer.oDadosConsCad.tpAmb, Propriedade.TipoEmissao.teNormal);

                    //Criar objetos das classes dos serviços dos webservices do SEFAZ
                    object oConsCad = wsProxy.CriarObjeto(NomeClasseWS(Servico, oLer.oDadosConsCad.cUF));
                    object oCabecMsg = wsProxy.CriarObjeto(NomeClasseCabecWS());

                    //Atribuir conteúdo para duas propriedades da classe nfeCabecMsg
                    wsProxy.SetProp(oCabecMsg, "cUF", oLer.oDadosConsCad.cUF.ToString());
                    wsProxy.SetProp(oCabecMsg, "versaoDados", ConfiguracaoApp.VersaoXMLConsCad);

                    //Invocar o método que envia o XML para o SEFAZ
                    oInvocarObj.Invocar(wsProxy, oConsCad, NomeMetodoWS(Servico, oLer.oDadosConsCad.cUF), oCabecMsg, this, "-cons-cad", "-ret-cons-cad");
                }
                else
                {
                    //Gerar o XML da consulta cadastro do contribuinte a partir do TXT gerado pelo ERP
                    oGerarXML.ConsultaCadastro(Path.GetFileNameWithoutExtension(NomeArquivoXML) + ".xml",
                                               oLer.oDadosConsCad.UF,
                                               oLer.oDadosConsCad.CNPJ,
                                               oLer.oDadosConsCad.IE,
                                               oLer.oDadosConsCad.CPF);
                }
            }
            catch (Exception ex)
            {
                string ExtRet = string.Empty;

                if (this.vXmlNfeDadosMsgEhXML) //Se for XML
                    ExtRet = Propriedade.ExtEnvio.ConsCad_XML;
                else //Se for TXT
                    ExtRet = Propriedade.ExtEnvio.ConsCad_TXT;

                try
                {
                    //Gravar o arquivo de erro de retorno para o ERP, caso ocorra
                    GravarArqErroServico(NomeArquivoXML, ExtRet, Propriedade.ExtRetorno.ConsCad_ERR, ex);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                    //Wandrey 09/03/2010
                }
            }
            finally
            {
                try
                {
                    //Deletar o arquivo de solicitação do serviço
                    Functions.DeletarArquivo(NomeArquivoXML);
                }
                catch
                {
                    //Se falhou algo na hora de deletar o XML de solicitação do serviço, 
                    //infelizmente não posso fazer mais nada, o UniNFe vai tentar mandar 
                    //o arquivo novamente para o webservice
                    //Wandrey 09/03/2010
                }
            }
        }
Beispiel #49
0
        /// <summary>
        /// RecepcaoEvento
        /// </summary>
        public override void RecepcaoEvento()   //<<<danasa 6-2011
        {
            int emp = new FindEmpresaThread(Thread.CurrentThread).Index;

            //Definir o serviço que será executado para a classe
            if (NomeArquivoXML.ToLower().EndsWith(Propriedade.ExtEnvio.EnvCCe_XML) || NomeArquivoXML.ToLower().EndsWith(Propriedade.ExtEnvio.EnvCCe_TXT))
                Servico = Servicos.EnviarCCe;
            else
                if (NomeArquivoXML.ToLower().EndsWith(Propriedade.ExtEnvio.EnvManifestacao_XML) || NomeArquivoXML.ToLower().EndsWith(Propriedade.ExtEnvio.EnvManifestacao_TXT))
                    Servico = Servicos.EnviarManifestacao;
                else
                    if (NomeArquivoXML.ToLower().EndsWith(Propriedade.ExtEnvio.EnvCancelamento_XML) || NomeArquivoXML.ToLower().EndsWith(Propriedade.ExtEnvio.EnvCancelamento_TXT))
                        Servico = Servicos.EnviarEventoCancelamento;

            try
            {
                //Ler o XML para pegar parâmetros de envio
                LerXML oLer = new LerXML();
                oLer.EnvEvento(emp, NomeArquivoXML);

                if (vXmlNfeDadosMsgEhXML)
                {
                    int currentEvento = Convert.ToInt32(oLer.oDadosEnvEvento.eventos[0].tpEvento);
                    foreach (Evento item in oLer.oDadosEnvEvento.eventos)
                        if (currentEvento != Convert.ToInt32(item.tpEvento))
                            throw new Exception(string.Format("Não é possivel mesclar tipos de eventos dentro de um mesmo xml de eventos. O tipo de evento neste xml é {0}", currentEvento));

                    int cOrgao = oLer.oDadosEnvEvento.eventos[0].cOrgao;
                    if (cOrgao == 90 || cOrgao == 91)   //Amb.Nacional
                        cOrgao = Convert.ToInt32(oLer.oDadosEnvEvento.eventos[0].chNFe.Substring(0, 2));//<<< 7/2012

                    //Definir o objeto do WebService
                    WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(
                        Servico,
                        emp,
                        cOrgao,
                        oLer.oDadosEnvEvento.eventos[0].tpAmb,
                        1);

                    //Criar objetos das classes dos serviços dos webservices do SEFAZ
                    object oRecepcaoEvento;
                    if (oLer.oDadosEnvEvento.eventos[0].cOrgao == 52)
                    {
                        oRecepcaoEvento = wsProxy.CriarObjeto("NfeRecepcaoEvento");
                    }
                    else
                    {
                        oRecepcaoEvento = wsProxy.CriarObjeto("RecepcaoEvento");
                    }
                    object oCabecMsg = wsProxy.CriarObjeto(NomeClasseCabecWS());

                    //Atribuir conteúdo para duas propriedades da classe nfeCabecMsg
                    wsProxy.SetProp(oCabecMsg, "cUF", cOrgao.ToString());
                    switch (Servico)
                    {
                        case Servicos.EnviarCCe:
                            wsProxy.SetProp(oCabecMsg, "versaoDados", ConfiguracaoApp.VersaoXMLEnvCCe);
                            break;
                        case Servicos.EnviarEventoCancelamento:
                            wsProxy.SetProp(oCabecMsg, "versaoDados", ConfiguracaoApp.VersaoXMLEnvCancelamento);
                            break;
                        default:
                            wsProxy.SetProp(oCabecMsg, "versaoDados", ConfiguracaoApp.VersaoXMLEnvManifestacao);
                            break;
                    }

                    //Criar objeto da classe de assinatura digital
                    AssinaturaDigital oAD = new AssinaturaDigital();

                    //Assinar o XML
                    oAD.Assinar(NomeArquivoXML, emp, cOrgao);//Convert.ToInt32(oLer.oDadosEnvEvento.eventos[0].cOrgao));

                    //Invocar o método que envia o XML para o SEFAZ
                    string xmlExtEnvio = string.Empty;
                    string xmlExtRetorno = string.Empty;
                    switch (Servico)
                    {
                        case Servicos.EnviarCCe:
                            xmlExtEnvio = Propriedade.ExtEnvio.EnvCCe_XML.Replace(".xml", "");
                            xmlExtRetorno = Propriedade.ExtRetorno.retEnvCCe_XML.Replace(".xml", "");
                            break;
                        case Servicos.EnviarEventoCancelamento:
                            xmlExtEnvio = Propriedade.ExtEnvio.EnvCancelamento_XML.Replace(".xml", "");
                            xmlExtRetorno = Propriedade.ExtRetorno.retCancelamento_XML.Replace(".xml", "");
                            break;
                        default:
                            xmlExtEnvio = Propriedade.ExtEnvio.EnvManifestacao_XML.Replace(".xml", "");
                            xmlExtRetorno = Propriedade.ExtRetorno.retManifestacao_XML.Replace(".xml", "");
                            break;
                    }
                    oInvocarObj.Invocar(wsProxy, oRecepcaoEvento, "nfeRecepcaoEvento", oCabecMsg, this, xmlExtEnvio, xmlExtRetorno);

                    //Ler o retorno
                    if (Servico == Servicos.EnviarManifestacao)
                        LerRetornoManifestacao(emp);
                    else
                        LerRetornoEvento(emp);
                }
                else
                {
                    // Gerar o XML de eventos a partir do TXT gerado pelo ERP
                    string xmlFileExt = string.Empty;
                    string xmlFileExtTXT = string.Empty;
                    switch (Servico)
                    {
                        case Servicos.EnviarCCe:
                            xmlFileExt = Propriedade.ExtEnvio.EnvCCe_XML;
                            xmlFileExtTXT = Propriedade.ExtEnvio.EnvCCe_TXT;
                            break;
                        case Servicos.EnviarEventoCancelamento:
                            xmlFileExt = Propriedade.ExtEnvio.EnvCancelamento_XML;
                            xmlFileExtTXT = Propriedade.ExtEnvio.EnvCancelamento_TXT;
                            break;
                        default:
                            xmlFileExt = Propriedade.ExtEnvio.EnvManifestacao_XML;
                            xmlFileExtTXT = Propriedade.ExtEnvio.EnvManifestacao_TXT;
                            break;
                    }
                    oGerarXML.EnvioEvento(Functions.ExtrairNomeArq(NomeArquivoXML, xmlFileExtTXT) + xmlFileExt, oLer.oDadosEnvEvento);
                }
            }
            catch (Exception ex)
            {
                try
                {
                    //Gravar o arquivo de erro de retorno para o ERP, caso ocorra
                    string ExtRet = string.Empty;
                    string ExtRetorno = string.Empty;

                    switch (Servico)
                    {
                        case Servicos.EnviarCCe:
                            ExtRet = vXmlNfeDadosMsgEhXML ? Propriedade.ExtEnvio.EnvCCe_XML : Propriedade.ExtEnvio.EnvCCe_TXT;
                            ExtRetorno = Propriedade.ExtRetorno.retEnvCCe_ERR;
                            break;
                        case Servicos.EnviarEventoCancelamento:
                            ExtRet = vXmlNfeDadosMsgEhXML ? Propriedade.ExtEnvio.EnvCancelamento_XML : Propriedade.ExtEnvio.EnvCancelamento_TXT;
                            ExtRetorno = Propriedade.ExtRetorno.retCancelamento_ERR;
                            break;
                        default:
                            ExtRet = vXmlNfeDadosMsgEhXML ? Propriedade.ExtEnvio.EnvManifestacao_XML : Propriedade.ExtEnvio.EnvManifestacao_TXT;
                            ExtRetorno = Propriedade.ExtRetorno.retManifestacao_ERR;
                            break;
                    }
                    if (ExtRetorno != string.Empty)
                        GravarArqErroServico(NomeArquivoXML, ExtRet, ExtRetorno, ex);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                    //Wandrey 09/03/2010
                }
            }
            finally
            {
                try
                {
                    Functions.DeletarArquivo(NomeArquivoXML);
                }
                catch
                {
                    //Se falhou algo na hora de deletar o XML de evento, infelizmente
                    //não posso fazer mais nada, o UniNFe vai tentar mandar o arquivo novamente para o webservice, pois ainda não foi excluido.
                    //Wandrey 09/03/2010
                }
            }
        }
Beispiel #50
0
        /// <summary>
        /// Retorna o nome da classe do serviço passado por parâmetro do WebService do SEFAZ - CTe
        /// </summary>
        /// <param name="servico">Servico</param>
        /// <param name="cMunicipio">Código do Municipio UF</param>
        /// <returns>Nome da classe</returns>
        private string NomeMetodoWSNFSe(Servicos servico, int cMunicipio)
        {
            string retorna = string.Empty;
            bool taHomologacao = (Empresas.Configuracoes[Empresas.FindEmpresaByThread()].AmbienteCodigo == (int)NFe.Components.TipoAmbiente.taHomologacao);

            switch (Functions.PadraoNFSe(cMunicipio))
            {
                #region ISSWEB
                case PadroesNFSe.ISSWEB:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultarNotaFiscal";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelarNotaFiscalEletronica";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = taHomologacao ? "EnviarLoteNotaFiscalDeTeste" : "EnviarLoteNotaFiscal";
                            break;
                    }
                    break;
                #endregion

                #region GINFES
                case PadroesNFSe.GINFES:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultarLoteRpsV3";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultarNfseV3";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultarNfsePorRpsV3";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultarSituacaoLoteRpsV3";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelarNfse";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "RecepcionarLoteRpsV3";
                            break;
                    }
                    break;
                #endregion

                #region THEMA
                case PadroesNFSe.THEMA:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "consultarLoteRps";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "consultarNfse";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "consultarNfsePorRps";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "consultarSituacaoLoteRps";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "cancelarNfse";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "recepcionarLoteRpsLimitado"; //"recepcionarLoteRps";
                            break;
                    }
                    break;
                #endregion

                #region BETHA
                case PadroesNFSe.BETHA:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultarLoteRps";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultarNfse";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultarNfsePorRps";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultarSituacaoLoteRps";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelarNfse";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "RecepcionarLoteRps";
                            break;
                    }
                    break;
                #endregion

                #region CANOAS - RS (ABACO)
                case PadroesNFSe.CANOAS_RS:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "Execute";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "Execute";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "Execute";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "Execute";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "Execute";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "Execute";
                            break;
                    }
                    break;
                #endregion

                #region ISSNET
                case PadroesNFSe.ISSNET:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultarLoteRps";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultarNfse";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultaNFSePorRPS";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultaSituacaoLoteRPS";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelarNfse";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "RecepcionarLoteRps";
                            break;
                        case Servicos.NFSeConsultarURL:
                            retorna = "ConsultarUrlVisualizacaoNfse";
                            break;
                        case Servicos.NFSeConsultarURLSerie:
                            retorna = "ConsultarUrlVisualizacaoNfseSerie";
                            break;
                    }
                    break;
                #endregion

                #region ISSONLINE
                case PadroesNFSe.ISSONLINE:
                    retorna = "Execute";
                    break;
                #endregion

                #region Blumenau-SC
                case PadroesNFSe.BLUMENAU_SC:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultaLote";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultaNFeEmitidas";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultaNFe";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultaInformacoesLote";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelamentoNFe";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            if (Empresas.Configuracoes[Empresas.FindEmpresaByThread()].AmbienteCodigo == (int)NFe.Components.TipoAmbiente.taHomologacao)
                                retorna = "TesteEnvioLoteRPS";
                            else
                                retorna = "EnvioLoteRPS";
                            break;
                    }
                    break;
                #endregion

                #region BHISS
                case PadroesNFSe.BHISS:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultarLoteRps";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultarNfse";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultarNfsePorRps";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultarSituacaoLoteRps";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelarNfse";
                            break;
                        case Servicos.NFSeRecepcionarLoteRpsSincrono:
                            retorna = "GerarNfse";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "RecepcionarLoteRps";
                            break;
                    }
                    break;
                #endregion

                #region GIF
                case PadroesNFSe.GIF:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "consultarNotaFiscal";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "obterCriticaLote";
                            break;
                        case Servicos.NFSeCancelar:
                            if (cMunicipio == 4305108) //Caxias do Sul-RS
                            {
                                retorna = "cancelarNotaFiscal";
                            }
                            else
                            {
                                retorna = "anularNotaFiscal";
                            }
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "enviarLoteNotas";
                            break;
                        case Servicos.NFSeConsultarNFSePNG:
                            retorna = "obterNotasEmPNG";
                            break;
                        case Servicos.NFSeInutilizarNFSe:
                            retorna = "inutilizacao";
                            break;
                        case Servicos.NFSeConsultarNFSePDF:
                            retorna = "obterNotasEmPDF";
                            break;
                    }
                    break;
                #endregion

                #region DUETO
                case PadroesNFSe.DUETO:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultarLoteRps";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultarNfse";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultarNfsePorRps";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultarSituacaoLoteRps";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelarNfse";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "RecepcionarLoteRps";
                            break;
                        case Servicos.NFSeConsultarURL:
                            retorna = "";
                            break;
                    }
                    break;
                #endregion

                #region WEBISS
                case PadroesNFSe.WEBISS:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultarLoteRps";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultarNfse";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultarNfsePorRps";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultarSituacaoLoteRps";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelarNfse";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "RecepcionarLoteRps";
                            break;
                    }
                    break;
                #endregion

                #region PAULISTANA
                case PadroesNFSe.PAULISTANA:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultaLote";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultaNFeEmitidas";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultaNFe";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultaInformacoesLote";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelamentoNFe";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            if (Empresas.Configuracoes[Empresas.FindEmpresaByThread()].AmbienteCodigo == (int)NFe.Components.TipoAmbiente.taHomologacao)
                                retorna = "TesteEnvioLoteRPS";
                            else
                                retorna = "EnvioLoteRPS";
                            break;
                    }
                    break;
                #endregion

                #region SALVADOR_BA
                case PadroesNFSe.SALVADOR_BA:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultarLoteRPS";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultarNfse";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultarNfseRPS";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultarSituacaoLoteRPS";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "EnviarLoteRPS";
                            break;
                    }
                    break;
                #endregion

                #region PORTOVELHENSE
                case PadroesNFSe.PORTOVELHENSE:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultarLoteRps";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultarNfsePorFaixa";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultarNfsePorRps";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = ""; //Ainda não implmentado pelo municipio somenete pelo Site - Renan 
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "GerarNfse";
                            break;
                    }
                    break;


                #endregion

                #region PRONIN
                case PadroesNFSe.PRONIN:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultarLoteRps";
                            break;

                        case Servicos.NFSeConsultar:
                            retorna = "ConsultarNfse";
                            break;

                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultarNfsePorRps";
                            break;

                        case Servicos.NFSeCancelar:
                            retorna = "CancelarNfse";
                            break;

                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultarSituacaoLoteRps";
                            break;

                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "RecepcionarLoteRps";
                            break;
                    }
                    break;
                #endregion

                #region ISSONLINE4R (4R Sistemas)
                case PadroesNFSe.ISSONLINE4R:
                    retorna = "Execute";
                    break;
                #endregion

                #region DSF
                case PadroesNFSe.DSF:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            if (taHomologacao)
                                throw new NFe.Components.Exceptions.ServicoInexistenteHomologacaoException(servico);
                            else
                                retorna = "consultarLote";
                            break;

                        case Servicos.NFSeConsultar:
                            if (taHomologacao)
                                throw new NFe.Components.Exceptions.ServicoInexistenteHomologacaoException(servico);
                            else
                                retorna = "consultarNota";
                            break;

                        case Servicos.NFSeConsultarPorRps:
                            if (taHomologacao)
                                throw new NFe.Components.Exceptions.ServicoInexistenteHomologacaoException(servico);
                            else
                                retorna = "consultarNFSeRps";
                            break;

                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            if (taHomologacao)
                                throw new NFe.Components.Exceptions.ServicoInexistenteHomologacaoException(servico);
                            else
                                retorna = "consultarSequencialRps";
                            break;

                        case Servicos.NFSeCancelar:
                            if (taHomologacao)
                                throw new NFe.Components.Exceptions.ServicoInexistenteHomologacaoException(servico);
                            else
                                retorna = "cancelar";
                            break;

                        case Servicos.NFSeRecepcionarLoteRps:
                            if (taHomologacao)
                                if (cMunicipio.ToString().Equals("5002704")) // Campo grande - MS não tem web service de teste
                                    throw new NFe.Components.Exceptions.ServicoInexistenteHomologacaoException(servico);
                                else
                                    retorna = "testeEnviar";
                            else
                                retorna = "enviar";
                            break;

                        default:
                            throw new NFe.Components.Exceptions.ServicoInexistenteException();
                    }
                    break;
                #endregion

                #region TECNOSISTEMAS
                case PadroesNFSe.TECNOSISTEMAS:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "mConsultaLoteRPS";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "mConsultaNFSeServicosPrestados";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "mConsultaNFSePorRPS";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "mConsultaNFSePorFaixa";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "mCancelamentoNFSe";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "mEnvioLoteRPSSincrono";
                            break;
                    }
                    break;
                #endregion

                #region TIPLAN
                case PadroesNFSe.TIPLAN:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            if (cMunicipio.Equals(3304201))
                                retorna = "ConsultarLoteRps";
                            else
                                retorna = "ConsultarLoteRPS";
                            break;

                        case Servicos.NFSeConsultar:
                            retorna = "ConsultarNfse";
                            break;

                        case Servicos.NFSeConsultarPorRps:
                            if (cMunicipio.Equals(3304201))
                                retorna = "ConsultarNfsePorRps";
                            else
                                retorna = "ConsultarNfseRPS";

                            break;

                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            if (cMunicipio.Equals(3304201))
                                retorna = "ConsultarSituacaoLoteRps";
                            else
                                retorna = "ConsultarSituacaoLoteRPS";

                            break;

                        case Servicos.NFSeCancelar:
                            retorna = "CancelarNfse";
                            break;

                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "RecepcionarLoteRps";
                            break;
                    }
                    break;
                #endregion

                #region CARIOCA
                case PadroesNFSe.CARIOCA:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultarLoteRps";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultarNfse";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultarNfsePorRps";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultarSituacaoLoteRps";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelarNfse";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "RecepcionarLoteRps";
                            break;
                    }
                    break;
                #endregion

                #region SIGCORP_SIGISS
                case PadroesNFSe.SIGCORP_SIGISS:
                    switch (servico)
                    {
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "GerarNota";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelarNota";
                            break;
                    }
                    break;

                #endregion

                #region SMARAPD
                case PadroesNFSe.SMARAPD:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "nfdSaida";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "nfdEntradaCancelar";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "nfdEntrada";
                            break;
                        case Servicos.NFSeConsultarURL:
                            retorna = "urlNfd";
                            break;
                        case Servicos.NFSeConsultarURLSerie:
                            retorna = "";
                            break;
                    }
                    break;
                #endregion

                #region FINTEL
                case PadroesNFSe.FINTEL:
                    switch (servico)
                    {
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "RecepcionarLoteRps";
                            break;
                        case Servicos.NFSeRecepcionarLoteRpsSincrono:
                            retorna = "RecepcionarLoteRpsSincrono";
                            break;
                        case Servicos.NFSeGerarNfse:
                            retorna = "GerarNfse";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelarNfse";
                            break;
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultarLoteRps";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultarNfsePorRps";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultarNfseFaixa";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultarLoteNotasFiscais";
                            break;
                        case Servicos.NFSeConsultarURL:
                            retorna = "";
                            break;
                        case Servicos.NFSeConsultarURLSerie:
                            retorna = "";
                            break;
                    }
                    break;
                #endregion

                #region EQUIPLANO
                case PadroesNFSe.EQUIPLANO:
                    switch (servico)
                    {
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "esRecepcionarLoteRps";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "esCancelarNfse";
                            break;
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "esConsultarLoteRps";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "esConsultarNfsePorRps";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "esConsultarNfse";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "esConsultarSituacaoLoteRps";
                            break;

                        case Servicos.NFSeConsultarURL:
                            retorna = "";
                            break;
                        case Servicos.NFSeConsultarURLSerie:
                            retorna = "";
                            break;
                    }
                    break;
                #endregion

                #region PRODATA
                case PadroesNFSe.PRODATA:
                    switch (servico)
                    {
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "RecepcionarLoteRps";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelarNfse";
                            break;
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultarLoteRps";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultarNfsePorRps";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultarNfsePorFaixa";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "";
                            break;

                        case Servicos.NFSeConsultarURL:
                            retorna = "";
                            break;
                        case Servicos.NFSeConsultarURLSerie:
                            retorna = "";
                            break;
                    }
                    break;
                #endregion

                #region VVISS
                case PadroesNFSe.VVISS:
                    switch (servico)
                    {
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "RecepcionarLoteRps";
                            break;
                        case Servicos.NFSeRecepcionarLoteRpsSincrono:
                            retorna = "RecepcionarLoteRpsSincrono";
                            break;
                        case Servicos.NFSeGerarNfse:
                            retorna = "GerarNfse";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelarNfse";
                            break;
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultarLoteRps";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultarNfsePorRps";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultarNfseFaixa";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultarLoteNotasFiscais";
                            break;
                        case Servicos.NFSeConsultarURL:
                            retorna = "";
                            break;
                        case Servicos.NFSeConsultarURLSerie:
                            retorna = "";
                            break;
                    }
                    break;
                #endregion

                #region VVISS
                case PadroesNFSe.FISSLEX:
                    retorna = "Execute";
                    break;
                #endregion

                #region NATALENSE
                case PadroesNFSe.NATALENSE:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultarLoteRps";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultarNfse";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultarNfsePorRps";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultarSituacaoLoteRps";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelarNfse";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "RecepcionarLoteRps";
                            break;
                    }
                    break;
                #endregion
            }

            return retorna;
        }
Beispiel #51
0
        /// <summary>
        /// Envia o XML de consulta da situação da nota fiscal
        /// </summary>
        /// <remarks>
        /// Atualiza a propriedade this.vNfeRetorno da classe com o conteúdo
        /// XML com o retorno que foi dado do serviço do WebService.
        /// No caso da Consulta se tudo estiver correto retorna um XML
        /// com a situação da nota fiscal (Se autorizada ou não).
        /// Se der algum erro ele grava um arquivo txt com o erro em questão.
        /// </remarks>
        /// <example>
        /// oUniNfe.vXmlNfeDadosMsg = "c:\teste-ped-sit.xml";
        /// oUniNfe.Consulta();
        /// this.textBox_xmlretorno.Text = oUniNfe.vNfeRetorno;
        /// //
        /// //
        /// //O conteúdo de retorno vai ser algo mais ou menos assim:
        /// //
        /// //<?xml version="1.0" encoding="UTF-8" ?>
        /// //   <retConsSitNFe versao="1.07" xmlns="http://www.portalfiscal.inf.br/nfe">
        /// //      <infProt>
        /// //         <tpAmb>2</tpAmb>
        /// //         <verAplic>1.10</verAplic>
        /// //         <cStat>100</cStat>
        /// //         <xMotivo>Autorizado o uso da NF-e</xMotivo>
        /// //         <cUF>51</cUF>
        /// //         <chNFe>51080612345678901234550010000001041671821888</chNFe>
        /// //         <dhRecbto>2008-06-27T15:01:48</dhRecbto>
        /// //         <nProt>151080000194296</nProt>
        /// //         <digVal>WHM/TzTvF+LrdUwtwvk26qgsko0=</digVal>
        /// //      </infProt>
        /// //   </retConsSitNFe>
        /// </example>
        /// <by>Wandrey Mundin Ferreira</by>
        /// <date>04/06/2008</date>
        public override void Consulta()
        {
            int emp = new FindEmpresaThread(Thread.CurrentThread).Index;

            //Definir o serviço que será executado para a classe
            Servico = Servicos.PedidoConsultaSituacaoNFe;

            try
            {
                //Ler o XML para pegar parâmetros de envio
                LerXML oLer = new LerXML();
                oLer.PedSit(NomeArquivoXML);

                if (vXmlNfeDadosMsgEhXML)
                {
                    //Definir o objeto do WebService
                    WebServiceProxy wsProxy = null;
                    switch (Propriedade.TipoAplicativo)
                    {
                        case TipoAplicativo.Cte:
                            wsProxy = ConfiguracaoApp.DefinirWS(Servicos.PedidoConsultaSituacaoNFe, emp, oLer.oDadosPedSit.cUF, oLer.oDadosPedSit.tpAmb, oLer.oDadosPedSit.tpEmis);
                            break;
                        case TipoAplicativo.Nfe:
                            wsProxy = ConfiguracaoApp.DefinirWS(Servicos.PedidoConsultaSituacaoNFe, emp, oLer.oDadosPedSit.cUF, oLer.oDadosPedSit.tpAmb, oLer.oDadosPedSit.tpEmis, oLer.oDadosPedSit.versaoNFe);
                            break;
                        default:
                            break;
                    }

                    //Criar objetos das classes dos serviços dos webservices do SEFAZ
                    if (oLer.oDadosPedSit.versaoNFe == 1 && Propriedade.TipoAplicativo == TipoAplicativo.Nfe)
                    {
                        object oConsulta = null;
                        if (oLer.oDadosPedSit.cUF == 41)
                            oConsulta = wsProxy.CriarObjeto("NfeConsultaService");
                        else
                            oConsulta = wsProxy.CriarObjeto("NfeConsulta");

                        //Invocar o método que envia o XML para o SEFAZ
                        oInvocarObj.Invocar(wsProxy, oConsulta, "nfeConsultaNF", this);
                    }
                    else
                    {
                        object oConsulta = wsProxy.CriarObjeto(NomeClasseWS(Servico, oLer.oDadosPedSit.cUF));
                        object oCabecMsg = wsProxy.CriarObjeto(NomeClasseCabecWS());

                        //Atribuir conteúdo para duas propriedades da classe nfeCabecMsg
                        wsProxy.SetProp(oCabecMsg, "cUF", oLer.oDadosPedSit.cUF.ToString());
                        switch (Propriedade.TipoAplicativo)
                        {
                            case TipoAplicativo.Cte:
                                wsProxy.SetProp(oCabecMsg, "versaoDados", ConfiguracaoApp.VersaoXMLPedSit);
                                break;
                            case TipoAplicativo.Nfe:
                                wsProxy.SetProp(oCabecMsg, "versaoDados", oLer.oDadosPedSit.versaoNFe == 201 ? "2.01" : ConfiguracaoApp.VersaoXMLPedSit);
                                break;
                            default:
                                break;
                        }

                        //Invocar o método que envia o XML para o SEFAZ
                        oInvocarObj.Invocar(wsProxy, oConsulta, NomeMetodoWS(Servico, oLer.oDadosPedSit.cUF), oCabecMsg, this);
                    }

                    //Efetuar a leitura do retorno da situação para ver se foi autorizada ou não
                    //Na versão 1 não posso gerar o -procNfe, ou vou ter que tratar a estrutura do XML de acordo com a versão, a consulta na versão 1 é somente para obter o resultado mesmo.
                    switch (Propriedade.TipoAplicativo)
                    {
                        case TipoAplicativo.Cte:
                            LerRetornoSitCTe(oLer.oDadosPedSit.chNFe);
                            break;
                        case TipoAplicativo.Nfe:
                            if (oLer.oDadosPedSit.versaoNFe != 1)
                                LerRetornoSitNFe(oLer.oDadosPedSit.chNFe);
                            break;
                        default:
                            break;
                    }

                    //Gerar o retorno para o ERP
                    oGerarXML.XmlRetorno(Propriedade.ExtEnvio.PedSit_XML, Propriedade.ExtRetorno.Sit_XML, this.vStrXmlRetorno);
                }
                else
                {
                    oGerarXML.Consulta(Path.GetFileNameWithoutExtension(NomeArquivoXML) + ".xml",
                                        oLer.oDadosPedSit.tpAmb,
                                        oLer.oDadosPedSit.tpEmis,
                                        oLer.oDadosPedSit.chNFe);
                }
            }
            catch (Exception ex)
            {
                string ExtRet = string.Empty;

                if (this.vXmlNfeDadosMsgEhXML) //Se for XML
                    ExtRet = Propriedade.ExtEnvio.PedSit_XML;
                else //Se for TXT
                    ExtRet = Propriedade.ExtEnvio.PedSit_TXT;

                try
                {
                    GravarArqErroServico(NomeArquivoXML, ExtRet, Propriedade.ExtRetorno.Sit_ERR, ex);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                    //Wandrey 09/03/2010
                }
            }
            finally
            {
                try
                {
                    Functions.DeletarArquivo(NomeArquivoXML);
                }
                catch
                {
                    //Se falhou algo na hora de deletar o XML de pedido da consulta da situação da NFe, infelizmente
                    //não posso fazser mais nada, o UniNFe vai tentar mantar o arquivo novamente para o webservice, pois ainda não foi excluido.
                    //Wandrey 22/03/2010
                }
            }
        }
Beispiel #52
0
        protected Servicos GetTipoServicoSincrono(Servicos servico, string file, PadroesNFSe padrao)
        {
            Servicos result = servico;
            XmlDocument doc = new XmlDocument();
            doc.Load(file);

            switch (padrao)
            {
                case PadroesNFSe.NaoIdentificado:
                    break;
                case PadroesNFSe.GINFES:
                    break;
                case PadroesNFSe.BETHA:
                    break;
                case PadroesNFSe.THEMA:
                    break;
                case PadroesNFSe.SALVADOR_BA:
                    break;
                case PadroesNFSe.CANOAS_RS:
                    break;
                case PadroesNFSe.ISSNET:
                    break;
                case PadroesNFSe.ISSONLINE:
                    break;
                case PadroesNFSe.BLUMENAU_SC:
                    break;
                case PadroesNFSe.FINTEL:
                    if (servico == Servicos.NFSeRecepcionarLoteRps)
                    {
                        switch (doc.DocumentElement.Name)
                        {
                            case "EnviarLoteRpsSincronoEnvio":
                                result = Servicos.NFSeRecepcionarLoteRpsSincrono;
                                break;
                            case "GerarNfseEnvio":
                                result = Servicos.NFSeGerarNfse;
                                break;
                            default:
                                break;
                        }
                    }
                    break;
                case PadroesNFSe.BHISS:
                    if (doc.DocumentElement.Name.Equals("GerarNfseEnvio") && servico == Servicos.NFSeRecepcionarLoteRps)
                    {
                        result = Servicos.NFSeRecepcionarLoteRpsSincrono;
                    }
                    break;
                case PadroesNFSe.GIF:
                    break;
                case PadroesNFSe.IPM:
                    break;
                case PadroesNFSe.DUETO:
                    break;
                case PadroesNFSe.WEBISS:
                    break;
                case PadroesNFSe.PAULISTANA:
                    break;
                case PadroesNFSe.PORTOVELHENSE:
                    break;
                case PadroesNFSe.PRONIN:
                    break;
                case PadroesNFSe.ISSONLINE4R:
                    break;
                case PadroesNFSe.DSF:
                    break;
                case PadroesNFSe.TECNOSISTEMAS:
                    break;
                case PadroesNFSe.SYSTEMPRO:
                    break;
                case PadroesNFSe.TIPLAN:
                    break;
                case PadroesNFSe.CARIOCA:
                    break;
                case PadroesNFSe.SIGCORP_SIGISS:
                    break;
                case PadroesNFSe.SMARAPD:
                    break;
                case PadroesNFSe.FIORILLI:
                    break;
                case PadroesNFSe.ISSWEB:
                    break;
                case PadroesNFSe.SIMPLISS:
                    break;
                case PadroesNFSe.CONAM:
                    break;
                case PadroesNFSe.VVISS:
                    if (servico == Servicos.NFSeRecepcionarLoteRps)
                    {
                        switch (doc.DocumentElement.Name)
                        {
                            case "EnviarLoteRpsSincronoEnvio":
                                result = Servicos.NFSeRecepcionarLoteRpsSincrono;
                                break;
                            case "GerarNfseEnvio":
                                result = Servicos.NFSeGerarNfse;
                                break;
                            default:
                                break;
                        }
                    }
                    break;
                default:
                    break;
            }
            return result;
        }
Beispiel #53
0
 /// <summary>
 /// Definir o webservice que será utilizado para o envio do XML
 /// </summary>
 /// <param name="servico">Serviço que será executado</param>
 /// <param name="emp">Index da empresa que será executado o serviço</param>
 /// <param name="cUF">Código da UF</param>
 /// <param name="tpAmb">Código do ambiente que será acessado</param>
 /// <param name="tpEmis">Tipo de emissão do XML</param>
 /// <param name="versaoNFe">Versão da NFe (1 ou 2)</param>
 /// <returns>Retorna o objeto do serviço</returns>
 /// <remarks>
 /// Autor: Wandrey Mundin Ferreira
 /// Data: 04/04/2011
 /// </remarks>
 public static WebServiceProxy DefinirWS(Servicos servico, Core.Empresa emp, int cUF, int tpAmb, int tpEmis)
 {
     return DefinirWS(servico, emp, cUF, tpAmb, tpEmis, PadroesNFSe.NaoIdentificado);
 }
Beispiel #54
0
        /// <summary>
        /// Retorna o nome da classe do serviço passado por parâmetro do WebService do SEFAZ - CTe
        /// </summary>
        /// <param name="servico">Servico</param>
        /// <param name="cMunicipio">Código do Municipio UF</param>
        /// <returns>Nome da classe</returns>
        private string NomeClasseWSNFSe(Servicos servico, int cMunicipio)
        {
            string retorna = string.Empty;
            bool taHomologacao = (Empresas.Configuracoes[Empresas.FindEmpresaByThread()].AmbienteCodigo == (int)NFe.Components.TipoAmbiente.taHomologacao);

            switch (Functions.PadraoNFSe(cMunicipio))
            {
        #region GINFES
                case PadroesNFSe.GINFES:
                    retorna = "ServiceGinfesImplService";
                    break;
        #endregion

        #region THEMA
                case PadroesNFSe.THEMA:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "NFSEconsulta";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "NFSEconsulta";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "NFSEconsulta";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "NFSEconsulta";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "NFSEcancelamento";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "NFSEremessa";
                            break;
                    }
                    break;
        #endregion

        #region BETHA
                case PadroesNFSe.BETHA:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultar:
                            retorna = "";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "";
                            break;
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultarLoteRps";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultarSituacaoLoteRps";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelarNfse";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "RecepcionarLoteRps";
                            break;
                    }
                    break;
        #endregion

        #region CANOAS-RS (ABACO)
                case PadroesNFSe.CANOAS_RS:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultarLoteRps";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultarNfse";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultarNfsePorRps";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultarSituacaoLoteRps";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelarNfse";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "RecepcionarLoteRPS";
                            break;
                    }
                    break;
        #endregion

        #region ISSNet
                case PadroesNFSe.ISSNET:
                    retorna = "Servicos";
                    break;
        #endregion

        #region ISSNet
                case PadroesNFSe.ISSONLINE:
                    retorna = "Nfse";
                    break;
        #endregion

        #region Blumenau-SC
                case PadroesNFSe.BLUMENAU_SC:
                    retorna = "LoteNFe";
                    break;
        #endregion

        #region BHISS
                case PadroesNFSe.BHISS:
                    retorna = "NfseWSService";
                    break;

        #endregion

        #region GIF
                case PadroesNFSe.GIF:
                    retorna = "ServicosService";
                    break;

        #endregion

        #region DUETO
                case PadroesNFSe.DUETO:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "basic_INFSEConsultas";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "basic_INFSEConsultas";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "basic_INFSEConsultas";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "basic_INFSEConsultas";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "basic_INFSEGeracao";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "basic_INFSEGeracao";
                            break;
                    }
                    break;
        #endregion

        #region WEBISS
                case PadroesNFSe.WEBISS:
                    retorna = "NfseServices";
                    break;

        #endregion

        #region PAULISTANA
                case PadroesNFSe.PAULISTANA:
                    retorna = "LoteNFe";
                    break;

        #endregion

        #region SALVADOR_BA
                case PadroesNFSe.SALVADOR_BA:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultaLoteRPS";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultaNfse";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultaNfseRPS";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultaSituacaoLoteRPS";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "EnvioLoteRPS";
                            break;
                    }
                    break;
        #endregion

        #region PORTOVELHENSE
                case PadroesNFSe.PORTOVELHENSE:
                    retorna = "NfseWSService";
                    break;

        #endregion

        #region PRONIN
                case PadroesNFSe.PRONIN:
                    switch (servico)
                    {
                        case Servicos.NFSeCancelar:
                            retorna = "basic_INFSEGeracao";
                            break;

                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "basic_INFSEGeracao";
                            break;

                        default:
                            retorna = "basic_INFSEConsultas";
                            break;
                    }
                    break;
        #endregion

        #region ISSONLINE4R (4R Sistemas)
                case PadroesNFSe.ISSONLINE4R:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarPorRps:
                            if (taHomologacao)
                                retorna = "hConsultarNfsePorRps";
                            else
                                retorna = "ConsultarNfsePorRps";
                            break;

                        case Servicos.NFSeCancelar:
                            if (taHomologacao)
                                retorna = "hCancelarNfse";
                            else
                                retorna = NFe.Components.Servicos.NFSeCancelar.ToString();
                            break;

                        case Servicos.NFSeRecepcionarLoteRps:
                            if (taHomologacao)
                                retorna = "hRecepcionarLoteRpsSincrono";
                            else
                                retorna = "RecepcionarLoteRpsSincrono";
                            break;
                    }
                    break;
        #endregion

        #region DSF
                case PadroesNFSe.DSF:
                    retorna = "LoteRpsService";
                    break;

        #endregion

        #region TECNOSISTEMAS
                case PadroesNFSe.TECNOSISTEMAS:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultaLoteRPS";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultaNFSeServicosPrestados";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultaNFSePorRPS";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultaNFSePorFaixa";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelamentoNFSe";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "EnvioLoteRPSSincrono";
                            break;
                    }
                    break;
        #endregion

        #region TIPLAN
                case PadroesNFSe.TIPLAN:
                    retorna = "Nfse";
                    break;
        #endregion

        #region CARIOCA
                case PadroesNFSe.CARIOCA:
                    retorna = "Nfse";
                    break;
        #endregion

        #region SMARAPD
                case PadroesNFSe.SMARAPD:
                    switch (servico)
                    {
                        case Servicos.NFSeConsultarLoteRps:
                            retorna = "ConsultaLoteRPS";
                            break;
                        case Servicos.NFSeConsultar:
                            retorna = "ConsultaNFSeServicosPrestados";
                            break;
                        case Servicos.NFSeConsultarPorRps:
                            retorna = "ConsultaNFSePorRPS";
                            break;
                        case Servicos.NFSeConsultarSituacaoLoteRps:
                            retorna = "ConsultaNFSePorFaixa";
                            break;
                        case Servicos.NFSeCancelar:
                            retorna = "CancelamentoNFSe";
                            break;
                        case Servicos.NFSeRecepcionarLoteRps:
                            retorna = "nfdEntrada";
                            break;
                    }
                    break;
        #endregion

        #region E-GOVERNE
                case PadroesNFSe.EGOVERNE:
                    retorna = "WSNFSeV1001";
                    break;
        #endregion

            }

            return retorna;
        }
Beispiel #55
0
        /// <summary>
        /// Definir o local do WSDL do webservice
        /// </summary>
        /// <param name="CodigoUF">Código da UF que é para pesquisar a URL do WSDL</param>
        /// <param name="tipoAmbiente">Tipo de ambiente da NFe</param>
        /// <param name="tipoEmissao">Tipo de Emissao da NFe</param>
        /// <param name="servico">Serviço da NFe que está sendo executado</param>
        /// <returns>Retorna a URL</returns>
        /// <remarks>
        /// Autor: Wandrey Mundin Ferreira
        /// Data: 22/03/2011
        /// </remarks>
        private static string DefLocalWSDL(int CodigoUF, int tipoAmbiente, int tipoEmissao, Servicos servico)
        {
            string WSDL = string.Empty;
            switch (tipoEmissao)
            {
                case Propriedade.TipoEmissao.teSVCRS:
                    CodigoUF = 902;
                    break;

                case Propriedade.TipoEmissao.teSVCSP:
                    CodigoUF = 903;
                    break;

                case Propriedade.TipoEmissao.teSCAN:
                    CodigoUF = 900;
                    break;
                default:
                    break;
            }
            string ufNome = CodigoUF.ToString();  //danasa 20-9-2010            

            #region --varre a lista de webservices baseado no codigo da UF

            if (WebServiceProxy.webServicesList.Count == 0)
                throw new Exception("Lista de webservices não foi processada verifique se o arquivo 'WebService.xml' existe na pasta WSDL do UniNFe");

            foreach (webServices list in WebServiceProxy.webServicesList)
            {
                if (list.ID == CodigoUF)
                {
                    switch (servico)
                    {
                        #region NFS-e
                        case Servicos.RecepcionarLoteRps:
                            WSDL = (tipoAmbiente == Propriedade.TipoAmbiente.taHomologacao ? list.LocalHomologacao.RecepcionarLoteRps : list.LocalProducao.RecepcionarLoteRps);
                            break;
                        case Servicos.ConsultarSituacaoLoteRps:
                            WSDL = (tipoAmbiente == Propriedade.TipoAmbiente.taHomologacao ? list.LocalHomologacao.ConsultarSituacaoLoteRps : list.LocalProducao.ConsultarSituacaoLoteRps);
                            break;
                        case Servicos.ConsultarNfsePorRps:
                            WSDL = (tipoAmbiente == Propriedade.TipoAmbiente.taHomologacao ? list.LocalHomologacao.ConsultarNfsePorRps : list.LocalProducao.ConsultarNfsePorRps);
                            break;
                        case Servicos.ConsultarNfse:
                            WSDL = (tipoAmbiente == Propriedade.TipoAmbiente.taHomologacao ? list.LocalHomologacao.ConsultarNfse : list.LocalProducao.ConsultarNfse);
                            break;
                        case Servicos.ConsultarLoteRps:
                            WSDL = (tipoAmbiente == Propriedade.TipoAmbiente.taHomologacao ? list.LocalHomologacao.ConsultarLoteRps : list.LocalProducao.ConsultarLoteRps);
                            break;
                        case Servicos.CancelarNfse:
                            WSDL = (tipoAmbiente == Propriedade.TipoAmbiente.taHomologacao ? list.LocalHomologacao.CancelarNfse : list.LocalProducao.CancelarNfse);
                            break;
                        case Servicos.ConsultarURLNfse:
                            WSDL = (tipoAmbiente == Propriedade.TipoAmbiente.taHomologacao ? list.LocalHomologacao.ConsultarURLNfse : list.LocalProducao.ConsultarURLNfse);
                            break;
                        #endregion
                    }
                    if (tipoEmissao == Propriedade.TipoEmissao.teDPEC)
                        ufNome = "DPEC";
                    else
                        ufNome = "de " + list.Nome;

                    break;
                }
            }
            #endregion

            if (string.IsNullOrEmpty(WSDL) || !File.Exists(WSDL))
            {
                if (!File.Exists(WSDL) && !string.IsNullOrEmpty(WSDL))
                    switch (Propriedade.TipoAplicativo)
                    {
                        case TipoAplicativo.Nfse:
                            throw new Exception("O arquivo \"" + WSDL + "\" não existe. Aconselhamos a reinstalação do UniNFSe.");
                    }

                string Ambiente = string.Empty;
                switch (tipoAmbiente)
                {
                    case Propriedade.TipoAmbiente.taProducao:
                        Ambiente = "produção";
                        break;

                    case Propriedade.TipoAmbiente.taHomologacao:
                        Ambiente = "homologação";
                        break;
                }
                string errorStr = "O Estado " + ufNome + " ainda não dispõe do serviço {0} para o ambiente de " + Ambiente + ".";
                switch (servico)
                {
                    case Servicos.CancelarNfse:
                    case Servicos.ConsultarURLNfse:
                    case Servicos.ConsultarLoteRps:
                    case Servicos.ConsultarNfse:
                    case Servicos.ConsultarNfsePorRps:
                    case Servicos.ConsultarSituacaoLoteRps:
                    case Servicos.RecepcionarLoteRps:
                        throw new Exception(string.Format(errorStr, "da NFS-e"));
                }
                throw new Exception(string.Format(errorStr, "da NF-e"));
            }

            return WSDL;
        }
Beispiel #56
0
 /// <summary>
 /// Retorna o nome da classe de cabecalho do serviço
 /// </summary>
 /// <param name="cUF">Código da UF</param>
 /// <param name="servico">Serviço que está sendo executado</param>
 /// <returns>Nome da classe de cabecalho</returns>
 protected string NomeClasseCabecWS(int cUF, Servicos servico)
 {
     return NomeClasseCabecWS(cUF, servico, (int)TipoEmissao.teNormal);
 }
Beispiel #57
0
        /// <summary>
        /// Retorna o nome da classe de cabecalho do serviço de NFe
        /// </summary>
        /// <param name="cUF">Código da UF</param>
        /// <param name="servico">Serviço que está sendo executado</param>
        /// <param name="tpEmis">Tipo de emissão</param>
        /// <returns>nome da classe de cabecalho do serviço de NFe</returns>
        protected string NomeClasseCabecWS(int cUF, Servicos servico, int tpEmis)
        {
            string retorna = string.Empty;

            switch (servico)
            {
                #region MDFe
                case Servicos.MDFePedidoConsultaSituacao:
                case Servicos.MDFePedidoSituacaoLote:
                case Servicos.MDFeEnviarLote:
                case Servicos.MDFeConsultaStatusServico:
                case Servicos.MDFeRecepcaoEvento:
                case Servicos.MDFeConsultaNaoEncerrado:
                    retorna = "mdfeCabecMsg";
                    break;
                #endregion

                #region CTe
                case Servicos.CTeInutilizarNumeros:
                case Servicos.CTePedidoConsultaSituacao:
                case Servicos.CTePedidoSituacaoLote:
                case Servicos.CTeEnviarLote:
                case Servicos.CTeConsultaStatusServico:
                case Servicos.CTeRecepcaoEvento:
                    retorna = "cteCabecMsg";

                    if (cUF == 50 && tpEmis == (int)TipoEmissao.teNormal)
                        retorna = "CTeCabecMsg";

                    break;
                #endregion

                #region NFe
                default:
                    retorna = "nfeCabecMsg";
                    break;
                #endregion
            }

            return retorna;
        }
Beispiel #58
0
        /// <summary>
        /// Retorna o nome do método da classe de serviço
        /// </summary>
        /// <param name="servico">Servico</param>
        /// <param name="cUF">Código da UF</param>
        /// <param name="versao">Versão do XML</param>
        /// <returns>nome do método da classe de serviço</returns>
        protected string NomeMetodoWS(Servicos servico, int cUF, string versao)
        {
            string retorna = string.Empty;

            retorna = NomeMetodoWSNFSe(servico, cUF);

            if (retorna == string.Empty) //nem seria necessário, porque estamos obtendo do wsdl
                retorna = NomeMetodoWSNFe(servico, cUF, versao);

            return retorna;
        }
Beispiel #59
0
        /// <summary>
        /// Envia o XML de cancelamento de nota fiscal
        /// </summary>
        /// <remarks>
        /// Atualiza a propriedade this.vNfeRetorno da classe com o conteúdo
        /// XML com o retorno que foi dado do serviço do WebService.
        /// No caso do Cancelamento se tudo estiver correto retorna um XML
        /// dizendo se foi cancelado corretamente ou não.
        /// Se der algum erro ele grava um arquivo txt com o erro em questão.
        /// </remarks>
        /// <example>
        /// oUniNfe.vXmlNfeDadosMsg = "c:\teste-ped-sit.xml";
        /// oUniNfe.Consulta();//
        /// this.textBox_xmlretorno.Text = oUniNfe.vNfeRetorno;
        /// //
        /// //O conteúdo de retorno vai ser algo mais ou menos assim:
        /// //
        /// //<?xml version="1.0" encoding="UTF-8" ?> 
        /// //<retCancNFe xmlns="http://www.portalfiscal.inf.br/nfe" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.portalfiscal.inf.br/nfe retCancNFe_v1.07.xsd" versao="1.07">
        /// //   <infCanc>
        /// //      <tpAmb>2</tpAmb> 
        /// //      <verAplic>1.10</verAplic> 
        /// //      <cStat>101</cStat> 
        /// //      <xMotivo>Cancelamento de NF-e homologado</xMotivo> 
        /// //      <cUF>51</cUF> 
        /// //      <chNFe>51080612345678901234550010000001041671821888</chNFe> 
        /// //      <dhRecbto>2008-07-01T16:37:22</dhRecbto> 
        /// //      <nProt>151080000197648</nProt> 
        /// //   </infCanc>
        /// //</retCancNFe>
        /// </example>
        /// <by>Wandrey Mundin Ferreira</by>
        /// <date>01/07/2008</date>
        public override void Cancelamento()
        {
            int emp = new FindEmpresaThread(Thread.CurrentThread).Index;

            //Definir o serviço que será executado para a classe
            Servico = Servicos.CancelarNFe;

            try
            {
                //Ler o XML para pegar parâmetros de envio
                LerXML oLer = new LerXML();
                oLer.PedCanc(NomeArquivoXML);

                if (this.vXmlNfeDadosMsgEhXML)
                {
                    //Definir o objeto do WebService
                    WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servicos.CancelarNFe, emp, oLer.oDadosPedCanc.cUF, oLer.oDadosPedCanc.tpAmb, oLer.oDadosPedCanc.tpEmis);

                    //Criar objetos das classes dos serviços dos webservices do SEFAZ
                    object oCancelamento = wsProxy.CriarObjeto(NomeClasseWS(Servico, oLer.oDadosPedCanc.cUF));
                    object oCabecMsg = wsProxy.CriarObjeto(NomeClasseCabecWS());

                    //Atribuir conteúdo para duas propriedades da classe nfeCabecMsg
                    wsProxy.SetProp(oCabecMsg, "cUF", oLer.oDadosPedCanc.cUF.ToString());
                    wsProxy.SetProp(oCabecMsg, "versaoDados", ConfiguracaoApp.VersaoXMLCanc);

                    //Criar objeto da classe de assinatura digita
                    AssinaturaDigital oAD = new AssinaturaDigital();

                    //Assinar o XML
                    oAD.Assinar(NomeArquivoXML, emp, Convert.ToInt32(oLer.oDadosPedCanc.cUF));

                    //Invocar o método que envia o XML para o SEFAZ
                    oInvocarObj.Invocar(wsProxy, oCancelamento, NomeMetodoWS(Servico, oLer.oDadosPedCanc.cUF), oCabecMsg, this, "-ped-can", "-can");

                    //Ler o retorno do webservice
                    LerRetornoCanc(NomeArquivoXML);
                }
                else
                {
                    //Gerar o XML de solicitação de cancelamento de uma NFe a partir do TXT Gerado pelo ERP
                    oGerarXML.Cancelamento(Path.GetFileNameWithoutExtension(NomeArquivoXML) + ".xml",
                        oLer.oDadosPedCanc.tpAmb,
                        oLer.oDadosPedCanc.tpEmis,
                        oLer.oDadosPedCanc.chNFe,
                        oLer.oDadosPedCanc.nProt,
                        oLer.oDadosPedCanc.xJust);
                }
            }
            catch (Exception ex)
            {
                string ExtRet = string.Empty;

                if (this.vXmlNfeDadosMsgEhXML) //Se for XML
                    ExtRet = Propriedade.ExtEnvio.PedCan_XML;
                else //Se for TXT
                    ExtRet = Propriedade.ExtEnvio.PedCan_TXT;

                try
                {
                    //Gravar o arquivo de erro de retorno para o ERP, caso ocorra
                    GravarArqErroServico(NomeArquivoXML, ExtRet, Propriedade.ExtRetorno.Can_ERR, ex);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                    //Wandrey 09/03/2010
                }
            }
            finally
            {
                try
                {
                    if (!this.vXmlNfeDadosMsgEhXML) //Se for o TXT para ser transformado em XML, vamos excluir o TXT depois de gerado o XML
                        Functions.DeletarArquivo(NomeArquivoXML);
                }
                catch
                {
                    //Se falhou algo na hora de deletar o XML de cancelamento de NFe, infelizmente
                    //não posso fazer mais nada, o UniNFe vai tentar mandar o arquivo novamente para o webservice, pois ainda não foi excluido.
                    //Wandrey 09/03/2010
                }
            }
        }
Beispiel #60
0
        /// <summary>
        /// Verificar o status do Serviço da NFe do SEFAZ em questão
        /// </summary>
        /// <remark>
        /// Como retorno, o método atualiza a propriedade this.vNfeRetorno da classe 
        /// com o conteúdo do retorno do WebService.
        /// No caso do StatusServico se tudo estiver correto retorna um XML
        /// dizendo que o serviço está em operação
        /// Se der algum erro ele grava um arquivo txt com a extensão .ERR com o conteúdo do erro
        /// </remark>
        /// <example>
        /// oUniNfe.vUF = 51; //Setar o Estado que é para ser verificado o status do serviço
        /// oUniNfe.vXmlNfeDadosMsg = "c:\pedstatus.xml";
        /// oUniNfe.StatusServico();
        /// this.textBox_xmlretorno.Text = oUniNfe.vNfeRetorno;
        /// //
        /// //O conteúdo de retorno vai ser algo mais ou menos assim:
        /// //
        /// // <?xml version="1.0" encoding="UTF-8"?>
        /// //   <retConsStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.07">
        /// //      <tpAmb>2</tpAmb>
        /// //      <verAplic>1.10</verAplic>
        /// //      <cStat>107</cStat>
        /// //      <xMotivo>Servico em Operacao</xMotivo>
        /// //      <cUF>51</cUF>
        /// //      <dhRecbto>2008-06-12T11:16:55</dhRecbto>
        /// //      <tMed>2</tMed>
        /// //   </retConsStatServ>
        /// </example>
        /// <by>
        /// Wandrey Mundin Ferreira
        /// </by>
        /// <date>
        /// 01/04/2008
        /// </date>
#if unsed
        public override void StatusServico()
        {
            int emp = new FindEmpresaThread(Thread.CurrentThread).Index;

            //Definir o serviço que será executado para a classe
            Servico = Servicos.PedidoConsultaStatusServicoNFe;

            try
            {
                //Ler o XML para pegar parâmetros de envio
                var oLer = new LerXML();
                oLer.PedSta(NomeArquivoXML);

                if (vXmlNfeDadosMsgEhXML)  //danasa 12-9-2009
                {
                    //Definir o objeto do WebService
                    WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servicos.PedidoConsultaStatusServicoNFe, emp, oLer.oDadosPedSta.cUF, oLer.oDadosPedSta.tpAmb, oLer.oDadosPedSta.tpEmis);

                    //Criar objetos das classes dos serviços dos webservices do SEFAZ
                    var oStatusServico = wsProxy.CriarObjeto(NomeClasseWS(Servico, oLer.oDadosPedSta.cUF));
                    var oCabecMsg = wsProxy.CriarObjeto(NomeClasseCabecWS());

                    //Atribuir conteúdo para duas propriedades da classe nfeCabecMsg
                    wsProxy.SetProp(oCabecMsg, "cUF", oLer.oDadosPedSta.cUF.ToString());
                    wsProxy.SetProp(oCabecMsg, "versaoDados", ConfiguracaoApp.VersaoXMLStatusServico);

                    //Invocar o método que envia o XML para o SEFAZ
                    oInvocarObj.Invocar(wsProxy, oStatusServico, NomeMetodoWS(Servico, oLer.oDadosPedSta.cUF), oCabecMsg, this, "-ped-sta", "-sta");
                }
                else
                {
                    // Gerar o XML de solicitacao de situacao do servico a partir do TXT gerado pelo ERP
                    oGerarXML.StatusServico(Path.GetFileNameWithoutExtension(NomeArquivoXML) + ".xml",
                                            oLer.oDadosPedSta.tpAmb,
                                            oLer.oDadosPedSta.tpEmis,
                                            oLer.oDadosPedSta.cUF);
                }
            }
            catch (Exception ex)
            {
                var extRet = vXmlNfeDadosMsgEhXML ? Propriedade.ExtEnvio.PedSta_XML : Propriedade.ExtEnvio.PedSta_TXT;

                try
                {
                    //Gravar o arquivo de erro de retorno para o ERP, caso ocorra
                    GravarArqErroServico(NomeArquivoXML, extRet, Propriedade.ExtRetorno.Sta_ERR, ex);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                    //Wandrey 09/03/2010
                }
            }
            finally
            {
                try
                {
                    //Deletar o arquivo de solicitação do serviço
                    Functions.DeletarArquivo(NomeArquivoXML);
                }
                catch
                {
                    //Se falhou algo na hora de deletar o XML de solicitação do serviço, 
                    //infelizmente não posso fazer mais nada, o UniNFe vai tentar mandar 
                    //o arquivo novamente para o webservice
                    //Wandrey 09/03/2010
                }
            }
        }