예제 #1
0
        public void TestNotaFiscal()
        {
            NotaFiscalService nf = new NotaFiscalService();

            Pedido pedido = new Pedido()
            {
                NomeCliente   = "Felipe Dantas",
                EstadoOrigem  = "SP",
                EstadoDestino = "PE",
                ItensDoPedido = new List <PedidoItem>()
                {
                    new PedidoItem()
                    {
                        NomeProduto = "Carro", CodigoProduto = "60", ValorItemPedido = 50000.00, Brinde = false
                    },
                    new PedidoItem()
                    {
                        NomeProduto = "Camiseta", CodigoProduto = "100", ValorItemPedido = 40.00, Brinde = true
                    },
                    new PedidoItem()
                    {
                        NomeProduto = "Tênis", CodigoProduto = "40", ValorItemPedido = 200.00, Brinde = false
                    }
                }
            };

            var retorno = nf.GerarNotaFiscal(pedido, @"C:\");

            Assert.AreEqual(0, retorno.Length);
        }
        public void GerarNotaFiscal_PedidoValido_NotaFiscalGerada()
        {
            // Arrange
            var pedidoItem = new PedidoItem
            {
                Brinde          = true,
                CodigoProduto   = "123",
                NomeProduto     = "NomeProduto",
                ValorItemPedido = 100
            };

            var pedido = new Pedido
            {
                EstadoDestino = "SP",
                EstadoOrigem  = "MG",
                NomeCliente   = "NomeCliente",
                ItensDoPedido = new List <PedidoItem> {
                    pedidoItem
                }
            };

            // Act
            var exception = Record.Exception(() => _notaFiscalService.GerarNotaFiscal(pedido));

            // Assert
            Assert.Null(exception);
        }
        public void GerarNotaFiscalTest()
        {
            NotaFiscalService nf = new NotaFiscalService();

            Pedido pedido = new Pedido();

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

            pedido.NomeCliente = "Leandro Munarim";

            List <PedidoItem> lstPedido = new List <PedidoItem>();

            lstPedido.Add(new PedidoItem {
                Brinde = false, CodigoProduto = "1", NomeProduto = "Produto 1", ValorItemPedido = 10.01M
            });
            lstPedido.Add(new PedidoItem {
                Brinde = true, CodigoProduto = "2", NomeProduto = "Produto 2", ValorItemPedido = 15.01M
            });
            lstPedido.Add(new PedidoItem {
                Brinde = false, CodigoProduto = "3", NomeProduto = "Produto 3", ValorItemPedido = 18.01M
            });

            pedido.ItensDoPedido = lstPedido;

            nf.GerarNotaFiscal(pedido);

            Assert.IsTrue(true);
        }
예제 #4
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            if (ValidaFormulario())
            {
                NotaFiscalService service = new NotaFiscalService();
                pedido.EstadoOrigem  = txtEstadoOrigem.Text;
                pedido.EstadoDestino = txtEstadoDestino.Text;
                pedido.NomeCliente   = textBoxNomeCliente.Text;

                DataTable table = (DataTable)dataGridViewPedidos.DataSource;

                foreach (DataRow row in table.Rows)
                {
                    pedido.ItensDoPedido.Add(
                        new PedidoItem()
                    {
                        Brinde          = row["Brinde"] != DBNull.Value ? Convert.ToBoolean(row["Brinde"]) : false,
                        CodigoProduto   = row["Codigo do produto"].ToString(),
                        NomeProduto     = row["Nome do produto"].ToString(),
                        ValorItemPedido = Convert.ToDouble(row["Valor"].ToString())
                    });
                }

                service.GerarNotaFiscal(pedido);
                MessageBox.Show("Operação efetuada com sucesso");
                LimparFormulario();
            }
        }
예제 #5
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            NotaFiscalService service = new NotaFiscalService();

            pedido.EstadoOrigem  = boxEstadoOrigem.Text;
            pedido.EstadoDestino = boxEstadoDestino.Text;
            pedido.NomeCliente   = textBoxNomeCliente.Text;

            DataTable table = (DataTable)dataGridViewPedidos.DataSource;

            foreach (DataRow row in table.Rows)
            {
                pedido.ItensDoPedido.Add(
                    new PedidoItem()
                {
                    Brinde          = string.IsNullOrEmpty(row["Brinde"].ToString()) ? false : Convert.ToBoolean(row["Brinde"]),
                    CodigoProduto   = row["Codigo do produto"].ToString(),
                    NomeProduto     = row["Nome do produto"].ToString(),
                    ValorItemPedido = Convert.ToDouble(row["Valor"].ToString())
                });
            }

            service.GerarNotaFiscal(pedido);

            MessageBox.Show("Operação efetuada com sucesso");

            //ActiveForm.ResetText();
            LimparCampos();
        }
