Example #1
0
        public void PaymentEdit_Init_ChargesWithUnattachedPayPlanCreditsWithPreviousPayments()
        {
            //new payplan
            Patient   pat     = PatientT.CreatePatient(MethodBase.GetCurrentMethod().Name);
            long      prov    = ProviderT.CreateProvider("ProvA");
            Procedure proc1   = ProcedureT.CreateProcedure(pat, "D1120", ProcStat.C, "", 135, DateTime.Today.AddMonths(-4), provNum: prov);
            Procedure proc2   = ProcedureT.CreateProcedure(pat, "D0220", ProcStat.C, "", 60, DateTime.Today.AddMonths(-4).AddDays(1), provNum: prov);
            PayPlan   payplan = PayPlanT.CreatePayPlanWithCredits(pat.PatNum, 30, DateTime.Today.AddMonths(-3), prov, totalAmt: 195);   //totalAmt since unattached credits

            //Make initial payments.
            PaymentT.MakePayment(pat.PatNum, 30, DateTime.Today.AddMonths(-2), payplan.PayPlanNum, prov, 0, 1);
            PaymentT.MakePayment(pat.PatNum, 30, DateTime.Today.AddMonths(-1), payplan.PayPlanNum, prov, 0, 1);
            //Go to make another payment. 2 pay plan charges should have been "removed" (amtStart to 0) from being paid.
            Payment pay = PaymentT.MakePaymentNoSplits(pat.PatNum, 30, DateTime.Today);

            PaymentEdit.LoadData loadData = PaymentEdit.GetLoadData(pat, pay, new List <long> {
                pat.PatNum
            }, true, false);
            PaymentEdit.InitData initData = PaymentEdit.Init(loadData.ListAssociatedPatients, Patients.GetFamily(pat.PatNum), new Family {
            }, pay
                                                             , loadData.ListSplits, new List <Procedure>(), pat.PatNum, loadData: loadData);
            //2 procs and 2 pp charges
            Assert.AreEqual(4, initData.AutoSplitData.ListAccountCharges.FindAll(x => x.AmountStart > 0).Count);
            Assert.AreEqual(2, initData.AutoSplitData.ListAccountCharges.Count(x => x.Tag.GetType() == typeof(Procedure)));
            Assert.AreEqual(4, initData.AutoSplitData.ListAccountCharges.Count(x => x.Tag.GetType() == typeof(PayPlanCharge)));
        }
Example #2
0
 public PayPlanExtended(PayPlan payPlan, Patient patCur, List <PayPlanCharge> listPayPlanCharges, List <ClaimProc> listClaimProcs, InsPlan insPlan)
 {
     //assign passed-in values
     PayPlan = payPlan;
     if (patCur == null)
     {
         PatientCur = new Patient();
     }
     else
     {
         PatientCur = patCur;
     }
     ListPayPlanCharges = listPayPlanCharges;
     ListClaimProcs     = listClaimProcs;
     if (insPlan == null)
     {
         InsPlanCur = new InsPlan();
     }
     else
     {
         InsPlanCur = insPlan;
     }
     //find carrierCur. GetCarrier uses the H List if possible.
     CarrierCur = Carriers.GetCarrier(InsPlanCur.CarrierNum);
     CalculateOverdues();
 }
Example #3
0
        ///<summary></summary>
        private static void Insert(PayPlan plan)
        {
            if (PrefB.RandomKeys)
            {
                plan.PayPlanNum = MiscData.GetKey("payplan", "PayPlanNum");
            }
            string command = "INSERT INTO payplan (";

            if (PrefB.RandomKeys)
            {
                command += "PayPlanNum,";
            }
            command += "PatNum,Guarantor,PayPlanDate,APR,Note,PlanNum) VALUES(";
            if (PrefB.RandomKeys)
            {
                command += "'" + POut.PInt(plan.PayPlanNum) + "', ";
            }
            command +=
                "'" + POut.PInt(plan.PatNum) + "', "
                + "'" + POut.PInt(plan.Guarantor) + "', "
                + POut.PDate(plan.PayPlanDate) + ", "
                + "'" + POut.PDouble(plan.APR) + "', "
                + "'" + POut.PString(plan.Note) + "', "
                + "'" + POut.PInt(plan.PlanNum) + "')";
            if (PrefB.RandomKeys)
            {
                General.NonQ(command);
            }
            else
            {
                plan.PayPlanNum = General.NonQ(command, true);
            }
        }
Example #4
0
        ///<summary>Inserts one PayPlan into the database.  Provides option to use the existing priKey.</summary>
        public static long Insert(PayPlan payPlan, bool useExistingPK)
        {
            if (!useExistingPK && PrefC.RandomKeys)
            {
                payPlan.PayPlanNum = ReplicationServers.GetKey("payplan", "PayPlanNum");
            }
            string command = "INSERT INTO payplan (";

            if (useExistingPK || PrefC.RandomKeys)
            {
                command += "PayPlanNum,";
            }
            command += "PatNum,Guarantor,PayPlanDate,APR,Note,PlanNum,CompletedAmt,InsSubNum,PaySchedule,NumberOfPayments,PayAmt,DownPayment,IsClosed,Signature,SigIsTopaz,PlanCategory,IsDynamic,ChargeFrequency,DatePayPlanStart,IsLocked) VALUES(";
            if (useExistingPK || PrefC.RandomKeys)
            {
                command += POut.Long(payPlan.PayPlanNum) + ",";
            }
            command +=
                POut.Long(payPlan.PatNum) + ","
                + POut.Long(payPlan.Guarantor) + ","
                + POut.Date(payPlan.PayPlanDate) + ","
                + "'" + POut.Double(payPlan.APR) + "',"
                + DbHelper.ParamChar + "paramNote,"
                + POut.Long(payPlan.PlanNum) + ","
                + "'" + POut.Double(payPlan.CompletedAmt) + "',"
                + POut.Long(payPlan.InsSubNum) + ","
                + POut.Int((int)payPlan.PaySchedule) + ","
                + POut.Int(payPlan.NumberOfPayments) + ","
                + "'" + POut.Double(payPlan.PayAmt) + "',"
                + "'" + POut.Double(payPlan.DownPayment) + "',"
                + POut.Bool(payPlan.IsClosed) + ","
                + DbHelper.ParamChar + "paramSignature,"
                + POut.Bool(payPlan.SigIsTopaz) + ","
                + POut.Long(payPlan.PlanCategory) + ","
                + POut.Bool(payPlan.IsDynamic) + ","
                + POut.Int((int)payPlan.ChargeFrequency) + ","
                + POut.Date(payPlan.DatePayPlanStart) + ","
                + POut.Bool(payPlan.IsLocked) + ")";
            if (payPlan.Note == null)
            {
                payPlan.Note = "";
            }
            OdSqlParameter paramNote = new OdSqlParameter("paramNote", OdDbType.Text, POut.StringParam(payPlan.Note));

            if (payPlan.Signature == null)
            {
                payPlan.Signature = "";
            }
            OdSqlParameter paramSignature = new OdSqlParameter("paramSignature", OdDbType.Text, POut.StringParam(payPlan.Signature));

            if (useExistingPK || PrefC.RandomKeys)
            {
                Db.NonQ(command, paramNote, paramSignature);
            }
            else
            {
                payPlan.PayPlanNum = Db.NonQ(command, true, "PayPlanNum", "payPlan", paramNote, paramSignature);
            }
            return(payPlan.PayPlanNum);
        }
