private void setWeekStart() { var usr = LoginHelper.GetLoggedInUser().User; while (ScheduleDate.DayOfWeek != (DayOfWeek)usr.Company.WeekStart.GetValueOrDefault()) { ScheduleDate = ScheduleDate.AddDays(-1); } }
//called by the system once a minute when a payment should be attempted public BillPayResultBag doScheduledPayment() { if (Blocked) { return(new BillPayResultBag(ScheduledBillPayResult.BLOCKED)); } ModifyDate = roundDown(ModifyDate); ScheduleDate = roundDown(ScheduleDate); var now = roundDown(DateTime.Now); if (ScheduleDate > now) { return(new BillPayResultBag(ScheduledBillPayResult.OK_NOT_PAID)); } DateTime nextDue = ScheduleDate.AddDays(0); switch (Period) { case BillingPeriod.Minutes: nextDue = now; break; case BillingPeriod.Annually: while (nextDue < now) { nextDue = nextDue.AddYears(1); } break; case BillingPeriod.Quarterly: while (nextDue < now) { nextDue = nextDue.AddMonths(3); } break; case BillingPeriod.Once_Off: break; } if (nextDue != now) { return(new BillPayResultBag(ScheduledBillPayResult.OK_NOT_PAID)); } Transaction transaction; //attempt payment if (Account.Balance - Amount < Account.minimumBalance()) { transaction = new Transaction { TransactionType = TransactionType.BillPay, AccountId = AccountId, Amount = 0, TransactionTime = DateTime.Now, //hijack unused comment field to store amount to display in the error message Comment = Amount.ToString() }; return(new BillPayResultBag( ScheduledBillPayResult.FAIL_NOT_ENOUGH, transaction )); } //commit payment transaction = new Transaction { TransactionType = TransactionType.BillPay, AccountId = AccountId, Amount = Amount, TransactionTime = DateTime.Now }; ModifyDate = DateTime.Now; Account.Balance -= Amount; return(new BillPayResultBag( ScheduledBillPayResult.OK_PAID, transaction )); }
public override async System.Threading.Tasks.Task ExecuteLoadSchedulesCommand() { await runTask(async() => { if (!Users.Any()) { Users.Add(new User() { FirstName = "(All)", UserId = _allGuid }); Users.Add(new User() { FirstName = "(Unassigned)", UserId = _unassignedGuid }); Users.Add(new User() { FirstName = "(Assigned)", UserId = _assignedGuid }); var lookups = await DataService.GetLookups(4); lookups.Users.ForEach(u => Users.Add(u)); Shifts.Add(new Shift() { ShiftName = "(All)", ShiftId = _allGuid }); lookups.Shifts.ForEach(s => Shifts.Add(s)); Tasks.Add(new Task() { TaskName = "(All)", TaskId = _allGuid }); lookups.Tasks.ForEach(t => Tasks.Add(t)); } Schedules.Clear(); var items = await DataService.GetItemsAsync <Schedule>($"schedules?start={ScheduleDate.ToString("MM-dd-yyyy")}&end={ScheduleDate.AddDays(6).ToString("MM-dd-yyyy")}"); NoSchedules = !items.Data.Any(); this.WeekUnpublished = false; foreach (var item in items.Data.OrderBy(d => d.ScheduleDateValue).ThenBy(d => d.StartTimeValue).ThenBy(d => d.User == null ? "aaaaaaa" : d.User.FirstName)) { if (item.UserId != null && !item.PublishedValue) { this.WeekUnpublished = true; } _weekSchedules = items.Data; if (SelectedUser != null && SelectedUser.UserIdValue != _allGuid) { if (SelectedUser.UserIdValue == _unassignedGuid && item.User != null) { continue; } if (SelectedUser.UserIdValue == _assignedGuid && item.User == null) { continue; } if (SelectedUser.UserIdValue != _assignedGuid && SelectedUser.UserIdValue != _unassignedGuid && SelectedUser.UserIdValue != item.UserIdValue) { continue; } } if (SelectedShift != null && SelectedShift.ShiftIdValue != _allGuid && SelectedShift.ShiftIdValue != item.ShiftIdValue) { continue; } if (SelectedTask != null && SelectedTask.TaskIdValue != _allGuid && SelectedTask.TaskIdValue != item.TaskIdValue) { continue; } var displayItem = new DisplayItem(); scheduleToDisplayItem(displayItem, item); Schedules.Add(displayItem); } OnPropertyChanged("WeekUnpublished"); return(items); }); OnPropertyChanged("NoSchedules"); }