Ejemplo n.º 1
0
 ///<summary>Inserts one ApptReminderRule into the database.  Returns the new priKey.</summary>
 public static long Insert(ApptReminderRule apptReminderRule)
 {
     if (DataConnection.DBtype == DatabaseType.Oracle)
     {
         apptReminderRule.ApptReminderRuleNum = DbHelper.GetNextOracleKey("apptreminderrule", "ApptReminderRuleNum");
         int loopcount = 0;
         while (loopcount < 100)
         {
             try {
                 return(Insert(apptReminderRule, true));
             }
             catch (Oracle.ManagedDataAccess.Client.OracleException ex) {
                 if (ex.Number == 1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated"))
                 {
                     apptReminderRule.ApptReminderRuleNum++;
                     loopcount++;
                 }
                 else
                 {
                     throw ex;
                 }
             }
         }
         throw new ApplicationException("Insert failed.  Could not generate primary key.");
     }
     else
     {
         return(Insert(apptReminderRule, false));
     }
 }
 public FormApptReminderRuleEdit(ApptReminderRule apptReminderCur, List <ApptReminderRule> listRulesClinic = null)
 {
     InitializeComponent();
     Lan.F(this);
     ApptReminderRuleCur = apptReminderCur;
     _listRulesClinic    = listRulesClinic ?? new List <ApptReminderRule>();
 }
Ejemplo n.º 3
0
        private void butActivateThankYou_Click(object sender, EventArgs e)
        {
            //todo Discuss if this feature should be tied to eConfirmations...seems more likely that it should work like reminders.
            //or does it need its own eServiceCode?
            //if(!WebServiceMainHQProxy.IsEServiceActive(_signupOut,eServiceCode.ConfirmationRequest)) { //Not yet activated with HQ.
            //	MsgBox.Show(this,"You must first signup for eConfirmations via the Signup tab before activating eConfirmations.");
            //	return;
            //}
            bool isApptThankYouAutoEnabled = PrefC.GetBool(PrefName.ApptThankYouAutoEnabled);

            isApptThankYouAutoEnabled = !isApptThankYouAutoEnabled;
            Prefs.UpdateBool(PrefName.ApptConfirmAutoEnabled, isApptThankYouAutoEnabled);
            SecurityLogs.MakeLogEntry(Permissions.Setup, 0, "Automated appointment eThankYou " + (isApptThankYouAutoEnabled ? "activated" : "deactivated") + ".");
            Prefs.RefreshCache();
            Signalods.SetInvalid(InvalidType.Prefs);
            FillECRActivationButtons();
            //Add a default confirmation rule if none exists.
            if (isApptThankYouAutoEnabled && _dictClinicRules[0].Count(x => x.TypeCur == ApptReminderType.ScheduleThankYou) == 0)
            {
                //defaults to 0 days, 0 hours after appt created.
                ApptReminderRule arr = ApptReminderRules.CreateDefaultReminderRule(ApptReminderType.ScheduleThankYou, 0);
                _dictClinicRules[0].Add(arr);
                FillRemindConfirmData();
            }
        }
 public FormApptReminderRuleAggEdit(ApptReminderRule apptReminderCur)
 {
     InitializeComponent();
     Lan.F(this);
     //This needs to remain a shallow copy because FormEServicesECR is expecting shallow copy changes only. Making a new instance would break that.
     ApptReminderRuleCur = apptReminderCur;
 }
Ejemplo n.º 5
0
        private void butAddConfirmation_Click(object sender, EventArgs e)
        {
            if (_ecClinicCur != null && _ecClinicCur.ClinicNum > 0 && _ecClinicCur.IsConfirmDefault)
            {
                if (!SwitchFromDefaults())
                {
                    return;
                }
            }
            ApptReminderRule         arr      = ApptReminderRules.CreateDefaultReminderRule(ApptReminderType.ConfirmationFutureDay, _ecClinicCur.ClinicNum);
            FormApptReminderRuleEdit FormARRE = new FormApptReminderRuleEdit(arr, _dictClinicRules[_clinicRuleClinicNum]);

            FormARRE.ShowDialog();
            if (FormARRE.DialogResult != DialogResult.OK)
            {
                return;
            }
            if (FormARRE.ApptReminderRuleCur == null || FormARRE.ApptReminderRuleCur.IsNew)
            {
                //Delete or Update
                //Nothing to delete or update, this was a new rule.
            }
            else              //Insert
            {
                _dictClinicRules[_clinicRuleClinicNum].Add(FormARRE.ApptReminderRuleCur);
            }
            FillRemindConfirmData();
        }
Ejemplo n.º 6
0
 ///<summary>Returns true if Update(ApptReminderRule,ApptReminderRule) would make changes to the database.
 ///Does not make any changes to the database and can be called before remoting role is checked.</summary>
 public static bool UpdateComparison(ApptReminderRule apptReminderRule, ApptReminderRule oldApptReminderRule)
 {
     if (apptReminderRule.TypeCur != oldApptReminderRule.TypeCur)
     {
         return(true);
     }
     if (apptReminderRule.TSPrior != oldApptReminderRule.TSPrior)
     {
         return(true);
     }
     if (apptReminderRule.SendOrder != oldApptReminderRule.SendOrder)
     {
         return(true);
     }
     if (apptReminderRule.IsSendAll != oldApptReminderRule.IsSendAll)
     {
         return(true);
     }
     if (apptReminderRule.TemplateSMS != oldApptReminderRule.TemplateSMS)
     {
         return(true);
     }
     if (apptReminderRule.TemplateEmailSubject != oldApptReminderRule.TemplateEmailSubject)
     {
         return(true);
     }
     if (apptReminderRule.TemplateEmail != oldApptReminderRule.TemplateEmail)
     {
         return(true);
     }
     if (apptReminderRule.ClinicNum != oldApptReminderRule.ClinicNum)
     {
         return(true);
     }
     if (apptReminderRule.TemplateSMSAggShared != oldApptReminderRule.TemplateSMSAggShared)
     {
         return(true);
     }
     if (apptReminderRule.TemplateSMSAggPerAppt != oldApptReminderRule.TemplateSMSAggPerAppt)
     {
         return(true);
     }
     if (apptReminderRule.TemplateEmailSubjAggShared != oldApptReminderRule.TemplateEmailSubjAggShared)
     {
         return(true);
     }
     if (apptReminderRule.TemplateEmailAggShared != oldApptReminderRule.TemplateEmailAggShared)
     {
         return(true);
     }
     if (apptReminderRule.TemplateEmailAggPerAppt != oldApptReminderRule.TemplateEmailAggPerAppt)
     {
         return(true);
     }
     if (apptReminderRule.DoNotSendWithin != oldApptReminderRule.DoNotSendWithin)
     {
         return(true);
     }
     return(false);
 }
Ejemplo n.º 7
0
        private void butAddThankYou_Click(object sender, EventArgs e)
        {
            if (_ecClinicCur != null && _ecClinicCur.ClinicNum > 0 && _ecClinicCur.IsConfirmDefault)
            {
                if (!SwitchFromDefaults())
                {
                    return;
                }
            }
            ApptReminderRule         arr      = ApptReminderRules.CreateDefaultReminderRule(ApptReminderType.ScheduleThankYou, _ecClinicCur.ClinicNum);
            FormApptReminderRuleEdit FormARRE = new FormApptReminderRuleEdit(arr, _dictClinicRules[_clinicRuleClinicNum]);

            FormARRE.ShowDialog();
            if (FormARRE.DialogResult != DialogResult.OK)
            {
                return;
            }
            if (FormARRE.ApptReminderRuleCur == null || FormARRE.ApptReminderRuleCur.IsNew)           //Delete or Update
            //Nothing to update, this was a new rule.
            {
            }
            else              //Insert
            {
                _dictClinicRules[_clinicRuleClinicNum].Add(FormARRE.ApptReminderRuleCur);
            }
            if (FormARRE.IsPrefsChanged)
            {
                FillConfStatusesGrid();
            }
            FillRemindConfirmData();
        }
        ///<summary>Converts a DataTable to a list of objects.</summary>
        public static List <ApptReminderRule> TableToList(DataTable table)
        {
            List <ApptReminderRule> retVal = new List <ApptReminderRule>();
            ApptReminderRule        apptReminderRule;

            foreach (DataRow row in table.Rows)
            {
                apptReminderRule = new ApptReminderRule();
                apptReminderRule.ApptReminderRuleNum        = PIn.Long(row["ApptReminderRuleNum"].ToString());
                apptReminderRule.TypeCur                    = (OpenDentBusiness.ApptReminderType)PIn.Int(row["TypeCur"].ToString());
                apptReminderRule.TSPrior                    = TimeSpan.FromTicks(PIn.Long(row["TSPrior"].ToString()));
                apptReminderRule.SendOrder                  = PIn.String(row["SendOrder"].ToString());
                apptReminderRule.IsSendAll                  = PIn.Bool(row["IsSendAll"].ToString());
                apptReminderRule.TemplateSMS                = PIn.String(row["TemplateSMS"].ToString());
                apptReminderRule.TemplateEmailSubject       = PIn.String(row["TemplateEmailSubject"].ToString());
                apptReminderRule.TemplateEmail              = PIn.String(row["TemplateEmail"].ToString());
                apptReminderRule.ClinicNum                  = PIn.Long(row["ClinicNum"].ToString());
                apptReminderRule.TemplateSMSAggShared       = PIn.String(row["TemplateSMSAggShared"].ToString());
                apptReminderRule.TemplateSMSAggPerAppt      = PIn.String(row["TemplateSMSAggPerAppt"].ToString());
                apptReminderRule.TemplateEmailSubjAggShared = PIn.String(row["TemplateEmailSubjAggShared"].ToString());
                apptReminderRule.TemplateEmailAggShared     = PIn.String(row["TemplateEmailAggShared"].ToString());
                apptReminderRule.TemplateEmailAggPerAppt    = PIn.String(row["TemplateEmailAggPerAppt"].ToString());
                apptReminderRule.DoNotSendWithin            = TimeSpan.FromTicks(PIn.Long(row["DoNotSendWithin"].ToString()));
                apptReminderRule.IsEnabled                  = PIn.Bool(row["IsEnabled"].ToString());
                apptReminderRule.TemplateAutoReply          = PIn.String(row["TemplateAutoReply"].ToString());
                apptReminderRule.TemplateAutoReplyAgg       = PIn.String(row["TemplateAutoReplyAgg"].ToString());
                apptReminderRule.IsAutoReplyEnabled         = PIn.Bool(row["IsAutoReplyEnabled"].ToString());
                retVal.Add(apptReminderRule);
            }
            return(retVal);
        }
Ejemplo n.º 9
0
        public static ApptReminderRule CreateApptReminderRule(long clinicNum, ApptReminderType type, TimeSpan tsPrior,
                                                              bool isSendAll           = true, CommType priority1 = CommType.Preferred, CommType priority2 = CommType.Text, CommType priority3 = CommType.Email,
                                                              TimeSpan doNotSendWithin = default(TimeSpan), bool isAutoReplyEnabled = true)
        {
            ApptReminderRule clinicRule = ApptReminderRules.CreateDefaultReminderRule(type, clinicNum);

            clinicRule.TSPrior   = tsPrior;
            clinicRule.IsSendAll = isSendAll;
            clinicRule.SendOrder = string.Join(",", new List <CommType>()
            {
                priority1, priority2, priority3
            }.Select(x => ((int)x).ToString()).ToArray());
            clinicRule.DoNotSendWithin = doNotSendWithin;
            if (type == ApptReminderType.PatientPortalInvite && clinicNum > 0)
            {
                clinicRule.SendOrder = "2";              //Email only
                clinicRule.IsSendAll = false;
                if (ClinicPrefs.Upsert(PrefName.PatientPortalInviteEnabled, clinicNum, "1")
                    | ClinicPrefs.Upsert(PrefName.PatientPortalInviteUseDefaults, clinicNum, "0"))
                {
                    ClinicPrefs.RefreshCache();
                }
            }
            clinicRule.IsAutoReplyEnabled = isAutoReplyEnabled;
            ApptReminderRules.Insert(clinicRule);
            return(clinicRule);
        }
 private void butDelete_Click(object sender, EventArgs e)
 {
     if (ApptReminderRuleCur.IsAutoReplyEnabled &&
         ConfirmationRequests.GetPendingForRule(ApptReminderRuleCur.ApptReminderRuleNum).Count > 0 &&
         !MsgBox.Show(this, MsgBoxButtons.OKCancel, "Outstanding confirmation text messages associated to this appointment rule were found.  " +
                      "Auto reply text messages will no longer be sent.  Continue?"))
     {
         return;
     }
     ApptReminderRuleCur = null;
     DialogResult        = DialogResult.OK;
 }
Ejemplo n.º 11
0
 ///<summary>Inserts one ApptReminderRule into the database.  Returns the new priKey.  Doesn't use the cache.</summary>
 public static long InsertNoCache(ApptReminderRule apptReminderRule)
 {
     if (DataConnection.DBtype == DatabaseType.MySql)
     {
         return(InsertNoCache(apptReminderRule, false));
     }
     else
     {
         if (DataConnection.DBtype == DatabaseType.Oracle)
         {
             apptReminderRule.ApptReminderRuleNum = DbHelper.GetNextOracleKey("apptreminderrule", "ApptReminderRuleNum");                  //Cacheless method
         }
         return(InsertNoCache(apptReminderRule, true));
     }
 }
Ejemplo n.º 12
0
        private void gridRemindersMain_CellDoubleClick(object sender, ODGridClickEventArgs e)
        {
            if (!Security.IsAuthorized(Permissions.EServicesSetup))
            {
                return;
            }
            if (e.Row < 0 || !(gridRemindersMain.ListGridRows[e.Row].Tag is ApptReminderRule))
            {
                return;                //we did not click on a valid row.
            }
            if (_ecClinicCur != null && _ecClinicCur.ClinicNum > 0 && _ecClinicCur.IsConfirmDefault && !SwitchFromDefaults())
            {
                return;
            }
            ApptReminderRule arr = (ApptReminderRule)gridRemindersMain.ListGridRows[e.Row].Tag;
            int idx = _dictClinicRules[_clinicRuleClinicNum].IndexOf(arr);
            FormApptReminderRuleEdit FormARRE = new FormApptReminderRuleEdit(arr, _dictClinicRules[_clinicRuleClinicNum]);

            FormARRE.ShowDialog();
            if (FormARRE.DialogResult != DialogResult.OK)
            {
                return;
            }
            if (FormARRE.ApptReminderRuleCur == null)           //Delete
            {
                _dictClinicRules[_clinicRuleClinicNum].RemoveAt(idx);
            }
            else if (FormARRE.ApptReminderRuleCur.IsNew)                                  //Insert
            {
                _dictClinicRules[_clinicRuleClinicNum].Add(FormARRE.ApptReminderRuleCur); //should never happen from the double click event
            }
            else                                                                          //Update
            {
                _dictClinicRules[_clinicRuleClinicNum][idx] = FormARRE.ApptReminderRuleCur;
            }
            if (FormARRE.IsPrefsChanged)
            {
                FillConfStatusesGrid();
            }
            FillRemindConfirmData();
        }
Ejemplo n.º 13
0
        private void butActivateReminder_Click(object sender, EventArgs e)
        {
            bool isApptRemindAutoEnabled = PrefC.GetBool(PrefName.ApptRemindAutoEnabled);

            isApptRemindAutoEnabled = !isApptRemindAutoEnabled;
            Prefs.UpdateBool(PrefName.ApptRemindAutoEnabled, isApptRemindAutoEnabled);
            SecurityLogs.MakeLogEntry(Permissions.Setup, 0, "Automated appointment eReminders " + (isApptRemindAutoEnabled ? "activated" : "deactivated") + ".");
            Prefs.RefreshCache();
            Signalods.SetInvalid(InvalidType.Prefs);
            FillECRActivationButtons();
            //Add two default reminder rules if none exists.
            if (isApptRemindAutoEnabled && _dictClinicRules[0].Count(x => x.TypeCur == ApptReminderType.Reminder) == 0)
            {
                ApptReminderRule arr = ApptReminderRules.CreateDefaultReminderRule(ApptReminderType.Reminder, 0);             //defaults to 3 hours before appt
                _dictClinicRules[0].Add(arr);
                ApptReminderRule arr2 = ApptReminderRules.CreateDefaultReminderRule(ApptReminderType.Reminder, 0);
                arr2.TSPrior = TimeSpan.FromDays(2);
                _dictClinicRules[0].Add(arr2);
                FillRemindConfirmData();
            }
        }
Ejemplo n.º 14
0
        private void butActivateConfirm_Click(object sender, EventArgs e)
        {
            if (!WebServiceMainHQProxy.IsEServiceActive(_signupOut, eServiceCode.ConfirmationRequest))             //Not yet activated with HQ.
            {
                MsgBox.Show(this, "You must first signup for eConfirmations via the Signup tab before activating eConfirmations.");
                return;
            }
            bool isApptConfirmAutoEnabled = PrefC.GetBool(PrefName.ApptConfirmAutoEnabled);

            isApptConfirmAutoEnabled = !isApptConfirmAutoEnabled;
            Prefs.UpdateBool(PrefName.ApptConfirmAutoEnabled, isApptConfirmAutoEnabled);
            SecurityLogs.MakeLogEntry(Permissions.Setup, 0, "Automated appointment eConfirmations " + (isApptConfirmAutoEnabled ? "activated" : "deactivated") + ".");
            Prefs.RefreshCache();
            Signalods.SetInvalid(InvalidType.Prefs);
            FillECRActivationButtons();
            //Add a default confirmation rule if none exists.
            if (isApptConfirmAutoEnabled && _dictClinicRules[0].Count(x => x.TypeCur == ApptReminderType.ConfirmationFutureDay) == 0)
            {
                ApptReminderRule arr = ApptReminderRules.CreateDefaultReminderRule(ApptReminderType.ConfirmationFutureDay, 0);             //defaults to 7 days before appt
                _dictClinicRules[0].Add(arr);
                FillRemindConfirmData();
            }
        }
Ejemplo n.º 15
0
        private void gridPatPortalInviteRules_CellDoubleClick(object sender, ODGridClickEventArgs e)
        {
            if (!Security.IsAuthorized(Permissions.EServicesSetup))
            {
                return;
            }
            if (e.Row < 0 || !(gridPatPortalInviteRules.Rows[e.Row].Tag is ApptReminderRule))
            {
                return;                //we did not click on a valid row.
            }
            if (_clinicCurPPInvite != null && _clinicCurPPInvite.ClinicNum > 0 && _useDefaultsPPInvite && !SwitchFromDefaultsPPInvites())
            {
                return;
            }
            ApptReminderRule arr = (ApptReminderRule)gridPatPortalInviteRules.Rows[e.Row].Tag;
            int idx = _listPatPortalInviteRules.IndexOf(arr);
            FormApptReminderRuleEdit FormARRE = new FormApptReminderRuleEdit(arr);

            FormARRE.ShowDialog();
            if (FormARRE.DialogResult != DialogResult.OK)
            {
                return;
            }
            if (FormARRE.ApptReminderRuleCur == null)           //Delete
            {
                _listPatPortalInviteRules.RemoveAt(idx);
            }
            else if (FormARRE.ApptReminderRuleCur.IsNew)                     //Insert
            {
                _listPatPortalInviteRules.Add(FormARRE.ApptReminderRuleCur); //should never happen from the double click event
            }
            else                                                             //Update
            {
                _listPatPortalInviteRules[idx] = FormARRE.ApptReminderRuleCur;
            }
            FillPatPortalInvites();
        }
Ejemplo n.º 16
0
        private void butAddPPInviteRule_Click(object sender, EventArgs e)
        {
            if (_clinicCurPPInvite.ClinicNum > 0 && _useDefaultsPPInvite && !SwitchFromDefaultsPPInvites())
            {
                return;
            }
            ApptReminderRule         arr      = ApptReminderRules.CreateDefaultReminderRule(ApptReminderType.PatientPortalInvite, _clinicCurPPInvite.ClinicNum);
            FormApptReminderRuleEdit FormARRE = new FormApptReminderRuleEdit(arr);

            FormARRE.ShowDialog();
            if (FormARRE.DialogResult != DialogResult.OK)
            {
                return;
            }
            if (FormARRE.ApptReminderRuleCur == null || FormARRE.ApptReminderRuleCur.IsNew)           //Delete or Update
            //Nothing to delete or update, this was a new rule.
            {
            }
            else              //Insert
            {
                _listPatPortalInviteRules.Add(FormARRE.ApptReminderRuleCur);
            }
            FillPatPortalInvites();
        }
Ejemplo n.º 17
0
        ///<summary>Inserts one ApptReminderRule into the database.  Provides option to use the existing priKey.</summary>
        public static long Insert(ApptReminderRule apptReminderRule, bool useExistingPK)
        {
            if (!useExistingPK && PrefC.RandomKeys)
            {
                apptReminderRule.ApptReminderRuleNum = ReplicationServers.GetKey("apptreminderrule", "ApptReminderRuleNum");
            }
            string command = "INSERT INTO apptreminderrule (";

            if (useExistingPK || PrefC.RandomKeys)
            {
                command += "ApptReminderRuleNum,";
            }
            command += "TypeCur,TSPrior,SendOrder,IsSendAll,TemplateSMS,TemplateEmailSubject,TemplateEmail,ClinicNum,TemplateSMSAggShared,TemplateSMSAggPerAppt,TemplateEmailSubjAggShared,TemplateEmailAggShared,TemplateEmailAggPerAppt,DoNotSendWithin) VALUES(";
            if (useExistingPK || PrefC.RandomKeys)
            {
                command += POut.Long(apptReminderRule.ApptReminderRuleNum) + ",";
            }
            command +=
                POut.Int((int)apptReminderRule.TypeCur) + ","
                + "'" + POut.Long(apptReminderRule.TSPrior.Ticks) + "',"
                + "'" + POut.String(apptReminderRule.SendOrder) + "',"
                + POut.Bool(apptReminderRule.IsSendAll) + ","
                + DbHelper.ParamChar + "paramTemplateSMS,"
                + DbHelper.ParamChar + "paramTemplateEmailSubject,"
                + DbHelper.ParamChar + "paramTemplateEmail,"
                + POut.Long(apptReminderRule.ClinicNum) + ","
                + DbHelper.ParamChar + "paramTemplateSMSAggShared,"
                + DbHelper.ParamChar + "paramTemplateSMSAggPerAppt,"
                + DbHelper.ParamChar + "paramTemplateEmailSubjAggShared,"
                + DbHelper.ParamChar + "paramTemplateEmailAggShared,"
                + DbHelper.ParamChar + "paramTemplateEmailAggPerAppt,"
                + "'" + POut.Long(apptReminderRule.DoNotSendWithin.Ticks) + "')";
            if (apptReminderRule.TemplateSMS == null)
            {
                apptReminderRule.TemplateSMS = "";
            }
            OdSqlParameter paramTemplateSMS = new OdSqlParameter("paramTemplateSMS", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateSMS));

            if (apptReminderRule.TemplateEmailSubject == null)
            {
                apptReminderRule.TemplateEmailSubject = "";
            }
            OdSqlParameter paramTemplateEmailSubject = new OdSqlParameter("paramTemplateEmailSubject", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmailSubject));

            if (apptReminderRule.TemplateEmail == null)
            {
                apptReminderRule.TemplateEmail = "";
            }
            OdSqlParameter paramTemplateEmail = new OdSqlParameter("paramTemplateEmail", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmail));

            if (apptReminderRule.TemplateSMSAggShared == null)
            {
                apptReminderRule.TemplateSMSAggShared = "";
            }
            OdSqlParameter paramTemplateSMSAggShared = new OdSqlParameter("paramTemplateSMSAggShared", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateSMSAggShared));

            if (apptReminderRule.TemplateSMSAggPerAppt == null)
            {
                apptReminderRule.TemplateSMSAggPerAppt = "";
            }
            OdSqlParameter paramTemplateSMSAggPerAppt = new OdSqlParameter("paramTemplateSMSAggPerAppt", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateSMSAggPerAppt));

            if (apptReminderRule.TemplateEmailSubjAggShared == null)
            {
                apptReminderRule.TemplateEmailSubjAggShared = "";
            }
            OdSqlParameter paramTemplateEmailSubjAggShared = new OdSqlParameter("paramTemplateEmailSubjAggShared", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmailSubjAggShared));

            if (apptReminderRule.TemplateEmailAggShared == null)
            {
                apptReminderRule.TemplateEmailAggShared = "";
            }
            OdSqlParameter paramTemplateEmailAggShared = new OdSqlParameter("paramTemplateEmailAggShared", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmailAggShared));

            if (apptReminderRule.TemplateEmailAggPerAppt == null)
            {
                apptReminderRule.TemplateEmailAggPerAppt = "";
            }
            OdSqlParameter paramTemplateEmailAggPerAppt = new OdSqlParameter("paramTemplateEmailAggPerAppt", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmailAggPerAppt));

            if (useExistingPK || PrefC.RandomKeys)
            {
                Db.NonQ(command, paramTemplateSMS, paramTemplateEmailSubject, paramTemplateEmail, paramTemplateSMSAggShared, paramTemplateSMSAggPerAppt, paramTemplateEmailSubjAggShared, paramTemplateEmailAggShared, paramTemplateEmailAggPerAppt);
            }
            else
            {
                apptReminderRule.ApptReminderRuleNum = Db.NonQ(command, true, "ApptReminderRuleNum", "apptReminderRule", paramTemplateSMS, paramTemplateEmailSubject, paramTemplateEmail, paramTemplateSMSAggShared, paramTemplateSMSAggPerAppt, paramTemplateEmailSubjAggShared, paramTemplateEmailAggShared, paramTemplateEmailAggPerAppt);
            }
            return(apptReminderRule.ApptReminderRuleNum);
        }