Example #5
0
 ///<summary>Inserts one PayPlan into the database.  Returns the new priKey.</summary>
 public static long Insert(PayPlan payPlan)
 {
     if (DataConnection.DBtype == DatabaseType.Oracle)
     {
         payPlan.PayPlanNum = DbHelper.GetNextOracleKey("payplan", "PayPlanNum");
         int loopcount = 0;
         while (loopcount < 100)
         {
             try {
                 return(Insert(payPlan, true));
             }
             catch (Oracle.DataAccess.Client.OracleException ex) {
                 if (ex.Number == 1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated"))
                 {
                     payPlan.PayPlanNum++;
                     loopcount++;
                 }
                 else
                 {
                     throw ex;
                 }
             }
         }
         throw new ApplicationException("Insert failed.  Could not generate primary key.");
     }
     else
     {
         return(Insert(payPlan, false));
     }
 }
Example #6
0
        ///<summary>Updates one PayPlan in the database.</summary>
        public static void Update(PayPlan payPlan)
        {
            string command = "UPDATE payplan SET "
                             + "PatNum          =  " + POut.Long(payPlan.PatNum) + ", "
                             + "Guarantor       =  " + POut.Long(payPlan.Guarantor) + ", "
                             + "PayPlanDate     =  " + POut.Date(payPlan.PayPlanDate) + ", "
                             + "APR             = '" + POut.Double(payPlan.APR) + "', "
                             + "Note            =  " + DbHelper.ParamChar + "paramNote, "
                             + "PlanNum         =  " + POut.Long(payPlan.PlanNum) + ", "
                             + "CompletedAmt    = '" + POut.Double(payPlan.CompletedAmt) + "', "
                             + "InsSubNum       =  " + POut.Long(payPlan.InsSubNum) + ", "
                             + "PaySchedule     =  " + POut.Int((int)payPlan.PaySchedule) + ", "
                             + "NumberOfPayments=  " + POut.Int(payPlan.NumberOfPayments) + ", "
                             + "PayAmt          = '" + POut.Double(payPlan.PayAmt) + "', "
                             + "DownPayment     = '" + POut.Double(payPlan.DownPayment) + "', "
                             + "IsClosed        =  " + POut.Bool(payPlan.IsClosed) + ", "
                             + "Signature       =  " + DbHelper.ParamChar + "paramSignature, "
                             + "SigIsTopaz      =  " + POut.Bool(payPlan.SigIsTopaz) + ", "
                             + "PlanCategory    =  " + POut.Long(payPlan.PlanCategory) + " "
                             + "WHERE PayPlanNum = " + POut.Long(payPlan.PayPlanNum);

            if (payPlan.Note == null)
            {
                payPlan.Note = "";
            }
            OdSqlParameter paramNote = new OdSqlParameter("paramNote", OdDbType.Text, POut.StringParam(payPlan.Note));

            if (payPlan.Signature == null)
            {
                payPlan.Signature = "";
            }
            OdSqlParameter paramSignature = new OdSqlParameter("paramSignature", OdDbType.Text, POut.StringParam(payPlan.Signature));

            Db.NonQ(command, paramNote, paramSignature);
        }
Example #7
0
 ///<summary>Inserts one PayPlan into the database.  Returns the new priKey.</summary>
 internal static long Insert(PayPlan payPlan)
 {
     if(DataConnection.DBtype==DatabaseType.Oracle) {
         payPlan.PayPlanNum=DbHelper.GetNextOracleKey("payplan","PayPlanNum");
         int loopcount=0;
         while(loopcount<100){
             try {
                 return Insert(payPlan,true);
             }
             catch(Oracle.DataAccess.Client.OracleException ex){
                 if(ex.Number==1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated")){
                     payPlan.PayPlanNum++;
                     loopcount++;
                 }
                 else{
                     throw ex;
                 }
             }
         }
         throw new ApplicationException("Insert failed.  Could not generate primary key.");
     }
     else {
         return Insert(payPlan,false);
     }
 }
Example #8
0
 public FormPayPlanCredits(PayPlan payPlanCur)
 {
     _payPlanCur = payPlanCur;
     _patCur     = Patients.GetPat(payPlanCur.PatNum);
     InitializeComponent();
     Lan.F(this);
 }
Example #9
0
 ///<summary>Inserts one PayPlan into the database.  Provides option to use the existing priKey.</summary>
 internal static long Insert(PayPlan payPlan,bool useExistingPK)
 {
     if(!useExistingPK && PrefC.RandomKeys) {
         payPlan.PayPlanNum=ReplicationServers.GetKey("payplan","PayPlanNum");
     }
     string command="INSERT INTO payplan (";
     if(useExistingPK || PrefC.RandomKeys) {
         command+="PayPlanNum,";
     }
     command+="PatNum,Guarantor,PayPlanDate,APR,Note,PlanNum,CompletedAmt,InsSubNum) VALUES(";
     if(useExistingPK || PrefC.RandomKeys) {
         command+=POut.Long(payPlan.PayPlanNum)+",";
     }
     command+=
              POut.Long  (payPlan.PatNum)+","
         +    POut.Long  (payPlan.Guarantor)+","
         +    POut.Date  (payPlan.PayPlanDate)+","
         +"'"+POut.Double(payPlan.APR)+"',"
         +"'"+POut.String(payPlan.Note)+"',"
         +    POut.Long  (payPlan.PlanNum)+","
         +"'"+POut.Double(payPlan.CompletedAmt)+"',"
         +    POut.Long  (payPlan.InsSubNum)+")";
     if(useExistingPK || PrefC.RandomKeys) {
         Db.NonQ(command);
     }
     else {
         payPlan.PayPlanNum=Db.NonQ(command,true);
     }
     return payPlan.PayPlanNum;
 }
Example #10
0
        public void LedgersTests_ComputeAgingProcLifo_PayPlan2()
        {
            Patient       pat                 = PatientT.CreatePatient(fName: "Visit Based", lName: "UDP Ortho");
            Def           defPay              = DefT.CreateDefinition(DefCat.PaymentTypes, "Check");
            Procedure     proc6               = ProcedureT.CreateProcedure(pat, "D8090", ProcStat.C, "", 1200, DateTime.Today.AddMonths(-6).AddDays(-1));
            PayPlan       payPlan             = PayPlanT.CreatePayPlan(pat.PatNum, 4000, 166.67, DateTime.Today.AddMonths(-6).AddDays(-1), proc6.ProvNum);
            Payment       pay6                = PaymentT.MakePayment(pat.PatNum, 166.67, DateTime.Today.AddMonths(-6).AddDays(-1), payPlanNum: payPlan.PayPlanNum, provNum: proc6.ProvNum, procNum: proc6.ProcNum, payType: defPay.DefNum);
            PayPlanCharge ppc6                = PayPlanChargeT.CreateOne(payPlan.PayPlanNum, pat.Guarantor, pat.PatNum, DateTime.Today.AddMonths(-6).AddDays(-1), 1200, 0, "D8090:  CompOrthoAdlt", proc6.ProvNum, 0, PayPlanChargeType.Credit, proc6.ProcNum);
            Procedure     proc5               = ProcedureT.CreateProcedure(pat, "D8670", ProcStat.C, "", 121.74, DateTime.Today.AddMonths(-5).AddDays(-1));
            Payment       pay5                = PaymentT.MakePayment(pat.PatNum, 166.67, DateTime.Today.AddMonths(-5).AddDays(-1), payPlanNum: payPlan.PayPlanNum, provNum: proc5.ProvNum, procNum: proc5.ProcNum, payType: defPay.DefNum);
            PayPlanCharge ppc5                = PayPlanChargeT.CreateOne(payPlan.PayPlanNum, pat.Guarantor, pat.PatNum, DateTime.Today.AddMonths(-5).AddDays(-1), 121.74, 0, "D8670:  OrthoAdj", proc5.ProvNum, 0, PayPlanChargeType.Credit, proc5.ProcNum);
            Procedure     proc4               = ProcedureT.CreateProcedure(pat, "D8670", ProcStat.C, "", 121.74, DateTime.Today.AddMonths(-4).AddDays(-1));
            PayPlanCharge ppc4                = PayPlanChargeT.CreateOne(payPlan.PayPlanNum, pat.Guarantor, pat.PatNum, DateTime.Today.AddMonths(-4).AddDays(-1), 121.74, 0, "D8670:  OrthoAdj", proc4.ProvNum, 0, PayPlanChargeType.Credit, proc4.ProcNum);
            Procedure     proc3               = ProcedureT.CreateProcedure(pat, "D8670", ProcStat.C, "", 121.74, DateTime.Today.AddMonths(-3).AddDays(-1));
            PayPlanCharge ppc3                = PayPlanChargeT.CreateOne(payPlan.PayPlanNum, pat.Guarantor, pat.PatNum, DateTime.Today.AddMonths(-3).AddDays(-1), 121.74, 0, "D8670:  OrthoAdj", proc3.ProvNum, 0, PayPlanChargeType.Credit, proc3.ProcNum);
            Procedure     proc2               = ProcedureT.CreateProcedure(pat, "D8670", ProcStat.C, "", 121.74, DateTime.Today.AddMonths(-2).AddDays(-1));
            PayPlanCharge ppc2                = PayPlanChargeT.CreateOne(payPlan.PayPlanNum, pat.Guarantor, pat.PatNum, DateTime.Today.AddMonths(-2).AddDays(-1), 121.74, 0, "D8670:  OrthoAdj", proc2.ProvNum, 0, PayPlanChargeType.Credit, proc2.ProcNum);
            Procedure     proc1               = ProcedureT.CreateProcedure(pat, "D8670", ProcStat.C, "", 121.74, DateTime.Today.AddMonths(-1).AddDays(-1));
            PayPlanCharge ppc1                = PayPlanChargeT.CreateOne(payPlan.PayPlanNum, pat.Guarantor, pat.PatNum, DateTime.Today.AddMonths(-1).AddDays(-1), 121.74, 0, "D8670:  OrthoAdj", proc1.ProvNum, 0, PayPlanChargeType.Credit, proc1.ProcNum);
            int           payPlansVersionPrev = PrefC.GetInt(PrefName.PayPlansVersion);

            try {
                PrefT.UpdateInt(PrefName.PayPlansVersion, (int)PayPlanVersions.AgeCreditsAndDebits);
                CheckAgingProcLifo(pat.PatNum, 166.67, 166.67, 166.67, 333.34, 833.35, YN.Yes);
                CheckAgingProcLifo(pat.PatNum, 166.67, 288.41, 288.41, 89.86, 833.35, YN.No);
                CheckAgingProcLifo(pat.PatNum, 166.67, 288.41, 288.41, 89.86, 833.35, YN.Unknown);          //Unset will behave the same as Off for now, until we change default behavior in future.
            }
            finally {
                PrefT.UpdateInt(PrefName.PayPlansVersion, payPlansVersionPrev);
            }
        }
Example #11
0
        ///<summary>Converts a DataTable to a list of objects.</summary>
        public static List <PayPlan> TableToList(DataTable table)
        {
            List <PayPlan> retVal = new List <PayPlan>();
            PayPlan        payPlan;

            foreach (DataRow row in table.Rows)
            {
                payPlan                  = new PayPlan();
                payPlan.PayPlanNum       = PIn.Long(row["PayPlanNum"].ToString());
                payPlan.PatNum           = PIn.Long(row["PatNum"].ToString());
                payPlan.Guarantor        = PIn.Long(row["Guarantor"].ToString());
                payPlan.PayPlanDate      = PIn.Date(row["PayPlanDate"].ToString());
                payPlan.APR              = PIn.Double(row["APR"].ToString());
                payPlan.Note             = PIn.String(row["Note"].ToString());
                payPlan.PlanNum          = PIn.Long(row["PlanNum"].ToString());
                payPlan.CompletedAmt     = PIn.Double(row["CompletedAmt"].ToString());
                payPlan.InsSubNum        = PIn.Long(row["InsSubNum"].ToString());
                payPlan.PaySchedule      = (OpenDentBusiness.PaymentSchedule)PIn.Int(row["PaySchedule"].ToString());
                payPlan.NumberOfPayments = PIn.Int(row["NumberOfPayments"].ToString());
                payPlan.PayAmt           = PIn.Double(row["PayAmt"].ToString());
                payPlan.DownPayment      = PIn.Double(row["DownPayment"].ToString());
                payPlan.IsClosed         = PIn.Bool(row["IsClosed"].ToString());
                payPlan.Signature        = PIn.String(row["Signature"].ToString());
                payPlan.SigIsTopaz       = PIn.Bool(row["SigIsTopaz"].ToString());
                payPlan.PlanCategory     = PIn.Long(row["PlanCategory"].ToString());
                payPlan.IsDynamic        = PIn.Bool(row["IsDynamic"].ToString());
                payPlan.ChargeFrequency  = (OpenDentBusiness.PayPlanFrequency)PIn.Int(row["ChargeFrequency"].ToString());
                payPlan.DatePayPlanStart = PIn.Date(row["DatePayPlanStart"].ToString());
                payPlan.IsLocked         = PIn.Bool(row["IsLocked"].ToString());
                retVal.Add(payPlan);
            }
            return(retVal);
        }
Example #12
0
        public void PaymentEdit_ConstructAndLinkChargeCredits_ChargesWithAttachedPayPlanCreditsWithPreviousPayments()
        {
            //new payplan
            Patient   pat     = PatientT.CreatePatient(MethodBase.GetCurrentMethod().Name);
            Procedure proc1   = ProcedureT.CreateProcedure(pat, "D1120", ProcStat.C, "", 135, DateTime.Today.AddMonths(-4));
            Procedure proc2   = ProcedureT.CreateProcedure(pat, "D0220", ProcStat.C, "", 60, DateTime.Today.AddMonths(-4));
            PayPlan   payplan = PayPlanT.CreatePayPlanWithCredits(pat.PatNum, 30, DateTime.Today.AddMonths(-3), 0, new List <Procedure>()
            {
                proc1, proc2
            });

            //Procedures's amount start should now be 0 from being attached. Make initial payments.
            PaymentT.MakePayment(pat.PatNum, 30, DateTime.Today.AddMonths(-2), payplan.PayPlanNum, procNum: proc1.ProcNum);
            PaymentT.MakePayment(pat.PatNum, 30, DateTime.Today.AddMonths(-1), payplan.PayPlanNum, procNum: proc1.ProcNum);
            //2 pay plan charges should have been removed from being paid. Make a new payment.
            Payment pay = PaymentT.MakePaymentNoSplits(pat.PatNum, 30, DateTime.Today, isNew: true, payType: 1);

            PaymentEdit.LoadData loadData = PaymentEdit.GetLoadData(pat, pay, new List <long> {
                pat.PatNum
            }, true, false);
            PaymentEdit.InitData initData = PaymentEdit.Init(loadData.ListAssociatedPatients, Patients.GetFamily(pat.PatNum), new Family {
            }, pay
                                                             , loadData.ListSplits, new List <Procedure>(), pat.PatNum, loadData: loadData);
            //should only see 2 pay plan charges that have not been paid, along with 2 pay plan charges that have been paid.
            Assert.AreEqual(2, initData.AutoSplitData.ListAccountCharges.FindAll(x => x.AmountStart > 0).Count);
            Assert.AreEqual(4, initData.AutoSplitData.ListAccountCharges.Count(x => x.Tag.GetType() == typeof(PayPlanCharge)));
        }
Example #13
0
 public static void CreatePayPlanWithAdjustmentsAndCredits(long patNum, double payAmt, DateTime datePayStart, long provNum = 0,
                                                           List <Procedure> listProcs = null, double totalAmt = 0, long guarantorNum = 0, long clinicNum = 0, double adjAmt = 0)
 {
     //Create Base Pay Plan
     PayPlan payPlan = CreatePayPlanWithCredits(patNum, payAmt, datePayStart, provNum, listProcs, totalAmt, guarantorNum, clinicNum);
     //Add Adjustments (Negative Debits) to the payplan
     //TODO: Move payplan logic into business layer
 }
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            PayPlan payPlan = await db.PayPlans.FindAsync(id);

            db.PayPlans.Remove(payPlan);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Example #15
0
        ///<summary>For use with Dynamic Payment Plans. Production (proceudres and adjustments) is attached via PayPlanLinks.</summary>
        public static PayPlanLink CreatePaymentPlanLink(PayPlan payplan, long procOrAdjNum, PayPlanLinkType linkType)
        {
            PayPlanLink link = new PayPlanLink();

            link.PayPlanNum     = payplan.PayPlanNum;
            link.AmountOverride = 0;
            link.FKey           = procOrAdjNum;
            link.LinkType       = linkType;
            PayPlanLinks.Insert(link);
            return(link);
        }
        public async Task <ActionResult> Edit([Bind(Include = "Id,PlanName,PlanDes,Fi,NumberOfCoin,StartDate,EndDate,State")] PayPlan payPlan)
        {
            if (ModelState.IsValid)
            {
                db.Entry(payPlan).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(payPlan));
        }
        public async Task <ActionResult> Create([Bind(Include = "Id,PlanName,PlanDes,Fi,NumberOfCoin,StartDate,EndDate,State")] PayPlan payPlan)
        {
            if (ModelState.IsValid)
            {
                db.PayPlans.Add(payPlan);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(payPlan));
        }
Example #18
0
        ///<summary></summary>
        private static void Update(PayPlan plan)
        {
            string command = "UPDATE payplan SET "
                             + "PatNum = '" + POut.PInt(plan.PatNum) + "'"
                             + ",Guarantor = '" + POut.PInt(plan.Guarantor) + "'"
                             + ",PayPlanDate = " + POut.PDate(plan.PayPlanDate)
                             + ",APR = '" + POut.PDouble(plan.APR) + "'"
                             + ",Note = '" + POut.PString(plan.Note) + "'"
                             + ",PlanNum = '" + POut.PInt(plan.PlanNum) + "'"
                             + " WHERE PayPlanNum = '" + POut.PInt(plan.PayPlanNum) + "'";

            General.NonQ(command);
        }
Example #19
0
        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);
        }
