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); }
/// <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()); } }
/// <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); }
/// <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; } }
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(); }
public override void Popular() { DAV pv = new DAV(GUID); DumpElement(pv); DumpElement(pv.Itens); DumpElement(pv.Parcelas); }