コード例 #1
0
        public NotaFiscal GerarNotaFiscal(Pedido pedido)
        {
            NotaFiscal validacaoNF = new NotaFiscal();

            validacaoNF.EmitirNotaFiscal(pedido);
            return(validacaoNF);
        }
コード例 #2
0
ファイル: NotaTests.cs プロジェクト: wra1984/net-lab
        public void GerarXMLNota()
        {
            string _diretorio = ConfigurationManager.AppSettings.Get("CaminhoNota").ToString();

            _service = new NotaFiscalService();
            DataTable dados = _service.PrepararItensPedido();
            DataRow   linha = dados.NewRow();

            linha[0] = "Sabonete";
            linha[1] = "100101";
            linha[2] = 10.00;
            linha[3] = false;
            dados.Rows.Add(linha);

            Pedido pedido = _service.GerarPedido("Willian Rodrigues", "SP", "MG", dados);

            NotaFiscal notaFiscal = new NotaFiscal();

            notaFiscal.EmitirNotaFiscal(pedido);

            _service.GerarXMLNota(_diretorio, notaFiscal);

            if (pedido != null)
            {
                Console.Write("Pedido para " + notaFiscal.NumeroNotaFiscal);
            }
        }
コード例 #3
0
        public void TestSudeste()
        {
            Pedido ped = new Pedido();

            ped.clientePedido.nomeCliente = "Maria";
            ped.EstadoOrigem.siglaEstado  = "SP";
            ped.EstadoDestino.siglaEstado = "RJ";

            PedidoItem item1 = new PedidoItem();

            item1.NomeProduto     = "Alicate";
            item1.CodigoProduto   = "125-172";
            item1.ValorItemPedido = 18.05;
            item1.Brinde          = false;
            ped.ItensDoPedido.Add(item1);

            PedidoItem item2 = new PedidoItem();

            item2.NomeProduto     = "Chave de Fenda";
            item2.CodigoProduto   = "125-185";
            item2.ValorItemPedido = 10.79;
            item2.Brinde          = true;
            ped.ItensDoPedido.Add(item2);

            NotaFiscal nf = new NotaFiscal();

            nf.EmitirNotaFiscal(ped);

            Assert.AreEqual(nf.ClienteNF, ped.clientePedido);   // mesmo cliente

            Assert.AreEqual(nf.EstadoOrigem, ped.EstadoOrigem); // estados iguais entre NF e Pedido
            Assert.AreEqual(nf.EstadoDestino, ped.EstadoDestino);

            Assert.IsTrue(nf.ItensDaNotaFiscal[0].Cfop == "6.000");
            Assert.IsTrue(nf.ItensDaNotaFiscal[0].TipoIcms == "10");

            Assert.IsTrue(nf.ItensDaNotaFiscal[0].BaseIcms == ped.ItensDoPedido[0].ValorItemPedido);
            Assert.IsTrue(nf.ItensDaNotaFiscal[0].AliquotaIcms == 0.17);
            Assert.IsTrue(nf.ItensDaNotaFiscal[0].ValorIcms == (nf.ItensDaNotaFiscal[0].BaseIcms * nf.ItensDaNotaFiscal[0].AliquotaIcms));

            Assert.IsTrue(nf.ItensDaNotaFiscal[0].BaseIpi == ped.ItensDoPedido[0].ValorItemPedido);
            Assert.IsTrue(nf.ItensDaNotaFiscal[0].AliquotaIpi == 0.1);
            Assert.IsTrue(nf.ItensDaNotaFiscal[0].ValorIPI == (nf.ItensDaNotaFiscal[0].BaseIpi * nf.ItensDaNotaFiscal[0].AliquotaIpi));

            Assert.IsTrue(nf.ItensDaNotaFiscal[0].Desconto == 0.1);

            Assert.IsTrue(nf.ItensDaNotaFiscal[1].Cfop == "6.000");
            Assert.IsTrue(nf.ItensDaNotaFiscal[1].TipoIcms == "60");

            Assert.IsTrue(nf.ItensDaNotaFiscal[1].BaseIcms == ped.ItensDoPedido[1].ValorItemPedido);
            Assert.IsTrue(nf.ItensDaNotaFiscal[1].AliquotaIcms == 0.18);
            Assert.IsTrue(nf.ItensDaNotaFiscal[1].ValorIcms == (nf.ItensDaNotaFiscal[1].BaseIcms * nf.ItensDaNotaFiscal[1].AliquotaIcms));

            Assert.IsTrue(nf.ItensDaNotaFiscal[1].BaseIpi == ped.ItensDoPedido[1].ValorItemPedido);
            Assert.IsTrue(nf.ItensDaNotaFiscal[1].AliquotaIpi == 0);
            Assert.IsTrue(nf.ItensDaNotaFiscal[1].ValorIPI == (nf.ItensDaNotaFiscal[1].BaseIpi * nf.ItensDaNotaFiscal[1].AliquotaIpi));

            Assert.IsTrue(nf.ItensDaNotaFiscal[1].Desconto == 0.1);
        }