예제 #6
0
 private Task GeraNota()
 {
     return(Task.Factory.StartNew(() =>
     {
         NotaFiscalService service = new NotaFiscalService();
         service.GerarNotaFiscal(pedido);
     }));
 }
예제 #7
0
 public void EmitirNota()
 {
     try
     {
         nfService.GerarNotaFiscal(pedido);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #8
0
        public void TestarEmissaoDeNotaFiscal()
        {
            List <PedidoItem> itensPedido = new List <PedidoItem>();

            PedidoItem item1 = new PedidoItem
            {
                CodigoProduto   = "1234",
                NomeProduto     = "Produto 1",
                ValorItemPedido = 15.9,
                Brinde          = false
            };

            PedidoItem item2 = new PedidoItem
            {
                CodigoProduto   = "5678",
                NomeProduto     = "Produto 2",
                ValorItemPedido = 24.7,
                Brinde          = false
            };

            PedidoItem item3 = new PedidoItem
            {
                CodigoProduto   = "9012",
                NomeProduto     = "Produto 3",
                ValorItemPedido = 98.1,
                Brinde          = false
            };

            PedidoItem brinde1 = new PedidoItem
            {
                CodigoProduto   = "3456",
                NomeProduto     = "Brinde 1",
                ValorItemPedido = 5.0,
                Brinde          = true
            };

            itensPedido.Add(item1);
            itensPedido.Add(item2);
            itensPedido.Add(item3);
            itensPedido.Add(brinde1);

            Pedido pedido = new Pedido
            {
                NomeCliente   = "Cliente 1",
                EstadoOrigem  = "SP",
                EstadoDestino = "RJ",
                ItensDoPedido = itensPedido
            };

            NotaFiscalService service = new NotaFiscalService();

            service.GerarNotaFiscal(pedido);
        }
예제 #9
0
        private void ButtonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            try
            {
                Pedido pedido = null;
                try
                {
                    pedido = CriarPedido();
                }
                catch (Exception)
                {
                    MessageBox.Show("Erro inesperado ao criar pedido, por favor, confirme os dados e tente novamente", msgCaption);
                }

                if (!pedido.IsValid)
                {
                    string msgInfo = string.Concat("Atenção!\nPor favor, corrigir os seguintes itens: \n", string.Join("\n", pedido.Errors.Select(i => i).ToArray()));
                    MessageBox.Show(msgInfo, msgCaption);
                    return;
                }

                try
                {
                    _notaFiscalService = new NotaFiscalService();

                    _notaFiscalService.GerarNotaFiscal(pedido);
                }
                catch (Exception)
                {
                    MessageBox.Show("Erro inesperado ao criar gerar nota fiscal, por favor, confirme os dados e tente novamente", msgCaption);
                }


                if (_notaFiscalService.IsValid)
                {
                    MessageBox.Show("Operação efetuada com sucesso!", msgCaption);
                    RestaurarTela();
                    return;
                }
                else
                {
                    string msgInfo = string.Concat("Atenção!\nPor favor, corrigir os seguintes itens: \n", string.Join("\n", _notaFiscalService.Errors.Select(i => i).ToArray()));
                    MessageBox.Show(msgInfo, msgCaption);
                    return;
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Erro inesperado, por favor, tente novamente mais tarde", msgCaption);
                return;
            }
        }
        public void GerarNotaFiscalTest()
        {
given:
            Pedido pedido = FactoryPedido();

when:
            NotaFiscalService notaFiscalService = new NotaFiscalService();
            NotaFiscal nota = notaFiscalService.GerarNotaFiscal(pedido);

then:
            Assert.IsTrue(File.Exists(PathFileXml(nota)));
            Assert.IsTrue(nota.Id > 0);
            Assert.AreEqual(pedido.ItensDoPedido.Count, nota.ItensDaNotaFiscal.Count);
        }
예제 #11
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            try
            {
                if (!IsFormValid)
                {
                    return;
                }

                Pedido            pedido  = new Pedido();
                NotaFiscalService service = new NotaFiscalService();

                pedido.EstadoOrigem  = comboBoxEstadoOrigem.SelectedText;
                pedido.EstadoDestino = comboBoxEstadoDestino.SelectedText;
                pedido.NomeCliente   = textBoxNomeCliente.Text;

                DataGridViewRowCollection rows = dataGridViewPedidos.Rows;
                for (int i = 0; i < rows.Count; i++)
                {
                    if (i > 0 && i == rows.Count - 1)
                    {
                        continue;
                    }

                    var item = new PedidoItem()
                    {
                        Brinde          = (bool)rows[i].Cells["Brinde"].EditedFormattedValue,
                        CodigoProduto   = rows[i].Cells["Codigo do produto"].EditedFormattedValue.ToString(),
                        NomeProduto     = rows[i].Cells["Nome do produto"].EditedFormattedValue.ToString(),
                        ValorItemPedido = Double.Parse(rows[i].Cells["Valor"].EditedFormattedValue.ToString())
                    };
                    pedido.ItensDoPedido.Add(item);
                }

                service.GerarNotaFiscal(pedido);
                MessageBox.Show("Operação efetuada com sucesso");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ocorreu um erro: " + ex.Message);
            }
            finally
            {
                comboBoxEstadoOrigem.SelectedIndex  = -1;
                comboBoxEstadoDestino.SelectedIndex = -1;
                textBoxNomeCliente.Text             = "";
                ((DataTable)dataGridViewPedidos.DataSource).Clear();
            }
        }
예제 #12
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            NotaFiscalService service = new NotaFiscalService();

            pedido = new Pedido();
            pedido.EstadoOrigem  = txtEstadoOrigem.Text;
            pedido.EstadoDestino = txtEstadoDestino.Text;
            pedido.NomeCliente   = textBoxNomeCliente.Text;

            DataTable table = (DataTable)dataGridViewPedidos.DataSource;

            foreach (DataRow row in table.Rows)
            {
                var itemBrinde = row["Brinde"];

                if (itemBrinde == System.DBNull.Value)
                {
                    itemBrinde = false;
                }

                pedido.ItensDoPedido.Add(
                    new PedidoItem()
                {
                    Brinde          = Convert.ToBoolean(itemBrinde),
                    CodigoProduto   = row["Codigo do produto"].ToString(),
                    NomeProduto     = row["Nome do produto"].ToString(),
                    ValorItemPedido = Convert.ToDouble(row["Valor"].ToString())
                });
            }

            var mensagensRetorno  = string.Empty;
            var mensagemValidacao = service.validarPedido(pedido);

            if (string.IsNullOrWhiteSpace(mensagemValidacao))
            {
                service.GerarNotaFiscal(pedido);
                mensagensRetorno = "Operação efetuada com sucesso.";
                limparTela();
            }
            else
            {
                mensagensRetorno = mensagemValidacao;
            }

            MessageBox.Show(mensagensRetorno);
        }
