Ejemplo n.º 1
0
        public void RegraCSTCSOSNCalculoTest()
        {
            IVendaCF v = null;

            if (new VendaCF().Find<IVendaCF>(new Where() { Limit = 1 }).Count <= 0)
            {
                VendaCFTest vendaTest = new VendaCFTest();
                vendaTest.Gravar();
                v = new VendaCF(vendaTest.GUID);
            }
            else
                v = new VendaCF().Find<IVendaCF>(new Where() { Limit = 1 })[0];

            IList<RegraCSTCSOSNResult> lista = new List<RegraCSTCSOSNResult>();
            foreach (Model.Faturamento.Lancamento.Movimento.Item.IItem item in v.Itens)
            {
                RegraCFOPResult resultCFOP = new RetornaCFOP(item).ExecutarRegra(new RegraCFOPFilter() { Tipo = v.Tipo });
                RegraCSTCSOSNResult resultCST = new RetornaCSTCSOSN(item).ExecutarRegra(new RegraCSTCSOSNFilter() {  CFOPRegra = resultCFOP.Regra });

                if (!resultCST.Regra.IsNullOrEmpty())
                {
                    item.CFOP = resultCFOP.Regra.CFOP;
                    lista.Add(resultCST);
                }
                else
                    throw new Exception();
            }
            GUID = v.Save();
        }
Ejemplo n.º 2
0
        public void CancelarTotal()
        {
            Gravar();

            string motivo = "Cancelar o cupom fiscal inteiro";

            VendaCF vendaCF = new VendaCF(GUID);
            vendaCF.Cancelar(motivo);

            vendaCF = new VendaCF(GUID);
            DumpElement(vendaCF);

            Assert.AreNotEqual(vendaCF.DadosCancelamento, null);
        }
