/// <summary> /// Método utilizado para preencher esta instância com os dados do dataReader /// </summary> /// <param name="dataReader">DataReader com os dados que deverão ser passados para esta instância</param> public override void Populate(DataReader dataReader) { #region base base.Populate(dataReader); #endregion #region desta classe DataEmissao = dataReader.GetValue<DateTime>("p_DataEmissao"); DataHoraMovimento = dataReader.GetValue<DateTime>("p_DataHoraMovimento"); BaseCalculoICMS = dataReader.GetDouble("p_BaseCalculoICMS"); ValorICMS = dataReader.GetDouble("p_ValorICMS"); ValorIsentaNaoTributado = dataReader.GetDouble("p_VlrIsentaNaoTrib"); ValorOutra = dataReader.GetDouble("p_VlrOutra"); AliquotaICMS = dataReader.GetDouble("p_AliquotaICMS"); Modelo = dataReader.GetString("p_Modelo"); Serie = new Data.Faturamento.Cadastro.Serie(dataReader.GetString("p_GUIDSerie")); CFOP = new CFOP("p_GUIDCFOP"); Emitente = dataReader.GetString("p_Emitente"); ValorBaseCalculo = dataReader.GetDouble("p_VlrBaseCalc"); Situacao = dataReader.GetString("p_Situacao"); ValorICMSRetido = dataReader.GetDouble("p_ValorICMSRetido"); ValorDespesasAcessorias = dataReader.GetDouble("p_VlrDespAcess"); CodigoAntecipacao = dataReader.GetEnum<CodigoAntecipacao>("p_CodigoAntecipacao"); BaseCalculoICMSST = dataReader.GetDouble("p_BaseCalculoICMSST"); DadoPessoa = new Data.Faturamento.Lancamento.Movimento.DadoPessoa.DadoPessoa(dataReader.GetValue<string>("p_GUIDLan")); Subserie = dataReader.GetString("p_Subserie"); Temp = dataReader.GetBoolean("p_Temp"); Impressora = new Impressora(dataReader.GetString("p_Impressora")); TabelaPreco = Abstract.Cadastro.TabelaPreco.TabelaPrecoBase.Create(dataReader.GetString("p_GUIDTabelaPreco")); COO = dataReader.GetInt("p_COO"); CondicaoPagamento = new Data.Cadastro.Financeiro.CondicaoPagamento.CondicaoPagamento(dataReader.GetString("p_GUIDCondicaoPagamento")); Replicado = dataReader.GetBoolean("p_Replicado"); Transportador = new Transportador((GUID)dataReader.GetValue<string>("p_GUIDTransportador")); QuantidadeVolume = dataReader.GetDouble("p_QuantidadeVolume"); #endregion #region Registro04 // Registro04 = new Registro04(this); #endregion #region read only //ValorTotalBruto = dataReader.GetValue<double>("p_VlrTotalBruto"); //ValorTotalLiquido = dataReader.GetValue<double>("p_VlrTotalLiquido"); #endregion #region Itens Especiais IList<IRateio> rateios = new Rateio().Find<IRateio, IMovimento>("fat_LanMovItem.GUIDLanMov", GUID, this); ItensEspeciais = (from r in rateios group r by r.Ordem into g let rateio = g.FirstOrDefault() select new Especial { ItemEspecial = rateio.ItemEspecial.ItemEspecial, Valor = g.Sum(s => s.Valor), Percentual = rateio.ItemEspecial.Percentual > 0 ? rateio.ItemEspecial.Percentual : 0, Ordem = rateio.Ordem }).ToList<IEspecial>(); #endregion #region Analise de crédito AnaliseCredito = new AnaliseCredito(this); #endregion #region Parcelas DataReader dr = Connection.ExecuteReader(@" SELECT GUID FROM fat_Lan WHERE GUID IN ( SELECT GUIDLanFilho FROM fat_LanSK WHERE GUIDLanPai = @pai AND TableHash = @th );", new[] { new Parameter { ParameterName = "@pai", Value = GUID }, new Parameter{ ParameterName = "@th", Value = Unimake.Utilities.GetTableHash(typeof(IPagarReceber)) } }); Parcelas = new List<IParcela>(); while(dr.Read()) { Parcelas.Add(Data.Abstract.Financeiro.Lancamento.PagarReceberBase.Create(dr.GetString(0)) as IParcela); } #endregion #region Itens Itens = ItemBase.Create(this).Find<IItem, IMovimento>(new Where() { {"fat_LanMovItem.GUIDLanMov", GUID.ToString() } }, this); #endregion #region Ocorrências Ocorrencias = new Data.Faturamento.Lancamento.Movimento.Ocorrencia.Ocorrencia().Find<Model.Faturamento.Lancamento.Movimento.Ocorrencia.IOcorrencia, IMovimento>(new Where { { "fat_LanMovOcorrencia.GUIDLanMov", GUID.ToString() } }, this); #endregion #region Baixas //Todo Luciano: Para implementar múltiplas baixas basta tratar as baixas como uma coleção IList<IBaixa> baixas = new Data.Faturamento.Lancamento.Movimento.Baixa.Baixa().Find<IBaixa>(new Where() { { "fat_LanMovBx.GUIDLan", GUID.ToString() } }); if(baixas.Count > 0) Baixa = baixas.FirstOrDefault(); #endregion }
/// <summary> /// Instancia este objeto e apenas inicia as variáveis, não carrega nenhum dado da base de dados /// </summary> public MovimentoBase() : base() { DataEmissao = DateTime.Now; DataHoraCadastro = DateTime.Now; DataHoraMovimento = DateTime.Now; Itens = new List<IItem>(); Emitente = IndicadorProducao.Proprio; Situacao = SituacaoNotaFiscal.Normal; DadoPessoa = new DadoPessoa(); Impressora = new Impressora(); Registro04 = new Registro04(); AnaliseCredito = new AnaliseCredito(); Parcelas = new List<IParcela>(); ItensEspeciais = new List<IEspecial>(); CondicaoPagamento = new CondicaoPagamento(); MovimentosVinculados = new List<IMovimento>(); MovimentosMesclados = new List<IMovimento>(); Ocorrencias = new List<Model.Faturamento.Lancamento.Movimento.Ocorrencia.IOcorrencia>(); Baixa = new Data.Faturamento.Lancamento.Movimento.Baixa.Baixa(); Serie = new Data.Faturamento.Cadastro.Serie(); }