예제 #13
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            if (!ValidadarFormulario())
            {
                return;
            }

            NotaFiscalService service = new NotaFiscalService();

            pedido.EstadoOrigem  = txtEstadoOrigem.Text;
            pedido.EstadoDestino = txtEstadoDestino.Text;
            pedido.NomeCliente   = textBoxNomeCliente.Text;

            DataTable table = (DataTable)dataGridViewPedidos.DataSource;

            foreach (DataRow row in table.Rows)
            {
                bool brinde = false;
                bool.TryParse(row["Brinde"].ToString(), out brinde);

                double valor = 0;
                double.TryParse(row["Valor"].ToString(), out valor);

                pedido.ItensDoPedido.Add(
                    new PedidoItem()
                {
                    Brinde          = brinde,
                    CodigoProduto   = row["Codigo do produto"].ToString(),
                    NomeProduto     = row["Nome do produto"].ToString(),
                    ValorItemPedido = valor
                });
            }
            try
            {
                service.GerarNotaFiscal(pedido);

                MessageBox.Show("Operação efetuada com sucesso");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ocorreu um erro! Error:" + ex.Message);
            }


            LimparCampos();
        }
예제 #14
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            NotaFiscalService service = new NotaFiscalService();

            pedido.EstadoOrigem  = txtEstadoOrigem.Text;
            pedido.EstadoDestino = txtEstadoDestino.Text;
            pedido.NomeCliente   = textBoxNomeCliente.Text;

            DataTable table = (DataTable)dataGridViewPedidos.DataSource;

            foreach (DataRow row in table.Rows)
            {
                pedido.ItensDoPedido.Add(
                    new PedidoItem()
                {
                    //Brinde = Convert.ToBoolean(row["Brinde"]), -- Erro de conversão quando o campo está nulo
                    Brinde          = row.Field <bool?>("Brinde") ?? false,
                    CodigoProduto   = row["Codigo do produto"].ToString(),
                    NomeProduto     = row["Nome do produto"].ToString(),
                    ValorItemPedido = Convert.ToDouble(row["Valor"].ToString())
                });
            }

            //Exercicio 6
            try
            {
                service.GerarNotaFiscal(pedido);
                MessageBox.Show("Operação efetuada com sucesso");
                txtEstadoDestino.Text   = "";
                txtEstadoOrigem.Text    = "";
                textBoxNomeCliente.Text = "";
                if (this.dataGridViewPedidos.DataSource != null)
                {
                    this.dataGridViewPedidos.DataSource = null;
                }
                else
                {
                    this.dataGridViewPedidos.Rows.Clear();
                }
                dataGridViewPedidos.DataSource = GetTablePedidos();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ocorreu erro ao gerar a Nota Fiscal: " + ex.ToString());
            }
        }
        public void GerarNotaFiscalValidaTest()
        {
            //arrange
            Pedido pedido = new Pedido("SP", "RJ", "Cliente A", _itens);

            pedido.AddItem(new PedidoItem("Produto A", Guid.NewGuid().ToString().Substring(0, 10), Math.Round(new Random().NextDouble(), 4), true));
            pedido.AddItem(new PedidoItem("Produto B", Guid.NewGuid().ToString().Substring(0, 10), Math.Round(new Random().NextDouble(), 4), false));
            pedido.AddItem(new PedidoItem("Produto C", Guid.NewGuid().ToString().Substring(0, 10), Math.Round(new Random().NextDouble(), 4), false));

            //act
            NotaFiscalService notaFiscalService = new NotaFiscalService();

            notaFiscalService.GerarNotaFiscal(pedido);

            //assert
            Assert.IsTrue(notaFiscalService.IsValid);
        }
