Ejemplo n.º 1
0
        private void butClose_Click(object sender, EventArgs e)
        {
            if (!textSubInterval.IsValid)
            {
                MsgBox.Show(this, "Please fix data entry errors first.");
                return;
            }
            if (comboPayType.SelectedIndex < 0)
            {
                MsgBox.Show(this, "Please select a payment type.");
                return;
            }
            Program prog = Programs.GetCur(ProgramName.FHIR);

            prog.Enabled = checkEnabled.Checked;
            Programs.Update(prog);
            ProgramProperty progProp = ProgramProperties.GetPropByDesc("SubscriptionProcessingFrequency", ProgramProperties.GetForProgram(prog.ProgramNum));

            ProgramProperties.UpdateProgramPropertyWithValue(progProp, textSubInterval.Text);
            DataValid.SetInvalid(InvalidType.Programs);
            if (Prefs.UpdateLong(PrefName.ApiPaymentType, comboPayType.GetSelectedDefNum()))
            {
                DataValid.SetInvalid(InvalidType.Prefs);
            }
            Close();
        }
Ejemplo n.º 2
0
        private void butClose_Click(object sender, EventArgs e)
        {
            if (textSubInterval.errorProvider1.GetError(textSubInterval) != "")
            {
                MsgBox.Show(this, "Please fix data entry errors first.");
                return;
            }
            bool changed = false;

            foreach (APIKey apiKeyHQ in _listApiKeysHQ)
            {
                APIKey apiKeyLocal = _listApiKeysLocal.FirstOrDefault(x => x.Key == apiKeyHQ.Key);
                if (apiKeyLocal == null ||           //A new key was generated but then Cancel was clicked on FormFHIRAPIKeyEdit.
                    apiKeyLocal.DeveloperName != apiKeyHQ.DeveloperName ||
                    apiKeyLocal.DeveloperEmail != apiKeyHQ.DeveloperEmail ||
                    apiKeyLocal.DeveloperPhone != apiKeyHQ.DeveloperPhone ||
                    apiKeyLocal.ListPermissions.Any(x => !apiKeyHQ.ListPermissions.Contains(x)) ||
                    apiKeyHQ.ListPermissions.Any(x => !apiKeyLocal.ListPermissions.Contains(x)))
                {
                    changed = true;
                    break;
                }
            }
            if (changed && !UpdateKeysForOffice(_listApiKeysLocal))
            {
                return;
            }
            Program prog = Programs.GetCur(ProgramName.FHIR);

            prog.Enabled = checkEnabled.Checked;
            Programs.Update(prog);
            ProgramProperty progProp = ProgramProperties.GetPropByDesc("SubscriptionProcessingFrequency", ProgramProperties.GetForProgram(prog.ProgramNum));

            ProgramProperties.UpdateProgramPropertyWithValue(progProp, textSubInterval.Text);
            DataValid.SetInvalid(InvalidType.Programs);
            Close();
        }
Ejemplo n.º 3
0
 private void butOK_Click(object sender, System.EventArgs e)
 {
     #region Validation
     //if clinics are not enabled and the PayConnect program link is enabled, make sure there is a username and password set
     //if clinics are enabled, the program link can be enabled with blank username and/or password fields for some clinics
     //clinics with blank username and/or password will essentially not have PayConnect enabled
     //if 'Enable terminal processing' is checked then the practice/clinic will not need a username and password.
     if (checkEnabled.Checked && !checkTerminal.Checked && !PrefC.HasClinicsEnabled &&
         (textUsername.Text == "" || textPassword.Text == ""))
     {
         MsgBox.Show(this, "Please enter a username and password first.");
         return;
     }
     if (checkEnabled.Checked &&         //if PayConnect is enabled
         comboPaymentType.SelectedIndex < 0 &&               //and the payment type is not set
         (!PrefC.HasClinicsEnabled ||                  //and either clinics are not enabled (meaning this is the only set of username, password, payment type values)
          (textUsername.Text != "" && textPassword.Text != "")))               //or clinics are enabled and this clinic's link has a username and password set
     {
         MsgBox.Show(this, "Please select a payment type first.");
         return;
     }
     if (checkEnabled.Checked &&         //if PayConnect is enabled
         comboDefaultProcessing.SelectedIndex < 0)
     {
         MsgBox.Show(this, "Please select a default processing method type first.");
         return;
     }
     SynchWithHQ();            //if the user changes the HQ credentials, any clinic that had the same credentials will be kept in synch with HQ
     long clinicNum = 0;
     if (PrefC.HasClinicsEnabled)
     {
         clinicNum = _listUserClinicNums[comboClinic.SelectedIndex];
     }
     UpdateListProgramPropertiesForClinic(clinicNum);
     string payTypeCur;
     //make sure any other clinics with PayConnect enabled also have a payment type selected
     for (int i = 0; i < _listUserClinicNums.Count; i++)
     {
         if (!checkEnabled.Checked)                 //if program link is not enabled, do not bother checking the payment type selected
         {
             break;
         }
         payTypeCur = ProgramProperties.GetPropValFromList(_listProgProps, "PaymentType", _listUserClinicNums[i]);
         //if the program is enabled and the username and password fields are not blank,
         //PayConnect is enabled for this clinic so make sure the payment type is also set
         if (((ProgramProperties.GetPropValFromList(_listProgProps, "Username", _listUserClinicNums[i]) != "" &&         //if username set
               ProgramProperties.GetPropValFromList(_listProgProps, "Password", _listUserClinicNums[i]) != "") ||               //and password set
              ProgramProperties.GetPropValFromList(_listProgProps, "TerminalProcessingEnabled", _listUserClinicNums[i]) == "1") &&               //or terminal enabled
             !_listPaymentTypeDefs.Any(x => x.DefNum.ToString() == payTypeCur))                      //and paytype is not a valid DefNum
         {
             MsgBox.Show(this, "Please select the payment type for all clinics with PayConnect username and password set.");
             return;
         }
     }
     #endregion Validation
     #region Save
     if (_progCur.Enabled != checkEnabled.Checked)           //only update the program if the IsEnabled flag has changed
     {
         _progCur.Enabled = checkEnabled.Checked;
         Programs.Update(_progCur);
     }
     ProgramProperties.Sync(_listProgProps, _progCur.ProgramNum);
     //Find all clinics that have PayConnect online payments enabled
     _listProgProps.FindAll(x => x.PropertyDesc == PayConnect.ProgramProperties.PatientPortalPaymentsEnabled && PIn.Bool(x.PropertyValue)).ForEach(x => {
         //Find all XWeb program properties that we saved in this session.  Only clinics that have changes will have an XWeb property in memory.
         //This is needed to ensure that we don't disable XWeb online payments if someone
         // checks to use PayConnect online payments and then decides to keep it disabled during the same session.
         ProgramProperty ppXWebOnlinePayments = _listXWebWebPayProgProps.FirstOrDefault(y => y.ClinicNum == x.ClinicNum);
         if (ppXWebOnlinePayments != null)
         {
             ProgramProperties.UpdateProgramPropertyWithValue(ppXWebOnlinePayments, POut.Bool(false));
         }
     });
     #endregion Save
     DataValid.SetInvalid(InvalidType.Programs);
     DialogResult = DialogResult.OK;
 }