Example #20
0
 ///<summary></summary>
 public static void InsertOrUpdate(PayPlan plan, bool isNew)
 {
     //if(){
     //	throw new Exception(Lan.g(this,""));
     //}
     if (isNew)
     {
         Insert(plan);
     }
     else
     {
         Update(plan);
     }
 }
        // GET: Admin/PayPlans/Delete/5
        public async Task <ActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PayPlan payPlan = await db.PayPlans.FindAsync(id);

            if (payPlan == null)
            {
                return(HttpNotFound());
            }
            return(View(payPlan));
        }
Example #22
0
        ///<summary>Called from FormPayPlan.  Also deletes all attached payplancharges.  Throws exception if there are any paysplits attached.</summary>
        public static void Delete(PayPlan plan)
        {
            string command = "SELECT COUNT(*) FROM paysplit WHERE PayPlanNum=" + plan.PayPlanNum.ToString();

            if (General.GetCount(command) != "0")
            {
                throw new ApplicationException
                          (Lan.g("PayPlans", "You cannot delete a payment plan with payments attached.  Unattach the payments first."));
            }
            command = "DELETE FROM payplancharge WHERE PayPlanNum=" + plan.PayPlanNum.ToString();
            General.NonQ(command);
            command = "DELETE FROM payplan WHERE PayPlanNum =" + plan.PayPlanNum.ToString();
            General.NonQ(command);
        }
