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; }
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(); }
/// <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); }
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; }
public override void Popular() { IAcabado prodAcabado = new Acabado(GUID); DumpElement(prodAcabado); DumpElement(prodAcabado.CodigosBarras); }
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); }
public override void Excluir() { IAcabado prodAcabado = new Acabado(GUID); prodAcabado.Delete(); }
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 }
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); }