Ejemplo n.º 18
0
        ///<summary>Inserts one ApptReminderRule into the database.  Provides option to use the existing priKey.  Doesn't use the cache.</summary>
        public static long InsertNoCache(ApptReminderRule apptReminderRule, bool useExistingPK)
        {
            bool   isRandomKeys = Prefs.GetBoolNoCache(PrefName.RandomPrimaryKeys);
            string command      = "INSERT INTO apptreminderrule (";

            if (!useExistingPK && isRandomKeys)
            {
                apptReminderRule.ApptReminderRuleNum = ReplicationServers.GetKeyNoCache("apptreminderrule", "ApptReminderRuleNum");
            }
            if (isRandomKeys || useExistingPK)
            {
                command += "ApptReminderRuleNum,";
            }
            command += "TypeCur,TSPrior,SendOrder,IsSendAll,TemplateSMS,TemplateEmailSubject,TemplateEmail,ClinicNum,TemplateSMSAggShared,TemplateSMSAggPerAppt,TemplateEmailSubjAggShared,TemplateEmailAggShared,TemplateEmailAggPerAppt,DoNotSendWithin,IsEnabled,TemplateAutoReply,TemplateAutoReplyAgg,IsAutoReplyEnabled) VALUES(";
            if (isRandomKeys || useExistingPK)
            {
                command += POut.Long(apptReminderRule.ApptReminderRuleNum) + ",";
            }
            command +=
                POut.Int((int)apptReminderRule.TypeCur) + ","
                + "'" + POut.Long(apptReminderRule.TSPrior.Ticks) + "',"
                + "'" + POut.String(apptReminderRule.SendOrder) + "',"
                + POut.Bool(apptReminderRule.IsSendAll) + ","
                + DbHelper.ParamChar + "paramTemplateSMS,"
                + DbHelper.ParamChar + "paramTemplateEmailSubject,"
                + DbHelper.ParamChar + "paramTemplateEmail,"
                + POut.Long(apptReminderRule.ClinicNum) + ","
                + DbHelper.ParamChar + "paramTemplateSMSAggShared,"
                + DbHelper.ParamChar + "paramTemplateSMSAggPerAppt,"
                + DbHelper.ParamChar + "paramTemplateEmailSubjAggShared,"
                + DbHelper.ParamChar + "paramTemplateEmailAggShared,"
                + DbHelper.ParamChar + "paramTemplateEmailAggPerAppt,"
                + "'" + POut.Long(apptReminderRule.DoNotSendWithin.Ticks) + "',"
                + POut.Bool(apptReminderRule.IsEnabled) + ","
                + DbHelper.ParamChar + "paramTemplateAutoReply,"
                + DbHelper.ParamChar + "paramTemplateAutoReplyAgg,"
                + POut.Bool(apptReminderRule.IsAutoReplyEnabled) + ")";
            if (apptReminderRule.TemplateSMS == null)
            {
                apptReminderRule.TemplateSMS = "";
            }
            OdSqlParameter paramTemplateSMS = new OdSqlParameter("paramTemplateSMS", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateSMS));

            if (apptReminderRule.TemplateEmailSubject == null)
            {
                apptReminderRule.TemplateEmailSubject = "";
            }
            OdSqlParameter paramTemplateEmailSubject = new OdSqlParameter("paramTemplateEmailSubject", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmailSubject));

            if (apptReminderRule.TemplateEmail == null)
            {
                apptReminderRule.TemplateEmail = "";
            }
            OdSqlParameter paramTemplateEmail = new OdSqlParameter("paramTemplateEmail", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmail));

            if (apptReminderRule.TemplateSMSAggShared == null)
            {
                apptReminderRule.TemplateSMSAggShared = "";
            }
            OdSqlParameter paramTemplateSMSAggShared = new OdSqlParameter("paramTemplateSMSAggShared", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateSMSAggShared));

            if (apptReminderRule.TemplateSMSAggPerAppt == null)
            {
                apptReminderRule.TemplateSMSAggPerAppt = "";
            }
            OdSqlParameter paramTemplateSMSAggPerAppt = new OdSqlParameter("paramTemplateSMSAggPerAppt", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateSMSAggPerAppt));

            if (apptReminderRule.TemplateEmailSubjAggShared == null)
            {
                apptReminderRule.TemplateEmailSubjAggShared = "";
            }
            OdSqlParameter paramTemplateEmailSubjAggShared = new OdSqlParameter("paramTemplateEmailSubjAggShared", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmailSubjAggShared));

            if (apptReminderRule.TemplateEmailAggShared == null)
            {
                apptReminderRule.TemplateEmailAggShared = "";
            }
            OdSqlParameter paramTemplateEmailAggShared = new OdSqlParameter("paramTemplateEmailAggShared", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmailAggShared));

            if (apptReminderRule.TemplateEmailAggPerAppt == null)
            {
                apptReminderRule.TemplateEmailAggPerAppt = "";
            }
            OdSqlParameter paramTemplateEmailAggPerAppt = new OdSqlParameter("paramTemplateEmailAggPerAppt", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmailAggPerAppt));

            if (apptReminderRule.TemplateAutoReply == null)
            {
                apptReminderRule.TemplateAutoReply = "";
            }
            OdSqlParameter paramTemplateAutoReply = new OdSqlParameter("paramTemplateAutoReply", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateAutoReply));

            if (apptReminderRule.TemplateAutoReplyAgg == null)
            {
                apptReminderRule.TemplateAutoReplyAgg = "";
            }
            OdSqlParameter paramTemplateAutoReplyAgg = new OdSqlParameter("paramTemplateAutoReplyAgg", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateAutoReplyAgg));

            if (useExistingPK || isRandomKeys)
            {
                Db.NonQ(command, paramTemplateSMS, paramTemplateEmailSubject, paramTemplateEmail, paramTemplateSMSAggShared, paramTemplateSMSAggPerAppt, paramTemplateEmailSubjAggShared, paramTemplateEmailAggShared, paramTemplateEmailAggPerAppt, paramTemplateAutoReply, paramTemplateAutoReplyAgg);
            }
            else
            {
                apptReminderRule.ApptReminderRuleNum = Db.NonQ(command, true, "ApptReminderRuleNum", "apptReminderRule", paramTemplateSMS, paramTemplateEmailSubject, paramTemplateEmail, paramTemplateSMSAggShared, paramTemplateSMSAggPerAppt, paramTemplateEmailSubjAggShared, paramTemplateEmailAggShared, paramTemplateEmailAggPerAppt, paramTemplateAutoReply, paramTemplateAutoReplyAgg);
            }
            return(apptReminderRule.ApptReminderRuleNum);
        }