Ejemplo n.º 3
0
        public void CancelarItem()
        {
            Gravar();

            string motivo = "Teste de cancelamento de item";

            VendaCF v = new VendaCF(GUID);
            //cancelar apenas o primeiro item
            v.Itens[0].Cancelar(motivo);

            //carregar o objeto e verificar se foi carregado os dados do cancelamento
            v = new VendaCF(GUID);
            DumpElement(v);

            Assert.AreEqual(v.DadosCancelamento.Motivo, motivo);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Ao carregar o formulário
        /// </summary>
        /// <param name="sender">Objeto que disparou o evento</param>
        /// <param name="e">Argumento do evento gerado</param>
        private void Inicial_Load(object sender, EventArgs e)
        {
            splash.Show();

            splash.SetMessage("Verificando ECF");
            if(Settings.ECF.ECFAtual != null)
            {
                ICupomFiscal cf = null;
            #if IsPAF
                IArquivoAuxiliar aux = null;
            #endif
                try
                {
                    cf = new CupomFiscal(Settings.ECF.ECFAtual.ModeloACBR, Settings.ECF.ECFAtual.Porta);
            #if IsPAF
                    aux = new ArquivoAuxiliar();

                    if(!System.IO.File.Exists(aux.ArquivoAuxiliarPath))
                    {
                        aux.GrandeTotal = cf.GrandeTotal.ToString();
                        aux.NumeroSerie = cf.NumeroSerie;
                        aux.Gerar();
                    }

                    aux.Carregar();
            #endif
                }
                catch
                { }
            #if IsPAF
                if((cf.Estado != EstadoECF.Livre) ||
                    !aux.PermiteFaturamento(cf.GrandeTotal))
                {
                    //TODO André: Essa parte do código só vai ser executado quando por algum motivo ocorreu a perda
                    //acidentalmente dos dados do
                    //arquivo auxiliar criptografado, onde será reconstituído o valor do Grande Total e Número de Série do Equipamento Emissor de Cupom Fiscal conectado
                    //Requisito XXIV - item 8
                    try
                    {
                        using(IInformacao info = new Informacao(Settings.ECF.ECFAtual.ModeloACBR, Settings.ECF.ECFAtual.Porta))
                        {
                            DadosReducaoZClass dadosReducao = info.DadosReducaoZ;
                            if(aux.RecomporTotalizadorGeral(info.CRZ, info.CRO, dadosReducao.ValorVendaBruta, dadosReducao.DataHoraEmissao))
                                aux.CorrigeDados(cf.GrandeTotal);
                            else
                            {
                                MessageBox.ShowWarning("Não é permitido o faturamento na impressora fiscal, pois os dados do Grande Total ou Número de série, diferem dos que estão no arquivo auxiliar criptografado!");
                                return;
                            }
                        }
                    }
                    catch
                    {
                    }
                }
            #endif
                splash.SetMessage("Preparando Caixa");
                IVendaCF venda = new VendaCF().HasTemp(Settings.ECF.ECFAtual) as IVendaCF;
                if(venda != null)
                {

                    if(venda.Status == Enuns.Faturamento.Lancamento.Status.ImpressoCupom)
                        new Pagamento(cf, venda).Confirmacao();
                    else
                        new Pagamento(cf, venda).CancelarTransacoesPendentes();

                    try
                    {
                        cf = new CupomFiscal(Settings.ECF.ECFAtual.ModeloACBR, Settings.ECF.ECFAtual.Porta);
                        if(cf.Estado == EstadoECF.Pagamento)
                        {
                            if(cf.TotalPago > 0)
                            {
                                cf.CancelaCupom();
                                if(cf.Estado == EstadoECF.Livre)
                                    venda.Cancelar("Venda cancelada pelo Usuário");
                            }
                        }
                        else if(cf.Estado == EstadoECF.Venda)
                        {
                        }
                        else if(cf.Estado == EstadoECF.Livre)
                        {
                            venda.Cancelar("Venda cancelada pelo Sistema");
                        }
                        else if(cf.Estado == EstadoECF.Relatorio)
                        {
                            new OpenPOS.ECF.RelatorioGerencial(Settings.ECF.ECFAtual.ModeloACBR, Settings.ECF.ECFAtual.Porta).FechaRelatorio(Enuns.ECF.TipoOutrosDocumentos.RG, false);
                        }
                        else if(cf.Estado == EstadoECF.NaoInicializada)
                        {
                            throw new Exception();
                        }
                    }
                    catch
                    {
                        if(MessageBox.AskYesNo("Impressora não responde.\r\tContinuar?", "Erro") == DialogResult.No)
                            Application.Exit();
                    }
                }
                splash.SetMessage("Finalizando Incialização");
            }

            optbCaixa.Visible = optBarVenda.Visible = optbConsulta.Visible = optBarDAV.Visible = optBarOutros.Visible = false;
            //Configurações na barra de acordo com o terminal, ou seja PDV ou não
            if(isPDV)
            {
                labelOperador.Text = Settings.UsuarioAtual.NomeLogin;
                labelTerminal.Text = Settings.MachineName;
                IAbreFechaCaixa abreCx = new AbreCaixa().PermiteAbrir(Settings.MachineName, DateTime.Now);
                labelStatus.Text = abreCx == null ? Convert.ToString(Enuns.FrenteCaixa.Cadastro.Caixa.Status.Fechado) : Convert.ToString(abreCx.Status);
            }
            else
            {
                labelOperador.Text = Settings.UsuarioAtual.NomeLogin;
                labelOperador.Location = new Point(202, 540);
                labelTerminal.Text = "";
                labelStatus.Text = "";
            }
            splash.Close();
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Método para criar os registros 60D do Sintegra ao emitir a redução Z
        /// </summary>
        private void CriaRegistro60D()
        {
            IList<IVendaCF> produtos = new VendaCF().Find<IVendaCF>(new Where()  {
                        {
                             "date(fat_LanMov.DataHoraMovimento) = date(@p1)",
                              new Parameter{
                                 GenericDbType = Unimake.Data.Generic.GenericDbType.DateTime,
                                 ParameterName = "@p1",
                                 Value = DadosReducaoZ.DataDoMovimento
                             }
                        }
                });

            var colecao = (from n in produtos
                           from x in n.Itens.Cast<Model.Faturamento.Lancamento.Movimento.Item.VendaCF.IItem>()
                           group x by x.ItemMovimentado.EGUID);
            ISintegraReg60D reg60D = null;
            foreach (var item in colecao)
            {
                reg60D = new SintegraReg60D();
                reg60D.Quantidade = item.Sum(i => i.Quantidade);
                reg60D.ValorBruto = item.Sum(i => i.ValorTotalBruto);
                reg60D.ValorBaseCalculoICMS = item.Sum(i => i.Tributos.Where(k => k.Aliquota.Parent.TipoTributo == Enuns.Cadastro.Tributo.TipoTributo.ICMS).Sum(k => k.VlrBaseCalculo));
                reg60D.ValorICMS = item.Sum(i => i.Tributos.Where(k => k.Aliquota.Parent.TipoTributo == Enuns.Cadastro.Tributo.TipoTributo.ICMS).Sum(k => k.VlrTributo));
                reg60D.DataEmissao = DadosReducaoZ.DataDoMovimento;
                reg60D.CodigoProduto = item.FirstOrDefault().ItemMovimentado.EGUID.ToString();
                reg60D.NumeroSerie = NumeroSerie;
                reg60D.SituacaoTributaria = item.FirstOrDefault().SituacaoTributaria;
                reg60D.Save();
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Cancela as Pré Vendas pendentes  
        /// </summary>
        private void CancelaPreVendasPendentes()
        {
            try
            {
                //Verifica se tem pre vendas pendentes
                DateTime dataMov = DateTime.Today;

                #region Antes da emissão da redução Z

                if (DadosReducaoZ.DataDoMovimento.CompareTo(dataMov) > 2)
                    dataMov = dataMov.AddDays(DadosReducaoZ.DataDoMovimento.CompareTo(dataMov) - 1);
                else if (DadosReducaoZ.DataDoMovimento.CompareTo(dataMov) != 1)
                    dataMov = DadosReducaoZ.DataDoMovimento.AddDays(-1);

                IList<IPreVenda> preVendas = new PreVenda().Find<IPreVenda>(new Where() {
                {
                    "fat_LanMov.DataHoraMovimento < @p1",
                    new Parameter
                    {
                        GenericDbType = GenericDbType.DateTime,
                        ParameterName = "@p1",
                        Value = dataMov
                    }
                   },
                     {
                    "fat_Lan.Status = @p2",
                    new Parameter
                    {
                        GenericDbType = GenericDbType.Integer,
                        ParameterName = "@p2",
                        Value = (int)Enuns.Faturamento.Lancamento.Status.Aberto
                    }
                   }
                });
                //Cancela se houver pre vendas pendentes
                foreach (IPreVenda pv in preVendas)
                {
                    Model.Faturamento.Lancamento.Movimento.VendaCF.IVendaCF venda = new VendaCF();
                    venda.DadoPessoa = pv.DadoPessoa;
                    venda.Emitente = pv.Emitente;

                    int contaPV = 0;
                    foreach (Model.Faturamento.Lancamento.Movimento.Item.IItem item in pv.Itens)
                        if (((Model.Faturamento.Lancamento.Movimento.Item.PreVenda.IItem)item).Status == Enuns.Faturamento.Lancamento.Movimento.Item.Status.Cancelado)
                            contaPV++;

                    if (contaPV != pv.Itens.Count)
                    {
                        ACBrECF.AbreCupom(venda.DadoPessoa.Cliente.GetCPFCNPJ(), venda.DadoPessoa.NomeFantasia, "");
                        foreach (Model.Faturamento.Lancamento.Movimento.Item.IItem item in pv.Itens)
                            if (((Model.Faturamento.Lancamento.Movimento.Item.PreVenda.IItem)item).Status != Enuns.Faturamento.Lancamento.Movimento.Item.Status.Cancelado)
                            {
                                Model.Faturamento.Lancamento.Movimento.Item.VendaCF.IItem i = new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item();
                                i.DescricaoNF = item.DescricaoNF;
                                i.ItemMovimentado = item.ItemMovimentado;
                                i.Quantidade = item.Quantidade;
                                i.ValorUnitarioBruto = item.ValorUnitarioBruto;
                                i.Vendedor = item.Vendedor;
                                i.Status = Enuns.Faturamento.Lancamento.Movimento.Item.Status.Cancelado;
                                i.SituacaoTributaria = SituacaoTributaria.Isento;
                                i.ItensParent.Add(item);
                                (i.ItemMovimentado as Model.Cadastro.Item.Produto.IProduto).IndicadorProducao = "P";
                                (i.ItemMovimentado as Model.Cadastro.Item.Produto.IProduto).IndicadorTruncamento = "T";
                                ((Model.Faturamento.Lancamento.Movimento.Item.PreVenda.IItem)item).Status = Enuns.Faturamento.Lancamento.Movimento.Item.Status.Cancelado;
                                item.Save();
                                venda.Itens.Add(i);
                                ACBrECF.VendeItem(i.Ordem.ToString(), i.DescricaoNF, "FF", (decimal)i.Quantidade, (decimal)i.ValorUnitarioLiquido);
                            }

                        venda.NumeroSerieECF = NumeroSerie;
                        venda.NumeroOrdemECF = Unimake.Convert.ToInt(NumeroECF);
                        venda.COO = COO;
                        venda.COOFinal = 0; // Todo: o valor do coo final será atualizado posteriormente pela emissão da redução z
                        venda.CRO = CRO;
                        venda.CCF = CCF;
                        venda.CRZ = CRZ;
                        venda.ValorGrandeTotalECF = GrandeTotal;
                        venda.Save();
                        ACBrECF.SubtotalizaCupom();
                        ACBrECF.FechaCupom("Obrigado");
                        ACBrECF.CancelaCupom();
                        pv.Cancelar(DateTime.Today, "Cancelamento Automático - Emissão de Redução Z");
                    }
                }
                #endregion
            }
            finally
            {
                //aqui tem que liberar a variável da redução Z, pois será chamada em outros métodos que dependem
                // dos dados da última redução Z. Ou seja, os dados de pois de validados por este método.
                // Este método é chamado antes da redução Z
                _dadosReducaoZ = null;
            }
        }
Ejemplo n.º 7
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
        }
Ejemplo n.º 8
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
        }
Ejemplo n.º 9
0
        public override void Editar()
        {
            VendaCF v = new VendaCF(GUID);
            //fazer um dump dos itens do objeto
            DumpElement(v.Itens);

            //excluir 2 itens e salvar
            v.Itens.RemoveAt(0);
            v.Itens.RemoveAt(0);
            GUID = v.Save();

            //recarrega o objeto para conferir se salvou corretamente os itens
            v = new VendaCF(GUID);

            //fazer um dump dos itens do objeto
            DumpElement(v.Itens);

            //adicionar 3 itens
            v.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item
            {
                Quantidade = 10,
                ValorUnitarioBruto = 12.5,
                DescricaoNF = "Produto de teste cinco",
                SituacaoTributaria = SituacaoTributaria.ISSQN,
                ItemMovimentado = Acabado,
                TabelaPreco = v.TabelaPreco
            });

            v.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item
            {
                Quantidade = 25,
                ValorUnitarioBruto = 15,
                DescricaoNF = "Produto de teste seis",
                SituacaoTributaria = "17.00",
                ItemMovimentado = Acabado,
                TabelaPreco = v.TabelaPreco
            });

            v.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item
            {
                Quantidade = 33,
                ValorUnitarioBruto = 17.5,
                DescricaoNF = "Produto de teste sete",
                SituacaoTributaria = SituacaoTributaria.Isento,
                ItemMovimentado = Acabado,
                TabelaPreco = v.TabelaPreco
            });

            GUID = v.Save();

            //recarrega o objeto para conferir se salvou corretamente os itens
            v = new VendaCF(GUID);
            //fazer um dump dos itens do objeto
            DumpElement(v.Itens);
        }
