Example #1
0
 public override void Gravar()
 {
     Unidade t = new Unidade();
     t.Descricao = "Quilograma";
     t.Prefixo = "KG";
     GUID = t.Save();
 }
Example #2
0
        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);
        }
Example #3
0
        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
        }
Example #4
0
        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
        }
Example #5
0
 public override void Popular()
 {
     Unidade t = new Unidade(GUID);
     DumpElement(t);
 }
Example #6
0
 public override void Editar()
 {
     Unidade t = new Unidade(GUID);
     t.Save();
 }
Example #7
0
        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();
        }