public static void InsertReceivableStatus(int receivableID, decimal balance, DateTime today) { var receivable = Context.Receivables.FirstOrDefault(entity => entity.Id == receivableID); if (receivable.CurrentStatus.StatusTypeId == ReceivableStatusType.OpenType.Id && balance != 0) { receivable.CurrentStatus.IsActive = false; ReceivableStatu receivableStatus = new ReceivableStatu(); receivableStatus.Receivable = receivable; receivableStatus.ReceivableStatusType = ReceivableStatusType.PartiallyPaidType; receivableStatus.TransitionDateTime = today; receivableStatus.IsActive = true; Context.ReceivableStatus.AddObject(receivableStatus); } else if (receivable.CurrentStatus.StatusTypeId == ReceivableStatusType.OpenType.Id && balance == 0) { receivable.CurrentStatus.IsActive = false; ReceivableStatu receivableStatus = new ReceivableStatu(); receivableStatus.Receivable = receivable; receivableStatus.ReceivableStatusType = ReceivableStatusType.FullyPaidType; receivableStatus.TransitionDateTime = today; receivableStatus.IsActive = true; Context.ReceivableStatus.AddObject(receivableStatus); } else if (receivable.CurrentStatus.StatusTypeId == ReceivableStatusType.PartiallyPaidType.Id && balance != 0) { receivable.CurrentStatus.IsActive = false; ReceivableStatu receivableStatus = new ReceivableStatu(); receivableStatus.Receivable = receivable; receivableStatus.ReceivableStatusType = ReceivableStatusType.PartiallyPaidType; receivableStatus.TransitionDateTime = today; receivableStatus.IsActive = true; Context.ReceivableStatus.AddObject(receivableStatus); } else if (receivable.CurrentStatus.StatusTypeId == ReceivableStatusType.PartiallyPaidType.Id && balance == 0) { receivable.CurrentStatus.IsActive = false; ReceivableStatu receivableStatus = new ReceivableStatu(); receivableStatus.Receivable = receivable; receivableStatus.ReceivableStatusType = ReceivableStatusType.FullyPaidType; receivableStatus.TransitionDateTime = today; receivableStatus.IsActive = true; Context.ReceivableStatus.AddObject(receivableStatus); } // Context.SaveChanges(); }
public static Receivable CreateReceivableWithStatus(int financialAccountID,decimal amount, int disburseId, string type,DateTime actualDate,DateTime dueDate, DateTime entryDate) { if (amount > 0 && type != ManualBillingDisplay) { Receivable receivable = new Receivable(); receivable.ReceivableType = ReceivableType.InterestType; receivable.FinancialAccountId = financialAccountID; receivable.Date = entryDate; receivable.DueDate = dueDate; receivable.ValidityPeriod = actualDate; receivable.Amount = amount; receivable.Balance = amount; if (disburseId != -1) receivable.PaymentId = disburseId; ReceivableStatu receivableStatus = new ReceivableStatu(); receivableStatus.Receivable = receivable; receivableStatus.ReceivableStatusType = ReceivableStatusType.OpenType; receivableStatus.TransitionDateTime = dueDate; receivableStatus.IsActive = true; return receivable; } else return null; }
private void CancelReceivables(LoanAccount loanAccount, DateTime today) { var receivables = loanAccount.Receivables.ToList(); if (receivables.Count() != 0) { foreach (var res in receivables) { //if (res.ReceivableTypeId == ReceivableType.PrincipalType.Id) //{ if (res.CurrentStatus != null) res.CurrentStatus.IsActive = false; ReceivableStatu receivableStatus = new ReceivableStatu(); receivableStatus.Receivable = res; receivableStatus.ReceivableStatusType = ReceivableStatusType.CancelledType; receivableStatus.TransitionDateTime = today; receivableStatus.IsActive = true; //} } } }