コード例 #4
0
        public NotaFiscal notaFiscal;  // retirada a variável para fora de GerarNotaFiscal para ser usada em outras funções


        public void GerarNotaFiscal(Pedido pedido)
        {
            if (notaFiscal == null)
            {
                notaFiscal = new NotaFiscal();
            }

            notaFiscal.EmitirNotaFiscal(pedido);
        }
コード例 #5
0
        public void GerarNotaFiscal(Domain.Pedido pedido)
        {
            NotaFiscal notaFiscal = new NotaFiscal();

            notaFiscal.EmitirNotaFiscal(pedido);

            SaveDB(notaFiscal);

            SaveXML(notaFiscal);
        }
コード例 #6
0
        public void EmitirNota_QuandoPassarUFsDiferentes_NaodeveExistirMsgDeRetorno()
        {
            // Arrange
            NotaFiscal notaFiscal        = new NotaFiscal();
            Pedido     pedido            = CriarPedido("Maria", "SP", "RJ");
            string     resultadoEsperado = "";

            // Act
            string resultadoAtual = notaFiscal.EmitirNotaFiscal(pedido);

            // Assert
            Assert.AreEqual(resultadoEsperado, resultadoAtual);
        }
コード例 #7
0
        public string GerarNotaFiscal(Domain.Pedido pedido)
        {
            NotaFiscal notaFiscal = new NotaFiscal();

            notaFiscal.EmitirNotaFiscal(pedido);
            if (!GerarXML(notaFiscal))
            {
                return("ATENÇÃO! Ocorreu um erro ao gerar o arquivo XML. A Nota fiscal não foi salva.");
            }
            notaFiscal.Id = Repository.GravarNotaFiscal(notaFiscal);
            notaFiscal.ItensDaNotaFiscal.ForEach(i => i.IdNotaFiscal = notaFiscal.Id);
            notaFiscal.ItensDaNotaFiscal.ForEach(i => Repository.GravarNotaFiscalItem(i));
            return("");
        }
コード例 #8
0
        public void GerarNotaFiscal(Pedido pedido)
        {
            var notaFiscal = new NotaFiscal();

            try
            {
                notaFiscal.EmitirNotaFiscal(pedido);

                new XML().Save <NotaFiscal>(notaFiscal);
            }
            catch (System.Exception)
            {
                throw new Exception("Xml não gerado");
            }

            CallProcNotaFiscalItem(CallProcNotaFiscal(notaFiscal), notaFiscal.ItensDaNotaFiscal);
        }
コード例 #9
0
        public StringBuilder GerarNotaFiscal(Pedido pedido, string caminhoXml)
        {
            var criticas = ValidarNotaFiscal(pedido);

            if (criticas.Length > 0)
            {
                return(criticas);
            }

            NotaFiscal notaFiscal = new NotaFiscal();

            notaFiscal.EmitirNotaFiscal(pedido);
            SalvarXml(notaFiscal, caminhoXml);
            repository.PersistirNotaFiscal(notaFiscal);

            return(new StringBuilder());
        }