Ejemplo n.º 19
0
        ///<summary>Updates one ApptReminderRule 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(ApptReminderRule apptReminderRule, ApptReminderRule oldApptReminderRule)
        {
            string command = "";

            if (apptReminderRule.TypeCur != oldApptReminderRule.TypeCur)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "TypeCur = " + POut.Int((int)apptReminderRule.TypeCur) + "";
            }
            if (apptReminderRule.TSPrior != oldApptReminderRule.TSPrior)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "TSPrior = '" + POut.Long(apptReminderRule.TSPrior.Ticks) + "'";
            }
            if (apptReminderRule.SendOrder != oldApptReminderRule.SendOrder)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "SendOrder = '" + POut.String(apptReminderRule.SendOrder) + "'";
            }
            if (apptReminderRule.IsSendAll != oldApptReminderRule.IsSendAll)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "IsSendAll = " + POut.Bool(apptReminderRule.IsSendAll) + "";
            }
            if (apptReminderRule.TemplateSMS != oldApptReminderRule.TemplateSMS)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "TemplateSMS = " + DbHelper.ParamChar + "paramTemplateSMS";
            }
            if (apptReminderRule.TemplateEmailSubject != oldApptReminderRule.TemplateEmailSubject)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "TemplateEmailSubject = " + DbHelper.ParamChar + "paramTemplateEmailSubject";
            }
            if (apptReminderRule.TemplateEmail != oldApptReminderRule.TemplateEmail)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "TemplateEmail = " + DbHelper.ParamChar + "paramTemplateEmail";
            }
            if (apptReminderRule.ClinicNum != oldApptReminderRule.ClinicNum)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "ClinicNum = " + POut.Long(apptReminderRule.ClinicNum) + "";
            }
            if (apptReminderRule.TemplateSMSAggShared != oldApptReminderRule.TemplateSMSAggShared)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "TemplateSMSAggShared = " + DbHelper.ParamChar + "paramTemplateSMSAggShared";
            }
            if (apptReminderRule.TemplateSMSAggPerAppt != oldApptReminderRule.TemplateSMSAggPerAppt)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "TemplateSMSAggPerAppt = " + DbHelper.ParamChar + "paramTemplateSMSAggPerAppt";
            }
            if (apptReminderRule.TemplateEmailSubjAggShared != oldApptReminderRule.TemplateEmailSubjAggShared)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "TemplateEmailSubjAggShared = " + DbHelper.ParamChar + "paramTemplateEmailSubjAggShared";
            }
            if (apptReminderRule.TemplateEmailAggShared != oldApptReminderRule.TemplateEmailAggShared)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "TemplateEmailAggShared = " + DbHelper.ParamChar + "paramTemplateEmailAggShared";
            }
            if (apptReminderRule.TemplateEmailAggPerAppt != oldApptReminderRule.TemplateEmailAggPerAppt)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "TemplateEmailAggPerAppt = " + DbHelper.ParamChar + "paramTemplateEmailAggPerAppt";
            }
            if (apptReminderRule.DoNotSendWithin != oldApptReminderRule.DoNotSendWithin)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "DoNotSendWithin = '" + POut.Long(apptReminderRule.DoNotSendWithin.Ticks) + "'";
            }
            if (apptReminderRule.IsEnabled != oldApptReminderRule.IsEnabled)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "IsEnabled = " + POut.Bool(apptReminderRule.IsEnabled) + "";
            }
            if (apptReminderRule.TemplateAutoReply != oldApptReminderRule.TemplateAutoReply)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "TemplateAutoReply = " + DbHelper.ParamChar + "paramTemplateAutoReply";
            }
            if (apptReminderRule.TemplateAutoReplyAgg != oldApptReminderRule.TemplateAutoReplyAgg)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "TemplateAutoReplyAgg = " + DbHelper.ParamChar + "paramTemplateAutoReplyAgg";
            }
            if (apptReminderRule.IsAutoReplyEnabled != oldApptReminderRule.IsAutoReplyEnabled)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "IsAutoReplyEnabled = " + POut.Bool(apptReminderRule.IsAutoReplyEnabled) + "";
            }
            if (command == "")
            {
                return(false);
            }
            if (apptReminderRule.TemplateSMS == null)
            {
                apptReminderRule.TemplateSMS = "";
            }
            OdSqlParameter paramTemplateSMS = new OdSqlParameter("paramTemplateSMS", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateSMS));

            if (apptReminderRule.TemplateEmailSubject == null)
            {
                apptReminderRule.TemplateEmailSubject = "";
            }
            OdSqlParameter paramTemplateEmailSubject = new OdSqlParameter("paramTemplateEmailSubject", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmailSubject));

            if (apptReminderRule.TemplateEmail == null)
            {
                apptReminderRule.TemplateEmail = "";
            }
            OdSqlParameter paramTemplateEmail = new OdSqlParameter("paramTemplateEmail", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmail));

            if (apptReminderRule.TemplateSMSAggShared == null)
            {
                apptReminderRule.TemplateSMSAggShared = "";
            }
            OdSqlParameter paramTemplateSMSAggShared = new OdSqlParameter("paramTemplateSMSAggShared", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateSMSAggShared));

            if (apptReminderRule.TemplateSMSAggPerAppt == null)
            {
                apptReminderRule.TemplateSMSAggPerAppt = "";
            }
            OdSqlParameter paramTemplateSMSAggPerAppt = new OdSqlParameter("paramTemplateSMSAggPerAppt", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateSMSAggPerAppt));

            if (apptReminderRule.TemplateEmailSubjAggShared == null)
            {
                apptReminderRule.TemplateEmailSubjAggShared = "";
            }
            OdSqlParameter paramTemplateEmailSubjAggShared = new OdSqlParameter("paramTemplateEmailSubjAggShared", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmailSubjAggShared));

            if (apptReminderRule.TemplateEmailAggShared == null)
            {
                apptReminderRule.TemplateEmailAggShared = "";
            }
            OdSqlParameter paramTemplateEmailAggShared = new OdSqlParameter("paramTemplateEmailAggShared", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmailAggShared));

            if (apptReminderRule.TemplateEmailAggPerAppt == null)
            {
                apptReminderRule.TemplateEmailAggPerAppt = "";
            }
            OdSqlParameter paramTemplateEmailAggPerAppt = new OdSqlParameter("paramTemplateEmailAggPerAppt", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmailAggPerAppt));

            if (apptReminderRule.TemplateAutoReply == null)
            {
                apptReminderRule.TemplateAutoReply = "";
            }
            OdSqlParameter paramTemplateAutoReply = new OdSqlParameter("paramTemplateAutoReply", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateAutoReply));

            if (apptReminderRule.TemplateAutoReplyAgg == null)
            {
                apptReminderRule.TemplateAutoReplyAgg = "";
            }
            OdSqlParameter paramTemplateAutoReplyAgg = new OdSqlParameter("paramTemplateAutoReplyAgg", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateAutoReplyAgg));

            command = "UPDATE apptreminderrule SET " + command
                      + " WHERE ApptReminderRuleNum = " + POut.Long(apptReminderRule.ApptReminderRuleNum);
            Db.NonQ(command, paramTemplateSMS, paramTemplateEmailSubject, paramTemplateEmail, paramTemplateSMSAggShared, paramTemplateSMSAggPerAppt, paramTemplateEmailSubjAggShared, paramTemplateEmailAggShared, paramTemplateEmailAggPerAppt, paramTemplateAutoReply, paramTemplateAutoReplyAgg);
            return(true);
        }