예제 #16
0
        public void GerarNotaFiscal()
        {
            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);

            _service.GerarNotaFiscal(pedido, _diretorio);
        }
예제 #17
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            NotaFiscalService service = new NotaFiscalService();

            GetPedidos();

            var criticas = service.GerarNotaFiscal(pedido, caminhoXml);

            if (criticas.Length == 0)
            {
                MessageBox.Show("Operação efetuada com sucesso", "Sucesso");
                LimparCampos();
            }
            else
            {
                MessageBox.Show(criticas.ToString(), "Críticas");
            }
        }
예제 #18
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            NotaFiscalService service = new NotaFiscalService();

            if (ValidarCampos())
            {
                pedido.EstadoOrigem  = cmbEstadosOrigem.Text;
                pedido.EstadoDestino = cmbEstadosDestino.Text;
                pedido.NomeCliente   = textBoxNomeCliente.Text;

                DataTable table = (DataTable)dataGridViewPedidos.DataSource;

                foreach (DataRow row in table.Rows)
                {
                    bool brinde = false;
                    if (row["Brinde"] != null)
                    {
                        brinde = true;
                    }

                    pedido.ItensDoPedido.Add(
                        new PedidoItem()
                    {
                        Brinde          = brinde,
                        CodigoProduto   = row["Codigo do produto"].ToString(),
                        NomeProduto     = row["Nome do produto"].ToString(),
                        ValorItemPedido = Convert.ToDouble(row["Valor"].ToString())
                    });
                }
                int retorno = service.GerarNotaFiscal(pedido);
                if (retorno == 0)
                {
                    MessageBox.Show("Operação concluída com sucesso");
                    LimparForm();
                }
                if (retorno == 1)
                {
                    MessageBox.Show("Estado Origem/Destino sem definição de CFOP");
                }
            }
        }
예제 #19
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            if (!this.ValidaGerarNota())
            {
                return;
            }

            try
            {
                NotaFiscalService service = new NotaFiscalService();
                pedido.EstadoOrigem  = cboEstadoOrigem.SelectedValue.ToString();
                pedido.EstadoDestino = cboEstadoDestino.SelectedValue.ToString();
                pedido.NomeCliente   = textBoxNomeCliente.Text;

                //DataTable table = (DataTable)dataGridViewPedidos.DataSource;

                foreach (DataGridViewRow row in dataGridViewPedidos.Rows)
                {
                    if (row.Cells["NomeProduto"].Value == null)
                    {
                        continue;
                    }

                    pedido.ItensDoPedido.Add(
                        new PedidoItem()
                    {
                        Brinde          = row.Cells["Brinde"].Selected,
                        CodigoProduto   = row.Cells["CodigoProduto"].Value.ToString(),
                        NomeProduto     = row.Cells["NomeProduto"].Value.ToString(),
                        ValorItemPedido = Convert.ToDouble(row.Cells["Valor"].Value)
                    });
                }

                service.GerarNotaFiscal(pedido);
                MessageBox.Show("Operação efetuada com sucesso");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, Resources.Caption, MessageBoxButtons.OKCancel, MessageBoxIcon.Error);;
            }
        }
