public bool GerarXMLNota(string diretorio, NotaFiscal nota) { try { if (!diretorio.EndsWith("\\")) { diretorio = diretorio + "\\"; } diretorio = diretorio + nota.NumeroNotaFiscal.ToString() + " - "+nota.NomeCliente.ToString() +".xml"; if (!File.Exists(diretorio)) { XmlTextWriter xmlArquivo = new XmlTextWriter(diretorio, Encoding.GetEncoding("ISO-8859-1")); XmlSerializer x = new XmlSerializer(nota.GetType()); x.Serialize(xmlArquivo, nota); if (File.Exists(diretorio)) return true; else return false; } else return false; } catch (Exception e) { return false; throw new Exception(e.Message); } }
public void GravarXML(NotaFiscal notaFiscal, String diretorio) { XmlSerializer xs = new XmlSerializer(typeof(NotaFiscal)); String arquivo = diretorio + "nf_" + notaFiscal.NumeroNotaFiscal + "_" + notaFiscal.Serie + ".xml"; TextWriter tw = new StreamWriter(@arquivo); xs.Serialize(tw, notaFiscal); }
public void GerarNotaFiscalXML(NotaFiscal notaFiscal) { string diretorioXML = ConfigurationManager.AppSettings["DiretorioXML"]; if (!Directory.Exists(diretorioXML)) throw new Exception(String.Format("Diretório para geração do XML '{0}' não encontrado!", diretorioXML)); GerarNotaFiscalXML(notaFiscal, diretorioXML); }
public static void aplicarDesconto(NotaFiscal nota) { // Exercicio 7. if ((nota.EstadoDestino == "SP") || (nota.EstadoDestino == "MG") || (nota.EstadoDestino == "RJ") || (nota.EstadoDestino == "ES")) { foreach (NotaFiscalItem item in nota.ItensDaNotaFiscal) { item.Desconto = 10; } } }
public void GravarNotaFiscal(NotaFiscal notaFiscal) { SqlConnection cnn = null; try { cnn = SqlDatabase.Conectar(); //Inserção do cabeçalho SqlCommand cmd = new SqlCommand("P_NOTA_FISCAL", cnn); cmd.CommandType = CommandType.StoredProcedure; //Configurando parâmetro pId - Entrada e saída SqlParameter pId = new SqlParameter("@pId", SqlDbType.Int); pId.Direction = ParameterDirection.InputOutput; pId.Value = notaFiscal.Id; cmd.Parameters.Add(pId); //Configurando demais parâmetros cmd.Parameters.Add("@pNumeroNotaFiscal", SqlDbType.Int).Value = notaFiscal.NumeroNotaFiscal; cmd.Parameters.Add("@pSerie", SqlDbType.Int).Value = notaFiscal.Serie; cmd.Parameters.Add("@pNomeCliente", SqlDbType.VarChar, 50).Value = notaFiscal.NomeCliente; cmd.Parameters.Add("@pEstadoDestino", SqlDbType.VarChar, 50).Value = notaFiscal.EstadoDestino; cmd.Parameters.Add("@pEstadoOrigem", SqlDbType.VarChar, 50).Value = notaFiscal.EstadoOrigem; cmd.ExecuteNonQuery(); int idNotaFiscal = Convert.ToInt32(pId.Value); //Inserção dos itens cmd.CommandText = "P_NOTA_FISCAL_ITEM"; foreach (NotaFiscalItem item in notaFiscal.ItensDaNotaFiscal) { cmd.Parameters.Clear(); cmd.Parameters.Add("@pId", SqlDbType.Int).Value = item.Id; cmd.Parameters.Add("@pIdNotaFiscal", SqlDbType.Int).Value = idNotaFiscal; cmd.Parameters.Add("@pCfop", SqlDbType.VarChar, 5).Value = item.Cfop; cmd.Parameters.Add("@pTipoIcms", SqlDbType.VarChar, 20).Value = item.TipoIcms; cmd.Parameters.Add("@pBaseIcms", SqlDbType.Decimal).Value = item.BaseIcms; cmd.Parameters.Add("@pAliquotaIcms", SqlDbType.Decimal).Value = item.AliquotaIcms; cmd.Parameters.Add("@pValorIcms", SqlDbType.Decimal).Value = item.ValorIcms; cmd.Parameters.Add("@pBaseIpi", SqlDbType.Decimal).Value = item.BaseIpi; cmd.Parameters.Add("@pAliquotaIpi", SqlDbType.Decimal).Value = item.AliquotaIpi; cmd.Parameters.Add("@pValorIpi", SqlDbType.Decimal).Value = item.ValorIpi; cmd.Parameters.Add("@pDesconto", SqlDbType.Decimal).Value = item.Desconto; cmd.Parameters.Add("@pNomeProduto", SqlDbType.VarChar, 50).Value = item.NomeProduto; cmd.Parameters.Add("@pCodigoProduto", SqlDbType.VarChar, 20).Value = item.CodigoProduto; cmd.ExecuteNonQuery(); } } finally { SqlDatabase.Desconectar(cnn); } }
public double CalcularDesconto(NotaFiscal NF) { if (NF.EstadoDestino == "SP" || NF.EstadoDestino == "RJ" || NF.EstadoDestino == "ES" || NF.EstadoDestino == "MG") { return 0.1; } else { return 1; } }
public void GerarNotaFiscal(Domain.Pedido pedido) { NotaFiscal notaFiscal = new NotaFiscal(); //notaFiscal.ItensDaNotaFiscal = new List<NotaFiscalItem>(); notaFiscal = notaFiscal.EmitirNotaFiscal(pedido); if (GerarXML(notaFiscal)) { PersistirBD(notaFiscal); pedido.ItensDoPedido.Clear(); } }
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; }
public bool SalvarNota(NotaFiscal nota) { Conectar(); SqlCommand command = new SqlCommand("P_NOTA_FISCAL", _connection); command.CommandType = CommandType.StoredProcedure; try { int IdNotaFiscal = 0; SqlParameter parm = new SqlParameter("@pId", SqlDbType.Int); parm.Value = 0; parm.Direction = ParameterDirection.InputOutput; command.Parameters.Add(parm); command.Parameters.Add("@pNumeroNotaFiscal", SqlDbType.Int).Value = nota.NumeroNotaFiscal; command.Parameters.Add("@pSerie", SqlDbType.Int).Value = nota.Serie; command.Parameters.Add("@pNomeCliente", SqlDbType.VarChar).Value = nota.NomeCliente; command.Parameters.Add("@pEstadoDestino", SqlDbType.VarChar).Value = nota.EstadoDestino; command.Parameters.Add("@pEstadoOrigem", SqlDbType.VarChar).Value = nota.EstadoOrigem; command.ExecuteNonQuery(); IdNotaFiscal = (int)command.Parameters["@pId"].Value; foreach (NotaFiscalItem item in nota.ItensDaNotaFiscal) { command = new SqlCommand("P_NOTA_FISCAL_ITEM", _connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add("@pId", SqlDbType.Int).Value = 0; command.Parameters.Add("@pIdNotaFiscal", SqlDbType.Int).Value = IdNotaFiscal; command.Parameters.Add("@pCfop", SqlDbType.VarChar).Value = item.Cfop; command.Parameters.Add("@pTipoIcms", SqlDbType.VarChar).Value = item.TipoIcms; command.Parameters.Add("@pBaseIcms", SqlDbType.Decimal).Value = item.BaseIcms; command.Parameters.Add("@pAliquotaIcms", SqlDbType.Decimal).Value = item.AliquotaIcms; command.Parameters.Add("@pValorIcms", SqlDbType.Decimal).Value = item.ValorIcms; command.Parameters.Add("@pNomeProduto", SqlDbType.VarChar).Value = item.NomeProduto; command.Parameters.Add("@pCodigoProduto", SqlDbType.VarChar).Value = item.CodigoProduto; command.Parameters.Add("@pBaseIPI", SqlDbType.Decimal).Value = item.BaseIPI; command.Parameters.Add("@pAliquotaIPI", SqlDbType.Decimal).Value = item.AliquotaIPI; command.Parameters.Add("@pValorIPI", SqlDbType.Decimal).Value = item.ValorIPI; command.Parameters.Add("@pDesconto", SqlDbType.Decimal).Value = item.Desconto; command.ExecuteNonQuery(); } return true; } catch (SqlException exception) { throw exception; } }
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; }
//Poderia fazer o método ser para qualquer classe usando como paramêtro "T obj" ao invés de fixar à classe NotaFiscal public bool GerarXML(NotaFiscal NF) { try { string dirxml = LerXML("CaminhoXML"); string caminho = dirxml+"\\NF"+NF.NumeroNotaFiscal+".XML"; FileStream stream = new FileStream(caminho, FileMode.Create); XmlSerializer serializador = new XmlSerializer(typeof(NotaFiscal)); serializador.Serialize(stream, NF); return true; } catch { return false; } }
public void GerarNotaFiscal(Domain.Pedido pedido, string diretorio) { NotaFiscal notaFiscal = new NotaFiscal(); notaFiscal.EmitirNotaFiscal(pedido); foreach (NotaFiscalItem item in notaFiscal.ItensDaNotaFiscal) { if (String.IsNullOrEmpty(item.Cfop)) { throw new Exception("CFOP não foi atribuído ao item: " + item.CodigoProduto); } } if (GerarXMLNota(diretorio, notaFiscal)) { Data.NotaFiscalRepository repositorio = new Data.NotaFiscalRepository(); repositorio.SalvarNota(notaFiscal); } }
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 void PersistirNota(NotaFiscal notaFiscal, String conexao) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = conexao; conn.Open(); SqlCommand cmd = new SqlCommand("dbo.P_NOTA_FISCAL",conn); cmd.CommandType = CommandType.StoredProcedure; SqlParameter parId = new SqlParameter("@pId", SqlDbType.Int); parId.Direction = ParameterDirection.InputOutput; parId.Value = 0; cmd.Parameters.Add(parId); cmd.Parameters.Add("pSerie", SqlDbType.Int).Value = notaFiscal.Serie; cmd.Parameters.Add("pNumeroNotaFiscal", SqlDbType.Int).Value = notaFiscal.NumeroNotaFiscal; cmd.Parameters.Add("pNomeCliente", SqlDbType.VarChar).Value = notaFiscal.NomeCliente; cmd.Parameters.Add("pEstadoDestino", SqlDbType.VarChar).Value = notaFiscal.EstadoDestino; cmd.Parameters.Add("pEstadoOrigem", SqlDbType.VarChar).Value = notaFiscal.EstadoOrigem; cmd.ExecuteNonQuery(); foreach (NotaFiscalItem item in notaFiscal.ItensDaNotaFiscal) { SqlCommand cmdItem = new SqlCommand("dbo.P_NOTA_FISCAL_ITEM", conn); cmdItem.CommandType = CommandType.StoredProcedure; cmdItem.Parameters.Add("pIdNotaFiscal", SqlDbType.Int).Value = parId.Value; cmdItem.Parameters.Add("pId", SqlDbType.Int).Value = 0; cmdItem.Parameters.Add("pCfop", SqlDbType.VarChar).Value = item.Cfop; cmdItem.Parameters.Add("pTipoIcms", SqlDbType.VarChar).Value = item.TipoIcms; cmdItem.Parameters.Add("pBaseIcms", SqlDbType.Decimal).Value = item.BaseIcms; cmdItem.Parameters.Add("pAliquotaIcms", SqlDbType.Decimal).Value = item.AliquotaIcms; cmdItem.Parameters.Add("pValorIcms", SqlDbType.Decimal).Value = item.ValorIcms; cmdItem.Parameters.Add("pBaseIpi", SqlDbType.Decimal).Value = item.BaseIpi; cmdItem.Parameters.Add("pAliquotaIpi", SqlDbType.Decimal).Value = item.AliquotaIpi; cmdItem.Parameters.Add("pValorIpi", SqlDbType.Decimal).Value = item.ValorIpi; cmdItem.Parameters.Add("pDesconto", SqlDbType.Decimal).Value = item.Desconto; cmdItem.Parameters.Add("pNomeProduto", SqlDbType.VarChar).Value = item.NomeProduto; cmdItem.Parameters.Add("pCodigoProduto", SqlDbType.VarChar).Value = item.CodigoProduto; cmdItem.ExecuteNonQuery(); } }
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); }
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 GerarNotaFiscalXML(NotaFiscal notaFiscal, string caminho) { FileStream xml = null; try { caminho = string.Format(@"{0}\NotaFiscal_{1}.xml", caminho, notaFiscal.NumeroNotaFiscal); xml = new FileStream(caminho, FileMode.Create); new XmlSerializer(typeof(NotaFiscal)).Serialize(xml, notaFiscal); } finally { xml.Close(); } }
public string CalcularCFOP(NotaFiscal NF) { if ((NF.EstadoOrigem == "SP") && (NF.EstadoDestino == "RJ")) { return "6.000"; } else if ((NF.EstadoOrigem == "SP") && (NF.EstadoDestino == "PE")) { return "6.001"; } else if ((NF.EstadoOrigem == "SP") && (NF.EstadoDestino == "MG")) { return "6.002"; } else if ((NF.EstadoOrigem == "SP") && (NF.EstadoDestino == "PB")) { return "6.003"; } else if ((NF.EstadoOrigem == "SP") && (NF.EstadoDestino == "PR")) { return "6.004"; } else if ((NF.EstadoOrigem == "SP") && (NF.EstadoDestino == "PI")) { return "6.005"; } else if ((NF.EstadoOrigem == "SP") && (NF.EstadoDestino == "RO")) { return "6.006"; } else if ((NF.EstadoOrigem == "SP") && (NF.EstadoDestino == "SE")) { return "6.007"; } else if ((NF.EstadoOrigem == "SP") && (NF.EstadoDestino == "TO")) { return "6.008"; } else if ((NF.EstadoOrigem == "SP") && (NF.EstadoDestino == "SE")) { return "6.009"; } else if ((NF.EstadoOrigem == "SP") && (NF.EstadoDestino == "PA")) { return "6.010"; } else if ((NF.EstadoOrigem == "MG") && (NF.EstadoDestino == "RJ")) { return "6.000"; } else if ((NF.EstadoOrigem == "MG") && (NF.EstadoDestino == "PE")) { return "6.001"; } else if ((NF.EstadoOrigem == "MG") && (NF.EstadoDestino == "MG")) { return "6.002"; } else if ((NF.EstadoOrigem == "MG") && (NF.EstadoDestino == "PB")) { return "6.003"; } else if ((NF.EstadoOrigem == "MG") && (NF.EstadoDestino == "PR")) { return "6.004"; } else if ((NF.EstadoOrigem == "MG") && (NF.EstadoDestino == "PI")) { return "6.005"; } else if ((NF.EstadoOrigem == "MG") && (NF.EstadoDestino == "RO")) { return "6.006"; } else if ((NF.EstadoOrigem == "MG") && (NF.EstadoDestino == "SE")) { return "6.007"; } else if ((NF.EstadoOrigem == "MG") && (NF.EstadoDestino == "TO")) { return "6.008"; } else if ((NF.EstadoOrigem == "MG") && (NF.EstadoDestino == "SE")) { return "6.009"; } else if ((NF.EstadoOrigem == "MG") && (NF.EstadoDestino == "PA")) { return "6.010"; } else { //Se não for previsto, considero o CFOP mais alto return "6.010"; } }
public void GerarNotaFiscal(Domain.Pedido pedido) { NotaFiscal notaFiscal = new NotaFiscal(); notaFiscal.EmitirNotaFiscal(pedido); }
public int GerarXML(NotaFiscal notafiscal) { NotaFiscalRepository nfRepository = new NotaFiscalRepository(); try { string diretorio = nfRepository.BuscarDiretorioXML(); XmlTextWriter xml = new XmlTextWriter(diretorio + @"\NotaFiscal_" + notafiscal.NumeroNotaFiscal + ".xml", System.Text.Encoding.UTF8); xml.WriteStartDocument(true); xml.Formatting = Formatting.Indented; xml.Indentation = 2; xml.WriteStartElement("NotaFiscal"); xml.WriteStartElement("NumeroNotaFiscal"); xml.WriteString(notafiscal.NumeroNotaFiscal.ToString()); xml.WriteEndElement(); xml.WriteStartElement("Serie"); xml.WriteString(notafiscal.Serie.ToString()); xml.WriteEndElement(); xml.WriteStartElement("NomeCliente"); xml.WriteString(notafiscal.NomeCliente.ToString()); xml.WriteEndElement(); xml.WriteStartElement("EstadoOrigem"); xml.WriteString(notafiscal.EstadoOrigem.ToString()); xml.WriteEndElement(); xml.WriteStartElement("EstadoDestino"); xml.WriteString(notafiscal.EstadoDestino.ToString()); xml.WriteEndElement(); xml.WriteStartElement("NumeroNotaFiscal"); xml.WriteString(notafiscal.NumeroNotaFiscal.ToString()); xml.WriteEndElement(); xml.WriteStartElement("ItensPedido"); foreach (var item in notafiscal.ItensDaNotaFiscal) { xml.WriteStartElement("IdNotaFiscal"); xml.WriteString(item.IdNotaFiscal.ToString()); xml.WriteEndElement(); xml.WriteStartElement("Cfop"); xml.WriteString(item.Cfop.ToString()); xml.WriteEndElement(); xml.WriteStartElement("TipoIcms"); xml.WriteString(item.TipoIcms.ToString()); xml.WriteEndElement(); xml.WriteStartElement("BaseIcms"); xml.WriteString(item.BaseIcms.ToString()); xml.WriteEndElement(); xml.WriteStartElement("AliquotaIcms"); xml.WriteString(item.AliquotaIcms.ToString()); xml.WriteEndElement(); xml.WriteStartElement("ValorIcms"); xml.WriteString(item.ValorIcms.ToString()); xml.WriteEndElement(); xml.WriteStartElement("NomeProduto"); xml.WriteString(item.NomeProduto.ToString()); xml.WriteEndElement(); xml.WriteStartElement("CodigoProduto"); xml.WriteString(item.CodigoProduto.ToString()); xml.WriteEndElement(); xml.WriteStartElement("BaseIpi"); xml.WriteString(item.BaseIpi.ToString()); xml.WriteEndElement(); xml.WriteStartElement("AliquotaIpi"); xml.WriteString(item.AliquotaIpi.ToString()); xml.WriteEndElement(); xml.WriteStartElement("ValorIpi"); xml.WriteString(item.ValorIpi.ToString()); xml.WriteEndElement(); } xml.WriteEndElement(); xml.WriteEndDocument(); xml.Flush(); xml.Close(); return(0); } catch (Exception ex) { return(1); } }
public NotaFiscal GerarNotaFiscal(Domain.Pedido pedido) { NotaFiscal notaFiscal = new NotaFiscal(); notaFiscal.EmitirNotaFiscal(pedido); return notaFiscal; }
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!"); }
public void PersistirBD(NotaFiscal NF) { SqlConnection conn = Conexao.obterConexao(); try { conn.Open(); } catch { MessageBox.Show("Erro ao tentar conectar com o banco de dados"); } SqlCommand cmd = new SqlCommand("P_NOTA_FISCAL", conn); cmd.Parameters.AddWithValue("@pID", 0); cmd.Parameters.AddWithValue("@pNumeroNotaFiscal", NF.NumeroNotaFiscal); cmd.Parameters.AddWithValue("@pSerie", NF.Serie); cmd.Parameters.AddWithValue("@pNomeCliente", NF.NomeCliente); cmd.Parameters.AddWithValue("@pEstadoDestino", NF.EstadoDestino); cmd.Parameters.AddWithValue("@pEstadoOrigem", NF.EstadoOrigem); cmd.CommandType = CommandType.StoredProcedure; try { int n = cmd.ExecuteNonQuery(); //if (i > 0) MessageBox.Show("Registro incluido com sucesso!"); } catch (Exception ex) { MessageBox.Show("Erro: " + ex.ToString()); } try { foreach (NotaFiscalItem itemNF in NF.ItensDaNotaFiscal) { SqlCommand cmd1 = new SqlCommand("P_NOTA_FISCAL_ITEM", conn); cmd1.Parameters.AddWithValue("@pID", 0); cmd1.Parameters.AddWithValue("@pIdNotaFiscal", itemNF.IdNotaFiscal); cmd1.Parameters.AddWithValue("@pCfop", itemNF.Cfop); cmd1.Parameters.AddWithValue("@pTipoIcms", itemNF.TipoIcms); cmd1.Parameters.AddWithValue("@pBaseIcms", itemNF.BaseIcms); cmd1.Parameters.AddWithValue("@pAliquotaIcms", itemNF.AliquotaIcms); cmd1.Parameters.AddWithValue("@pValorIcms", itemNF.ValorIcms); cmd1.Parameters.AddWithValue("@pNomeProduto", itemNF.NomeProduto); cmd1.Parameters.AddWithValue("@pCodigoProduto", itemNF.CodigoProduto); cmd1.Parameters.AddWithValue("@pBaseIPI", itemNF.BaseIPI); cmd1.Parameters.AddWithValue("@pAliquotaIPI", itemNF.AliquotaIPI); cmd1.Parameters.AddWithValue("@pValorIPI", itemNF.ValorIPI); cmd1.Parameters.AddWithValue("@pDesconto", itemNF.Desconto); cmd1.CommandType = CommandType.StoredProcedure; int i = cmd1.ExecuteNonQuery(); } } catch (Exception ex) { MessageBox.Show("Erro: " + ex.ToString()); } finally { conn.Close(); } }
public void GravarNotaFiscal(NotaFiscal notaFiscal) { new NotaFiscalRepository().GravarNotaFiscal(notaFiscal); }