Beispiel #1
0
        public static OpenPOS.Data.Cadastro.TabelaPreco.TabelaPreco NovaTabela()
        {
            OpenPOS.Data.Cadastro.TabelaPreco.TabelaPreco t = new OpenPOS.Data.Cadastro.TabelaPreco.TabelaPreco();

            IList<IAcabado> list = new Acabado().Find<IAcabado>(new Where { Limit = new Limit(3, 0) });

            t.Descricao = new Random().NextString();
            t.Promocional = true;
            t.ValidadeInicial = new Random().DateTime();
            t.ValidadeFinal = t.ValidadeInicial.AddDays(30);

            t.Itens = new List<IItem>
            {
                new OpenPOS.Data.Cadastro.TabelaPreco.Item {
                    Item=list[0] as IAcabado,
                    Preco = new Random().NextDouble(10,50)
                },
                new OpenPOS.Data.Cadastro.TabelaPreco.Item {
                    Item=list[1] as IAcabado,
                    Preco = new Random().NextDouble(10,50)
                },
                new OpenPOS.Data.Cadastro.TabelaPreco.Item {
                    Item=list[2] as IAcabado,
                    Preco = new Random().NextDouble(10,50)
                }
            };
            return t;
        }
Beispiel #2
0
        /// <summary>
        /// Relação de mercadorias e serviços
        /// </summary>
        private void PreencheP()
        {
            ACBrPAF.PAF_P.RegistroP1.RazaoSocial = Settings.EmpresaAtual.RazaoSocial;
            ACBrPAF.PAF_P.RegistroP1.UF = Settings.EmpresaAtual.Enderecos.First(w => w.Principal).Endereco.Estado.UF;
            ACBrPAF.PAF_P.RegistroP1.CNPJ = Settings.EmpresaAtual.GetCPFCNPJ();
            ACBrPAF.PAF_P.RegistroP1.IE = Settings.EmpresaAtual.Juridica.IE;
            ACBrPAF.PAF_P.RegistroP1.IM = Settings.EmpresaAtual.Juridica.IM;

            //-------------------------------------------------------------------------
            // Buscar a tabela de preços principal e sem regras
            //-------------------------------------------------------------------------
            ITabelaPreco tabelaPreco = new TabelaPreco((GUID)Settings.Setting.TabelaPrecoPadrao);

            foreach(Model.Cadastro.TabelaPreco.IItem item in tabelaPreco.Itens)
            {
                ACBrPAFRegistroP2 ItemP2 = new ACBrPAFRegistroP2();
                ItemP2.COD_MERC_SERV = item.Item.EGUID;
                ItemP2.DESC_MERC_SERV = item.Item.Descricao;

                if(item.Item is Model.Cadastro.Item.Produto.IProduto)
                {
                    ItemP2.IAT = (item.Item as Model.Cadastro.Item.Produto.IProduto).IndicadorTruncamento;
                    ItemP2.IPPT = (item.Item as Model.Cadastro.Item.Produto.IProduto).IndicadorProducao;
                }

              //  ItemP2.ST = item.SituacaoTributaria;
                //ItemP2.ALIQ = (decimal)item.Aliquota;
                ItemP2.VL_UNIT = (decimal)item.Preco;
                ItemP2.RegistroValido = !item.Item.HasHashModification;
                ACBrPAF.PAF_P.RegistroP2.Add(ItemP2);
                ItemP2 = null;
            }
        }
Beispiel #3
0
 public override void Popular()
 {
     OpenPOS.Data.Cadastro.TabelaPreco.TabelaPreco t = new OpenPOS.Data.Cadastro.TabelaPreco.TabelaPreco(GUID);
     DumpElement(t);
     DumpElement(t.Itens);
 }
Beispiel #4
0
 public override void Editar()
 {
     OpenPOS.Data.Cadastro.TabelaPreco.TabelaPreco t = new OpenPOS.Data.Cadastro.TabelaPreco.TabelaPreco(GUID);
     t.Descricao = "Editada";
     t.Save();
 }
