///<summary>Creates a new discount adjustment for the given procedure.</summary> public static void CreateAdjustmentForDiscount(Procedure procedure) { //No need to check RemotingRole; no call to db. Adjustment AdjustmentCur = new Adjustment(); AdjustmentCur.DateEntry = DateTime.Today; AdjustmentCur.AdjDate = DateTime.Today; AdjustmentCur.ProcDate = procedure.ProcDate; AdjustmentCur.ProvNum = procedure.ProvNum; AdjustmentCur.PatNum = procedure.PatNum; AdjustmentCur.AdjType = PrefC.GetLong(PrefName.TreatPlanDiscountAdjustmentType); AdjustmentCur.ClinicNum = procedure.ClinicNum; AdjustmentCur.AdjAmt = -procedure.Discount; //Discount must be negative here. AdjustmentCur.ProcNum = procedure.ProcNum; Adjustments.Insert(AdjustmentCur); }
///<summary>Creates and inserts a discount adjustment for the passed in procedure. Used by prepayment tool.</summary> public static void CreateDiscountAdjustment(Procedure proc, double discountPercentage, long adjType) { Adjustment adj = new Adjustment { DateEntry = DateTime.Today, AdjDate = DateTime.Today, ProcDate = proc.ProcDate, ProvNum = proc.ProvNum, ProcNum = proc.ProcNum, ClinicNum = proc.ClinicNum, PatNum = proc.PatNum, AdjType = adjType, AdjAmt = -(proc.ProcFee * discountPercentage) //Flip the sign to make it a negative adjustment. }; Adjustments.Insert(adj); TsiTransLogs.CheckAndInsertLogsIfAdjTypeExcluded(adj); }
///<summary>Creates a new discount adjustment for the given procedure using the discount plan fee.</summary> public static void CreateAdjustmentForDiscountPlan(Procedure procedure) { //No need to check RemotingRole; no call to db. DiscountPlan discountPlan = DiscountPlans.GetPlan(Patients.GetPat(procedure.PatNum).DiscountPlanNum); if (discountPlan == null) { return; //No discount plan. } //Figure out how much the patient saved and make an adjustment for the difference so that the office find how much money they wrote off. double discountAmt = Fees.GetAmount(procedure.CodeNum, discountPlan.FeeSchedNum, procedure.ClinicNum, procedure.ProvNum); if (discountAmt == -1) { return; //No fee entered, don't make adjustment. } double adjAmt = procedure.ProcFee - discountAmt; if (adjAmt <= 0) { return; //We do not need to create adjustments for 0 dollars. } Adjustment adjustmentCur = new Adjustment(); adjustmentCur.DateEntry = DateTime.Today; adjustmentCur.AdjDate = DateTime.Today; adjustmentCur.ProcDate = procedure.ProcDate; adjustmentCur.ProvNum = procedure.ProvNum; adjustmentCur.PatNum = procedure.PatNum; adjustmentCur.AdjType = discountPlan.DefNum; adjustmentCur.ClinicNum = procedure.ClinicNum; adjustmentCur.AdjAmt = (-adjAmt); adjustmentCur.ProcNum = procedure.ProcNum; Adjustments.Insert(adjustmentCur); SecurityLogs.MakeLogEntry(Permissions.AdjustmentCreate, procedure.PatNum, "Adjustment made for discount plan: " + adjustmentCur.AdjAmt.ToString("f")); }