예제 #1
0
        public void TestarAliquotaIcms()
        {
            //Realiza o teste entre todas as possibilidades de estados Origem e Destino (com item brinde e não)
            //Regra: Estado origem = destino ou item é brinde -> Aliq. ICMS 0.18 caso contrário Aliq. ICMS 0.17
            Pedido pedido = new Pedido();
            pedido.ItensDoPedido.Add(new PedidoItem());

            for (int i = 0; i < 2; i++)
            {
                pedido.ItensDoPedido[0].Brinde = (i == 0);

                foreach (var ufOrigem in Estados)
                {
                    pedido.EstadoOrigem = ufOrigem;

                    foreach (var UfDestino in Estados)
                    {
                        pedido.EstadoDestino = UfDestino;

                        NotaFiscal notaFiscal = new NotaFiscalService().EmitirNotaFiscal(pedido);

                        if (notaFiscal.EstadoDestino == notaFiscal.EstadoOrigem || pedido.ItensDoPedido[0].Brinde)
                            Assert.AreEqual(0.18, notaFiscal.ItensDaNotaFiscal[0].AliquotaIcms, "Alíquota de ICMS inválida!");
                        else
                            Assert.AreEqual(0.17, notaFiscal.ItensDaNotaFiscal[0].AliquotaIcms, "Alíquota de ICMS inválida!");
                    }
                }

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

            pedido.EstadoOrigem = cboEstadoOrigem.Text;
            pedido.EstadoDestino = cboEstadoDestino.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", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Information);

            LimparTela();
            textBoxNomeCliente.Focus();
        }
예제 #3
0
        public FormImposto()
        {
            InitializeComponent();

            _service = new NotaFiscalService();

               ResizeColumns();
        }
예제 #4
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            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)
            {
                string brind = row["Brinde"].ToString();

                if (brind == "")
                {
                    brind = "false";
                }

                pedido.ItensDoPedido.Add(
                    new PedidoItem()
                    {
                        Brinde = Convert.ToBoolean(brind),
                        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");

            textBoxNomeCliente.Text = "";
            cbEstadoOrigem.SelectedIndex = -1;
            cbEstadoDestino.SelectedIndex = -1;
            dataGridViewPedidos.DataSource = null;

            dataGridViewPedidos.DataSource = GetTablePedidos();
            ResizeColumns();

            textBoxNomeCliente.Focus();

            //Teste da SP P_CFOP
            /* SqlConnection conn = Conexao.obterConexao();

            if (conn == null)
            {
                MessageBox.Show("Erro ao tentar conectar com o banco de dados");
            }

            SqlDataReader reader = service.ValorPorCFOP(conn);

            while (reader.Read())
            {
                MessageBox.Show(reader[0].ToString() + " " + reader[1].ToString() + " " + reader[3].ToString());
            }

            Conexao.fecharConexao();*/
        }
예제 #5
0
        public void GerarPedido()
        {
            _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);

            if (pedido != null)
                Console.Write("Pedido para " + pedido.NomeCliente);
        }
예제 #6
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);
        }
예제 #7
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());
            }
        }
예제 #8
0
        public void TestarValorIpi()
        {
            //Realiza testes no valor do ipi
            //Regra: Valor do ipi = base ipi * aliquota ipi [Aliquota do ipi brinde = 0 caso contrário 10%]

            for (int i = 0; i < 2; i++)
            {
                Pedido pedido = new Pedido();
                pedido.ItensDoPedido.Add(new PedidoItem() { ValorItemPedido = 19.75, Brinde = (i == 0) });
                NotaFiscal notaFiscal = new NotaFiscalService().EmitirNotaFiscal(pedido);

                if (pedido.ItensDoPedido[0].Brinde)
                    Assert.AreEqual(0, notaFiscal.ItensDaNotaFiscal[0].ValorIpi, "Valor do IPI divergente para Brindes!");
                else
                {
                    double valor = pedido.ItensDoPedido[0].ValorItemPedido * 0.1;
                    Assert.AreEqual(valor, notaFiscal.ItensDaNotaFiscal[0].ValorIpi, "Valor do IPI divergente!");
                }
            }
        }
예제 #9
0
        private void buttonGerarNotaFiscal_Click(object sender, EventArgs e)
        {
            NotaFiscalService service = new NotaFiscalService();
            pedido.EstadoOrigem = txtEstadoOrigem.Text;

            if (!pedido.EstadoOrigemValido())
            {
                MessageBox.Show("Estado origem inválido para o pedido.");
                return;
            }

            pedido.EstadoDestino = txtEstadoDestino.Text;
            if (!pedido.EstadoDestinoValido())
            {
                MessageBox.Show("Estado destino inválido para o pedido.");
                return;
            }

            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");
            LimparTela();
        }
예제 #10
0
        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);
        }
예제 #11
0
        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!");
        }