예제 #20
0
        private void GerarNota()
        {
            try
            {
                Pedido pedido = _service.GerarPedido(textBoxNomeCliente.Text,
                                                     (string)cbxEstadoOrigem.SelectedValue,
                                                     (string)cbxEstadoDestino.SelectedValue,
                                                     (DataTable)dataGridViewPedidos.DataSource);

                _service.GerarNotaFiscal(pedido, _diretorio);

                MessageBox.Show("Operação efetuada com sucesso");

                textBoxNomeCliente.Clear();
                ResizeColumns();
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
            }
        }
예제 #21
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            NotaFiscalService service = new NotaFiscalService();

            if (cmbEstadoOrigem.SelectedIndex == -1 || cmbEstadoDestino.SelectedIndex == -1)
            {
                MessageBox.Show("Selecione os estados");
            }
            else
            {
                _pedido.EstadoOrigem  = cmbEstadoOrigem.Text;
                _pedido.EstadoDestino = cmbEstadoDestino.Text;
                _pedido.NomeCliente   = textBoxNomeCliente.Text;

                DataTable table = (DataTable)dataGridViewPedidos.DataSource;

                foreach (DataRow row in table.Rows)
                {
                    _pedido.ItensDoPedido.Add(
                        new PedidoItem()
                    {
                        Brinde          = Convert.ToBoolean(row["Brinde"]),
                        CodigoProduto   = row["Codigo do produto"].ToString(),
                        NomeProduto     = row["Nome do produto"].ToString(),
                        ValorItemPedido = Convert.ToDouble(row["Valor"].ToString())
                    });
                }

                try
                {
                    service.GerarNotaFiscal(_pedido);
                    MessageBox.Show("Operação efetuada com sucesso");
                    LimparTela();
                }
                catch (Exception exception)
                {
                    MessageBox.Show(exception.Message);
                }
            }
        }
