public override void Gravar() { Unidade t = new Unidade(); t.Descricao = "Quilograma"; t.Prefixo = "KG"; GUID = t.Save(); }
public void HasHashModificationTest() { Gravar(); IUnidade p1 = new Unidade(GUID); IUnidade p2 = new Unidade(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 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 void BaixarCupomTest() { #region Criar a venda //------------------------------------------------------------------------- // Criar um cupom fiscal com 5 itens //------------------------------------------------------------------------- #region Criar a venda IUnidade un = new Unidade().Find()[0] as IUnidade; VendaCF v = new VendaCF(); v.TabelaPreco = new OpenPOS.Data.Cadastro.TabelaPreco.TabelaPreco(OpenPOS.Settings.TabelaPrecoCupomPadrao.GUID); v.DadoPessoa = new DadoPessoa { Cliente = OpenPOS.Settings.ConsumidorFinal }; IAcabado acabado = v.TabelaPreco.Itens.FirstOrDefault().Item as IAcabado; for(int i = 0; i < 5; i++) { v.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item { Parent = v, Quantidade = 10, ValorUnitarioBruto = 20, DescricaoNF = "Produto de teste um", SituacaoTributaria = SituacaoTributaria.NaoTributado, ItemMovimentado = acabado, Unidade = un, Conferido = true, TabelaPreco = v.TabelaPreco }); } v.EmissorCupom = OpenPOS.Settings.UsuarioAtual; v.AbreFechaCaixa = new AbreCaixa().Find<AbreCaixa>().FirstOrDefault().CaixaAberto(); v.NumeroOrdemECF = 123; v.NumeroSerieECF = "3231313131321"; #endregion #region Baixar //------------------------------------------------------------------------- // Baixar R$ 200,00 em dinheiro //------------------------------------------------------------------------- string descricao = string.Empty; descricao = "Dinheiro".ToUpper(); v.Baixa.Formas.Add(new BaixaForma { FormaPagamento = new FormaPagamento().Find<IFormaPagamento>(new Where { "Descricao LIKE '%"+descricao+"%'" }).FirstOrDefault(), ValorBruto = new Random().NextDouble(), DataHoraPagamento = DateTime.Now }); //------------------------------------------------------------------------- // Baixar R$ 200,00 em cheque //------------------------------------------------------------------------- descricao = "Cheque".ToUpper(); v.Baixa.Formas.Add(new BaixaForma { FormaPagamento = new FormaPagamento().Find<IFormaPagamento>(new Where { "Descricao LIKE '%"+descricao+"%'" }).FirstOrDefault(), Cheque = new BaixaCheque { Agencia = "123", Banco = new Banco().Find<IBanco>(new Where { Limit = 1 })[0], Cliente = OpenPOS.Settings.ConsumidorFinal, Numero = "456", NumeroConta = "789", }, ValorBruto = new Random().NextDouble(), DataHoraPagamento = DateTime.Now }); //------------------------------------------------------------------------- // Baixar R$ 200,00 em cheque TEF //------------------------------------------------------------------------- v.Baixa.Formas.Add(new BaixaTEFCheque { FormaPagamento = new FormaPagamento().Find<IFormaPagamento>(new Where { "Descricao LIKE '%"+descricao+"%'" }).FirstOrDefault(), Cheque = new BaixaCheque { Agencia = "123", Banco = new Banco().Find<IBanco>(new Where { Limit = 1 })[0], Cliente = OpenPOS.Settings.ConsumidorFinal, Numero = "456", NumeroConta = "789", }, Autenticacao = "654a654sa64a6s4a64d6a4d65s987qw96wq5465a", DataHoraTransacaoComprovante = DateTime.Now, ValorBruto = new Random().NextDouble(), DataHoraPagamento = DateTime.Now }); //------------------------------------------------------------------------- // Baixar R$ 200,00 em cartão 1 //------------------------------------------------------------------------- descricao = "Cartao".ToUpper(); v.Baixa.Formas.Add(new BaixaTEF { FormaPagamento = new FormaPagamento().Find<IFormaPagamento>(new Where { "Descricao LIKE '%"+descricao+"%'" }).FirstOrDefault(), DataHoraTransacaoComprovante = DateTime.Now, ValorBruto = new Random().NextDouble(), DataHoraPagamento = DateTime.Now, CodigoAutorizacaoTransacao = 1236, NomeRede = "MasterCard", NSU = "1326547984" }); //------------------------------------------------------------------------- // Baixar R$ 200,00 em cartão 2 //------------------------------------------------------------------------- v.Baixa.Formas.Add(new BaixaTEF { FormaPagamento = new FormaPagamento().Find<IFormaPagamento>(new Where { "Descricao LIKE '%"+descricao+"%'" }).FirstOrDefault(), DataHoraTransacaoComprovante = DateTime.Now, ValorBruto = new Random().NextDouble(), DataHoraPagamento = DateTime.Now, CodigoAutorizacaoTransacao = 123456, NomeRede = "RedeCard", NSU = "132654" }); #endregion GUID g = v.Save(); #endregion #region Carregar a venda v = new VendaCF(g); DumpElement(v.Baixa.Formas); #endregion }
public override void Popular() { Unidade t = new Unidade(GUID); DumpElement(t); }
public override void Editar() { Unidade t = new Unidade(GUID); t.Save(); }
public override void Gravar() { //------------------------------------------------------------------------- // 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(); v.QuantidadeVolume = 2; v.TabelaPreco = new Data.Cadastro.TabelaPreco.TabelaPreco(Settings.TabelaPrecoCupomPadrao.GUID); v.DadoPessoa = new DadoPessoa { Cliente = Settings.ConsumidorFinal }; v.EmissorCupom = Settings.UsuarioAtual; // TODO: Voltar ao normal v.AbreFechaCaixa = new AbreCaixa().Find<AbreCaixa>().FirstOrDefault().CaixaAberto(); Acabado = v.TabelaPreco.Itens.FirstOrDefault().Item as IAcabado; 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 = Acabado, Unidade = un, Vendedor = vendedor, Conferido = true, TabelaPreco = v.TabelaPreco }); 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 = Acabado, Unidade = un, Vendedor = vendedor, Conferido = true, TabelaPreco = v.TabelaPreco }); 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 = Acabado, Unidade = un, Vendedor = vendedor, Conferido = true, TabelaPreco = v.TabelaPreco }); #region Movimento vinculado PreVendaTest pvt = new PreVendaTest(); pvt.Gravar(); v.MovimentosVinculados.Add(new PreVenda(pvt.GUID)); #endregion v.NumeroOrdemECF = 123; v.NumeroSerieECF = "212lklk1kl"; v.COO = 123458; GUID = v.Save(); }