示例#1
0
        public override void Editar()
        {
            DAV pv = new DAV(GUID);
            //fazer um dump dos itens do objeto
            DumpElement(pv.Itens);

            //excluir 2 itens e salvar
            pv.Itens.RemoveAt(0);
            pv.Itens.RemoveAt(0);
            pv.Save();

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

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

            ProdutoAcabadoTest acabadoTest = new ProdutoAcabadoTest();
            acabadoTest.Gravar();

            //adicionar 3 itens
            pv.Itens.Add(new Item
            {
                Quantidade = 10,
                ValorUnitarioBruto = 12.5,
                DescricaoNF = "Produto de teste cinco",
                Status = 0,
                ItemMovimentado = new Acabado(acabadoTest.GUID)
            });

            pv.Itens.Add(new Item
            {
                Quantidade = 25,
                ValorUnitarioBruto = 15,
                DescricaoNF = "Produto de teste seis",
                Status = 0,
                ItemMovimentado = new Acabado(acabadoTest.GUID)
            });

            pv.Itens.Add(new Item
            {
                Quantidade = 33,
                ValorUnitarioBruto = 17.5,
                DescricaoNF = "Produto de teste sete",
                Status = 0,
                ItemMovimentado = new Acabado(acabadoTest.GUID)
            });

            pv.Save();

            //recarrega o objeto para conferir se salvou corretamente os itens
            pv = new DAV(GUID);
            //fazer um dump dos itens do objeto
            DumpElement(pv.Itens);
        }
示例#2
0
        /// <summary>
        /// Carrega o movimento selecionado pelo usuário
        /// </summary>
        /// <param name="eguid">Código do movimento</param>
        private void CarregarMovimento(EGUID eguid)
        {
            IList<IMovimento> movimentos = new List<IMovimento>();

            if (!string.IsNullOrEmpty(eguid))
            {

                if (rbtDAV.Checked)
                {
                    movimentos = new DAV().Find<IDAV>(new Where
                        {
                            { "fat_LanMovDav.EGUID",  eguid}
                        }).ToList<IMovimento>();
                }
                else if (rbtPreVenda.Checked)
                {
                    movimentos = new PreVenda().Find<IPreVenda>(new Where
                        {
                            { "fat_LanMovPv.EGUID", eguid }
                        }).ToList<IMovimento>();
                }
                else
                {
                    movimentos = new Data.Faturamento.Lancamento.Movimento.DAV.OS.DAV().Find<Model.Faturamento.Lancamento.Movimento.DAV.OS.IDAV>(new Where
                        {
                            { "fat_LanMovDavOs.EGUID", eguid }
                        }).ToList<IMovimento>();
                }
                /*
                * Se não encontrou movimento na base do OpenPOS, vamos procurar na base da retaguarda
                */
                if (movimentos.Count == 0)
                {
                    Movimento = GetFromBackend().FirstOrDefault();

                    movimentos.Add(Movimento);
                }

                CarregarMovimento(movimentos.FirstOrDefault());
            }
        }
示例#3
0
        /// <summary>
        /// Pesquisar todos os movimentos utilizando a SearchWindow 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnPesquisarMovimento_Click(object sender, EventArgs e)
        {
            IParentModel tipoMovimento = null;

            // Aqui verifica o tipo de movimento que o usuário quer pesquisar
            if (rbtDAV.Checked)
                tipoMovimento = new DAV();
            else if (rbtDAVOS.Checked)
                tipoMovimento = new Data.Faturamento.Lancamento.Movimento.DAV.OS.DAV();
            else
                tipoMovimento = new PreVenda();

            //Filtro para trazer somente os movimentos que estão com o status: Aberto
            Where where = new Where();
            where.Add("fat_lan.status = @status",
                new Parameter
                {
                    ParameterName = "@status",
                    Value = (int)Enuns.Faturamento.Lancamento.Status.Aberto
                });

            // Fazer a Pesquisa e pegar o GUID movimento selecionado
            SearchWindowResult result = SearchWindow.Show(tipoMovimento, where);

            if (!result.GUID.IsNullOrEmpty())
                CarregarMovimento(result.GUID);
        }