예제 #22
0
        public void GerarNotaFiscal_HavingGeneratedAValidXml_ShouldPersistNotaFiscalInDataBase()
        {
            // arrange
            var pedido = A.Dummy <Pedido>();

            pedido.ItensDoPedido.Add(A.Dummy <PedidoItem>());

            A.CallTo(() => _xmlWriter.Record(A <string> .Ignored, A <NotaFiscal> .Ignored)).Returns(true);

            A.CallTo(() => _notaFiscalRepository.GetNextIdNotaFiscal()).Returns(A.Dummy <int>());

            A.CallTo(() => _notaFiscalRepository.GetLastIdNotaFiscalItem()).Returns(A.Dummy <int>());

            A.CallTo(() => _notaFiscalRepository.InsertNotaFiscal(A <int> .Ignored, A <int> .Ignored,
                                                                  A <string> .Ignored, A <string> .Ignored, A <string> .Ignored)).Returns(1);

            A.CallTo(() => _notaFiscalRepository.InsertNotaFiscalItem(A <int> .Ignored, A <string> .Ignored, A <string> .Ignored,
                                                                      A <double> .Ignored, A <double> .Ignored, A <double> .Ignored, A <string> .Ignored, A <string> .Ignored, A <double> .Ignored, A <double> .Ignored, A <double> .Ignored, A <double> .Ignored));

            // act
            var notaFiscalService = new NotaFiscalService(_xmlWriter, _notaFiscalRepository);
            var result            = notaFiscalService.GerarNotaFiscal(pedido);

            // assert
            A.CallTo(() => _xmlWriter.Record(A <string> .Ignored, A <NotaFiscal> .Ignored))
            .MustHaveHappenedOnceExactly();

            A.CallTo(() => _notaFiscalRepository.GetNextIdNotaFiscal()).MustHaveHappenedOnceExactly();

            A.CallTo(() => _notaFiscalRepository.GetLastIdNotaFiscalItem()).MustHaveHappenedOnceExactly();

            A.CallTo(() => _notaFiscalRepository.InsertNotaFiscal(A <int> .Ignored, A <int> .Ignored,
                                                                  A <string> .Ignored, A <string> .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly();

            A.CallTo(() => _notaFiscalRepository.InsertNotaFiscalItem(A <int> .Ignored, A <string> .Ignored, A <string> .Ignored,
                                                                      A <double> .Ignored, A <double> .Ignored, A <double> .Ignored, A <string> .Ignored, A <string> .Ignored, A <double> .Ignored,
                                                                      A <double> .Ignored, A <double> .Ignored, A <double> .Ignored)).MustHaveHappenedOnceOrMore();

            Assert.IsTrue(result.Status);
        }
예제 #23
0
        public void NotaFiscal_Gerada_Com_Erro()
        {
            // Arrange
            Pedido pedido = new Pedido()
            {
                EstadoDestino = "RO",
                EstadoOrigem  = "SP",
                ItensDoPedido = new List <PedidoItem>()
                {
                    new PedidoItem()
                    {
                        NomeProduto     = "Brand new product",
                        CodigoProduto   = "12312-123123",
                        ValorItemPedido = 800,
                        Brinde          = false
                    }
                },
                NomeCliente = "Danilo"
            };

            var notaFiscalBusiness   = new Mock <NotaFiscalBusiness>();
            var impostoUtil          = new Mock <ImpostoUtil>();
            var notaFiscalRepository = new Mock <NotaFiscalRepository>();

            impostoUtil.Setup(c => c.GerarNotaFiscalEmXml(It.IsAny <NotaFiscal>()))
            .Returns(true);

            notaFiscalRepository.Setup(c => c.AdicionarNotaFiscalEItens(It.IsAny <NotaFiscal>()))
            .Throws <TimeoutException>();

            notaFiscalService = new NotaFiscalService(notaFiscalBusiness.Object,
                                                      impostoUtil.Object, notaFiscalRepository.Object);

            // Act
            bool notaFiscalGerada = notaFiscalService.GerarNotaFiscal(pedido);

            // Assert
            Assert.IsFalse(notaFiscalGerada);
        }
예제 #24
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            if (!estadoOrigemValid && !estadoDestinoValid)
            {
                MessageBox.Show("Verifique os campos em vermelho", "Erro");
                return;
            }

            NotaFiscalService service = new NotaFiscalService();

            pedido.EstadoOrigem  = txtEstadoOrigem.Text;
            pedido.EstadoDestino = txtEstadoDestino.Text;
            pedido.NomeCliente   = textBoxNomeCliente.Text;

            DataTable table = (DataTable)dataGridViewPedidos.DataSource;

            foreach (DataRow row in table.Rows)
            {
                if (row["Codigo do produto"] != DBNull.Value &&
                    row["Nome do produto"] != DBNull.Value &&
                    row["Valor"] != DBNull.Value)
                {
                    pedido.ItensDoPedido.Add(
                        new PedidoItem()
                    {
                        Brinde          = row["Brinde"] == DBNull.Value ? false : Convert.ToBoolean(row["Brinde"]),
                        CodigoProduto   = row["Codigo do produto"].ToString(),
                        NomeProduto     = row["Nome do produto"].ToString(),
                        ValorItemPedido = Convert.ToDouble(row["Valor"].ToString())
                    });
                }
            }

            service.GerarNotaFiscal(pedido);
            txtEstadoDestino.Clear();
            txtEstadoOrigem.Clear();
            textBoxNomeCliente.Clear(); //id deste campo veio fora do padrão
            MessageBox.Show("Operação efetuada com sucesso");
        }
예제 #25
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            NotaFiscalService service = new NotaFiscalService();

            pedido.EstadoOrigem  = txtEstadoOrigem.Text;
            pedido.EstadoDestino = txtEstadoDestino.Text;
            pedido.NomeCliente   = textBoxNomeCliente.Text;

            DataTable table = (DataTable)dataGridViewPedidos.DataSource;

            if (table.Rows.Count > 0)
            {
                foreach (DataRow row in table.Rows)
                {
                    if (String.IsNullOrEmpty(row["Codigo do produto"].ToString()))
                    {
                        break;
                    }

                    pedido.ItensDoPedido.Add(
                        new PedidoItem()
                    {
                        Brinde          = (row["Brinde"].ToString() == string.Empty ? false : Convert.ToBoolean(row["Brinde"])),
                        CodigoProduto   = row["Codigo do produto"].ToString(),
                        NomeProduto     = row["Nome do produto"].ToString(),
                        ValorItemPedido = Convert.ToDecimal(row["Valor"].ToString())
                    });
                }

                service.GerarNotaFiscal(pedido);
                MessageBox.Show("Operação efetuada com sucesso");

                LimparDados();
            }
            else
            {
                MessageBox.Show("Não contém registros!");
            }
        }