Ejemplo n.º 20
0
        ///<summary>Updates one ApptReminderRule in the database.</summary>
        public static void Update(ApptReminderRule apptReminderRule)
        {
            string command = "UPDATE apptreminderrule SET "
                             + "TypeCur                   =  " + POut.Int((int)apptReminderRule.TypeCur) + ", "
                             + "TSPrior                   =  " + POut.Long(apptReminderRule.TSPrior.Ticks) + ", "
                             + "SendOrder                 = '" + POut.String(apptReminderRule.SendOrder) + "', "
                             + "IsSendAll                 =  " + POut.Bool(apptReminderRule.IsSendAll) + ", "
                             + "TemplateSMS               =  " + DbHelper.ParamChar + "paramTemplateSMS, "
                             + "TemplateEmailSubject      =  " + DbHelper.ParamChar + "paramTemplateEmailSubject, "
                             + "TemplateEmail             =  " + DbHelper.ParamChar + "paramTemplateEmail, "
                             + "ClinicNum                 =  " + POut.Long(apptReminderRule.ClinicNum) + ", "
                             + "TemplateSMSAggShared      =  " + DbHelper.ParamChar + "paramTemplateSMSAggShared, "
                             + "TemplateSMSAggPerAppt     =  " + DbHelper.ParamChar + "paramTemplateSMSAggPerAppt, "
                             + "TemplateEmailSubjAggShared=  " + DbHelper.ParamChar + "paramTemplateEmailSubjAggShared, "
                             + "TemplateEmailAggShared    =  " + DbHelper.ParamChar + "paramTemplateEmailAggShared, "
                             + "TemplateEmailAggPerAppt   =  " + DbHelper.ParamChar + "paramTemplateEmailAggPerAppt, "
                             + "DoNotSendWithin           =  " + POut.Long(apptReminderRule.DoNotSendWithin.Ticks) + ", "
                             + "IsEnabled                 =  " + POut.Bool(apptReminderRule.IsEnabled) + ", "
                             + "TemplateAutoReply         =  " + DbHelper.ParamChar + "paramTemplateAutoReply, "
                             + "TemplateAutoReplyAgg      =  " + DbHelper.ParamChar + "paramTemplateAutoReplyAgg, "
                             + "IsAutoReplyEnabled        =  " + POut.Bool(apptReminderRule.IsAutoReplyEnabled) + " "
                             + "WHERE ApptReminderRuleNum = " + POut.Long(apptReminderRule.ApptReminderRuleNum);

            if (apptReminderRule.TemplateSMS == null)
            {
                apptReminderRule.TemplateSMS = "";
            }
            OdSqlParameter paramTemplateSMS = new OdSqlParameter("paramTemplateSMS", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateSMS));

            if (apptReminderRule.TemplateEmailSubject == null)
            {
                apptReminderRule.TemplateEmailSubject = "";
            }
            OdSqlParameter paramTemplateEmailSubject = new OdSqlParameter("paramTemplateEmailSubject", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmailSubject));

            if (apptReminderRule.TemplateEmail == null)
            {
                apptReminderRule.TemplateEmail = "";
            }
            OdSqlParameter paramTemplateEmail = new OdSqlParameter("paramTemplateEmail", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmail));

            if (apptReminderRule.TemplateSMSAggShared == null)
            {
                apptReminderRule.TemplateSMSAggShared = "";
            }
            OdSqlParameter paramTemplateSMSAggShared = new OdSqlParameter("paramTemplateSMSAggShared", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateSMSAggShared));

            if (apptReminderRule.TemplateSMSAggPerAppt == null)
            {
                apptReminderRule.TemplateSMSAggPerAppt = "";
            }
            OdSqlParameter paramTemplateSMSAggPerAppt = new OdSqlParameter("paramTemplateSMSAggPerAppt", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateSMSAggPerAppt));

            if (apptReminderRule.TemplateEmailSubjAggShared == null)
            {
                apptReminderRule.TemplateEmailSubjAggShared = "";
            }
            OdSqlParameter paramTemplateEmailSubjAggShared = new OdSqlParameter("paramTemplateEmailSubjAggShared", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmailSubjAggShared));

            if (apptReminderRule.TemplateEmailAggShared == null)
            {
                apptReminderRule.TemplateEmailAggShared = "";
            }
            OdSqlParameter paramTemplateEmailAggShared = new OdSqlParameter("paramTemplateEmailAggShared", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmailAggShared));

            if (apptReminderRule.TemplateEmailAggPerAppt == null)
            {
                apptReminderRule.TemplateEmailAggPerAppt = "";
            }
            OdSqlParameter paramTemplateEmailAggPerAppt = new OdSqlParameter("paramTemplateEmailAggPerAppt", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateEmailAggPerAppt));

            if (apptReminderRule.TemplateAutoReply == null)
            {
                apptReminderRule.TemplateAutoReply = "";
            }
            OdSqlParameter paramTemplateAutoReply = new OdSqlParameter("paramTemplateAutoReply", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateAutoReply));

            if (apptReminderRule.TemplateAutoReplyAgg == null)
            {
                apptReminderRule.TemplateAutoReplyAgg = "";
            }
            OdSqlParameter paramTemplateAutoReplyAgg = new OdSqlParameter("paramTemplateAutoReplyAgg", OdDbType.Text, POut.StringParam(apptReminderRule.TemplateAutoReplyAgg));

            Db.NonQ(command, paramTemplateSMS, paramTemplateEmailSubject, paramTemplateEmail, paramTemplateSMSAggShared, paramTemplateSMSAggPerAppt, paramTemplateEmailSubjAggShared, paramTemplateEmailAggShared, paramTemplateEmailAggPerAppt, paramTemplateAutoReply, paramTemplateAutoReplyAgg);
        }
Ejemplo n.º 21
0
 ///<summary>Inserts one ApptReminderRule into the database.  Returns the new priKey.  Doesn't use the cache.</summary>
 public static long InsertNoCache(ApptReminderRule apptReminderRule)
 {
     return(InsertNoCache(apptReminderRule, false));
 }
Ejemplo n.º 22
0
 private void butDelete_Click(object sender, EventArgs e)
 {
     ApptReminderRuleCur = null;
     DialogResult        = DialogResult.OK;
 }