示例#4
0
        /// <summary>
        /// Relação dos DAVs emitidos
        /// </summary>
        private void PreencheD()
        {
            IList<IDAV> davs = new DAV().Find<IDAV>(new Where {
            { "fat_LanMov.DataHoraMovimento BETWEEN @p1 AND @p2",
                new []
                {
                    new Parameter{
                        ParameterName = "@p1",
                        GenericDbType = GenericDbType.Date,
                        Value = DataInicial
                    },
                    new Parameter{
                        ParameterName= "@p2",
                        GenericDbType = GenericDbType.Date,
                        Value = DataFinal
                    }
                }
            }
            });

            List<ACBrPAFRegistroD2> RegistroD2 = new List<ACBrPAFRegistroD2>();

            ACBrPAF.PAF_D.RegistroD1.RazaoSocial = Settings.EmpresaAtual.RazaoSocial;
            ACBrPAF.PAF_D.RegistroD1.UF = Settings.EmpresaAtual.Enderecos.First(w => w.Principal).Endereco.Estado.UF;
            ACBrPAF.PAF_D.RegistroD1.CNPJ = Settings.EmpresaAtual.GetCPFCNPJ();
            ACBrPAF.PAF_D.RegistroD1.IE = Settings.EmpresaAtual.Juridica.IE;
            ACBrPAF.PAF_D.RegistroD1.IM = Settings.EmpresaAtual.Juridica.IM;

            foreach(IDAV dav in davs.Where(d => d.Itens.Count > 0))
            {
                ACBrPAFRegistroD2 ItemD2 = new ACBrPAFRegistroD2();
                ItemD2.NUM_FAB = dav.Impressora.Serie;
                ItemD2.MF_ADICIONAL = dav.Impressora.MFAdicional;
                ItemD2.TIPO_ECF = Unimake.Convert.ToString(dav.Impressora.Tipo);
                ItemD2.MARCA_ECF = dav.Impressora.Marca;
                ItemD2.MODELO_ECF = Unimake.Convert.ToString(dav.Impressora.ModeloACBR);
                ItemD2.COO = dav.Registro04.COO.ToString();
                ItemD2.NUM_DAV = dav.EGUID;
                ItemD2.DT_DAV = dav.DataHoraMovimento;
                ItemD2.TIT_DAV = dav.Descricao;
                ItemD2.VLT_DAV = (decimal)dav.ValorTotalLiquido;
                ItemD2.COO_DFV = dav.Registro04.CCF.ToString();
                ItemD2.NUMERO_ECF = dav.Impressora.PDV.NumeroCaixa;
                ItemD2.NOME_CLIENTE = dav.DadoPessoa.RazaoSocial;
                ItemD2.CPF_CNPJ = dav.DadoPessoa.Cliente.GetCPFCNPJ();

                foreach(Model.Faturamento.Lancamento.Movimento.Item.IItem item in dav.Itens)
                {
                    ACBrPAFRegistroD3 ItemD3 = new ACBrPAFRegistroD3();
                    ItemD3.DT_INCLUSAO = dav.DataEmissao;
                    ItemD3.NUM_ITEM = item.Ordem;
                    ItemD3.COD_ITEM = item.ItemMovimentado.EGUID;
                    ItemD3.DESC_ITEM = item.DescricaoNF;
                    ItemD3.QTDE_ITEM = (decimal)item.Quantidade;
                    ItemD3.UNI_ITEM = ((Model.Cadastro.Item.Produto.IProduto)item.ItemMovimentado).IsNullOrEmpty() ? "" : ((Model.Cadastro.Item.Produto.IProduto)item.ItemMovimentado).Unidade.Prefixo;
                    ItemD3.VL_UNIT = (decimal)item.ValorUnitarioBruto;
                    ItemD3.VL_DESCTO = (decimal)item.ValorTotalDesconto;
                    ItemD3.VL_ACRES = (decimal)item.ValorTotalAcrescimo;
                    ItemD3.VL_TOTAL = (decimal)item.ValorTotalLiquido;
                    ItemD3.DEC_VL_UNIT = 2;
                    ItemD3.DEC_QTDE_ITEM = 2;

                    string sittributaria = string.Empty;

                    //De acordo com o código da CST/CSOSN definimos a situação tributária do item
                    if (item.CSTCSOSNCodigos.FirstOrDefault().CSTCSOSNCod.Codigo.Equals("40") ||
                        item.CSTCSOSNCodigos.FirstOrDefault().CSTCSOSNCod.Codigo.Equals("102"))
                        sittributaria = "I";
                    else if (item.CSTCSOSNCodigos.FirstOrDefault().CSTCSOSNCod.Codigo.Equals("41") ||
                        item.CSTCSOSNCodigos.FirstOrDefault().CSTCSOSNCod.Codigo.Equals("400"))
                        sittributaria = "N";
                    else if (item.CSTCSOSNCodigos.FirstOrDefault().CSTCSOSNCod.Codigo.Equals("60") ||
                        item.CSTCSOSNCodigos.FirstOrDefault().CSTCSOSNCod.Codigo.Equals("500"))
                        sittributaria = "F";

                    ItemD3.SIT_TRIB = sittributaria;

                    ItemD3.ALIQ = (decimal)item.Tributos.Where(k => k.Aliquota.Parent.TipoTributo == Enuns.Cadastro.Tributo.TipoTributo.ICMS).FirstOrDefault().Aliquota.Valor;
                    ItemD3.IND_CANC = item.IndicadorCancelamento;
                    ItemD3.RegistroValido = !item.ItemMovimentado.HasHashModification;
                    ItemD2.RegistroD3.Add(ItemD3);
                    ItemD3 = null;
                }

                ItemD2.RegistroValido = true;
                ACBrPAF.PAF_D.RegistroD2.Add(ItemD2);
                ItemD2 = null;
            }
        }
