private void ImportarArquivo(string arquivo, ResultadoImportação resultado)
        {
            try
            {
                ParserXmlAtacadoCancelamento parser = new ParserXmlAtacadoCancelamento(arquivo);

                if (!parser.Cancelamento)
                {
                    resultado.ArquivosIgnorados.Adicionar(new ArquivoIgnorado(arquivo, Motivo.NãoÉCancelamento));
                    return;
                }

                string id = SaídaFiscal.ObterIdNfe(parser.Id);

                if (idsJáCancelados.Contains(id))
                {
                    resultado.ArquivosIgnorados.Adicionar(new ArquivoIgnorado(arquivo, Motivo.CancelamentoJáRegistrado, id));
                    return;
                }

                if (!idsSaídas.Contains(id))
                { 
                    throw new NotaInexistente(id);
                }

                SaídaFiscal.Cancelar(id);
                resultado.ArquivosSucesso.Adicionar(new Arquivo(arquivo, id));
                idsJáCancelados.Add(id);
            }
            catch (Exception erro)
            {
                resultado.AdicionarFalha(arquivo, erro);
            }
        }
        private void ImportarArquivo(string arquivo, ResultadoImportação resultado)
        {
            try
            {
                DocumentoFiscal documento = Interpretar(arquivo);

                if (IgnorarDocumento(resultado, arquivo, documento))
                    return;

                CadastrarDocumento(documento, resultado, arquivo);
            } catch (Exception erro)
            {
                resultado.AdicionarFalha(arquivo, erro);
            }
        }
        private void ImportarArquivo(string arquivo, ResultadoImportação resultado)
        {
            try
            {
                foreach (CupomFiscal cupom in Interpretador.InterpretaArquivo(arquivo).CuponsFiscais)
                {
                    DocumentoFiscal saída = new AdaptadorVarejo(cupom).Transformar();

                    if (IgnorarArquivo(arquivo, resultado, saída))
                        continue;

                    Cadastrar(arquivo, resultado, saída);
                }
            }
            catch (Exception erro)
            {
                resultado.AdicionarFalha(arquivo, erro);
            }
        }
Пример #4
0
        private static LeitorPdf TentaLerArquivo(ResultadoImportação resultado, string arquivo)
        {
            try
            {
                LeitorPdf leitor = new LeitorPdf(arquivo);

                leitor.id = MapaIdNfe.Instância.ObterId(leitor.Nfe.Value);

                if (leitor.id == null)
                {
                    resultado.ArquivosIgnorados.Adicionar(new ArquivoIgnorado(arquivo, Motivo.SaídaFiscalNãoCadastradaParaPdf));
                    return null;
                }

                if (SaidaFiscalPdf.Cache.Contém((leitor.id)))
                {
                    resultado.ArquivosIgnorados.Adicionar(new ArquivoIgnorado(arquivo, Motivo.ChaveJáImportada, leitor.id));
                    return null;
                }

                resultado.ArquivosSucesso.Adicionar(new Arquivo(leitor.ToString(), leitor.id));
                SaidaFiscalPdf.Cache.Adicionar(leitor.id);

                return leitor;
            }
            catch (Exception erro)
            {
                resultado.AdicionarFalha(arquivo, erro);
                return null;
            }
        }