예제 #26
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            buttonGerarNotaFiscal.Enabled = false;

            if (ValidaCampos())
            {
                NotaFiscalService service = new NotaFiscalService();
                pedido.EstadoOrigem  = cbEstadoOrigem.Text;
                pedido.EstadoDestino = cbEstadoDestino.Text;
                pedido.NomeCliente   = textBoxNomeCliente.Text;

                DataTable table = (DataTable)dataGridViewPedidos.DataSource;

                foreach (DataRow row in table.Rows)
                {
                    bool brinde;
                    bool.TryParse(row["Brinde"].ToString(), out brinde);

                    pedido.ItensDoPedido.Add(
                        new PedidoItem()
                    {
                        Brinde          = brinde,
                        CodigoProduto   = row["Codigo do produto"].ToString(),
                        NomeProduto     = row["Nome do produto"].ToString(),
                        ValorItemPedido = Convert.ToDouble(row["Valor"].ToString())
                    });
                }

                service.GerarNotaFiscal(pedido);
                LimparCampos();
                MessageBox.Show("Operação efetuada com sucesso");
            }
            else
            {
                MessageBox.Show("Preencha todos os campos");
            }

            buttonGerarNotaFiscal.Enabled = true;
        }
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            if (!Validacao())
            {
                return;
            }

            pedido.EstadoOrigem  = txtEstadoOrigem.Text;
            pedido.EstadoDestino = txtEstadoDestino.Text;
            pedido.NomeCliente   = textBoxNomeCliente.Text;

            DataTable table = (DataTable)dataGridViewPedidos.DataSource;

            foreach (DataRow row in table.Rows)
            {
                var boolValue = false;
                pedido.ItensDoPedido.Add(
                    new PedidoItem()
                {
                    Brinde          = bool.TryParse(row["Brinde"].ToString(), out boolValue),
                    CodigoProduto   = row["Codigo do produto"].ToString(),
                    NomeProduto     = row["Nome do produto"].ToString(),
                    ValorItemPedido = Convert.ToDouble(row["Valor"].ToString())
                });
            }

            string retorno = service.GerarNotaFiscal(pedido);

            if (string.IsNullOrEmpty(retorno))
            {
                MessageBox.Show("Operação efetuada com sucesso");
                LimparTela();
            }
            else
            {
                MessageBox.Show(retorno, "Ocorreu um erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #28
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            NotaFiscalService service = new NotaFiscalService();
            Pedido            pedido  = new Pedido();
            DataTable         table   = (DataTable)dataGridViewPedidos.DataSource;

            pedido.EstadoOrigem  = cmbEstadoOrigem.Text;
            pedido.EstadoDestino = cmbEstadoDestino.Text;
            pedido.NomeCliente   = txtNomeCliente.Text;

            foreach (DataRow row in table.Rows)
            {
                PedidoItem item = new PedidoItem();
                item.NomeProduto     = row["Nome"].ToString();
                item.CodigoProduto   = row["Codigo"].ToString();
                item.ValorItemPedido = Convert.ToDouble(row["Valor"].ToString());
                if (row["Brinde"].Equals("false"))
                {
                    item.Brinde = false;
                }
                else
                {
                    item.Brinde = true;
                }
                pedido.ItensDoPedido.Add(item);
                item = null;
            }

            if (validar(pedido))
            {
                if (service.GerarNotaFiscal(pedido))
                {
                    MessageBox.Show("Operação efetuada com sucesso");
                }
                limparCampos();
            }
        }
예제 #29
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            try
            {
                if (IsValid())
                {
                    NotaFiscalService service = new NotaFiscalService();
                    Pedido            pedido  = new Pedido();

                    pedido.EstadoOrigem  = txtEstadoOrigem.Text;
                    pedido.EstadoDestino = txtEstadoDestino.Text;
                    pedido.NomeCliente   = textBoxNomeCliente.Text;

                    DataTable table = (DataTable)dataGridViewPedidos.DataSource;

                    foreach (DataRow row in table.Rows)
                    {
                        pedido.ItensDoPedido.Add(
                            new PedidoItem()
                        {
                            Brinde          = Convert.ToBoolean(row["Brinde"]),
                            CodigoProduto   = row["Codigo do produto"].ToString(),
                            NomeProduto     = row["Nome do produto"].ToString(),
                            ValorItemPedido = Convert.ToDouble(row["Valor"].ToString())
                        });
                    }
                    service.GerarNotaFiscal(pedido);
                    MessageBox.Show("Operação efetuada com sucesso", "Sucesso!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Utils.CleanControls(this.Controls);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #30
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            NotaFiscalService service = new NotaFiscalService();

            if (txtBoxNomeCliente.Text == "")  // verifica nome do cliente em branco
            {
                txtBoxNomeCliente.Focus();
                MessageBox.Show("Nome de cliente em branco.");
                return;
            }
            else
            {
                pedido.clientePedido.nomeCliente = txtBoxNomeCliente.Text;
            }

            if (!EstadoFuncs.EstadoValido(cbxEstadoOrigem.Text))  // verifica se estado é válido
            {
                cbxEstadoOrigem.Focus();
                MessageBox.Show("Estado de Origem não existe ou em branco.");
                return;
            }
            else
            {
                pedido.EstadoOrigem.siglaEstado = cbxEstadoOrigem.Text;
            }


            if (!EstadoFuncs.EstadoValido(cbxEstadoDestino.Text))  // verifica se estado é válido
            {
                cbxEstadoDestino.Focus();
                MessageBox.Show("Estado de Destino não existe ou em branco.");
                return;
            }
            else
            {
                pedido.EstadoDestino.siglaEstado = cbxEstadoDestino.Text;
            }


            DataTable table = (DataTable)dataGridViewPedidos.DataSource;

            if (table.Rows.Count == 0)  // não deixa criar pedido sem itens
            {
                MessageBox.Show("Pedido sem Itens.");
                return;
            }


            pedido.ItensDoPedido.Clear();  // limpa os itens de pedido caso seja chamada novamente por causa de erros nos dados dos itens
            int linhaAtual = 0;

            foreach (DataRow row in table.Rows)
            {
                PedidoItem pedidoItem = new PedidoItem();

                if (row["Nome do produto"].ToString() == "")  // verifica se nome do produto está em branco
                {
                    dataGridViewPedidos.CurrentCell = dataGridViewPedidos.Rows[linhaAtual].Cells["Nome do produto"];
                    MessageBox.Show("Nome do Produto em branco.");
                    return;
                }
                else
                {
                    pedidoItem.NomeProduto = row["Nome do produto"].ToString();
                }


                if (row["Codigo do produto"].ToString() == "")  // verifica se código do produto está em branco
                {
                    dataGridViewPedidos.CurrentCell = dataGridViewPedidos.Rows[linhaAtual].Cells["Codigo do produto"];
                    MessageBox.Show("Código do Produto em branco.");
                    return;
                }
                else
                {
                    pedidoItem.CodigoProduto = row["Codigo do produto"].ToString();
                }

                if (row["Valor"].ToString() == "")  // verifica se valor do produto está em branco
                {
                    dataGridViewPedidos.CurrentCell = dataGridViewPedidos.Rows[linhaAtual].Cells["Valor"];
                    MessageBox.Show("Valor em branco.");
                    return;
                }
                else
                {
                    double number;
                    if (Double.TryParse(row["Valor"].ToString(), out number))
                    {
                        pedidoItem.ValorItemPedido = number;
                    }
                    else
                    {
                        dataGridViewPedidos.CurrentCell = dataGridViewPedidos.Rows[linhaAtual].Cells["Valor"];
                        MessageBox.Show("Valor do produto é inválido.");
                        return;
                    }
                }


                if (row["Brinde"] == DBNull.Value) // proteção contra o DBNull quando não é selecionado nada na coluna BRINDE
                {
                    pedidoItem.Brinde = false;
                }
                else
                {
                    pedidoItem.Brinde = Convert.ToBoolean(row["Brinde"]);
                }

                pedido.ItensDoPedido.Add(pedidoItem);

                linhaAtual++;  // passa para próxima linha
            }

            service.GerarNotaFiscal(pedido);
            if (service.SalvaNotaFiscal())
            {
                MessageBox.Show("NF salva com sucesso");
                LimpaCampos(); // item 06 - limpar campos
            }
            else
            {
                MessageBox.Show("Erro ao Salvar NF");
            }
        }