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); }
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 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 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(); }