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(); }
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!"); } } } }
public NotaFiscal EmitirNotaFiscal(Pedido pedido) { NotaFiscal notaFiscal = new NotaFiscal(); notaFiscal.NumeroNotaFiscal = 99999; notaFiscal.Serie = new Random().Next(Int32.MaxValue); notaFiscal.NomeCliente = pedido.NomeCliente; notaFiscal.EstadoDestino = pedido.EstadoDestino; notaFiscal.EstadoOrigem = pedido.EstadoOrigem; foreach (PedidoItem itemPedido in pedido.ItensDoPedido) { NotaFiscalItem notaFiscalItem = new NotaFiscalItem(); notaFiscalItem.NomeProduto = itemPedido.NomeProduto; notaFiscalItem.CodigoProduto = itemPedido.CodigoProduto; notaFiscalItem.Cfop = new CfopService().ObterCfop(notaFiscal.EstadoOrigem, notaFiscal.EstadoDestino); //Cálculo do ICMS if (notaFiscal.EstadoDestino == notaFiscal.EstadoOrigem || itemPedido.Brinde) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; } else { notaFiscalItem.TipoIcms = "10"; notaFiscalItem.AliquotaIcms = 0.17; } if (notaFiscalItem.Cfop == "6.009") notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido * 0.90; //redução de base else notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido; notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms; //Cálculo do Ipi notaFiscalItem.BaseIpi = itemPedido.ValorItemPedido; notaFiscalItem.AliquotaIpi = (itemPedido.Brinde ? 0 : 0.1); notaFiscalItem.ValorIpi = notaFiscalItem.BaseIpi * notaFiscalItem.AliquotaIpi; //Cálculo do desconto notaFiscalItem.Desconto = new DescontoService().CalcularDesconto(notaFiscal.EstadoDestino); notaFiscal.ItensDaNotaFiscal.Add(notaFiscalItem); } return notaFiscal; }
private NotaFiscal CriarNotaFiscal(string nomeCliente, string estadoOrigem, string estadoDestino, string nomeProduto, string codigoProduto, double Valor) { Pedido pedido = new Pedido(); pedido.NomeCliente = nomeCliente; pedido.EstadoOrigem = estadoOrigem; pedido.EstadoDestino = estadoDestino; PedidoItem item = new PedidoItem(); item.NomeProduto = "Teste"; item.CodigoProduto = "123456789"; item.ValorItemPedido = 250.0; item.Brinde = false; pedido.ItensDoPedido.Add(item); NotaFiscal notaFiscal = new NotaFiscal(); notaFiscal.EmitirNotaFiscal(pedido); return notaFiscal; }
public void EmitirNotaFiscal(Pedido pedido) { this.NumeroNotaFiscal = 99999; this.Serie = new Random().Next(Int32.MaxValue); this.NomeCliente = pedido.NomeCliente; this.EstadoDestino = pedido.EstadoDestino; // Correção na inversão de UF. this.EstadoOrigem = pedido.EstadoOrigem; foreach (PedidoItem itemPedido in pedido.ItensDoPedido) { NotaFiscalItem notaFiscalItem = new NotaFiscalItem(); GetCFOP(ref notaFiscalItem); if (this.EstadoDestino == this.EstadoOrigem) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; } else { notaFiscalItem.TipoIcms = "10"; notaFiscalItem.AliquotaIcms = 0.17; } if (notaFiscalItem.Cfop == "6.009") { notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido*0.90; //redução de base } else { notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido; notaFiscalItem.BaseIPI = itemPedido.ValorItemPedido; } notaFiscalItem.ValorIcms = Math.Round(notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms,2); notaFiscalItem.ValorIPI = Math.Round(notaFiscalItem.BaseIPI * notaFiscalItem.AliquotaIPI, 2); PossuiBrinde(itemPedido, notaFiscalItem); notaFiscalItem.NomeProduto = itemPedido.NomeProduto; notaFiscalItem.CodigoProduto = itemPedido.CodigoProduto; this.ItensDaNotaFiscal.Add(notaFiscalItem); } NotaDesconto.aplicarDesconto(this); }
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!"); } } }
public void TestValorIpi() { Pedido pedido = new Pedido(); pedido.NomeCliente = "teste"; pedido.EstadoOrigem = "SP"; pedido.EstadoDestino = "RJ"; pedido.ItensDoPedido = new List<PedidoItem>(); pedido.ItensDoPedido.Add(new PedidoItem { CodigoProduto = "001", NomeProduto = "teste", Brinde = false, ValorItemPedido = 150 }); NotaFiscal notaFiscal = new NotaFiscal(); notaFiscal.EmitirNotaFiscal(pedido); double esperado = 15; double resultado = 0; foreach (NotaFiscalItem item in notaFiscal.ItensDaNotaFiscal) { resultado = item.ValorIpi; } Assert.AreEqual(esperado, resultado, 0.001, "Valor do Ipi incorreto!"); }
public Pedido GerarPedido(string cliente, string ufOrigem, string ufDestino, DataTable itens ) { if (String.IsNullOrEmpty(cliente)) { throw new Exception("Favor informar o cliente para o pedido"); } if (String.IsNullOrEmpty(ufOrigem)) { throw new Exception("Favor informar o estado de origem do pedido"); } if (String.IsNullOrEmpty(ufDestino)) { throw new Exception("Favor informar o estado de destino do pedido"); } if (itens.Rows.Count == 0) { throw new Exception("Não foi informado itens para o pedido"); } Pedido pedido = new Pedido(); pedido.EstadoOrigem = ufOrigem; pedido.EstadoDestino = ufDestino; pedido.NomeCliente = cliente; foreach (DataRow row in itens.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()) }); } return pedido; }
public void EmitirNotaFiscal(Pedido pedido) { this.NumeroNotaFiscal = 99999; this.Serie = new Random().Next(Int32.MaxValue); this.NomeCliente = pedido.NomeCliente; // correção do erro: variáveis invertidas this.EstadoDestino = pedido.EstadoDestino; this.EstadoOrigem = pedido.EstadoOrigem; // Conexao ao banco de dados String connStr = ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString; SqlConnection conn = new SqlConnection(connStr); // insertando os valores P_NOTA_FISCAL SqlCommand cmd = new SqlCommand("P_NOTA_FISCAL", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@pId", SqlDbType.Int).Value = this.Id; cmd.Parameters.Add("@pNumeroNotaFiscal", SqlDbType.Int).Value = this.NumeroNotaFiscal; cmd.Parameters.Add("@pSerie", SqlDbType.Int).Value = this.Serie; cmd.Parameters.Add("@pNomeCliente", SqlDbType.VarChar).Value = this.NomeCliente; cmd.Parameters.Add("@pEstadoDestino", SqlDbType.VarChar).Value = this.EstadoDestino; cmd.Parameters.Add("@pEstadoOrigem", SqlDbType.VarChar).Value = this.EstadoOrigem; conn.Open(); cmd.ExecuteNonQuery(); SqlCommand cmdId = new SqlCommand(); // obter o max Id gerado para associar aos itens de pedido cmdId.CommandText = "Select max(id) from notaFiscal"; cmdId.CommandType = CommandType.Text; cmdId.Connection = conn; this.Id = (int)cmdId.ExecuteScalar(); foreach (PedidoItem itemPedido in pedido.ItensDoPedido) { NotaFiscalItem notaFiscalItem = new NotaFiscalItem(); notaFiscalItem.IdNotaFiscal = this.Id; // melhora da complexidade ciclomática if (this.EstadoOrigem == "SP") { switch (this.EstadoDestino) { case "RJ": notaFiscalItem.Cfop = "6.000"; break; case "PE": notaFiscalItem.Cfop = "6.001"; break; case "MG": notaFiscalItem.Cfop = "6.002"; break; case "PB": notaFiscalItem.Cfop = "6.003"; break; case "PR": notaFiscalItem.Cfop = "6.004"; break; case "PI": notaFiscalItem.Cfop = "6.005"; break; case "RO": notaFiscalItem.Cfop = "6.006"; break; case "SE": notaFiscalItem.Cfop = "6.007"; break; case "TO": notaFiscalItem.Cfop = "6.008"; break; case "PA": notaFiscalItem.Cfop = "6.010"; break; } } else if (this.EstadoOrigem == "MG") { switch (this.EstadoDestino) { case "RJ": notaFiscalItem.Cfop = "6.000"; break; case "PE": notaFiscalItem.Cfop = "6.001"; break; case "MG": notaFiscalItem.Cfop = "6.002"; break; case "PB": notaFiscalItem.Cfop = "6.003"; break; case "PR": notaFiscalItem.Cfop = "6.004"; break; case "PI": notaFiscalItem.Cfop = "6.005"; break; case "RO": notaFiscalItem.Cfop = "6.006"; break; case "SE": notaFiscalItem.Cfop = "6.007"; break; case "TO": notaFiscalItem.Cfop = "6.008"; break; case "PA": notaFiscalItem.Cfop = "6.010"; break; } } if (this.EstadoDestino == this.EstadoOrigem) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; } else { notaFiscalItem.TipoIcms = "10"; notaFiscalItem.AliquotaIcms = 0.17; } if (notaFiscalItem.Cfop == "6.009") { notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido * 0.90; //redução de base } else { notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido; } notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms; if (itemPedido.Brinde) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms; } notaFiscalItem.NomeProduto = itemPedido.NomeProduto; notaFiscalItem.CodigoProduto = itemPedido.CodigoProduto; /******* Adiciono valores de IPI ******/ //Valor Base Ipi notaFiscalItem.BaseIpi = itemPedido.ValorItemPedido; //Aliquota Ipi if (itemPedido.Brinde) { // Se for Brinde notaFiscalItem.AliquotaIpi = 0; } else { // Se não é Brinde notaFiscalItem.AliquotaIpi = 0.10; } //Valor Ipi = Base Cálculo Ipi * Aliquota Ipi notaFiscalItem.ValorIpi = notaFiscalItem.BaseIpi * notaFiscalItem.AliquotaIpi; // Valor Desconto para clientes onde EstadoDestino seja Sudoeste. if (this.EstadoDestino == "SP" || this.EstadoDestino == "RJ" || this.EstadoDestino == "ES" || this.EstadoDestino == "MG") { notaFiscalItem.Desconto = 0.10; } // insertando os valores P_NOTA_FISCAL_ITEM SqlCommand cmdIt = new SqlCommand("P_NOTA_FISCAL_ITEM", conn); cmdIt.CommandType = CommandType.StoredProcedure; cmdIt.Parameters.Add("@pId", SqlDbType.Int).Value = notaFiscalItem.Id; cmdIt.Parameters.Add("@pIdNotaFiscal", SqlDbType.Int).Value = notaFiscalItem.IdNotaFiscal; cmdIt.Parameters.Add("@pCfop", SqlDbType.VarChar).Value = notaFiscalItem.Cfop; cmdIt.Parameters.Add("@pTipoIcms", SqlDbType.VarChar).Value = notaFiscalItem.TipoIcms; cmdIt.Parameters.Add("@pBaseIcms", SqlDbType.Decimal).Value = notaFiscalItem.BaseIcms; cmdIt.Parameters.Add("@pAliquotaIcms", SqlDbType.Decimal).Value = notaFiscalItem.AliquotaIcms; cmdIt.Parameters.Add("@pValorIcms", SqlDbType.Decimal).Value = notaFiscalItem.ValorIcms; cmdIt.Parameters.Add("@pNomeProduto", SqlDbType.VarChar).Value = notaFiscalItem.NomeProduto; cmdIt.Parameters.Add("@pCodigoProduto", SqlDbType.VarChar).Value = notaFiscalItem.CodigoProduto; cmdIt.Parameters.Add("@pBaseIpi", SqlDbType.Decimal).Value = notaFiscalItem.BaseIpi; cmdIt.Parameters.Add("@pAliquotaIpi", SqlDbType.Decimal).Value = notaFiscalItem.AliquotaIpi; cmdIt.Parameters.Add("@pValorIpi", SqlDbType.Decimal).Value = notaFiscalItem.ValorIpi; cmdIt.Parameters.Add("@pDesconto", SqlDbType.Decimal).Value = notaFiscalItem.Desconto; cmdIt.ExecuteNonQuery(); } // Persistência de dados XML System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(NotaFiscal)); var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "//NotaFiscal_" + this.Id +".xml"; System.IO.FileStream file = System.IO.File.Create(path); writer.Serialize(file, this); file.Close(); // fechando db conn.Close(); }
public NotaFiscal EmitirNotaFiscal(Pedido pedido) { this.NumeroNotaFiscal = new Random().Next(int.MaxValue); this.Serie = new Random().Next(Int32.MaxValue); this.NomeCliente = pedido.NomeCliente; this.EstadoOrigem = pedido.EstadoOrigem; this.EstadoDestino = pedido.EstadoDestino; foreach (PedidoItem itemPedido in pedido.ItensDoPedido) { NotaFiscalItem notaFiscalItem = new NotaFiscalItem(); CFOP cfop = new CFOP(); notaFiscalItem.Cfop = cfop.CalcularCFOP(this); if (this.EstadoDestino == this.EstadoOrigem) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; } else { notaFiscalItem.TipoIcms = "10"; notaFiscalItem.AliquotaIcms = 0.17; } if (notaFiscalItem.Cfop == "6.009") { notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido*0.90; //redução de base } else { notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido; } notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms*notaFiscalItem.AliquotaIcms; if (itemPedido.Brinde) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms; } AliquotaIPI Aliq = new AliquotaIPI(); notaFiscalItem.AliquotaIPI = Aliq.CalcularAliquotaIPI(itemPedido.Brinde); notaFiscalItem.BaseIPI = itemPedido.ValorItemPedido; notaFiscalItem.ValorIPI = notaFiscalItem.BaseIPI * notaFiscalItem.AliquotaIPI; notaFiscalItem.NomeProduto = itemPedido.NomeProduto; notaFiscalItem.CodigoProduto = itemPedido.CodigoProduto; notaFiscalItem.IdNotaFiscal = this.NumeroNotaFiscal; Desconto Desc = new Desconto(); notaFiscalItem.Desconto = Desc.CalcularDesconto(this) * itemPedido.ValorItemPedido; this.ItensDaNotaFiscal.Add(notaFiscalItem); } return this; }
public void GerarNotaFiscal(Pedido pedido) { NotaFiscal notaFiscal = new NotaFiscal(); notaFiscal.EmitirNotaFiscal(pedido); }
public void EmitirNotaFiscal(Pedido pedido) { this.NumeroNotaFiscal = 99999; this.Serie = new Random().Next(Int32.MaxValue); this.NomeCliente = pedido.NomeCliente; this.EstadoDestino = pedido.EstadoDestino; this.EstadoOrigem = pedido.EstadoOrigem; //Estava invertido foreach (PedidoItem itemPedido in pedido.ItensDoPedido) { NotaFiscalItem notaFiscalItem = new NotaFiscalItem(); if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "RJ")) { notaFiscalItem.Cfop = "6.000"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "PE")) { notaFiscalItem.Cfop = "6.001"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "MG")) { notaFiscalItem.Cfop = "6.002"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "PB")) { notaFiscalItem.Cfop = "6.003"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "PR")) { notaFiscalItem.Cfop = "6.004"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "PI")) { notaFiscalItem.Cfop = "6.005"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "RO")) { notaFiscalItem.Cfop = "6.006"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "SE")) { notaFiscalItem.Cfop = "6.007"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "TO")) { notaFiscalItem.Cfop = "6.008"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "SE")) { notaFiscalItem.Cfop = "6.009"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "PA")) { notaFiscalItem.Cfop = "6.010"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "RJ")) { notaFiscalItem.Cfop = "6.000"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "PE")) { notaFiscalItem.Cfop = "6.001"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "MG")) { notaFiscalItem.Cfop = "6.002"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "PB")) { notaFiscalItem.Cfop = "6.003"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "PR")) { notaFiscalItem.Cfop = "6.004"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "PI")) { notaFiscalItem.Cfop = "6.005"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "RO")) { notaFiscalItem.Cfop = "6.006"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "SE")) { notaFiscalItem.Cfop = "6.007"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "TO")) { notaFiscalItem.Cfop = "6.008"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "SE")) { notaFiscalItem.Cfop = "6.009"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "PA")) { notaFiscalItem.Cfop = "6.010"; } if (this.EstadoDestino == this.EstadoOrigem) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; } else { notaFiscalItem.TipoIcms = "10"; notaFiscalItem.AliquotaIcms = 0.17; } if (notaFiscalItem.Cfop == "6.009") { notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido*0.90; //redução de base } else { notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido; } notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms*notaFiscalItem.AliquotaIcms; if (itemPedido.Brinde) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms; } notaFiscalItem.NomeProduto = itemPedido.NomeProduto; notaFiscalItem.CodigoProduto = itemPedido.CodigoProduto; //Romadier Mendonça //Aplicando regra de IPI if (itemPedido.Brinde) notaFiscalItem.AliquotaIpi = 0; else notaFiscalItem.AliquotaIpi = 0.10; notaFiscalItem.BaseIpi = itemPedido.ValorItemPedido; notaFiscalItem.ValorIpi = notaFiscalItem.BaseIpi * notaFiscalItem.AliquotaIpi; //Romadier Mendonça //Preenchendo o campo desconto quando o cliente for do sudeste if (this.EstadoDestino == "SP" || this.EstadoDestino == "MG" || this.EstadoDestino == "RJ" || this.EstadoDestino == "ES") notaFiscalItem.Desconto = itemPedido.ValorItemPedido * 0.10; else notaFiscalItem.Desconto = 0; //Romadier Mendonça //Não estava gravando o item this.ItensDaNotaFiscal.Add(notaFiscalItem); } }
public void EmitirNotaFiscal(Pedido pedido) { this.NumeroNotaFiscal = 99999; this.Serie = new Random().Next(Int32.MaxValue); this.NomeCliente = pedido.NomeCliente; this.EstadoDestino = pedido.EstadoOrigem; this.EstadoOrigem = pedido.EstadoDestino; foreach (PedidoItem itemPedido in pedido.ItensDoPedido) { NotaFiscalItem notaFiscalItem = new NotaFiscalItem(); if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "RJ")) { notaFiscalItem.Cfop = "6.000"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "PE")) { notaFiscalItem.Cfop = "6.001"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "MG")) { notaFiscalItem.Cfop = "6.002"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "PB")) { notaFiscalItem.Cfop = "6.003"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "PR")) { notaFiscalItem.Cfop = "6.004"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "PI")) { notaFiscalItem.Cfop = "6.005"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "RO")) { notaFiscalItem.Cfop = "6.006"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "SE")) { notaFiscalItem.Cfop = "6.007"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "TO")) { notaFiscalItem.Cfop = "6.008"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "SE")) { notaFiscalItem.Cfop = "6.009"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "PA")) { notaFiscalItem.Cfop = "6.010"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "RJ")) { notaFiscalItem.Cfop = "6.000"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "PE")) { notaFiscalItem.Cfop = "6.001"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "MG")) { notaFiscalItem.Cfop = "6.002"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "PB")) { notaFiscalItem.Cfop = "6.003"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "PR")) { notaFiscalItem.Cfop = "6.004"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "PI")) { notaFiscalItem.Cfop = "6.005"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "RO")) { notaFiscalItem.Cfop = "6.006"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "SE")) { notaFiscalItem.Cfop = "6.007"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "TO")) { notaFiscalItem.Cfop = "6.008"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "SE")) { notaFiscalItem.Cfop = "6.009"; } else if ((this.EstadoOrigem == "MG") && (this.EstadoDestino == "PA")) { notaFiscalItem.Cfop = "6.010"; } if (this.EstadoDestino == this.EstadoOrigem) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; } else { notaFiscalItem.TipoIcms = "10"; notaFiscalItem.AliquotaIcms = 0.17; } if (notaFiscalItem.Cfop == "6.009") { notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido*0.90; //redução de base } else { notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido; } notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms*notaFiscalItem.AliquotaIcms; if (itemPedido.Brinde) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms; } notaFiscalItem.NomeProduto = itemPedido.NomeProduto; notaFiscalItem.CodigoProduto = itemPedido.CodigoProduto; } }
public void GerarNotaFiscal(Pedido pedido) { NotaFiscal notaFiscal = EmitirNotaFiscal(pedido); GerarNotaFiscalXML(notaFiscal); GravarNotaFiscal(notaFiscal); }