public void EmitirNotaFiscal(Pedido pedido) { this.NumeroNotaFiscal = 99999; // número da NF deveria ser sequencial, teria que fazer uma pesquisa no BD para atribuir um novo nr this.Serie = new Random().Next(Int32.MaxValue); this.ClienteNF = pedido.clientePedido; //this.EstadoDestino = pedido.EstadoOrigem; // Adicionado por Luiz - Referente ao item 06 do teste - Destino recebia Origem e Origem recebia Destino - Corrigido //this.EstadoOrigem = pedido.EstadoDestino; this.EstadoOrigem = pedido.EstadoOrigem; this.EstadoDestino = pedido.EstadoDestino; foreach (PedidoItem itemPedido in pedido.ItensDoPedido) { NotaFiscalItem notaFiscalItem = new NotaFiscalItem(); // notaFiscalItem.IdNotaFiscal ??? teria de implementar uma futura função para atualizar este campo com o ID da NF notaFiscalItem.NomeProduto = itemPedido.NomeProduto; notaFiscalItem.CodigoProduto = itemPedido.CodigoProduto; CalculaCFOP(notaFiscalItem); CalculaICMS(notaFiscalItem, itemPedido); CalculaIPI(notaFiscalItem, itemPedido); CalculaDesconto(notaFiscalItem); ItensDaNotaFiscal.Add(notaFiscalItem); // Adicionado por Luiz - Referente ao item 01 do teste - necessário para resolver problema de serialização de XML com IEnumerable (convertido para LIST) } }
public NotaFiscal EmitirNotaFiscal(Pedido pedido) { try { NumeroNotaFiscal = 99999; Serie = new Random().Next(Int32.MaxValue); NomeCliente = pedido.NomeCliente; EstadoDestino = pedido.EstadoDestino; EstadoOrigem = pedido.EstadoOrigem; string _cfop = cfop.Realiza(EstadoOrigem, EstadoDestino); foreach (PedidoItem itemPedido in pedido.ItensDoPedido) { NotaFiscalItem notaFiscalItem = new NotaFiscalItem(itemPedido); notaFiscalItem.Cfop = _cfop == null ? "" : _cfop; icms.Calcula(itemPedido, pedido, notaFiscalItem); ipi.Calcula(itemPedido, pedido, notaFiscalItem); desconto.Calcula(itemPedido, pedido, notaFiscalItem); ItensDaNotaFiscal.Add(notaFiscalItem); } return(this); } catch (Exception ex) { throw ex; } }
private void CalculaICMS(NotaFiscalItem notaFiscalItem, PedidoItem itemPedido) { if (EstadoDestino == 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; } }
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(); //Uso padrao de Projeto Clain of Responsability, para resolver o problema de manutanção e sujeira de codigo CalculaCfop cfop = new CalculaCfop(); notaFiscalItem.Cfop = cfop.ObtemCfop(pedido); //Centralizo para cada classe responsavel notaFiscalItem.AliquotaIcms = ICMS.ObtemAliquotaIcms(pedido); notaFiscalItem.TipoIcms = ICMS.ObtemTipoIcms(pedido); notaFiscalItem.BaseIcms = ICMS.CalculaBaseIcms(notaFiscalItem.Cfop, itemPedido.ValorItemPedido); notaFiscalItem.ValorIcms = ICMS.CalculaValorIcms(notaFiscalItem); if (itemPedido.Brinde) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms; } notaFiscalItem.NomeProduto = itemPedido.NomeProduto; notaFiscalItem.CodigoProduto = itemPedido.CodigoProduto; // caulculo IPI notaFiscalItem.AliquotaIpi = IPI.CalculaAliquotaIpi(itemPedido.Brinde); notaFiscalItem.BaseIpi += itemPedido.ValorItemPedido; notaFiscalItem.ValorIpi = IPI.CalculaValorIpi(notaFiscalItem.BaseIpi, notaFiscalItem.AliquotaIpi); //Desconto Sudeste notaFiscalItem.Desconto = DescontosSudeste.ObtemDesconto(this.EstadoDestino); this.ItensDaNotaFiscal.Add(notaFiscalItem); } //Validação se persistiu xml com sucesso if (!Xml.Exportar(pedido)) { throw new Exception("Problemas para gravar Xml"); } // Salvando no Banco var idNota = NotaFiscalRepository.InsertNotaFiscal(this); foreach (var item in this.ItensDaNotaFiscal.ToList()) { item.IdNotaFiscal = idNota; NotaFiscalRepository.InsertNotaFiscalItem(item); } }
public void EmitirNotaFiscal(Pedido pedido) { NumeroNotaFiscal = 99999; Serie = new Random().Next(Int32.MaxValue); NomeCliente = pedido.NomeCliente; EstadoDestino = pedido.EstadoDestino; EstadoOrigem = pedido.EstadoOrigem; foreach (var itemPedido in pedido.ItensDoPedido) { var notaFiscalItem = new NotaFiscalItem() { Cfop = new NotaFiscalRepository().ProcCfopPorEstado(EstadoOrigem, EstadoDestino), Desconto = Calculos.DescontoPorOrigem(EstadoOrigem) }; if (EstadoDestino == EstadoOrigem) { notaFiscalItem.AtribuirTipoIcms("60"); notaFiscalItem.AtribuirAliquotaIcms(0.18); } else { notaFiscalItem.AtribuirTipoIcms("10"); notaFiscalItem.AtribuirAliquotaIcms(0.17); } if (notaFiscalItem.Cfop == "6.009") { notaFiscalItem.CalcularBaseIcms(itemPedido.ValorItemPedido, 0.90); //redução de base } else { notaFiscalItem.AtribuirBaseIcms(itemPedido.ValorItemPedido); } notaFiscalItem.CalcularValorIcms(notaFiscalItem.BaseIcms, notaFiscalItem.AliquotaIcms); if (itemPedido.Brinde) { notaFiscalItem.CalcularAliquotaIpi(0.10); } else { notaFiscalItem.CalcularAliquotaIpi(0); } notaFiscalItem.AtribuirBaseIpi(notaFiscalItem.BaseIcms); notaFiscalItem.CalcularValorIpi(notaFiscalItem.BaseIpi, notaFiscalItem.AliquotaIpi); notaFiscalItem.AtribuirNomeProduto(itemPedido.NomeProduto); notaFiscalItem.AtribuirCodigoProduto(itemPedido.CodigoProduto); ItensDaNotaFiscal.Add(notaFiscalItem); } }
public string EmitirNotaFiscal(Pedido pedido) { // nº de NF será obtida através de um objeto SEQUENCE na procedure P_NOTA_FISCAL this.Serie = new Random().Next(Int32.MaxValue); this.NomeCliente = pedido.NomeCliente; this.EstadoDestino = pedido.EstadoDestino; this.EstadoOrigem = pedido.EstadoOrigem; foreach (PedidoItem itemPedido in pedido.ItensDoPedido) { NotaFiscalItem notaFiscalItem = new NotaFiscalItem(); var tratFiscal = Repository.ObterTratamentoFiscal(this.EstadoOrigem, this.EstadoDestino, itemPedido.Brinde); if (tratFiscal.Id == 0) return "Não foi encontrado nenhum Tratamento Fiscal para os Estados selecionados."; notaFiscalItem.Cfop = tratFiscal.Cfop; notaFiscalItem.TipoIcms = tratFiscal.TipoIcms; notaFiscalItem.AliquotaIcms = tratFiscal.AliquotaIcms; notaFiscalItem.AliquotaIpi = tratFiscal.AliquotaIpi; notaFiscalItem.ValorItemPedido = itemPedido.ValorItemPedido; notaFiscalItem.Brinde = itemPedido.Brinde; // Aplica desconto, caso haja if (tratFiscal.Desconto > 0) { itemPedido.ValorItemPedido -= (itemPedido.ValorItemPedido * tratFiscal.Desconto) / 100; notaFiscalItem.Desconto = tratFiscal.Desconto; } // Calcula ICMS / redução de base if (tratFiscal.ReducaoBaseIcms > 0) notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido * tratFiscal.ReducaoBaseIcms; else notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido; if (notaFiscalItem.AliquotaIcms > 0) notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms; // Calcula IPI notaFiscalItem.BaseIpi = itemPedido.ValorItemPedido; if (notaFiscalItem.AliquotaIpi > 0) notaFiscalItem.ValorIpi = notaFiscalItem.BaseIpi * notaFiscalItem.AliquotaIpi; notaFiscalItem.NomeProduto = itemPedido.NomeProduto; notaFiscalItem.CodigoProduto = itemPedido.CodigoProduto; ItensDaNotaFiscal.Add(notaFiscalItem); } return ""; }
private void CalculaDesconto(NotaFiscalItem notaFiscalItem) { if (EstadoFuncs.EstadoSudeste(EstadoDestino)) // Adicionado por Luiz - Referente ao item 07 do teste { notaFiscalItem.Desconto = 0.1; // 10% para Sudeste } else { notaFiscalItem.Desconto = 0; } }
private static void PossuiBrinde(PedidoItem itemPedido, NotaFiscalItem notaFiscalItem) { if (itemPedido.Brinde) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms; notaFiscalItem.AliquotaIPI = 0; notaFiscalItem.ValorIPI = notaFiscalItem.BaseIPI * notaFiscalItem.AliquotaIPI; } }
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 static void CalculaIPI(NotaFiscalItem notaFiscalItem, PedidoItem itemPedido) { if (itemPedido.Brinde) // Adicionado por Luiz - Referente ao item 03 do teste { notaFiscalItem.AliquotaIpi = 0; // se brinde alíquota é 0 } else { notaFiscalItem.AliquotaIpi = 0.1; // se não brinde alíquota é 10% } notaFiscalItem.BaseIpi = itemPedido.ValorItemPedido; // Base de cálculo do IPI igual ao valor total do produto notaFiscalItem.ValorIPI = notaFiscalItem.BaseIpi * notaFiscalItem.AliquotaIpi; }
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); }
private void MapearNotaFiscalItem(PedidoItem itemPedido) { NotaFiscalItem notaFiscalItem = new NotaFiscalItem(); notaFiscalItem.NomeProduto = itemPedido.NomeProduto; notaFiscalItem.CodigoProduto = itemPedido.CodigoProduto; notaFiscalItem.BaseCalculoIPI = itemPedido.ValorItemPedido; notaFiscalItem.DefinirCfop(this.EstadoOrigem, this.EstadoDestino); notaFiscalItem.AplicaRegraMesmoEstadoOrigemDestino(this.EstadoOrigem, this.EstadoDestino, itemPedido.Brinde); notaFiscalItem.AplicaRegraBaseIcms(itemPedido.ValorItemPedido); notaFiscalItem.AplicaAliquotaIPI(itemPedido.Brinde); notaFiscalItem.AplicaDesconto(this.EstadoDestino); 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; } }
private void GetCFOP(ref NotaFiscalItem 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"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "RO")) // Correção de bug Ex. 5 { notaFiscalItem.Cfop = "6.006"; } }
public int EmitirNotaFiscal(Pedido pedido) { NotaFiscalRepository nfRepository = new NotaFiscalRepository(); this.NumeroNotaFiscal = nfRepository.RetornarMaxNumeroNota() + 1; this.Serie = new Random().Next(Int32.MaxValue); this.NomeCliente = pedido.NomeCliente; this.EstadoDestino = pedido.EstadoDestino; this.EstadoOrigem = pedido.EstadoOrigem; string cfop = nfRepository.BuscaDefinicaoCFOP(this.EstadoOrigem, this.EstadoDestino); if (cfop != "") { foreach (PedidoItem itemPedido in pedido.ItensDoPedido) { NotaFiscalItem notaFiscalItem = new NotaFiscalItem(); notaFiscalItem.Cfop = cfop; notaFiscalItem.IdNotaFiscal = this.NumeroNotaFiscal; 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) { //Cálculo ICMS notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms; //Cálculo IPI notaFiscalItem.BaseIpi = itemPedido.ValorItemPedido; notaFiscalItem.AliquotaIpi = 0.1; } notaFiscalItem.ValorIpi = notaFiscalItem.BaseIpi * notaFiscalItem.AliquotaIpi; notaFiscalItem.NomeProduto = itemPedido.NomeProduto; notaFiscalItem.CodigoProduto = itemPedido.CodigoProduto; ItensDaNotaFiscal.Add(notaFiscalItem); } int sucessoXML = GerarXML(this); if (sucessoXML == 0) { nfRepository.InserirPedido(this); //operação bem sucedida return(0); } else { return(sucessoXML); } } else { // Erro de Estado/Destino não possui definição de CFOP return(1); } }
private static void PossuiBrinde(PedidoItem itemPedido, NotaFiscalItem notaFiscalItem) { if (itemPedido.Brinde) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms; notaFiscalItem.AliquotaIPI = 0; notaFiscalItem.ValorIPI = notaFiscalItem.BaseIPI * notaFiscalItem.AliquotaIPI; } }
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 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); }
private void GetCFOP(ref NotaFiscalItem 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"; } else if ((this.EstadoOrigem == "SP") && (this.EstadoDestino == "RO")) // Correção de bug Ex. 5 { notaFiscalItem.Cfop = "6.006"; } }
private void CalculaCFOP(NotaFiscalItem notaFiscalItem) { string defaultCfop = "0.000"; switch (EstadoOrigem.siglaEstado) { case "SP": switch (EstadoDestino.siglaEstado) { 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 "SE": * notaFiscalItem.Cfop = "6.009"; // no código existia duas vezes SP/SE, só foi possível identificar trocando o if pelo switch * break;*/ case "PA": notaFiscalItem.Cfop = "6.010"; break; default: notaFiscalItem.Cfop = defaultCfop; // caso não se enquadre nas opções abaixo o CFOP não pode ficar vazio break; } break; case "MG": switch (EstadoDestino.siglaEstado) { 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 "SE": * notaFiscalItem.Cfop = "6.009"; // no código existia duas vezes SP/SE, só foi possível identificar trocando o if pelo switch * break;*/ case "PA": notaFiscalItem.Cfop = "6.010"; break; default: notaFiscalItem.Cfop = defaultCfop; // caso não se enquadre nas opções abaixo o CFOP não pode ficar vazio break; } break; default: notaFiscalItem.Cfop = defaultCfop; // caso não se enquadre nas opções abaixo o CFOP não pode ficar vazio break; } }
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; var ItensDaNotaFiscalAdicionar = new List <NotaFiscalItem>(); foreach (PedidoItem itemPedido in pedido.ItensDoPedido) { NotaFiscalItem notaFiscalItem = new NotaFiscalItem(); #region Define CFOP 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; #endregion #region Define o ICMS if (itemPedido.Brinde) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms; } notaFiscalItem.NomeProduto = itemPedido.NomeProduto; notaFiscalItem.CodigoProduto = itemPedido.CodigoProduto; #endregion #region Cálculo IPI var valorAliquotaIpi = 0.1; notaFiscalItem.BaseIpi = itemPedido.ValorItemPedido; if (itemPedido.Brinde) { valorAliquotaIpi = 0.0; } notaFiscalItem.AliquotaIpi = valorAliquotaIpi; notaFiscalItem.ValorIpi = (notaFiscalItem.BaseIpi * notaFiscalItem.AliquotaIpi); #endregion #region Desconto EstadoSudeste estadoSuldeste = new EstadoSudeste(); if (estadoSuldeste.verificarEstadoSudeste(pedido.EstadoDestino)) { notaFiscalItem.Desconto = (itemPedido.ValorItemPedido * 0.10); } #endregion ItensDaNotaFiscalAdicionar.Add(notaFiscalItem); } this.ItensDaNotaFiscal = ItensDaNotaFiscalAdicionar; if (!gerarNotaXML(this)) { return; } NotaFiscalRepository repositorioNotaFiscal = new NotaFiscalRepository(); repositorioNotaFiscal.salvarNotaFiscal(this); if (this.Id > 0) { repositorioNotaFiscal.salvarItemNotaFiscal(this); } else { return; } }
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 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 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 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; string[] descontoSudeste = { "SP", "RJ", "MG", "ES" }; foreach (PedidoItem itemPedido in pedido.ItensDoPedido) { NotaFiscalItem notaFiscalItem = new NotaFiscalItem(); notaFiscalItem.Cfop = GetCpof(EstadoDestino); if (notaFiscalItem.Cfop == "6.009") { notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido * 0.90; //redução de base } else { notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido; } if (this.EstadoDestino == this.EstadoOrigem) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; } else { notaFiscalItem.TipoIcms = "10"; notaFiscalItem.AliquotaIcms = 0.17; } notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms; notaFiscalItem.BaseIpi = itemPedido.ValorItemPedido; if (itemPedido.Brinde) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms; notaFiscalItem.AliquotaIpi = 0; } else { notaFiscalItem.AliquotaIpi = 0.1; } notaFiscalItem.ValorIpi = notaFiscalItem.BaseIpi * notaFiscalItem.AliquotaIpi; if (descontoSudeste.Contains(EstadoDestino.ToUpper())) { itemPedido.ValorItemPedido = itemPedido.ValorItemPedido - (itemPedido.ValorItemPedido * 0.1); } notaFiscalItem.NomeProduto = itemPedido.NomeProduto; notaFiscalItem.CodigoProduto = itemPedido.CodigoProduto; (ItensDaNotaFiscal as List <NotaFiscalItem>).Add(notaFiscalItem); } }
public void EmitirNotaFiscal(Pedido pedido) { try { String[] sudeste = { "SP", "MG", "ES", "RJ" }; this.NumeroNotaFiscal = 99999; this.Serie = new Random().Next(Int32.MaxValue); this.NomeCliente = pedido.NomeCliente; this.EstadoDestino = pedido.EstadoOrigem; this.EstadoOrigem = pedido.EstadoDestino; if (sudeste.Contains(this.EstadoDestino)) { this.Desconto = 10; } else { this.Desconto = 0; } 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.BaseIPI = itemPedido.ValorItemPedido; notaFiscalItem.AliquotaIPI = 0; notaFiscalItem.ValorIPI = 0; } else { notaFiscalItem.BaseIPI = itemPedido.ValorItemPedido; notaFiscalItem.AliquotaIPI = 0.1; notaFiscalItem.ValorIPI = notaFiscalItem.BaseIPI * notaFiscalItem.AliquotaIPI; } notaFiscalItem.NomeProduto = itemPedido.NomeProduto; notaFiscalItem.CodigoProduto = itemPedido.CodigoProduto; this.ItensDaNotaFiscal.Add(notaFiscalItem); } XmlSerializer serializer = new XmlSerializer(this.GetType()); using (StreamWriter writer = new StreamWriter("C:\\NotasFiscais\\" + this.NumeroNotaFiscal + ".xml")) { serializer.Serialize(writer, this); } using (SqlConnection con = new SqlConnection("Server=(localdb)\\Lourival;Database=teste;Trusted_Connection=True;")) { using (SqlCommand cmd = new SqlCommand("P_NOTA_FISCAL", con)) { 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; cmd.Parameters.Add("@pDesconto", SqlDbType.Int).Value = this.Desconto; con.Open(); cmd.ExecuteNonQuery(); foreach (NotaFiscalItem item in this.ItensDaNotaFiscal) { using (SqlCommand cmd2 = new SqlCommand("P_NOTA_FISCAL_ITEM", con)) { cmd2.CommandType = CommandType.StoredProcedure; cmd2.Parameters.Add("@pId", SqlDbType.Int).Value = item.Id; cmd2.Parameters.Add("@pIdNotaFiscal", SqlDbType.Int).Value = item.IdNotaFiscal; cmd2.Parameters.Add("@pCfop", SqlDbType.VarChar).Value = item.Cfop; cmd2.Parameters.Add("@pTipoIcms", SqlDbType.Decimal).Value = item.TipoIcms; cmd2.Parameters.Add("@pBaseIcms", SqlDbType.Decimal).Value = item.BaseIcms; cmd2.Parameters.Add("@pAliquotaIcms", SqlDbType.Decimal).Value = item.AliquotaIcms; cmd2.Parameters.Add("@pValorIcms", SqlDbType.Decimal).Value = item.ValorIcms; cmd2.Parameters.Add("@pBaseIPI", SqlDbType.Decimal).Value = item.BaseIPI; cmd2.Parameters.Add("@pAliquotaIPI", SqlDbType.Decimal).Value = item.AliquotaIPI; cmd2.Parameters.Add("@pValorIPI", SqlDbType.Decimal).Value = item.ValorIPI; cmd2.Parameters.Add("@pNomeProduto", SqlDbType.VarChar).Value = item.NomeProduto; cmd2.Parameters.Add("@pCodigoProduto", SqlDbType.VarChar).Value = item.CodigoProduto; cmd2.ExecuteNonQuery(); } } } } } catch (Exception ex) { throw ex; } }
public void EmitirNotaFiscal(Pedido pedido) { //Exercicio 1 e 2 ItensDaNotaFiscal = new List <NotaFiscalItem>(); NotaFiscal notaFiscal = this; this.NumeroNotaFiscal = 99999; this.Serie = new Random().Next(Int32.MaxValue); this.NomeCliente = pedido.NomeCliente; //Exercicio 5 this.EstadoDestino = pedido.EstadoDestino; this.EstadoOrigem = pedido.EstadoOrigem; string strCon = "Data Source=ERON-PC\\SQLEXPRESS;Initial Catalog=Teste;Integrated Security=SSPI;User ID=Eron-PC\\Eron;Password=ev258074;"; SqlConnection conn = new SqlConnection(strCon); 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; //Exercicio 3 notaFiscalItem.BaseCalculoIPI = itemPedido.ValorItemPedido; if (itemPedido.Brinde == true) { notaFiscalItem.AliquotaIPI = 0; } else { notaFiscalItem.AliquotaIPI = 0.10; } notaFiscalItem.ValorIPI = notaFiscalItem.BaseCalculoIPI * notaFiscalItem.AliquotaIPI; string dirXML = ConfigurationManager.AppSettings["diretorioXML"] + "\\NF" + this.NumeroNotaFiscal + ".xml"; StringWriter writer = new StringWriter(); XmlSerializer serializer = new XmlSerializer(typeof(NotaFiscalItem)); using (FileStream st = File.Open(dirXML, FileMode.Create, FileAccess.Write)) { serializer.Serialize(writer, notaFiscalItem); } XmlDocument xdoc = new XmlDocument(); xdoc.LoadXml(writer.ToString()); xdoc.Save(dirXML); writer.Close(); try { conn.Open(); SqlCommand cmd2 = new SqlCommand("P_NOTA_FISCAL_ITEM", conn); cmd2.CommandType = CommandType.StoredProcedure; cmd2.Parameters.AddWithValue("@pId", 0); cmd2.Parameters.AddWithValue("@pIdNotaFiscal", notaFiscalItem.IdNotaFiscal); cmd2.Parameters.AddWithValue("@pCfop", notaFiscalItem.Cfop); cmd2.Parameters.AddWithValue("@pTipoIcms", notaFiscalItem.TipoIcms); cmd2.Parameters.AddWithValue("@pBaseIcms", notaFiscalItem.BaseIcms); cmd2.Parameters.AddWithValue("@pAliquotaIcms", notaFiscalItem.AliquotaIcms); cmd2.Parameters.AddWithValue("@pValorIcms", notaFiscalItem.ValorIcms); cmd2.Parameters.AddWithValue("@pNomeProduto", notaFiscalItem.NomeProduto); cmd2.Parameters.AddWithValue("@pCodigoProduto", notaFiscalItem.CodigoProduto); cmd2.Parameters.AddWithValue("@pBaseCalculoIPI", notaFiscalItem.BaseCalculoIPI); cmd2.Parameters.AddWithValue("@pAliquotaIPI", notaFiscalItem.AliquotaIPI); cmd2.Parameters.AddWithValue("@pValorIPI", notaFiscalItem.ValorIPI); cmd2.ExecuteNonQuery(); } catch (Exception ex) { throw ex; } finally { conn.Close(); } } try { conn.Open(); SqlCommand cmd = new SqlCommand("P_NOTA_FISCAL", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@pId", this.Id); cmd.Parameters.AddWithValue("@pNumeroNotaFiscal", this.NumeroNotaFiscal); cmd.Parameters.AddWithValue("@pSerie", this.Serie); cmd.Parameters.AddWithValue("@pNomeCliente", this.NomeCliente); cmd.Parameters.AddWithValue("@pEstadoOrigem", this.EstadoOrigem); cmd.Parameters.AddWithValue("@pEstadoDestino", this.EstadoDestino); cmd.ExecuteNonQuery(); } catch (Exception ex) { throw ex; } finally { conn.Close(); } }
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; List <NotaFiscalItem> list = new List <NotaFiscalItem>(); foreach (PedidoItem itemPedido in pedido.ItensDoPedido) { NotaFiscalItem notaFiscalItem = new NotaFiscalItem(); if (Desconto.TemDesconto(this.EstadoDestino)) { itemPedido.ValorItemPedido = itemPedido.ValorItemPedido * 0.9; } if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.RJ.ToString())) { notaFiscalItem.Cfop = "6.000"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.PE.ToString())) { notaFiscalItem.Cfop = "6.001"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.MG.ToString())) { notaFiscalItem.Cfop = "6.002"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.PB.ToString())) { notaFiscalItem.Cfop = "6.003"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.PR.ToString())) { notaFiscalItem.Cfop = "6.004"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.PI.ToString())) { notaFiscalItem.Cfop = "6.005"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.RO.ToString())) { notaFiscalItem.Cfop = "6.006"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.SE.ToString())) { notaFiscalItem.Cfop = "6.007"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.TO.ToString())) { notaFiscalItem.Cfop = "6.008"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.SE.ToString())) { notaFiscalItem.Cfop = "6.009"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.PA.ToString())) { notaFiscalItem.Cfop = "6.010"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.RJ.ToString())) { notaFiscalItem.Cfop = "6.000"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.PE.ToString())) { notaFiscalItem.Cfop = "6.001"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.MG.ToString())) { notaFiscalItem.Cfop = "6.002"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.PB.ToString())) { notaFiscalItem.Cfop = "6.003"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.PR.ToString())) { notaFiscalItem.Cfop = "6.004"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.PI.ToString())) { notaFiscalItem.Cfop = "6.005"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.RO.ToString())) { notaFiscalItem.Cfop = "6.006"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.SE.ToString())) { notaFiscalItem.Cfop = "6.007"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.TO.ToString())) { notaFiscalItem.Cfop = "6.008"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.SE.ToString())) { notaFiscalItem.Cfop = "6.009"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.PA.ToString())) { notaFiscalItem.Cfop = "6.010"; } if (this.EstadoDestino == this.EstadoOrigem) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; notaFiscalItem.Cfop = "6.006"; } 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; notaFiscalItem.BaseIpi = itemPedido.ValorItemPedido; if (itemPedido.Brinde) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms; notaFiscalItem.AliquotaIpi = 0; } else { notaFiscalItem.AliquotaIpi = 0.10; } notaFiscalItem.NomeProduto = itemPedido.NomeProduto; notaFiscalItem.CodigoProduto = itemPedido.CodigoProduto; notaFiscalItem.ValorIpi = notaFiscalItem.BaseIpi * notaFiscalItem.AliquotaIpi; ItensDaNotaFiscal.Add(notaFiscalItem); } }