Example #23
0
        public void LedgersTests_ComputeAging_PayPlanDynamic()
        {
            List <Procedure>  listProcs = new List <Procedure>();
            List <Adjustment> listAdjs  = new List <Adjustment>();
            long       provNum          = ProviderT.CreateProvider("Aging_PayPlanDynamic");
            string     suffix           = MethodBase.GetCurrentMethod().Name;
            Patient    pat      = PatientT.CreatePatient(fName: "Aging_PayPlanDynamic", suffix: suffix);
            Family     fam      = Patients.GetFamily(pat.PatNum);
            Procedure  proc1    = ProcedureT.CreateProcedure(pat, "D0210", ProcStat.C, "", 45, DateTime.Today.AddDays(-61), provNum: provNum);
            Procedure  proc2    = ProcedureT.CreateProcedure(pat, "D0220", ProcStat.C, "", 55, DateTime.Today.AddDays(-32), provNum: provNum);
            Procedure  proc3    = ProcedureT.CreateProcedure(pat, "D0270", ProcStat.C, "", 65, DateTime.Today.AddDays(-15), provNum: provNum);
            Adjustment adjProc2 = AdjustmentT.MakeAdjustment(pat.PatNum, 10, proc2.ProcDate, proc2.ProcDate, proc2.ProcNum, provNum);
            Adjustment adjProc3 = AdjustmentT.MakeAdjustment(pat.PatNum, 20, proc3.ProcDate, proc3.ProcDate, proc3.ProcNum, provNum);
            Adjustment adj      = AdjustmentT.MakeAdjustment(pat.PatNum, 30, DateTime.Today.AddDays(-5), provNum: provNum);

            listProcs.AddRange(new List <Procedure> {
                proc1, proc2, proc3
            });
            listAdjs.AddRange(new List <Adjustment> {
                adj
            });
            PayPlan payPlan = PayPlanT.CreateDynamicPaymentPlan(pat.PatNum, pat.PatNum, DateTime.Today.AddDays(-1), 0, 0, 40, listProcs, listAdjs);
            //PayPlan payplan=PayPlanT.CreatePayPlanWithCredits(pat.PatNum,40,DateTime.Today,provNum:provNum,listProcs,195,pat.PatNum);
            //make two non payplan productions to put on the account
            Procedure procUnattached = ProcedureT.CreateProcedure(pat, "D0210", ProcStat.C, "", 35, DateTime.Today.AddDays(-91), provNum: provNum);
            //Run pay plan logic to generate first set of charges
            List <PayPlanCharge> listChargesDb = PayPlanCharges.GetForPayPlan(payPlan.PayPlanNum);
            List <PayPlanLink>   listEntries   = PayPlanLinks.GetForPayPlans(new List <long> {
                payPlan.PayPlanNum
            });
            PayPlanTerms         terms = PayPlanT.GetTerms(payPlan, listEntries);
            List <PayPlanCharge> listChargesThisPeriod = PayPlanEdit.GetListExpectedCharges(listChargesDb, terms, fam, listEntries, payPlan, true);

            Assert.AreEqual(40, listChargesThisPeriod.Sum(x => x.Principal));
            foreach (PayPlanCharge charge in listChargesThisPeriod)
            {
                PayPlanCharges.Insert(charge);
            }
            int payPlansVersionPrev = PrefC.GetInt(PrefName.PayPlansVersion);

            try {
                PrefT.UpdateInt(PrefName.PayPlansVersion, (int)PayPlanVersions.AgeCreditsAndDebits);
                CheckAgingProcLifo(pat.PatNum, 70, 0, 0, 5, 40, YN.Yes);         //new
                CheckAgingProcLifo(pat.PatNum, 75, 0, 0, 0, 40, YN.No);          //old
                CheckAgingProcLifo(pat.PatNum, 75, 0, 0, 0, 40, YN.Unknown);
            }
            finally {
                PrefT.UpdateInt(PrefName.PayPlansVersion, payPlansVersionPrev);
            }
        }
