/// <summary> /// Salva os saldos do item /// </summary> /// <param name="periodoInicial">data do movimento inicial para recuperar o saldo</param> /// <param name="periodoFinal">Data do movimento final para recuperar o saldo</param> public static SaldoItem Create(DateTime periodoInicial, DateTime periodoFinal) { SaldoItem result = new SaldoItem(); #region Diario IList<ISaldoItemDiario> diarios = new SaldoItemDiario().Find<ISaldoItemDiario>( new Where { { "DataMovimentacao BETWEEN @p2 AND @p3", new [] { new Parameter{ ParameterName = "@p2", GenericDbType = GenericDbType.DateTime, Value = new DateTime(periodoInicial.Year,periodoInicial.Month,periodoInicial.Day), }, new Parameter{ ParameterName = "@p3", GenericDbType = GenericDbType.DateTime, Value = new DateTime(periodoFinal.Year,periodoFinal.Month,periodoFinal.Day,23,59,59), }, } } }); result.Diarios = (from x in diarios select new SaldoItemResult { Data = x.DataMovimentacao, Entrada = x.QuantidadeEntrada, Saida = x.QuantidadeSaida, Saldo = x.Saldo, Item = x.Item }).ToList(); #endregion #region Mensal IList<ISaldoItemMensal> mensais = new SaldoItemMensal().Find<ISaldoItemMensal>( new Where { { "MesMovimentacao BETWEEN @p2 AND @p3", new [] { new Parameter{ ParameterName = "@p2", Value = periodoInicial.Month }, new Parameter{ ParameterName = "@p3", Value = periodoFinal.Month } } } }); result.Mensais = (from x in mensais select new SaldoItemResult { Data = new DateTime(periodoInicial.Year, x.MesMovimentacao, 1), Entrada = x.QuantidadeEntrada, Saida = x.QuantidadeSaida, Saldo = x.Saldo, Item = x.Item }).ToList(); #endregion #region Anual IList<ISaldoItemAnual> anuais = new SaldoItemAnual().Find<ISaldoItemAnual>( new Where { { "AnoMovimentacao BETWEEN @p2 AND @p3", new [] { new Parameter{ ParameterName = "@p2", Value = periodoInicial.Year }, new Parameter{ ParameterName = "@p3", Value = periodoFinal.Year } } } }); result.Anuais = (from x in anuais select new SaldoItemResult { Data = new DateTime(x.AnoMovimentacao, periodoInicial.Month, periodoInicial.Day), Entrada = x.QuantidadeEntrada, Saida = x.QuantidadeSaida, Saldo = x.Saldo, Item = x.Item }).ToList(); #endregion return result; }
/// <summary> /// Salva os saldos do item /// </summary> /// <param name="item">Item que terá o saldo atualizado</param> /// <param name="dataMovimento">data do movimento para atualização do saldo</param> public static SaldoItem Create(IItem item, DateTime dataMovimento) { SaldoItem result = new SaldoItem(); #region Diario IList<ISaldoItemDiario> diarios = new SaldoItemDiario().Find<ISaldoItemDiario>( new Where { { "GUIDItem = @p1 AND DataMovimentacao BETWEEN @p2 AND @p3", new [] { new Parameter{ ParameterName = "@p1", Value= item.GUID }, new Parameter{ ParameterName = "@p2", GenericDbType = GenericDbType.DateTime, Value = new DateTime(dataMovimento.Year,dataMovimento.Month,dataMovimento.Day), }, new Parameter{ ParameterName = "@p3", GenericDbType = GenericDbType.DateTime, Value = new DateTime(dataMovimento.Year,dataMovimento.Month,dataMovimento.Day,23,59,59), }, } } }); result.Diarios = (from x in diarios select new SaldoItemResult { Data = x.DataMovimentacao, Entrada = x.QuantidadeEntrada, Saida = x.QuantidadeSaida, Saldo = x.Saldo, Item = x.Item }).ToList(); #endregion #region Mensal IList<ISaldoItemMensal> mensais = new SaldoItemMensal().Find<ISaldoItemMensal>( new Where { { "GUIDItem = @p1 AND MesMovimentacao = @p2", new [] { new Parameter{ ParameterName = "@p1", Value= item.GUID }, new Parameter{ ParameterName = "@p2", Value = dataMovimento.Month }, } } }); result.Mensais = (from x in mensais select new SaldoItemResult { Data = new DateTime(dataMovimento.Year, x.MesMovimentacao, 1), Entrada = x.QuantidadeEntrada, Saida = x.QuantidadeSaida, Saldo = x.Saldo, Item = x.Item }).ToList(); #endregion #region Anual IList<ISaldoItemAnual> anuais = new SaldoItemAnual().Find<ISaldoItemAnual>( new Where { { "GUIDItem = @p1 AND AnoMovimentacao = @p2", new [] { new Parameter{ ParameterName = "@p1", Value= item.GUID }, new Parameter{ ParameterName = "@p2", Value = dataMovimento.Year }, } } }); result.Anuais = (from x in anuais select new SaldoItemResult { Data = new DateTime(x.AnoMovimentacao, dataMovimento.Month, dataMovimento.Day), Entrada = x.QuantidadeEntrada, Saida = x.QuantidadeSaida, Saldo = x.Saldo, Item = x.Item }).ToList(); #endregion return result; }