コード例 #1
0
        public NotaFiscal Inserir(NotaFiscal notaFiscal)
        {
            notaFiscal.Validar();

            notaFiscal.ID = Db.Insert(_sqlInserir, ObtemParametros(notaFiscal));

            return(notaFiscal);
        }
コード例 #2
0
        public NotaFiscal Inserir(NotaFiscal notaFiscal)
        {
            notaFiscal.Validar();
            var nota        = _notaFiscalRepositorio.Inserir(notaFiscal);
            var produtosNfe = _produtoNfeRepositorio.InserirListaDeProdutos(notaFiscal.Produtos, notaFiscal.ID);

            return(nota);
        }
コード例 #3
0
        public void NotaFiscal_Dominio_Validar_DevePreencherTransportadorVazioComOsDadosDeDestinatario()
        {
            notaFiscal = ObjectMother.ObterNotaValidaSemTransportador();
            notaFiscal.Transportador = null;

            notaFiscal.Validar();

            notaFiscal.Transportador.Nome.Should().Be(notaFiscal.Destinatario.Nome);
        }
コード例 #4
0
        public NotaFiscal Atualizar(NotaFiscal notaFiscal)
        {
            if (notaFiscal.ID < 1)
            {
                throw new ExcecaoIdentificadorInvalido();
            }

            notaFiscal.Validar();

            return(_notaFiscalRepositorio.Atualizar(notaFiscal));
        }
コード例 #5
0
        public NotaFiscal Atualizar(NotaFiscal notaFiscal)
        {
            if (notaFiscal.ID < 1)
            {
                throw new ExcecaoIdentificadorInvalido();
            }

            notaFiscal.Validar();

            Db.Update(_sqlAtualizar, ObtemParametros(notaFiscal));

            return(notaFiscal);
        }
コード例 #6
0
        public bool EmitirNota(NotaFiscal notaFiscal)
        {
            notaFiscal.CalcularValorTotalNota();

            bool notaEncontrada;

            do
            {
                notaFiscal.GerarChave(_random);

                notaEncontrada = _notaFiscalRepositorio.ValidarExistenciaPorChave(notaFiscal.Chave);
            } while (notaEncontrada);

            notaFiscal.Validar();

            _notaFiscalRepositorio.InserirNotaFiscalEmitida(notaFiscal);

            var notaDeletada = this.Deletar(notaFiscal.ID);

            return(notaDeletada);
        }
コード例 #7
0
        private List <NotaFiscal> ProcessarArquivo(Stream arquivo, string delimitador)
        {
            List <NotaFiscal> notasFiscais = new List <NotaFiscal>();

            using (StreamReader reader = new StreamReader(arquivo))
            {
                string   linha       = string.Empty;
                int      numeroLinha = 1;
                string[] registro;

                while ((linha = reader.ReadLine()) != null)
                {
                    if (!string.IsNullOrEmpty(linha))
                    {
                        registro = linha.Split(delimitador.ToCharArray());

                        if (registro.Length >= 7)
                        {
                            var notaFiscal = new NotaFiscal
                            {
                                TipoNF       = registro[0].ToString(),
                                ChaveNF      = registro[1].ToString(),
                                NumeroNF     = registro[2].ToString(),
                                CnpjNF       = registro[3].ToString(),
                                QuantidadeNF = registro[4].ToString().ToDecimal(),
                                UnidadeNF    = registro[5].ToString(),
                                NCM          = registro[6].ToString()
                            };

                            if (notaFiscal.TipoNF != "EXP")
                            {
                                if (registro.Length > 7)
                                {
                                    notaFiscal.ChaveNFReferencia = registro[7].ToString();

                                    if (notaFiscal.ChaveNFReferencia.Length > 44)
                                    {
                                        notaFiscal.ChaveNFReferencia = notaFiscal.ChaveNFReferencia.Substring(0, 44);
                                    }
                                }

                                if (registro.Length > 8)
                                {
                                    notaFiscal.Item = registro[8].ToInt();
                                }

                                notaFiscal.Item = notaFiscal.Item == 0
                                    ? 1
                                    : notaFiscal.Item;
                            }
                            else
                            {
                                if (registro.Length > 8)
                                {
                                    if (registro[8].ToString().Length == 8)
                                    {
                                        string data = registro[8].ToString();

                                        int ano, mes, dia = 0;

                                        ano = data.Substring(0, 4).ToInt();
                                        mes = data.Substring(4, 2).ToInt();
                                        dia = data.Substring(6, 2).ToInt();

                                        notaFiscal.DataNF = new DateTime(ano, mes, dia);
                                    }
                                }

                                if (registro.Length > 9)
                                {
                                    if (!string.IsNullOrEmpty(registro[9]))
                                    {
                                        string empresa   = registro[9].Substring(0, 4);
                                        string filial    = registro[9].Substring(4, 4);
                                        string memorando = registro[9].Substring(8, 12);

                                        notaFiscal.Empresa   = empresa;
                                        notaFiscal.Filial    = filial;
                                        notaFiscal.Memorando = memorando;
                                    }
                                }

                                notaFiscal.Item = 1;
                            }

                            var validacoes = notaFiscal.Validar();

                            if (validacoes.IsValid)
                            {
                                notasFiscais.Add(notaFiscal);
                            }
                            else
                            {
                                foreach (var erro in validacoes.Errors)
                                {
                                    ModelState.AddModelError(string.Empty, string.Format("Linha {0}: {1} - Mensagem: {2}", numeroLinha, erro.PropertyName, erro.ErrorMessage));
                                }
                            }

                            numeroLinha += 1;
                        }
                    }
                }
                //}
                //catch (Exception ex)
                //{
                //    ModelState.AddModelError(string.Empty, ex.Message);
                //}

                return(notasFiscais);
            }
        }
コード例 #8
0
        public void NotaFiscal_Dominio_NotaFiscal_Validar_EsperadoOK()
        {
            Action action = () => _notaFiscal.Validar();

            action.Should().NotThrow();
        }