Example #24
0
        public void LedgersTests_ComputeAging_PayPlanDynamicCreditsWithClaimProcs()
        {
            List <Procedure>  listProcs = new List <Procedure>();
            List <Adjustment> listAdjs  = new List <Adjustment>();
            long          provNum       = ProviderT.CreateProvider("Aging_PayPlanDynamic");
            string        suffix        = MethodBase.GetCurrentMethod().Name;
            Patient       pat           = PatientT.CreatePatient(fName: "Aging_PayPlanDynamic", suffix: suffix);
            Family        fam           = Patients.GetFamily(pat.PatNum);
            Procedure     proc45        = ProcedureT.CreateProcedure(pat, "D0210", ProcStat.C, "", 45, DateTime.Today.AddDays(-61), provNum: provNum);
            ClaimProc     cp45          = new ClaimProc();
            InsuranceInfo insInfo       = InsuranceT.AddInsurance(pat, "DynPayPlan");

            ClaimProcs.CreateEst(cp45, proc45, insInfo.PriInsPlan, insInfo.PriInsSub);
            cp45.Status      = ClaimProcStatus.NotReceived;
            cp45.InsEstTotal = -1;
            cp45.InsPayEst   = 15;
            cp45.WriteOffEst = 0;
            cp45.WriteOff    = 0;
            ClaimProcs.Update(cp45);
            listProcs.AddRange(new List <Procedure> {
                proc45
            });
            PayPlan payPlan = PayPlanT.CreateDynamicPaymentPlan(pat.PatNum, pat.PatNum, DateTime.Today.AddDays(-1), 0, 0, 30, listProcs, listAdjs);
            //make two non payplan productions to put on the account
            Procedure procUnattached = ProcedureT.CreateProcedure(pat, "D0210", ProcStat.C, "", 35, DateTime.Today.AddDays(-91), provNum: provNum);
            //Run pay plan logic to generate first set of charges
            List <PayPlanCharge> listChargesDb = PayPlanCharges.GetForPayPlan(payPlan.PayPlanNum);
            List <PayPlanLink>   listEntries   = PayPlanLinks.GetForPayPlans(new List <long> {
                payPlan.PayPlanNum
            });
            PayPlanTerms         terms = PayPlanT.GetTerms(payPlan, listEntries);
            List <PayPlanCharge> listChargesThisPeriod = PayPlanEdit.GetListExpectedCharges(listChargesDb, terms, fam, listEntries, payPlan, true);

            Assert.AreEqual(30, listChargesThisPeriod.Sum(x => x.Principal));
            foreach (PayPlanCharge charge in listChargesThisPeriod)
            {
                PayPlanCharges.Insert(charge);
            }
            int payPlansVersionPrev = PrefC.GetInt(PrefName.PayPlansVersion);

            try {
                PrefT.UpdateInt(PrefName.PayPlansVersion, (int)PayPlanVersions.AgeCreditsAndDebits);
                CheckAgingProcLifo(pat.PatNum, 30, 0, 15, 35, 30, YN.Yes);        //new - pay plan credit of $30 gets applied to cooresponding procedure
                CheckAgingProcLifo(pat.PatNum, 30, 0, 45, 5, 30, YN.No);          //old - pay plan credit gets applied to oldest production on the account
                CheckAgingProcLifo(pat.PatNum, 30, 0, 45, 5, 30, YN.Unknown);
            }
            finally {
                PrefT.UpdateInt(PrefName.PayPlansVersion, payPlansVersionPrev);
            }
        }
