Ejemplo n.º 1
0
        ///<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);
        }
Ejemplo n.º 2
0
        ///<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);
        }
Ejemplo n.º 3
0
        ///<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"));
        }