Ejemplo n.º 10
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();
        }
Ejemplo n.º 11
0
 public override void Popular()
 {
     VendaCF v = new VendaCF(GUID);
     DumpElement(v);
 }
Ejemplo n.º 12
0
 public void ExportarParaXML()
 {
     Gravar();
     VendaCF vendaCF = new VendaCF(GUID);
     ((Unimake.IGenerateXML)vendaCF).GenerateXML().Save(Path.GetTempFileName());
     Excluir();
 }
Ejemplo n.º 13
0
        public override void Gravar()
        {
            #region DAV

            DAV dav = new DAV();

            #region Vendedor
            Continente t = new Continente();
            t.Nome = "Europa";
            GUID guidContinente = t.Save();
            Pais p = new Pais();
            p.Nome = "Brasil";
            p.Abreviatura = "BR";
            p.CodBACEN = "1234";
            p.Continente = t;
            GUID guidPais = p.Save();
            Estado e = new Estado();
            e.Nome = "Europa";
            e.CodigoIBGE = "41256";
            e.UF = "PR";
            e.Pais = p;
            GUID guidEstado = e.Save();
            Municipio m = new Municipio();
            m.Abreviatura = "PVI";
            m.CodigoIBGE = "123546";
            m.Estado = e;
            m.Nome = "Paranavaí";
            GUID guidMunicipio = m.Save();
            Cidade c = new Cidade();
            c.Abreviatura = "GR";
            c.Municipio = m;
            c.Nome = "Graciosa";
            GUID = c.Save();

            Logradouro l = new Logradouro();
            l.Descricao = "Avenida";
            l.Abreviatura = "Av";
            GUID guidLogradouro = l.Save();

            Bairro b = new Bairro();
            b.Cidade = c;
            b.Descricao = "Centro";
            GUID guidBairro = b.Save();

            OpenPOS.Data.Cadastro.Endereco.Endereco end = new OpenPOS.Data.Cadastro.Endereco.Endereco();
            end.Logradouro = l;
            end.CEP = "87704020";
            end.Endereco = "Joaquim da Silva";
            end.Bairro = b;
            string guidEndereco = end.Save();

            IVendedor vendedor = new Vendedor();
            vendedor.FisicaJuridica = Enuns.Cadastro.Pessoa.FisicaJuridica.Fisica;
            OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica fisica = new OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica();
            fisica.CPF = "05210438910";
            fisica.DataNascimento = new DateTime(1985, 07, 27);
            fisica.EstadoCivil = Enuns.Cadastro.Pessoa.EstadoCivil.Casado;
            fisica.MaeNome = "Teste";
            fisica.PaiNome = "Teste";
            fisica.RG = "90702343";
            fisica.RGEmissao = new DateTime(1995, 12, 12);
            Estado estado = new Estado(guidEstado);
            fisica.RGEstado = estado;
            fisica.RGOrgao = "SSPPR";
            fisica.RGTipoVisto = "";
            fisica.Sexo = Enuns.Cadastro.Pessoa.Sexo.Masculino;

            OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica juridica = new OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica();
            juridica.CNPJ = "75480764000120";
            juridica.DataAbertura = new DateTime(1999, 10, 10);
            juridica.IM = "1205";
            juridica.ISuf = "";
            juridica.RamoAtividade = new RamoAtividade().Find<IRamoAtividade>()[0];

            OpenPOS.Data.Cadastro.Pessoa.Endereco endereco = new OpenPOS.Data.Cadastro.Pessoa.Endereco();
            // endereco.GUID = guidEndereco;
            endereco.CaixaPostal = "123";
            endereco.Cobranca = true;
            endereco.Complemento = "teste";
            endereco.Correspondencia = true;
            endereco.Endereco = end;
            endereco.Entrega = true;
            endereco.Faturamento = true;
            endereco.Numero = "1234";
            endereco.Principal = true;
            endereco.Proximidade = "Estadio";
            endereco.Retirada = true;
            endereco.TipoEndereco = Enuns.Cadastro.Endereco.TipoEndereco.Principal;
            vendedor.Enderecos = new List<IEndereco> { endereco };
            vendedor.Fisica = fisica;
            vendedor.Juridica = juridica;
            vendedor.NomeFantasia = "Teste";
            vendedor.Observacao = "teste unitario";
            vendedor.RazaoSocial = "Teste";
            vendedor.TipoPessoa = Enuns.Cadastro.Pessoa.TipoPessoa.Vendedor;
            GUID guidVendedor = vendedor.Save();

            #endregion

            #region DadoPessoa

            Model.Faturamento.Lancamento.Movimento.IDadoPessoa dadoPessoa = new Data.Faturamento.Lancamento.Movimento.DadoPessoa.DadoPessoa();

            Cliente cliente = new Cliente()
            {
                FisicaJuridica = Enuns.Cadastro.Pessoa.FisicaJuridica.Fisica,
                Fisica = fisica,
                NomeFantasia = "Luciano",
                RazaoSocial = "Luciano Leandro",
                TipoPessoa = Enuns.Cadastro.Pessoa.TipoPessoa.Cliente,
                Enderecos = new List<IEndereco> { endereco }
            };
            cliente.Save();
            dadoPessoa.Cliente = cliente;

            #endregion
            dav.DadoPessoa = dadoPessoa;
            Item item1 = new Item()
            {
                Quantidade = 10,
                ValorUnitarioBruto = 12.5,
                DescricaoNF = "Produto de teste um",
                Vendedor = vendedor
            };
            dav.Itens.Add(item1);
            GUID guidDav = dav.Save();

            #endregion

            PreVenda pv = new PreVenda();

            OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.PreVenda.Item itempv1 = new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.PreVenda.Item()
            {
                Quantidade = 10,
                ValorUnitarioBruto = 12.5,
                DescricaoNF = "Produto de teste um",
                Status = 0,

            };
            itempv1.Parent = pv;
            itempv1.ItensParent.Add((Item)dav.Itens[0].Clone());
            pv.Itens.Add(itempv1);

            guidPv = pv.Save();

            VendaCF v = new VendaCF();

            OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item itemVCF = new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item
            {
                Quantidade = 25,
                ValorUnitarioBruto = 15,
                DescricaoNF = "Produto de teste um",
            };
            itemVCF.Parent = v;
            itemVCF.ItensParent.Add((Data.Faturamento.Lancamento.Movimento.Item.PreVenda.Item)pv.Itens[0].Clone());
            v.Itens.Add(itemVCF);
            GUID = v.Save();
        }
Ejemplo n.º 14
0
 public override void Excluir()
 {
     VendaCF v = new VendaCF(GUID);
     v.Delete();
 }
Ejemplo n.º 15
0
 public override void Editar()
 {
     VendaCF v = new VendaCF(GUID);
     v.Save();
 }
Ejemplo n.º 16
0
        public override void Popular()
        {
            PreVenda pv = new PreVenda(guidPv);

            VendaCF v = new VendaCF(GUID);

            DumpElement(v);
        }