Example #25
0
        public static PayPlanTerms GetTerms(PayPlan payplan, List <PayPlanLink> listLinksForPayPlan)
        {
            PayPlanTerms terms = new PayPlanTerms();

            terms.APR              = payplan.APR;
            terms.DateAgreement    = payplan.PayPlanDate;
            terms.DateFirstPayment = payplan.DatePayPlanStart;
            terms.Frequency        = payplan.ChargeFrequency;
            terms.PaySchedule      = payplan.PaySchedule;
            terms.PeriodPayment    = (decimal)payplan.PayAmt;
            terms.PrincipalAmount  = (double)PayPlanProductionEntry.GetProductionForLinks(listLinksForPayPlan)
                                     .Sum(x => x.AmountOverride == 0?x.AmountOriginal:x.AmountOverride);
            terms.RoundDec = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalDigits;
            return(terms);
        }
Example #26
0
 ///<summary>Inserts one PayPlan into the database.  Returns the new priKey.  Doesn't use the cache.</summary>
 public static long InsertNoCache(PayPlan payPlan)
 {
     if (DataConnection.DBtype == DatabaseType.MySql)
     {
         return(InsertNoCache(payPlan, false));
     }
     else
     {
         if (DataConnection.DBtype == DatabaseType.Oracle)
         {
             payPlan.PayPlanNum = DbHelper.GetNextOracleKey("payplan", "PayPlanNum");                  //Cacheless method
         }
         return(InsertNoCache(payPlan, true));
     }
 }
Example #27
0
        ///<summary>Updates one PayPlan in the database.</summary>
        public static void Update(PayPlan payPlan)
        {
            string command = "UPDATE payplan SET "
                             + "PatNum      =  " + POut.Long(payPlan.PatNum) + ", "
                             + "Guarantor   =  " + POut.Long(payPlan.Guarantor) + ", "
                             + "PayPlanDate =  " + POut.Date(payPlan.PayPlanDate) + ", "
                             + "APR         = '" + POut.Double(payPlan.APR) + "', "
                             + "Note        = '" + POut.String(payPlan.Note) + "', "
                             + "PlanNum     =  " + POut.Long(payPlan.PlanNum) + ", "
                             + "CompletedAmt= '" + POut.Double(payPlan.CompletedAmt) + "', "
                             + "InsSubNum   =  " + POut.Long(payPlan.InsSubNum) + " "
                             + "WHERE PayPlanNum = " + POut.Long(payPlan.PayPlanNum);

            Db.NonQ(command);
        }
Example #28
0
		///<summary>Converts a DataTable to a list of objects.</summary>
		public static List<PayPlan> TableToList(DataTable table){
			List<PayPlan> retVal=new List<PayPlan>();
			PayPlan payPlan;
			for(int i=0;i<table.Rows.Count;i++) {
				payPlan=new PayPlan();
				payPlan.PayPlanNum  = PIn.Long  (table.Rows[i]["PayPlanNum"].ToString());
				payPlan.PatNum      = PIn.Long  (table.Rows[i]["PatNum"].ToString());
				payPlan.Guarantor   = PIn.Long  (table.Rows[i]["Guarantor"].ToString());
				payPlan.PayPlanDate = PIn.Date  (table.Rows[i]["PayPlanDate"].ToString());
				payPlan.APR         = PIn.Double(table.Rows[i]["APR"].ToString());
				payPlan.Note        = PIn.String(table.Rows[i]["Note"].ToString());
				payPlan.PlanNum     = PIn.Long  (table.Rows[i]["PlanNum"].ToString());
				payPlan.CompletedAmt= PIn.Double(table.Rows[i]["CompletedAmt"].ToString());
				payPlan.InsSubNum   = PIn.Long  (table.Rows[i]["InsSubNum"].ToString());
				retVal.Add(payPlan);
			}
			return retVal;
		}
Example #29
0
        private void FillGrid()
        {
            gridMain.BeginUpdate();
            GridColumn col = new GridColumn("Date", 70);

            gridMain.ListGridColumns.Add(col);
            col = new GridColumn("Patient", 100);
            gridMain.ListGridColumns.Add(col);
            col = new GridColumn("Category", 80);
            gridMain.ListGridColumns.Add(col);
            col = new GridColumn("Total Cost", 80);
            gridMain.ListGridColumns.Add(col);
            col = new GridColumn("Balance", 80);
            gridMain.ListGridColumns.Add(col);
            col = new GridColumn("Due Now", 80);
            gridMain.ListGridColumns.Add(col);
            List <long>     listPayPlanNums = _listValidPayPlans.Select(x => x.PayPlanNum).ToList();
            List <PaySplit> listPaySplits   = PaySplits.GetForPayPlans(listPayPlanNums);
            List <Patient>  listPats        = Patients.GetLimForPats(_listValidPayPlans.Select(x => x.PatNum).ToList());

            for (int i = 0; i < _listValidPayPlans.Count; i++)
            {
                //no db calls are made in this loop because we have all the necessary information already.
                PayPlan planCur = _listValidPayPlans[i];
                Patient patCur  = listPats.Where(x => x.PatNum == planCur.PatNum).FirstOrDefault();
                GridRow row     = new GridRow();
                row.Cells.Add(planCur.PayPlanDate.ToShortDateString());       //date
                row.Cells.Add(patCur.LName + ", " + patCur.FName);            //patient
                if (planCur.PlanCategory == 0)
                {
                    row.Cells.Add(Lan.g(this, "None"));
                }
                else
                {
                    row.Cells.Add(Defs.GetDef(DefCat.PayPlanCategories, planCur.PlanCategory).ItemName);
                }
                row.Cells.Add(PayPlans.GetTotalCost(planCur.PayPlanNum, _listPayPlanCharges).ToString("F"));               //total cost
                row.Cells.Add(PayPlans.GetBalance(planCur.PayPlanNum, _listPayPlanCharges, listPaySplits).ToString("F"));  //balance
                row.Cells.Add(PayPlans.GetDueNow(planCur.PayPlanNum, _listPayPlanCharges, listPaySplits).ToString("F"));   //due now
                row.Tag = planCur.PayPlanNum;
                gridMain.ListGridRows.Add(row);
            }
            gridMain.EndUpdate();
        }
Example #30
0
        ///<summary>Supply a list of all payment plans for a guarantor.  Based on the isIns setting, it will either return a list of all regular payment plans or only those for ins.  Used just before displaying FormPayPlanSelect.</summary>
        public static PayPlan[] GetListOneType(PayPlan[] payPlanList, bool isIns)
        {
            ArrayList AL = new ArrayList();

            for (int i = 0; i < payPlanList.Length; i++)
            {
                if (isIns && payPlanList[i].PlanNum > 0)
                {
                    AL.Add(payPlanList[i]);
                }
                else if (!isIns && payPlanList[i].PlanNum == 0)
                {
                    AL.Add(payPlanList[i]);
                }
            }
            PayPlan[] retVal = new PayPlan[AL.Count];
            AL.CopyTo(retVal);
            return(retVal);
        }
