Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
 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);
        }
Beispiel #4
0
 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);
            }
        }
Beispiel #6
0
 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;
            }
        }
Beispiel #12
0
        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);
            }
        }
Beispiel #13
0
        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!");
        }
Beispiel #14
0
        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();
            }
        }
Beispiel #15
0
        public void GerarXMLNota()
        {
            string _diretorio = ConfigurationManager.AppSettings.Get("CaminhoNota").ToString();

            _service = new NotaFiscalService();
            DataTable dados = _service.PrepararItensPedido();
            DataRow linha = dados.NewRow();
            linha[0] = "Sabonete";
            linha[1] = "100101";
            linha[2] = 10.00;
            linha[3] = false;
            dados.Rows.Add(linha);

            Pedido pedido = _service.GerarPedido("Willian Rodrigues", "SP", "MG", dados);

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

            _service.GerarXMLNota(_diretorio, notaFiscal);

            if (pedido != null)
                Console.Write("Pedido para " + notaFiscal.NumeroNotaFiscal);
        }
Beispiel #16
0
        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();
            }
        }
Beispiel #17
0
        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();
            }
        }
Beispiel #18
0
 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);
 }
Beispiel #20
0
        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);
            }
        }
Beispiel #21
0
 public NotaFiscal GerarNotaFiscal(Domain.Pedido pedido)
 {
     NotaFiscal notaFiscal = new NotaFiscal();
     notaFiscal.EmitirNotaFiscal(pedido);
     return notaFiscal;
 }
Beispiel #22
0
        public void TestarDesconto()
        {
            _service = new NotaFiscalService();
            DataTable dados = _service.PrepararItensPedido();
            DataRow linha = dados.NewRow();
            linha[0] = "Sabonete";
            linha[1] = "100101";
            linha[2] = 10.00;
            linha[3] = false;
            dados.Rows.Add(linha);

            Pedido pedido = _service.GerarPedido("Willian Rodrigues", "SP", "MG", dados);

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

            if (notaFiscal.ItensDaNotaFiscal[0].Desconto == 10 )
                Console.Write("Desconto foi aplicado!");
        }
        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();
              }
        }
Beispiel #24
0
 public void GravarNotaFiscal(NotaFiscal notaFiscal)
 {
     new NotaFiscalRepository().GravarNotaFiscal(notaFiscal);
 }