コード例 #10
0
ファイル: UnitTest.cs プロジェクト: pfcruzjunior/net-lab
        public void GerarArquivo()
        {
            notaFiscal = new NotaFiscal();
            notaFiscal.EmitirNotaFiscal(pedido);

            string path     = ConfigurationManager.AppSettings["SavePath"];
            string filePath = $"{path}\\NF_{notaFiscal.NumeroNotaFiscal}.xml";

            try
            {
                string file = nfService.GerarArquivoXml(filePath, notaFiscal, new string[] { "NotaFiscal" }, new string[] { "ItensDaNotaFiscal" }, new string[] { "Item" });
                Assert.IsNotNull(file);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #11
0
ファイル: NotaFiscalService.cs プロジェクト: wra1984/net-lab
        public void GerarNotaFiscal(Domain.Pedido pedido, string diretorio)
        {
            NotaFiscal notaFiscal = new NotaFiscal();

            notaFiscal.EmitirNotaFiscal(pedido);

            foreach (NotaFiscalItem item in notaFiscal.ItensDaNotaFiscal)
            {
                if (String.IsNullOrEmpty(item.Cfop))
                {
                    throw new Exception("CFOP não foi atribuído ao item: " + item.CodigoProduto);
                }
            }

            if (GerarXMLNota(diretorio, notaFiscal))
            {
                Data.NotaFiscalRepository repositorio = new Data.NotaFiscalRepository();
                repositorio.SalvarNota(notaFiscal);
            }
        }
コード例 #12
0
        public void GerarNotaFiscal(Domain.Pedido pedido)
        {
            NotaFiscal notaFiscal = new NotaFiscal();

            notaFiscal.EmitirNotaFiscal(pedido);

            var gerouXML = _notaFiscalRepository.GerarArquivoXML(notaFiscal);

            if (gerouXML)
            {
                var notaFiscalId = _notaFiscalRepository.Salvar(notaFiscal);

                if (notaFiscalId > 0)
                {
                    foreach (var item in notaFiscal.ItensDaNotaFiscal)
                    {
                        item.IdNotaFiscal = notaFiscalId;
                        _notaFiscalItemRepository.Salvar(item);
                    }
                }
            }
        }
コード例 #13
0
        public void GerarNotaFiscal(Domain.Pedido pedido)
        {
            NotaFiscal notaFiscal = new NotaFiscal();

            notaFiscal.EmitirNotaFiscal(pedido);

            string path     = ConfigurationManager.AppSettings["SavePath"];
            string filePath = $"{path}\\NF_{notaFiscal.NumeroNotaFiscal}.xml";
            string file     = GerarArquivoXml(filePath, notaFiscal, new string[] { "NotaFiscal" }, new string[] { "ItensDaNotaFiscal" }, new string[] { "Item" });

            if (File.Exists(file))
            {
                var repository = new NotaFiscalRepository();
                notaFiscal.Id = repository.P_NOTA_FISCAL(notaFiscal);

                foreach (var item in notaFiscal.ItensDaNotaFiscal)
                {
                    item.IdNotaFiscal = notaFiscal.Id;
                    repository.P_NOTA_FISCAL_ITEM(item);
                }
            }
        }
コード例 #14
0
        public void GerarNotaFiscal(Domain.Pedido pedido)
        {
            NotaFiscal notaFiscal = new NotaFiscal();

            notaFiscal.EmitirNotaFiscal(pedido);

            NotaFiscalItemService notaFiscalItemService = new NotaFiscalItemService();

            notaFiscalItemService.PreencherItensNF(pedido, notaFiscal);

            //Método responsável pela geração da classe em XML utilizando Serializer
            if (GerarXMLNotaFiscal(notaFiscal))
            {
                NotaFiscalRepository repo = new NotaFiscalRepository();
                notaFiscal.Id = repo.SalvarNotaFiscal(notaFiscal);

                //Atualizando os itens da NF com o ID salvo no BD
                notaFiscal.ItensDaNotaFiscal.ForEach(q => q.IdNotaFiscal = notaFiscal.Id);

                NotaFiscalItemRepository repoItem = new NotaFiscalItemRepository();
                repoItem.SalvarItensNF(notaFiscal.ItensDaNotaFiscal);
            }
        }
コード例 #15
0
ファイル: NotaTests.cs プロジェクト: wra1984/net-lab
        public void TestarDesconto()
        {
            _service = new NotaFiscalService();
            DataTable dados = _service.PrepararItensPedido();
            DataRow   linha = dados.NewRow();

            linha[0] = "Sabonete";
            linha[1] = "100101";
            linha[2] = 10.00;
            linha[3] = false;
            dados.Rows.Add(linha);

            Pedido pedido = _service.GerarPedido("Willian Rodrigues", "SP", "MG", dados);

            NotaFiscal notaFiscal = new NotaFiscal();

            notaFiscal.EmitirNotaFiscal(pedido);

            if (notaFiscal.ItensDaNotaFiscal[0].Desconto == 10)
            {
                Console.Write("Desconto foi aplicado!");
            }
        }
コード例 #16
0
        public void Emitir_NotaFiscal_Aliquota_Valor_IPI_100()
        {
            NotaFiscal nf = new NotaFiscal();

            Pedido pedido = new Pedido();

            pedido.EstadoOrigem  = "SP";
            pedido.EstadoDestino = "RO";
            pedido.NomeCliente   = "teste1";


            pedido.ItensDoPedido.Add(
                new PedidoItem()
            {
                Brinde          = false,
                CodigoProduto   = "100",
                NomeProduto     = "Produto1",
                ValorItemPedido = 10
            });

            nf.EmitirNotaFiscal(pedido);

            Assert.AreEqual(nf.ItensDaNotaFiscal[0].ValorIPI, 100);
        }
コード例 #17
0
        public void Emitir_NotaFiscal_Sem_Desconto_Estado_Destino_Sudeste()
        {
            NotaFiscal nf = new NotaFiscal();

            Pedido pedido = new Pedido();

            pedido.EstadoOrigem  = "SP";
            pedido.EstadoDestino = "SE";
            pedido.NomeCliente   = "teste1";


            pedido.ItensDoPedido.Add(
                new PedidoItem()
            {
                Brinde          = true,
                CodigoProduto   = "100",
                NomeProduto     = "Produto1",
                ValorItemPedido = 10
            });

            nf.EmitirNotaFiscal(pedido);

            Assert.AreEqual(nf.ItensDaNotaFiscal[0].Desconto, 0);
        }
コード例 #18
0
        public void Emitir_NotaFiscal_Estado_Origem_Igual_Estado_Destino_AliquotaIcms_Igual_18()
        {
            NotaFiscal nf = new NotaFiscal();

            Pedido pedido = new Pedido();

            pedido.EstadoOrigem  = "SP";
            pedido.EstadoDestino = "SP";
            pedido.NomeCliente   = "teste1";


            pedido.ItensDoPedido.Add(
                new PedidoItem()
            {
                Brinde          = true,
                CodigoProduto   = "100",
                NomeProduto     = "Produto1",
                ValorItemPedido = 10
            });

            nf.EmitirNotaFiscal(pedido);

            Assert.AreEqual(nf.ItensDaNotaFiscal[0].AliquotaIcms, 0.18);
        }
コード例 #19
0
        public void Emitir_NotaFiscal_Origem_SP_Destino_RO()
        {
            NotaFiscal nf = new NotaFiscal();

            Pedido pedido = new Pedido();

            pedido.EstadoOrigem  = "SP";
            pedido.EstadoDestino = "RO";
            pedido.NomeCliente   = "teste1";


            pedido.ItensDoPedido.Add(
                new PedidoItem()
            {
                Brinde          = true,
                CodigoProduto   = "100",
                NomeProduto     = "Produto1",
                ValorItemPedido = 200
            });

            nf.EmitirNotaFiscal(pedido);

            Assert.AreEqual(nf.ItensDaNotaFiscal[0].Cfop, "6.006");
        }
コード例 #20
0
        public void GerarNotaFiscal(Pedido pedido)
        {
            NotaFiscal notaFiscal = new NotaFiscal();

            notaFiscal.EmitirNotaFiscal(pedido);
        }
コード例 #21
0
        public int GerarNotaFiscal(Domain.Pedido pedido)
        {
            NotaFiscal notaFiscal = new NotaFiscal();

            return(notaFiscal.EmitirNotaFiscal(pedido));
        }