Example #31
0
        public void PaymentEdit_Init_PayPlanChargesWithUnattachedCredits()
        {
            //new payplan
            Patient   pat     = PatientT.CreatePatient(MethodBase.GetCurrentMethod().Name);
            Procedure proc1   = ProcedureT.CreateProcedure(pat, "D1120", ProcStat.C, "", 135, DateTime.Today.AddMonths(-4));
            Procedure proc2   = ProcedureT.CreateProcedure(pat, "D0220", ProcStat.C, "", 60, DateTime.Today.AddMonths(-4));
            PayPlan   payplan = PayPlanT.CreatePayPlanWithCredits(pat.PatNum, 30, DateTime.Today.AddMonths(-3), 0, totalAmt: 195);
            //Go to make a payment for the charges due
            Payment pay = PaymentT.MakePaymentNoSplits(pat.PatNum, 60, DateTime.Today);

            PaymentEdit.LoadData loadData = PaymentEdit.GetLoadData(pat, pay, new List <long> {
                pat.PatNum
            }, true, false);
            PaymentEdit.ConstructResults constructResults = PaymentEdit.ConstructAndLinkChargeCredits(new List <long> {
                pat.PatNum
            }, pat.PatNum
                                                                                                      , loadData.ConstructChargesData.ListPaySplits, pay, new List <Procedure> (), loadData: loadData);
            Assert.AreEqual(6, constructResults.ListAccountCharges.Count);           //2 procedures and 4 months of charges since unattached credits.
            Assert.AreEqual(2, constructResults.ListAccountCharges.Count(x => x.Tag.GetType() == typeof(Procedure)));
            Assert.AreEqual(4, constructResults.ListAccountCharges.Count(x => x.Tag.GetType() == typeof(PayPlanCharge)));
        }
Example #32
0
        public void LedgersTests_ComputeAgingProcLifo_PayPlan3()
        {
            string        suffix              = MethodBase.GetCurrentMethod().Name;
            Patient       pat                 = PatientT.CreatePatient(fName: "Aging_PayPlan3", suffix: suffix);
            Procedure     proc95              = ProcedureT.CreateProcedure(pat, "D0270", ProcStat.C, "", 200, DateTime.Today.AddDays(-95));
            Procedure     proc35              = ProcedureT.CreateProcedure(pat, "D1110", ProcStat.C, "", 100, DateTime.Today.AddDays(-35));
            PayPlan       payPlan             = PayPlanT.CreatePayPlan(pat.PatNum, 100, 50, DateTime.Today.AddDays(-35), proc35.ProvNum);
            Adjustment    adj5                = AdjustmentT.MakeAdjustment(pat.PatNum, -5.50, DateTime.Today.AddDays(-5), proc35.ProcDate, proc35.ProcNum);
            PayPlanCharge ppc5                = PayPlanChargeT.CreateOne(payPlan.PayPlanNum, pat.Guarantor, pat.PatNum, DateTime.Today.AddDays(-5), 100, 0, chargeType: PayPlanChargeType.Credit, procNum: proc35.ProcNum);
            int           payPlansVersionPrev = PrefC.GetInt(PrefName.PayPlansVersion);

            try {
                PrefT.UpdateInt(PrefName.PayPlansVersion, (int)PayPlanVersions.AgeCreditsAndDebits);
                CheckAgingProcLifo(pat.PatNum, 50, 44.50, 0, 200, 100, YN.Yes);
                CheckAgingProcLifo(pat.PatNum, 50, 150, 0, 94.50, 100, YN.No);
                CheckAgingProcLifo(pat.PatNum, 50, 150, 0, 94.50, 100, YN.Unknown);          //Unset will behave the same as Off for now, until we change default behavior in future.
            }
            finally {
                PrefT.UpdateInt(PrefName.PayPlansVersion, payPlansVersionPrev);
            }
        }
Example #33
0
        ///<summary>Converts a DataTable to a list of objects.</summary>
        public static List <PayPlan> TableToList(DataTable table)
        {
            List <PayPlan> retVal = new List <PayPlan>();
            PayPlan        payPlan;

            for (int i = 0; i < table.Rows.Count; i++)
            {
                payPlan              = new PayPlan();
                payPlan.PayPlanNum   = PIn.Long(table.Rows[i]["PayPlanNum"].ToString());
                payPlan.PatNum       = PIn.Long(table.Rows[i]["PatNum"].ToString());
                payPlan.Guarantor    = PIn.Long(table.Rows[i]["Guarantor"].ToString());
                payPlan.PayPlanDate  = PIn.Date(table.Rows[i]["PayPlanDate"].ToString());
                payPlan.APR          = PIn.Double(table.Rows[i]["APR"].ToString());
                payPlan.Note         = PIn.String(table.Rows[i]["Note"].ToString());
                payPlan.PlanNum      = PIn.Long(table.Rows[i]["PlanNum"].ToString());
                payPlan.CompletedAmt = PIn.Double(table.Rows[i]["CompletedAmt"].ToString());
                payPlan.InsSubNum    = PIn.Long(table.Rows[i]["InsSubNum"].ToString());
                retVal.Add(payPlan);
            }
            return(retVal);
        }
Example #34
0
		///<summary>Converts a DataTable to a list of objects.</summary>
		public static List<PayPlan> TableToList(DataTable table){
			List<PayPlan> retVal=new List<PayPlan>();
			PayPlan payPlan;
			for(int i=0;i<table.Rows.Count;i++) {
				payPlan=new PayPlan();
				payPlan.PayPlanNum      = PIn.Long  (table.Rows[i]["PayPlanNum"].ToString());
				payPlan.PatNum          = PIn.Long  (table.Rows[i]["PatNum"].ToString());
				payPlan.Guarantor       = PIn.Long  (table.Rows[i]["Guarantor"].ToString());
				payPlan.PayPlanDate     = PIn.Date  (table.Rows[i]["PayPlanDate"].ToString());
				payPlan.APR             = PIn.Double(table.Rows[i]["APR"].ToString());
				payPlan.Note            = PIn.String(table.Rows[i]["Note"].ToString());
				payPlan.PlanNum         = PIn.Long  (table.Rows[i]["PlanNum"].ToString());
				payPlan.CompletedAmt    = PIn.Double(table.Rows[i]["CompletedAmt"].ToString());
				payPlan.InsSubNum       = PIn.Long  (table.Rows[i]["InsSubNum"].ToString());
				payPlan.PaySchedule     = (OpenDentBusiness.PaymentSchedule)PIn.Int(table.Rows[i]["PaySchedule"].ToString());
				payPlan.NumberOfPayments= PIn.Int   (table.Rows[i]["NumberOfPayments"].ToString());
				payPlan.PayAmt          = PIn.Double(table.Rows[i]["PayAmt"].ToString());
				payPlan.DownPayment     = PIn.Double(table.Rows[i]["DownPayment"].ToString());
				retVal.Add(payPlan);
			}
			return retVal;
		}
