public static PayPlan CreatePayPlanNoCharges(long patNum, double totalAmt, DateTime payPlanDate, long guarantorNum) { PayPlan payPlan = new PayPlan(); payPlan.Guarantor = patNum; payPlan.PatNum = patNum; payPlan.PayAmt = totalAmt; payPlan.PayPlanDate = payPlanDate; payPlan.PayAmt = totalAmt; payPlan.Guarantor = guarantorNum; PayPlans.Insert(payPlan); return(payPlan); }
public static PayPlan CreateDynamicPaymentPlan(long patNum, long guarantorNum, DateTime date, double downPaymentAmt, int APR, double payAmt, List <Procedure> listProcs, List <Adjustment> listAdjustments) { PayPlan payPlan = CreatePayPlanNoCharges(patNum, 0, date, guarantorNum); //create the production links for the payment plan. foreach (Procedure proc in listProcs) { CreatePaymentPlanLink(payPlan, proc.ProcNum, PayPlanLinkType.Procedure); } foreach (Adjustment adj in listAdjustments) { CreatePaymentPlanLink(payPlan, adj.AdjNum, PayPlanLinkType.Adjustment); } payPlan.IsDynamic = true; payPlan.DatePayPlanStart = date; payPlan.DownPayment = downPaymentAmt; payPlan.APR = APR; payPlan.IsLocked = APR == 0?false:true; payPlan.Guarantor = guarantorNum; payPlan.PayAmt = payAmt; PayPlans.Update(payPlan); return(payPlan); }
public static PayPlan CreatePayPlan(long patNum, double totalAmt, double payAmt, DateTime datePayStart, long provNum) { PayPlan payPlan = new PayPlan(); payPlan.Guarantor = patNum; payPlan.PatNum = patNum; payPlan.PayAmt = totalAmt; payPlan.PayPlanDate = datePayStart; payPlan.PayAmt = totalAmt; PayPlans.Insert(payPlan); PayPlanCharge charge = new PayPlanCharge(); charge.PayPlanNum = payPlan.PayPlanNum; charge.PatNum = patNum; charge.ChargeDate = datePayStart; charge.Principal = totalAmt; charge.ChargeType = PayPlanChargeType.Credit; double sumCharges = 0; int countPayments = 0; while (sumCharges < totalAmt) { charge = new PayPlanCharge(); charge.ChargeDate = datePayStart.AddMonths(countPayments); charge.PatNum = patNum; charge.Guarantor = patNum; charge.PayPlanNum = payPlan.PayPlanNum; charge.Principal = Math.Min(payAmt, totalAmt - sumCharges); charge.ProvNum = provNum; sumCharges += charge.Principal; charge.ChargeType = PayPlanChargeType.Debit; PayPlanCharges.Insert(charge); countPayments++; } return(payPlan); }