Beispiel #5
0
        public void CalcularPreco()
        {
            #region buscar clientes
            IList<ICliente> clientes = new Cliente().Find<ICliente>(new Where { Limit = new Limit(3, 0) });
            #endregion

            #region buscar itens
            IList<IAcabado> produtos = new Acabado().Find<IAcabado>(new Where { Limit = new Limit(3, 0) });

            Model.Faturamento.Lancamento.Movimento.Item.VendaCF.IItem item = new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item();
            item.ItemMovimentado = produtos[0];
            #endregion

            #region tabela de preço
            //-------------------------------------------------------------------------
            // Gravar um tabela de preços para garantir que iremos ter uma tabela
            //-------------------------------------------------------------------------
            TabelaPrecoTest precoTest = new TabelaPrecoTest();
            precoTest.Gravar();

            //-------------------------------------------------------------------------
            // Carregar esta tabela para uso futuro
            //-------------------------------------------------------------------------
            ITabelaPreco tabela = new TabelaPreco(precoTest.GUID);
            #endregion

            #region Regra com 10% desconto
            IDesconto desconto = new Desconto().Find<IDesconto>(new Where { Limit = new Limit(1, 0) })[0] as IDesconto;

            new PrecoRegra
            {
                Descricao = "Regra desconto 10% Geral",
                TabelaPreco = tabela,
                ItensEspeciais = new List<IPrecoRegraItemEspecial>{
                new PrecoRegraItemEspecial {
                    ItemEspecial  = desconto,
                    TipoValor = Enuns.Cadastro.TipoValor.Percentual,
                    Valor= 10
                }
            }
            }.Save();
            #endregion

            #region Regra com 25% desconto para o cliente posição 0
            desconto = new Desconto().Find<IEspecial>(new Where { Limit = new Limit(1, 0) })[0] as IDesconto;
            new PrecoRegra
            {
            Descricao = "Regra desconto 25% cliente posição 0",
            TabelaPreco = tabela,
            ItensEspeciais = new List<IPrecoRegraItemEspecial>{

                    new PrecoRegraItemEspecial {
                    ItemEspecial  = desconto,
                    TipoValor = Enuns.Cadastro.TipoValor.Percentual,
                    Valor= 25
                }
            }
            }.Save();
            #endregion

            #region Regra com 30% desconto para o cliente posição 0 e produto 0
            desconto = new Desconto().Find<IEspecial>(new Where { Limit = new Limit(1, 0) })[0] as IDesconto;

            new PrecoRegra
            {
                Descricao = "Regra desconto 30% cliente e produto posição 0",
                TabelaPreco = tabela,
                ItensEspeciais = new List<IPrecoRegraItemEspecial>{
                new PrecoRegraItemEspecial {
                    ItemEspecial  = desconto,
                    TipoValor = Enuns.Cadastro.TipoValor.Percentual,
                    Valor= 30
                }
            }
            }.Save();
            #endregion

            #region Regra com 35% desconto para o produto posição 0
            desconto = new Desconto().Find<IEspecial>(new Where { Limit = new Limit(1, 0) })[0] as IDesconto;

            new PrecoRegra
            {
                Descricao = "Regra desconto 35% cliente e produto posição 0",
                TabelaPreco = tabela,
                ItensEspeciais = new List<IPrecoRegraItemEspecial>{
                new PrecoRegraItemEspecial {
                    ItemEspecial  = desconto,
                    TipoValor = Enuns.Cadastro.TipoValor.Percentual,
                    Valor= 35
                }
            }
            }.Save();
            #endregion

            //-------------------------------------------------------------------------
            // Calcular o preço para o cliente na posição 0
            //-------------------------------------------------------------------------
            RegraPrecoResult preco = new CalcularPreco(item).ExecutarRegra(new RegraPrecoFilter
            {
                Pessoa = clientes[0]
            });

            WriteLine("Preço final: {0:C2}", preco.PrecoFinal);
            DumpElement(preco);

            //-------------------------------------------------------------------------
            // Calcular o preço para o cliente e produto na posição 0
            //-------------------------------------------------------------------------
            preco = new CalcularPreco(item).ExecutarRegra(new RegraPrecoFilter
            {
                Pessoa = clientes[0],
                GrupoItem = produtos[0].GrupoItem
            });

            WriteLine("Preço final: {0:C2}", preco.PrecoFinal);
            DumpElement(preco);

            //-------------------------------------------------------------------------
            // Calcular o preço para o produto na posição 0
            //-------------------------------------------------------------------------
            preco = new CalcularPreco(item).ExecutarRegra(new RegraPrecoFilter
            {
                GrupoItem = produtos[0].GrupoItem
            });

            WriteLine("Preço final: {0:C2}", preco.PrecoFinal);
            DumpElement(preco);

            //-------------------------------------------------------------------------
            // Calcular o preço com todo mundo nulo
            //-------------------------------------------------------------------------
            preco = new CalcularPreco(item).ExecutarRegra(new RegraPrecoFilter
            {
            });

            WriteLine("Preço final: {0:C2}", preco.PrecoFinal);
            DumpElement(preco);
        }