Beispiel #1
0
        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();
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        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();
        }
Beispiel #4
0
        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;
        }
Beispiel #5
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
        }
Beispiel #6
0
 public override void Popular()
 {
     DCT.Tributo t = new DCT.Tributo(GUID);
     DumpElement(t);
     DumpElement(t.Aliquotas);
 }