示例#5
0
        public override void Gravar()
        {
            DAV pv = 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();

            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.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;

            IVendedor vendedor = new Vendedor().Find<IVendedor>(new Where { Limit = new Limit(1, 1) })[0];
            #endregion

            #region DadoPessoa

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

            ICliente cliente = CriarCliente();
            dadoPessoa.Cliente = cliente;
            #endregion

            pv.TabelaPreco = new Data.Cadastro.TabelaPreco.TabelaPreco().Find<Model.Cadastro.TabelaPreco.ITabelaPreco>(new Where { Limit = new Limit(1) })[0];
            pv.DadoPessoa = dadoPessoa;
            pv.COO = 123457;

            #region Frete
            Frete frete = new Frete();
            frete.Descricao = "Frete";
            frete.Save();
            #endregion

            #region Desconto
            Desconto desconto = new Desconto();
            desconto.Descricao = "Desconto";
            desconto.Save();
            #endregion

            #region Encargos
            EncargoFinanceiro encargoFinanceiro = new EncargoFinanceiro();
            encargoFinanceiro.Descricao = "Encargo Financeiro";
            encargoFinanceiro.Save();
            #endregion

            #region CFOP
            ICFOP cfop = new CFOP().Find<ICFOP>(new Where { Limit = new Limit(1, 1) })[0];
            #endregion

            #region items
            ProdutoAcabadoTest acabadoTest = new ProdutoAcabadoTest();

            for(int i = 0; i < 7; i++)
            {
                acabadoTest.Gravar();
                pv.Itens.Add(new Item
                {
                    Vendedor = vendedor,
                    Quantidade = new Random().NextDouble(7, 21),
                    ValorUnitarioBruto = new Random().NextDouble(7, 42),
                    DescricaoNF = "Produto de teste um",
                    Status = 0,
                    ItemMovimentado = new Acabado(acabadoTest.GUID),
                    CFOP = cfop,
                    ItensEspeciais = new List<IEspecial> {
                    new Especial{
                        Ordem = 0,
                        ItemEspecial  = frete,
                        Valor = new Random().NextDouble(21, 77)
                    },
                    new Especial{
                        Ordem = 1,
                        ItemEspecial = desconto,
                        Valor = new Random().NextDouble(21, 77)
                    },
                    new Especial{
                        Ordem = 2,
                        ItemEspecial = encargoFinanceiro,
                        Valor = new Random().NextDouble(21, 77)
                    },
                }
                });
            }
            #endregion

            #region Parcelas
            //-------------------------------------------------------------------------
            // Conta Corrente
            //-------------------------------------------------------------------------
            IContaCorrente contaCorrente = new ContaCorrente();
            contaCorrente.Descricao = new Random().NextString();
            contaCorrente.Save();

            //-------------------------------------------------------------------------
            // Criar uma condição de pagamento
            //-------------------------------------------------------------------------
            ICondicaoPagamento condicaoPagamento = new CondicaoPagamento();
            condicaoPagamento.Descricao = "30/60";
            condicaoPagamento.PrazoMedio = 1;
            condicaoPagamento.FormaCalculoVencimento = Enuns.Cadastro.Financeiro.FormaCalculoVencimento.Mensal;
            condicaoPagamento.VencimentoFeriado = Enuns.Cadastro.Financeiro.VencimentoFeriado.Manter;
            condicaoPagamento.MesmoDiaMes = false;

            #region Período de vencimento
            IPeriodo periodo = new OpenPOS.Data.Cadastro.Periodo.Periodo();
            periodo.Tipo = TipoVencimento.ManualMes;
            periodo.Descricao = "Período mensal";
            periodo.Save();
            #endregion

            IParcela parcelaUm = new Parcela();
            parcelaUm.APartirDataEmissao = 30;
            parcelaUm.APartirDataVencimentoAnterior = 30;
            parcelaUm.Percentual = 35;
            parcelaUm.PeriodoVencimento = periodo;
            parcelaUm.PeriodoVencimento = periodo;
            condicaoPagamento.Parcelas.Add(parcelaUm);

            IParcela parcelaDois = new Parcela();
            parcelaDois.APartirDataEmissao = 30;
            parcelaDois.APartirDataVencimentoAnterior = 60;
            parcelaDois.Percentual = 65;
            parcelaDois.PeriodoVencimento = periodo;
            parcelaDois.PeriodoVencimento = periodo;
            condicaoPagamento.Parcelas.Add(parcelaDois);
            condicaoPagamento.Save();

            pv.CondicaoPagamento = condicaoPagamento;

            #endregion

            GUID = pv.Save();
        }
示例#6
0
 public override void Popular()
 {
     DAV pv = new DAV(GUID);
     DumpElement(pv);
     DumpElement(pv.Itens);
     DumpElement(pv.Parcelas);
 }