Example #35
0
 ///<summary>Updates one PayPlan in the database.</summary>
 internal static void Update(PayPlan payPlan)
 {
     string command="UPDATE payplan SET "
         +"PatNum      =  "+POut.Long  (payPlan.PatNum)+", "
         +"Guarantor   =  "+POut.Long  (payPlan.Guarantor)+", "
         +"PayPlanDate =  "+POut.Date  (payPlan.PayPlanDate)+", "
         +"APR         = '"+POut.Double(payPlan.APR)+"', "
         +"Note        = '"+POut.String(payPlan.Note)+"', "
         +"PlanNum     =  "+POut.Long  (payPlan.PlanNum)+", "
         +"CompletedAmt= '"+POut.Double(payPlan.CompletedAmt)+"', "
         +"InsSubNum   =  "+POut.Long  (payPlan.InsSubNum)+" "
         +"WHERE PayPlanNum = "+POut.Long(payPlan.PayPlanNum);
     Db.NonQ(command);
 }
Example #36
0
 ///<summary>Updates one PayPlan in the database.  Uses an old object to compare to, and only alters changed fields.  This prevents collisions and concurrency problems in heavily used tables.</summary>
 internal static void Update(PayPlan payPlan,PayPlan oldPayPlan)
 {
     string command="";
     if(payPlan.PatNum != oldPayPlan.PatNum) {
         if(command!=""){ command+=",";}
         command+="PatNum = "+POut.Long(payPlan.PatNum)+"";
     }
     if(payPlan.Guarantor != oldPayPlan.Guarantor) {
         if(command!=""){ command+=",";}
         command+="Guarantor = "+POut.Long(payPlan.Guarantor)+"";
     }
     if(payPlan.PayPlanDate != oldPayPlan.PayPlanDate) {
         if(command!=""){ command+=",";}
         command+="PayPlanDate = "+POut.Date(payPlan.PayPlanDate)+"";
     }
     if(payPlan.APR != oldPayPlan.APR) {
         if(command!=""){ command+=",";}
         command+="APR = '"+POut.Double(payPlan.APR)+"'";
     }
     if(payPlan.Note != oldPayPlan.Note) {
         if(command!=""){ command+=",";}
         command+="Note = '"+POut.String(payPlan.Note)+"'";
     }
     if(payPlan.PlanNum != oldPayPlan.PlanNum) {
         if(command!=""){ command+=",";}
         command+="PlanNum = "+POut.Long(payPlan.PlanNum)+"";
     }
     if(payPlan.CompletedAmt != oldPayPlan.CompletedAmt) {
         if(command!=""){ command+=",";}
         command+="CompletedAmt = '"+POut.Double(payPlan.CompletedAmt)+"'";
     }
     if(payPlan.InsSubNum != oldPayPlan.InsSubNum) {
         if(command!=""){ command+=",";}
         command+="InsSubNum = "+POut.Long(payPlan.InsSubNum)+"";
     }
     if(command==""){
         return;
     }
     command="UPDATE payplan SET "+command
         +" WHERE PayPlanNum = "+POut.Long(payPlan.PayPlanNum);
     Db.NonQ(command);
 }
Example #37
0
		///<summary>Updates one PayPlan in the database.  Uses an old object to compare to, and only alters changed fields.  This prevents collisions and concurrency problems in heavily used tables.  Returns true if an update occurred.</summary>
		public static bool Update(PayPlan payPlan,PayPlan oldPayPlan){
			string command="";
			if(payPlan.PatNum != oldPayPlan.PatNum) {
				if(command!=""){ command+=",";}
				command+="PatNum = "+POut.Long(payPlan.PatNum)+"";
			}
			if(payPlan.Guarantor != oldPayPlan.Guarantor) {
				if(command!=""){ command+=",";}
				command+="Guarantor = "+POut.Long(payPlan.Guarantor)+"";
			}
			if(payPlan.PayPlanDate != oldPayPlan.PayPlanDate) {
				if(command!=""){ command+=",";}
				command+="PayPlanDate = "+POut.Date(payPlan.PayPlanDate)+"";
			}
			if(payPlan.APR != oldPayPlan.APR) {
				if(command!=""){ command+=",";}
				command+="APR = '"+POut.Double(payPlan.APR)+"'";
			}
			if(payPlan.Note != oldPayPlan.Note) {
				if(command!=""){ command+=",";}
				command+="Note = '"+POut.String(payPlan.Note)+"'";
			}
			if(payPlan.PlanNum != oldPayPlan.PlanNum) {
				if(command!=""){ command+=",";}
				command+="PlanNum = "+POut.Long(payPlan.PlanNum)+"";
			}
			if(payPlan.CompletedAmt != oldPayPlan.CompletedAmt) {
				if(command!=""){ command+=",";}
				command+="CompletedAmt = '"+POut.Double(payPlan.CompletedAmt)+"'";
			}
			if(payPlan.InsSubNum != oldPayPlan.InsSubNum) {
				if(command!=""){ command+=",";}
				command+="InsSubNum = "+POut.Long(payPlan.InsSubNum)+"";
			}
			if(payPlan.PaySchedule != oldPayPlan.PaySchedule) {
				if(command!=""){ command+=",";}
				command+="PaySchedule = "+POut.Int   ((int)payPlan.PaySchedule)+"";
			}
			if(payPlan.NumberOfPayments != oldPayPlan.NumberOfPayments) {
				if(command!=""){ command+=",";}
				command+="NumberOfPayments = "+POut.Int(payPlan.NumberOfPayments)+"";
			}
			if(payPlan.PayAmt != oldPayPlan.PayAmt) {
				if(command!=""){ command+=",";}
				command+="PayAmt = '"+POut.Double(payPlan.PayAmt)+"'";
			}
			if(payPlan.DownPayment != oldPayPlan.DownPayment) {
				if(command!=""){ command+=",";}
				command+="DownPayment = '"+POut.Double(payPlan.DownPayment)+"'";
			}
			if(command==""){
				return false;
			}
			command="UPDATE payplan SET "+command
				+" WHERE PayPlanNum = "+POut.Long(payPlan.PayPlanNum);
			Db.NonQ(command);
			return true;
		}
Example #38
0
		///<summary>Updates one PayPlan in the database.</summary>
		public static void Update(PayPlan payPlan){
			string command="UPDATE payplan SET "
				+"PatNum          =  "+POut.Long  (payPlan.PatNum)+", "
				+"Guarantor       =  "+POut.Long  (payPlan.Guarantor)+", "
				+"PayPlanDate     =  "+POut.Date  (payPlan.PayPlanDate)+", "
				+"APR             = '"+POut.Double(payPlan.APR)+"', "
				+"Note            = '"+POut.String(payPlan.Note)+"', "
				+"PlanNum         =  "+POut.Long  (payPlan.PlanNum)+", "
				+"CompletedAmt    = '"+POut.Double(payPlan.CompletedAmt)+"', "
				+"InsSubNum       =  "+POut.Long  (payPlan.InsSubNum)+", "
				+"PaySchedule     =  "+POut.Int   ((int)payPlan.PaySchedule)+", "
				+"NumberOfPayments=  "+POut.Int   (payPlan.NumberOfPayments)+", "
				+"PayAmt          = '"+POut.Double(payPlan.PayAmt)+"', "
				+"DownPayment     = '"+POut.Double(payPlan.DownPayment)+"' "
				+"WHERE PayPlanNum = "+POut.Long(payPlan.PayPlanNum);
			Db.NonQ(command);
		}