public override void Gravar() { ITributoRegra t = new TributoRegra(); t.Descricao = "Teste Regra"; DCT.Tributo tributo = new DCT.Tributo(); tributo.Descricao = "IPI"; tributo.Aliquotas = new List<IAliquotaTributo> { new DCT.AliquotaTributo{Valor = new Random().NextDouble(1,10)}, new DCT.AliquotaTributo{Valor = new Random().NextDouble(1,10)}, new DCT.AliquotaTributo{Valor = new Random().NextDouble(1,10)} }; tributo.Save(); // t.Aliquota = tributo.Aliquotas[0]; NCM ncm = new NCM(); ncm.Descricao = "NCM de teste"; ncm.NCM = new Random().Next(10000, 1000000).ToString().PadRight(8, '0'); ncm.Save(); IGrupoItem grupoItem = new GrupoItem(); grupoItem.Descricao = "Borracha"; grupoItem.Parent = null; grupoItem.Classificacao = "03-Borracha"; grupoItem.ClassificacaoAnalitica = false; grupoItem.Save(); IItem item = ServicoTest.CriarServico(); item.Save(); t.Filtros.Add(new OpenPOS.Data.Regra.Tributo.TributoRegraFiltro() { NCM = ncm }); t.Filtros.Add(new OpenPOS.Data.Regra.Tributo.TributoRegraFiltro() { GrupoItem = grupoItem }); t.Filtros.Add(new OpenPOS.Data.Regra.Tributo.TributoRegraFiltro() { Item = item }); t.Aliquotas.Add(new OpenPOS.Data.Regra.Tributo.TributoRegraAliquota() { Aliquota = tributo.Aliquotas[0] }); GUID = t.Save(); }
public override void Gravar() { #region Tributo TributoTest tributoTest = new TributoTest(); tributoTest.Gravar(); ITributo tributo = new Tributo(tributoTest.GUID); IList<IAliquotaTributo> tributosAliquotas = new List<IAliquotaTributo>(); tributosAliquotas.Add(tributo.Aliquotas[0]); IAliquotaTributo aliquotaTributo = new AliquotaTributo(tributosAliquotas[0].GUID); #endregion #region Impressora ImpressoraTest impressoraTest = new ImpressoraTest(); impressoraTest.Gravar(); IImpressora impressora = new Impressora(impressoraTest.GUID); #endregion IAliquota aliquota = new Aliquota(); aliquota.TributoAliquota = aliquotaTributo; aliquota.Impressora = impressora; aliquota.Aliquota = 18.50; aliquota.Indice = "T18,50"; GUID = aliquota.Save(); }
public override void Editar() { DCT.Tributo t = new DCT.Tributo(GUID); t.Descricao = "IPI Editado"; t.TipoTributo = Enuns.Cadastro.Tributo.TipoTributo.COFINS; //remover uma aliquota t.Aliquotas.RemoveAt(0); t.Save(); }
public override void Gravar() { DCT.Tributo t = new DCT.Tributo(); t.Descricao = "IPI"; t.Aliquotas = new List<IAliquotaTributo> { new DCT.AliquotaTributo{Valor = new Random().NextDouble(1,10)}, new DCT.AliquotaTributo{Valor = new Random().NextDouble(1,10)}, new DCT.AliquotaTributo{Valor = new Random().NextDouble(1,10)} }; t.TipoTributo = Enuns.Cadastro.Tributo.TipoTributo.ICMS; GUID = t.Save(); Tributo = t; }
public void RegraTributoCalculoTest() { #region Cadastrar uma regra de CFOP ICFOPRegra cfop = new CFOPRegra(); cfop.Descricao = "Regra CFOP - Venda Consumidor Final"; cfop.CFOP = new CFOP().Find<ICFOP>(new Where() { Limit = 1 })[0]; cfop.Filtros.Add(new CFOPRegraFiltro() { TipoLancamento = Enuns.Faturamento.Lancamento.Tipo.CupomFiscal }); cfop.Save(); #endregion #region Cadastrar uma regra de CST ICSTCSOSN cstCodigo = new CSTCSOSN(); cstCodigo.Codigo = "00"; cstCodigo.Descricao = "Tributado Integralmente"; cstCodigo.Save(); ICSTCSOSNRegra cst = new CSTCSOSNRegra(); cst.Descricao = "Teste Regra"; cst.CSTCSOSNCodigos.Add(new CSTCSOSNRegraCodigo() { CSTCSOSNCodigo = new CSTCSOSN().Find<ICSTCSOSN>()[0] }); cst.Filtros.Add(new CSTCSOSNRegraFiltro() { CFOPRegra = cfop }); cst.Save(); #endregion #region Regra Tributo ITributoRegra t = new TributoRegra(); t.Descricao = "Regra - Venda Consumidor Final"; ITributo tributo = new Tributo(); tributo.TipoTributo = Enuns.Cadastro.Tributo.TipoTributo.ICMS; tributo.Descricao = "ICMS"; tributo.Aliquotas = new List<IAliquotaTributo> { new DCT.AliquotaTributo{Valor = 18.00} }; t.Aliquotas.Add(new TributoRegraAliquota() { Aliquota = tributo.Aliquotas[0] }); t.Filtros.Add(new TributoRegraFiltro() { CFOPRegra = cfop }); tributo.Save(); t.Save(); #endregion #region Filtro da regra de base de cálculo IRegraFiltro filtro = new RegraFiltro(); filtro.TipoTributo = Enuns.Cadastro.Tributo.TipoTributo.ICMS; #endregion #region Regra da base de cálculo OpenPOS.Model.Regra.BaseCalculo.IRegra regraBC = new OpenPOS.Data.Regra.BaseCalculo.Regra(); regraBC.Descricao = "Regra de base de cálculo"; regraBC.Formula = ""; regraBC.Filtros.Add(filtro); regraBC.Save(); #endregion //------------------------------------------------------------------------- // Como teste pode recuperar qualquer ECF //------------------------------------------------------------------------- IUnidade un = new Unidade().Find()[0] as IUnidade; IVendedor vendedor = new Vendedor().Find<IVendedor>(new Where { Limit = 1 })[0]; VendaCF v = new VendaCF(); ProdutoAcabadoTest acabadoTest = new ProdutoAcabadoTest(); acabadoTest.Gravar(); v.TabelaPreco = new TabelaPreco().Find<Model.Cadastro.TabelaPreco.ITabelaPreco>(new Where { Limit = new Limit(1) })[0]; v.DadoPessoa = new DadoPessoa { Cliente = new OpenPOS.Data.Cadastro.Pessoa.Cliente().Find<ICliente>(new Where() { Limit = 1 })[0] }; v.EmissorCupom = new OpenPOS.Data.Cadastro.Pessoa.Usuario().Find<IUsuario>(new Where() { Limit = 1 })[0]; // TODO: Voltar ao normal if (new AbreCaixa().Find<IAbreCaixa>(new Where() { { "cxa_AbreFechaCaixa.Status", 0 } }).Count > 0) v.AbreFechaCaixa = new AbreCaixa().Find<IAbreCaixa>(new Where() { { "cxa_AbreFechaCaixa.Status", 0 } })[0]; else { v.AbreFechaCaixa = new AbreCaixa().PermiteAbrir(Environment.MachineName, DateTime.Now); } v.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item { Quantidade = new Random().NextDouble(15, 50), ValorUnitarioBruto = new Random().NextDouble(15, 50), DescricaoNF = "Produto de teste um", SituacaoTributaria = SituacaoTributaria.ISSQN, ItemMovimentado = new Acabado(acabadoTest.GUID), Unidade = un, Vendedor = vendedor, Parent = v }); v.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item { Quantidade = new Random().NextDouble(15, 50), ValorUnitarioBruto = new Random().NextDouble(15, 50), DescricaoNF = "Produto de teste dois", SituacaoTributaria = SituacaoTributaria.Cancelamento, ItemMovimentado = new Acabado(acabadoTest.GUID), Unidade = un, Vendedor = vendedor, Parent = v }); v.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item { Quantidade = new Random().NextDouble(15, 50), ValorUnitarioBruto = new Random().NextDouble(15, 50), DescricaoNF = "Produto de teste tres", SituacaoTributaria = "18,00", ItemMovimentado = new Acabado(acabadoTest.GUID), Unidade = un, Vendedor = vendedor, Parent = v }); v.NumeroOrdemECF = 123; v.NumeroSerieECF = "212lklk1kl"; v.COO = 123458; GUID = v.SaveTemp(); v = new VendaCF(GUID); #region Regra Tributo Model.Faturamento.Lancamento.Movimento.Item.IItem item = v.Itens[0]; RegraCFOPResult resultCFOP = new RetornaCFOP(item).ExecutarRegra(new RegraCFOPFilter() { Tipo = v.Tipo }); RegraCSTCSOSNResult resultCST = new RetornaCSTCSOSN(item).ExecutarRegra(new RegraCSTCSOSNFilter() { CFOPRegra = resultCFOP.Regra }); RegraTributoResult resultTributo = new CalcularTributo(item).ExecutarRegra(new RegraTributoFilter() { CFOPRegra = resultCFOP.Regra, CSTCSOSNRegra = resultCST.Regra }); #endregion }
public override void Popular() { DCT.Tributo t = new DCT.Tributo(GUID); DumpElement(t); DumpElement(t.Aliquotas); }