Example #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;
        }
Example #2
0
        public override void Editar()
        {
            OpenPOS.Model.Regra.BaseCalculo.IRegra regra = new OpenPOS.Data.Regra.BaseCalculo.Regra(GUID);
            regra.Descricao = "Regra da base de cálculo com filtros";

            #region Itens do filtro
            #region Produto acabado
            ProdutoAcabadoTest produtoAcabadoTest = new ProdutoAcabadoTest();
            produtoAcabadoTest.Gravar();

            IAcabado produtoAcabado = new Acabado(produtoAcabadoTest.GUID);
            #endregion

            #region Grupo de item
            GrupoItemTest grupoItemTest = new Cadastro.Item.GrupoItemTest();
            grupoItemTest.Gravar();

            IGrupoItem grupoItem = new GrupoItem(grupoItemTest.GUID);
            #endregion

            #region NCM
            IList<INCM> ncms = new NCM().Find<INCM>();
            #endregion

            #region Regra de CFOP
            CFOPRegraTest cfopRegraTest = new CFOPRegraTest();
            cfopRegraTest.Gravar();

            ICFOPRegra cfopRegra = new CFOPRegra(cfopRegraTest.GUID);
            #endregion

            #region Regra de CSTCSOSN
            CSTCSOSNRegraTest cstcsosnRegraTest = new CSTCSOSNRegraTest();
            cstcsosnRegraTest.Gravar();

            ICSTCSOSNRegra cstcsosnRegra = new CSTCSOSNRegra(cstcsosnRegraTest.GUID);
            #endregion
            #endregion

            #region Filtro da regra de base de cálculo
            IRegraFiltro filtro = new RegraFiltro();
            filtro.Item = produtoAcabado;
            filtro.GrupoItem = grupoItem;
            filtro.NCM = ncms[0];
            filtro.CFOPRegra = cfopRegra;
            filtro.CSTCSONRegra = cstcsosnRegra;
            #endregion

            regra.Filtros.Add(filtro);
            regra.Save();
        }
Example #3
0
        /// <summary>
        /// Preenche o produto pelo EGUID passado
        /// </summary>
        /// <param name="eguid">código do produto</param>
        private void PopulateProduto(EGUID eguid)
        {
            List<IAcabado> list = new Acabado().Find<IAcabado>(new Where()
            {
                {"cad_Item.EGUID", eguid}
            });

            PopulateProduto(list.Count > 0 ? list[0] : null);
        }
Example #4
0
        private static IAcabado CriarProduto()
        {
            #region Grupo do item
            IGrupoItem grupoItem = new GrupoItem();
            grupoItem.Descricao = new Random().NextString();
            grupoItem.Save();
            #endregion

            #region Produto acabado
            IAcabado prodAcabado = new Acabado();
            prodAcabado.GrupoItem = grupoItem;
            prodAcabado.Descricao = "Produto " + new Random().NextString(15);
            prodAcabado.IndicadorTruncamento = "T";
            prodAcabado.IndicadorProducao = "P";
            prodAcabado.SituacaoTributaria = new CSTCSOSN().Find<ICSTCSOSN>()[0];
            prodAcabado.Aliquota = new AliquotaTributo().Find<IAliquotaTributo>()[0];
            prodAcabado.Fabricante = new Fabricante().Find<IFabricante>(new Where { Limit = new Limit(1) })[0];
            prodAcabado.NCM = new NCM().Find<INCM>(new Where { Limit = new Limit(1) })[0];
            prodAcabado.Unidade = new Unidade().Find<IUnidade>(new Where { Limit = new Limit(1) })[0];
            prodAcabado.Importado = false;
            #endregion

            #region Código de barras
            prodAcabado.CodigosBarras = getCodigoBarra("0123456789012");
            #endregion

            return prodAcabado;
        }
Example #5
0
 public override void Popular()
 {
     IAcabado prodAcabado = new Acabado(GUID);
     DumpElement(prodAcabado);
     DumpElement(prodAcabado.CodigosBarras);
 }
Example #6
0
        public void HasHashModificationTest()
        {
            Gravar();
            IAcabado p1 = new Acabado(GUID);
            IAcabado p2 = new Acabado(GUID);

            //alterar a forma 2, e comparar se houve modificação do HASH
            p2.Descricao = "Teste de Modificação do HASH";
            Assert.AreNotEqual(p1.RecordHash, p2.RecordHash);
            Assert.IsTrue(p2.HasHashModification);

            //alterar a descrição, tem que ficar igual
            p2.Descricao = p1.Descricao;
            Assert.AreEqual(p1.RecordHash, p2.RecordHash);
        }
Example #7
0
 public override void Excluir()
 {
     IAcabado prodAcabado = new Acabado(GUID);
     prodAcabado.Delete();
 }
Example #8
0
 public override void Editar()
 {
     #region Produto acabado
     IAcabado prodAcabado = new Acabado(GUID);
     prodAcabado.TipoItem = Enuns.Cadastro.Item.TipoItem.Acabado;
     prodAcabado.Descricao = "Apontador faber";
     prodAcabado.IndicadorTruncamento = "T";
     prodAcabado.IndicadorProducao = "P";
     prodAcabado.Importado = true;
     prodAcabado.Save();
     #endregion
 }
Example #9
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);
        }