public override void Editar() { DescontoRegra oDescRegra = new DescontoRegra(GUID); oDescRegra.Descricao = "Regra geral editada"; oDescRegra.TipoValor = TipoValor.Valor; oDescRegra.Save(); }
public override void Editar() { IDescontoRegra descRegra = new DescontoRegra(GUID); //descRegra.Filtros.Add(new DescontoRegraFiltro //{ // Item = new OpenPOS.Data.Cadastro.Item.Produto.Acabado().Find<IAcabado>(new Where { Limit = new Limit(1) })[0] //}); descRegra.Save(); }
public void RegraEstadoClienteTest() { //------------------------------------------------------------------------- // Gravar um pré-venda para utilizar durante o teste //------------------------------------------------------------------------- PreVendaTest pvTest = new PreVendaTest(); pvTest.Gravar(); PreVenda pv = pvTest.PreVenda; //------------------------------------------------------------------------- // Criar um regra por estado e cliente //------------------------------------------------------------------------- DescontoRegra oRegDesc = new DescontoRegra(); oRegDesc.Descricao = "Primeira Regra Desconto"; oRegDesc.TipoValor = TipoValor.Percentual; oRegDesc.Valor = 10; oRegDesc.Filtros = new List<IDescontoRegraFiltro>{ new DescontoRegraFiltro{ Estado = pv.DadoPessoa.Cliente.Enderecos[0].Endereco.Estado, Cliente = pv.DadoPessoa.Cliente as ICliente } }; GUID = oRegDesc.Save(); Model.Faturamento.Lancamento.Movimento.Item.IItem item = pv.Itens[0]; double old = item.ValorTotalLiquido; //------------------------------------------------------------------------- // Buscar um desconto pelo estado //------------------------------------------------------------------------- RegraDescontoResult result = new CalcularDesconto(pv, item).ExecutarRegra( new RegraDescontoFilter { Cliente = new OpenPOS.Data.Cadastro.Pessoa.Cliente { GUID = Guid.NewGuid().ToString() }, Estado = pv.DadoPessoa.Cliente.Enderecos[0].Endereco.Estado }); Assert.AreEqual(old, item.ValorTotalLiquido); result = new CalcularDesconto(pv, pv.Itens[0]).ExecutarRegra( new RegraDescontoFilter { Cliente = pv.DadoPessoa.Cliente as ICliente, Estado = pv.DadoPessoa.Cliente.Enderecos[0].Endereco.Estado }); Assert.AreNotEqual(old, item.ValorTotalLiquido); }
public override void Popular() { DescontoRegra oDescRegra = new DescontoRegra(GUID); DumpElement(oDescRegra); DumpElement(oDescRegra.Filtros); }
private void Gravar(IEstado estado) { DescontoRegra oRegDesc = new DescontoRegra(); oRegDesc.Descricao = "Primeira Regra Desconto"; oRegDesc.TipoValor = TipoValor.Percentual; oRegDesc.Valor = 10; oRegDesc.Filtros = new List<IDescontoRegraFiltro>{ new DescontoRegraFiltro{ TabelaPreco = NovatabelaPreco() } }; GUID = oRegDesc.Save(); }
public override void Validate(bool updating) { base.Validate(updating); #region vars Where where = new Where(); object value = null; #endregion foreach (IDescontoRegraFiltro filtro in Filtros) { //------------------------------------------------------------------------- // Pesquisar por todos os campos do fitro //------------------------------------------------------------------------- value = filtro.Cliente.IsNullOrEmpty() ? null : (object)filtro.Cliente.GUID; where.Add(String.Format("(cad_DescontoRegraFiltro.GUIDCliente = @p1 OR cad_DescontoRegraFiltro.GUIDCliente IS NULL)", value), new Parameter { ParameterName = "@p1", Value = value }); value = filtro.CondicaoPagamento.IsNullOrEmpty() ? null : (object)filtro.CondicaoPagamento.GUID; where.Add(String.Format("(cad_DescontoRegraFiltro.GUIDCondPgto = @p2 OR cad_DescontoRegraFiltro.GUIDCondPgto IS NULL)", value ), new Parameter { ParameterName = "@p2", Value = value }); value = filtro.Estado.IsNullOrEmpty() ? null : (object)filtro.Estado.GUID; where.Add(String.Format("(cad_DescontoRegraFiltro.GUIDEstado = @p3 OR cad_DescontoRegraFiltro.GUIDEstado IS NULL)", value ), new Parameter { ParameterName = "@p3", Value = value }); value = filtro.Fabricante.IsNullOrEmpty() ? null : (object)filtro.Fabricante.GUID; where.Add(String.Format("(cad_DescontoRegraFiltro.GUIDFabricante = @p4 OR cad_DescontoRegraFiltro.GUIDFabricante IS NULL)", value), new Parameter { ParameterName = "@p4", Value = value }); value = filtro.GrupoItem.IsNullOrEmpty() ? null : (object)filtro.GrupoItem.GUID; where.Add(String.Format("(cad_DescontoRegraFiltro.GUIDGrupoItem = @p5 OR cad_DescontoRegraFiltro.GUIDGrupoItem IS NULL)", value ), new Parameter { ParameterName = "@p5", Value = value }); value = filtro.Item.IsNullOrEmpty() ? null : (object)filtro.Item.GUID; where.Add(String.Format("(cad_DescontoRegraFiltro.GUIDItem = @p6 OR cad_DescontoRegraFiltro.GUIDItem IS NULL)", value ), new Parameter { ParameterName = "@p6", Value = value }); value = filtro.Quantidade; where.Add(String.Format("(cad_DescontoRegraFiltro.Quantidade = @p7 OR cad_DescontoRegraFiltro.Quantidade IS NULL)", value ), new Parameter { ParameterName = "@p7", Value = value }); value = filtro.Vendedor.IsNullOrEmpty() ? null : (object)filtro.Vendedor.GUID; where.Add(String.Format("(cad_DescontoRegraFiltro.GUIDVendedor = @p8 OR cad_DescontoRegraFiltro.GUIDVendedor IS NULL)", value ), new Parameter { ParameterName = "@p8", Value = value }); IList<IDescontoRegra> regras = new DescontoRegra().Find<IDescontoRegra>(where); //------------------------------------------------------------------------- // Localizar a lista de regras //------------------------------------------------------------------------- if (regras.Count(w => w.GUID != GUID) > 0) { throw new Exceptions.Regra.FilterAlreadyExists(Convert.ToString(regras[0].Descricao)); } } }
public void ExcecaoTest() { #region gravar a pré-venda //------------------------------------------------------------------------- // Gravar um pré-venda para utilizar durante o teste //------------------------------------------------------------------------- PreVendaTest pvTest = new PreVendaTest(); pvTest.Gravar(); PreVenda pv = pvTest.PreVenda; IEstado estado = RegraDescontoTest.NovoEstado(); //------------------------------------------------------------------------- // Modificar o estado do movimento //------------------------------------------------------------------------- pv.DadoPessoa.Cliente.Enderecos[0].Endereco.Estado = estado; #endregion #region gravar a regra //------------------------------------------------------------------------- // Criar um regra por estado e cliente //------------------------------------------------------------------------- DescontoRegra oRegDesc = new DescontoRegra(); oRegDesc.Descricao = "Primeira Regra Desconto"; oRegDesc.TipoValor = TipoValor.Percentual; oRegDesc.Valor = 10; oRegDesc.Filtros = new List<IDescontoRegraFiltro>{ new DescontoRegraFiltro{ Estado = estado, } }; GUID = oRegDesc.Save(); #endregion #region aqui existe desconto Model.Faturamento.Lancamento.Movimento.Item.IItem item = pv.Itens[0]; double old = item.ValorTotalLiquido; //------------------------------------------------------------------------- // Buscar um desconto pelo estado //------------------------------------------------------------------------- RegraDescontoResult result = new CalcularDesconto(pv, item).ExecutarRegra( new RegraDescontoFilter { Estado = pv.DadoPessoa.Cliente.Enderecos[0].Endereco.Estado }); //o desconto foi aplicado Assert.AreNotEqual(old, item.ValorTotalLiquido); #endregion #region exceção pelo cliente //------------------------------------------------------------------------- // Agora iremos informar a regra que o cliente é exceção //------------------------------------------------------------------------- oRegDesc.Excecoes.Add(new DescontoRegraExcecao { Cliente = pv.DadoPessoa.Cliente as ICliente }); oRegDesc.Save(); old = item.ValorTotalLiquido; result = new CalcularDesconto(pv, pv.Itens[0]).ExecutarRegra( new RegraDescontoFilter { Estado = pv.DadoPessoa.Cliente.Enderecos[0].Endereco.Estado }); //------------------------------------------------------------------------- // Não pode ter havido desconto, pois o cliente é uma exceção //------------------------------------------------------------------------- Assert.AreEqual(old, item.ValorTotalLiquido); #endregion }
public override void Popular() { IDescontoRegra descRegra = new DescontoRegra(GUID); DumpElement(descRegra); }
public override void Gravar() { #region Regra de descontos IDescontoRegra descRegra = new DescontoRegra(); descRegra.Descricao = "Regra de desconto para grupo de item"; descRegra.TipoValor = TipoValor.Percentual; descRegra.Valor = 5; #endregion #region Filtros da regra de desconto descRegra.Filtros.Add(new DescontoRegraFiltro { GrupoItem = new GrupoItem().Find<IGrupoItem>(new Where { Limit = new Limit(1) })[0], }); #endregion #region Exceçoes da regra de desconto descRegra.Excecoes.Add(new DescontoRegraExcecao { GrupoItem = new GrupoItem().Find<IGrupoItem>(new Where { Limit = new Limit(2) })[1], }); #endregion #region Usuarios Responsáveis descRegra.UsuariosResponsaveis.Add(new DescontoRegraUsuarioResp { UsuarioResponsavel = new Usuario().Find<IUsuario>(new Where { Limit = new Limit(2) })[0] }); #endregion GUID = descRegra.Save(); }