/// <summary> /// Получение показаний приборов учета лицевого счета /// </summary> /// <param name="personalAccountId"></param> /// <param name="periodBegin"></param> /// <param name="periodEnd"></param> public override async Task <IEnumerable <PersonalAccountMeterReading> > GetPersonalAccountMeterReadings( long personalAccountId, DateTime?periodBegin = null, DateTime?periodEnd = null) { using (var sqlExecutor = new SqlQueryPerformer()) { var sqlQuery = $@"SELECT * FROM { Extensions.Extensions.GetTableName<PersonalAccountMeterReading>() } WHERE ""PersonalAccountId"" = {personalAccountId} { //маленькая магия: если дата начала и дата окончания равны, //то берем конкретный месяц, иначе - берем период (periodBegin.HasValue && periodEnd.HasValue && periodBegin == periodEnd ? $@" AND ""CalculationDate"" = '{periodBegin.Value.ToShortDateString()}'" : "") } { (periodBegin.HasValue && periodBegin != periodEnd ? $@" AND ""CalculationDate"" >= '{periodBegin.Value.ToShortDateString()}'" : "") } { (periodEnd.HasValue && periodBegin != periodEnd ? $@" AND ""CalculationDate"" <= '{periodEnd.Value.ToShortDateString()}'" : "") } "; return(await sqlExecutor.ExecuteSqlToEnumerableAsync <PersonalAccountMeterReading>(sqlQuery)); } }
/// <summary> /// Получение начислений лицевого счета /// </summary> /// <param name="personalAccountId"></param> /// <param name="calculationDate"></param> public async override Task <IEnumerable <PersonalAccountAccrual> > GetPersonalAccountAccruals(long personalAccountId, DateTime calculationDate) { using (var sqlExecutor = new SqlQueryPerformer()) { var sqlQuery = $@"SELECT * FROM {Extensions.Extensions.GetTableName<PersonalAccountAccrual>()} WHERE ""PersonalAccountId"" = {personalAccountId} AND ""CalculationDate"" = '{calculationDate.ToShortDateString()}'"; return(await sqlExecutor.ExecuteSqlToEnumerableAsync <PersonalAccountAccrual>(sqlQuery)); } }
/// <summary> /// Получение социальных платежей лицевого счета /// </summary> /// <param name="personalAccountId"></param> /// <param name="periodBegin"></param> /// <param name="periodEnd"></param> public async override Task <IEnumerable <PersonalAccountSocialPayment> > GetPersonalAccountSocialPayments(long personalAccountId, DateTime?periodBegin = null, DateTime?periodEnd = null) { using (var sqlExecutor = new SqlQueryPerformer()) { var sqlQuery = $@"SELECT * FROM {Extensions.Extensions.GetTableName<PersonalAccountSocialPayment>()} WHERE ""PersonalAccountId"" = {personalAccountId} { (periodBegin.HasValue ? $@" AND ""CalculationDate"" >= '{periodBegin.Value.ToShortDateString()}'" : "") } { (periodEnd.HasValue ? $@" AND ""CalculationDate"" <= '{periodEnd.Value.ToShortDateString()}'" : "") } "; return(await sqlExecutor.ExecuteSqlToEnumerableAsync <PersonalAccountSocialPayment>(sqlQuery)); } }