/// <summary> /// Display data in control based on data from ARow /// </summary> /// <param name="ARow"></param> public void ShowDetails(PmGeneralApplicationRow ARow) { ShowData(ARow); EnableDisableStatusRelatedDateFields(null, null); EnableDisableReceivingFieldAcceptanceDate(null, null); ApplicationCurrencyChanged(null, null); }
/// <summary> /// Display data in control based on data from ARow /// </summary> /// <param name="ARow"></param> public void ShowDetails(PmGeneralApplicationRow ARow) { // set member //FApplicationDR = ARow; ShowData(ARow); }
/// <summary> /// Read data from controls into ARow parameter /// </summary> /// <param name="ARow"></param> public void GetDetails(PmGeneralApplicationRow ARow) { GetDataFromControls(ARow); // this one needs to be done manually since this field is automatically be filled for GenApp but not for ShortTermApp record FMainDS.PmShortTermApplication[0].StApplicationType = cmbApplicationType.GetSelectedString(); }
private void GetDataFromControlsManual(PmGeneralApplicationRow ARow) { // need to make sure that partner key fields that are not referring to p_partner table // but to other tables like p_unit or p_person are set to NULL when they are empty (and // not to 0 as then foreign key constraints will fail) if ((txtFieldCharged.Text.Length != 0) && (Convert.ToInt64(txtFieldCharged.Text) == 0)) { FMainDS.PmShortTermApplication[0].SetStFieldChargedNull(); } if ((txtPlacementPerson.Text.Length != 0) && (Convert.ToInt64(txtPlacementPerson.Text) == 0)) { ARow.SetPlacementPartnerKeyNull(); } if ((FMainDS.PmShortTermApplication != null) && (FMainDS.PmShortTermApplication.Rows.Count > 0)) { if (txtEvent.Text.Length == 0) { FMainDS.PmShortTermApplication[0].SetConfirmedOptionCodeNull(); } else { FMainDS.PmShortTermApplication[0].ConfirmedOptionCode = TRemote.MPersonnel.Person.DataElements.WebConnectors.GetOutreachCode(Convert.ToInt64(txtEvent.Text)); } } }
private void GetDataFromControls(PmGeneralApplicationRow ARow, PmYearProgramApplicationRow AFieldAppRow) { ucoField.GetDetails(FApplicationDS.PmGeneralApplication[0]); ucoApplicant.GetDetails(FApplicationDS.PmGeneralApplication[0]); DataUtilities.CopyAllColumnValues(FApplicationDS.PmGeneralApplication[0], ARow); DataUtilities.CopyAllColumnValues(FApplicationDS.PmYearProgramApplication[0], AFieldAppRow); }
/// <summary> /// Display data in control based on data from ARow /// </summary> /// <param name="ARow"></param> public void ShowDetails(PmGeneralApplicationRow ARow) { // set member //FApplicationDR = ARow; ShowData(ARow); EnableDisableStatusRelatedDateFields(null, null); EnableDisableReceivingFieldAcceptanceDate(null, null); }
private void GetDataFromControls(PmGeneralApplicationRow ARow, PmShortTermApplicationRow AEventAppRow) { ucoEvent.GetDetails(FApplicationDS.PmGeneralApplication[0]); ucoApplicant.GetDetails(FApplicationDS.PmGeneralApplication[0]); ucoTravel.GetDetails(FApplicationDS.PmGeneralApplication[0]); DataUtilities.CopyAllColumnValues(FApplicationDS.PmGeneralApplication[0], ARow); DataUtilities.CopyAllColumnValues(FApplicationDS.PmShortTermApplication[0], AEventAppRow); }
private void EditApplication(System.Object sender, EventArgs e) { PmGeneralApplicationRow SelectedRow = GetSelectedApplication(); // Open the selected partner's Partner Edit screen at Personnel Applications TFrmPartnerEdit frm = new TFrmPartnerEdit(FPetraUtilsObject.GetForm()); frm.SetParameters(TScreenMode.smEdit, SelectedRow.PartnerKey, TPartnerEditTabPageEnum.petpPersonnelApplications); frm.Show(); frm.SelectApplication(SelectedRow.ApplicationKey, SelectedRow.RegistrationOffice); }
private void ValidateDataManual(PmGeneralApplicationRow ARow) { TVerificationResultCollection VerificationResultCollection = FPetraUtilsObject.VerificationResultCollection; TSharedPersonnelValidation_Personnel.ValidateGeneralApplicationManual(this, ARow, true, ref VerificationResultCollection, FValidationControlsDict); TSharedPersonnelValidation_Personnel.ValidateEventApplicationManual(this, FMainDS.PmShortTermApplication[0], ref VerificationResultCollection, FValidationControlsDict); }
private void ValidateDataManual(PmGeneralApplicationRow ARow) { TVerificationResultCollection VerificationResultCollection = FPetraUtilsObject.VerificationResultCollection; TSharedPersonnelValidation_Personnel.ValidateGeneralApplicationManual(this, ARow, false, ref VerificationResultCollection, FValidationControlsDict); TSharedPersonnelValidation_Personnel.ValidateFieldApplicationManual(this, FMainDS.PmYearProgramApplication[0], ref VerificationResultCollection, FValidationControlsDict); }
/// <summary> /// if attendee is not valid anymore, the attendee should be removed from pc_attendee table /// </summary> /// <returns></returns> private static bool IsAttendeeValid(ConferenceApplicationTDS AMainDS, string AOutreachPrefix, Int64 AAttendeeKey) { PmShortTermApplicationRow ShortTermRow = null; foreach (PmShortTermApplicationRow Row in AMainDS.PmShortTermApplication.Rows) { if ((Row.PartnerKey == AAttendeeKey) && (AOutreachPrefix.Length >= 5) && (Row.ConfirmedOptionCode.Substring(0, 5) == AOutreachPrefix.Substring(0, 5))) { ShortTermRow = Row; break; } } if (ShortTermRow == null) { return(false); } if (ShortTermRow.StBasicDeleteFlag) { return(false); } PmGeneralApplicationRow GeneralAppRow = (PmGeneralApplicationRow)AMainDS.PmGeneralApplication.Rows.Find( new object[] { ShortTermRow.PartnerKey, ShortTermRow.ApplicationKey, ShortTermRow.RegistrationOffice }); if (GeneralAppRow == null) { return(false); } if (GeneralAppRow.GenAppDeleteFlag) { return(false); } if (!(GeneralAppRow.GenApplicationStatus.StartsWith("H") || GeneralAppRow.GenApplicationStatus.StartsWith("A"))) { return(false); } return(true); }
private void ValidateDataManual(PmGeneralApplicationRow ARow) { TVerificationResultCollection VerificationResultCollection = FPetraUtilsObject.VerificationResultCollection; TSharedPersonnelValidation_Personnel.ValidateGeneralApplicationManual(this, ARow, true, ref VerificationResultCollection, FPetraUtilsObject.ValidationControlsDict); // We need to call the generated validation code for PmShortTermApplication manually as the UserControl's generate code calls // generated validation code only for the MasterTable, PmGeneralApplication! PmShortTermApplicationValidation.Validate(this, FMainDS.PmShortTermApplication[0], ref VerificationResultCollection, FValidationControlsDict); TSharedPersonnelValidation_Personnel.ValidateEventApplicationManual(this, FMainDS.PmShortTermApplication[0], ref VerificationResultCollection, FValidationControlsDict); }
private void ShowData(PmGeneralApplicationRow AGeneralAppRow, PmYearProgramApplicationRow AFieldAppRow) { // clear dataset and create a copy of the row to be displayed so Dataset contains only one set of records FApplicationDS.PmYearProgramApplication.Rows.Clear(); FApplicationDS.PmGeneralApplication.Rows.Clear(); PmGeneralApplicationRow GeneralAppRowCopy = (PmGeneralApplicationRow)FApplicationDS.PmGeneralApplication.NewRow(); PmYearProgramApplicationRow FieldAppRowCopy = (PmYearProgramApplicationRow)FApplicationDS.PmYearProgramApplication.NewRow(); DataUtilities.CopyAllColumnValues(AGeneralAppRow, GeneralAppRowCopy); DataUtilities.CopyAllColumnValues(AFieldAppRow, FieldAppRowCopy); FApplicationDS.PmGeneralApplication.Rows.Add(GeneralAppRowCopy); FApplicationDS.PmYearProgramApplication.Rows.Add(FieldAppRowCopy); ucoField.ShowDetails(GeneralAppRowCopy); ucoApplicant.ShowDetails(GeneralAppRowCopy); }
private void ShowData(PmGeneralApplicationRow AGeneralAppRow, PmShortTermApplicationRow AEventAppRow) { // clear dataset and create a copy of the row to be displayed so Dataset contains only one set of records FApplicationDS.PmShortTermApplication.Rows.Clear(); FApplicationDS.PmGeneralApplication.Rows.Clear(); PmGeneralApplicationRow GeneralAppRowCopy = (PmGeneralApplicationRow)FApplicationDS.PmGeneralApplication.NewRow(); PmShortTermApplicationRow EventAppRowCopy = (PmShortTermApplicationRow)FApplicationDS.PmShortTermApplication.NewRow(); DataUtilities.CopyAllColumnValues(AGeneralAppRow, GeneralAppRowCopy); DataUtilities.CopyAllColumnValues(AEventAppRow, EventAppRowCopy); FApplicationDS.PmGeneralApplication.Rows.Add(GeneralAppRowCopy); FApplicationDS.PmShortTermApplication.Rows.Add(EventAppRowCopy); ucoEvent.ShowDetails(GeneralAppRowCopy); ucoApplicant.ShowDetails(GeneralAppRowCopy); ucoTravel.ShowDetails(GeneralAppRowCopy); }
private void GetDataFromControlsManual(PmGeneralApplicationRow ARow) { // need to make sure that partner key fields that are not referring to p_partner table // but to other tables like p_unit or p_person are set to NULL when they are empty (and // not to 0 as then foreign key constraints will fail) // HOWEVER: at the moment the thinking is (according to WolfgangB, and Petra 2.x's implementation) // that the Target Field needs to be specified for an Application to be valid! // if ((txtField.Text.Length != 0) // && (Convert.ToInt64(txtField.Text) == 0)) // { // ARow.SetGenAppPossSrvUnitKeyNull(); // } if ((txtPlacementPerson.Text.Length != 0) && (Convert.ToInt64(txtPlacementPerson.Text) == 0)) { ARow.SetPlacementPartnerKeyNull(); } }
private void ShowData(PmGeneralApplicationRow AGeneralAppRow, PmYearProgramApplicationRow AFieldAppRow) { // clear dataset and create a copy of the row to be displayed so Dataset contains only one set of records FApplicationDS.PmYearProgramApplication.Rows.Clear(); FApplicationDS.PmGeneralApplication.Rows.Clear(); PmGeneralApplicationRow GeneralAppRowCopy = (PmGeneralApplicationRow)FApplicationDS.PmGeneralApplication.NewRow(); PmYearProgramApplicationRow FieldAppRowCopy = (PmYearProgramApplicationRow)FApplicationDS.PmYearProgramApplication.NewRow(); DataUtilities.CopyAllColumnValues(AGeneralAppRow, GeneralAppRowCopy); DataUtilities.CopyAllColumnValues(AFieldAppRow, FieldAppRowCopy); FApplicationDS.PmGeneralApplication.Rows.Add(GeneralAppRowCopy); FApplicationDS.PmYearProgramApplication.Rows.Add(FieldAppRowCopy); // The row in the data set will be 'Added', which means that some of our validation will not give the correct result. FApplicationDS.PmGeneralApplication.AcceptChanges(); FApplicationDS.PmYearProgramApplication.AcceptChanges(); ucoField.ShowDetails(GeneralAppRowCopy); ucoApplicant.ShowDetails(GeneralAppRowCopy); }
private void ValidateDataManual(PmGeneralApplicationRow ARow) { TVerificationResultCollection VerificationResultCollection = FPetraUtilsObject.VerificationResultCollection; DataColumn ValidationColumn; TValidationControlsData ValidationControlsData; TVerificationResult VerificationResult = null; TSharedPersonnelValidation_Personnel.ValidateGeneralApplicationManual(this, ARow, true, ref VerificationResultCollection, FValidationControlsDict); TSharedPersonnelValidation_Personnel.ValidateEventApplicationManual(this, FMainDS.PmShortTermApplication[0], ref VerificationResultCollection, FValidationControlsDict); if (FDelegateCheckEventApplicationDuplicate != null) { // Same 'Event' must only exist for one application per person ValidationColumn = FMainDS.PmShortTermApplication[0].Table.Columns[PmShortTermApplicationTable.ColumnStConfirmedOptionId]; if (FValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { if (FDelegateCheckEventApplicationDuplicate(ARow.ApplicationKey, ARow.RegistrationOffice, FMainDS.PmShortTermApplication[0].StConfirmedOption)) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(this, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_APPLICATION_DUPLICATE_EVENT, new string[] { FMainDS.PmShortTermApplication[0].StConfirmedOption.ToString() })), ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection. // Only add/remove verification result if duplicate found as same field has already been // handled in TSharedPersonnelValidation_Personnel.ValidateEventApplicationManual VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn); } } } }
private void GetDataFromControlsManual(PmGeneralApplicationRow ARow) { }
/// <summary> /// Display data in control based on data from Rows /// </summary> /// <param name="AGeneralAppRow"></param> /// <param name="AEventAppRow"></param> public void ShowDetails(PmGeneralApplicationRow AGeneralAppRow, PmShortTermApplicationRow AEventAppRow) { ShowData(AGeneralAppRow, AEventAppRow); }
/// <summary> /// Read data from controls into ARow parameter /// </summary> /// <param name="ARow"></param> public void GetDetails(PmGeneralApplicationRow ARow) { GetDataFromControls(ARow); }
/// <summary> /// Validates the general application record of a Person. /// </summary> /// <param name="AContext">Context that describes where the data validation failed.</param> /// <param name="ARow">The <see cref="DataRow" /> which holds the the data against which the validation is run.</param> /// <param name="AEventApplication">true if application for event, false if application for field.</param> /// <param name="AVerificationResultCollection">Will be filled with any <see cref="TVerificationResult" /> items if /// data validation errors occur.</param> /// <param name="AValidationControlsDict">A <see cref="TValidationControlsDict" /> containing the Controls that /// display data that is about to be validated.</param> /// <returns>void</returns> public static void ValidateGeneralApplicationManual(object AContext, PmGeneralApplicationRow ARow, bool AEventApplication, ref TVerificationResultCollection AVerificationResultCollection, TValidationControlsDict AValidationControlsDict) { DataColumn ValidationColumn; TValidationControlsData ValidationControlsData; TVerificationResult VerificationResult; // Don't validate deleted DataRows if (ARow.RowState == DataRowState.Deleted) { return; } // 'Application Type' must have a value and must not be unassignable ValidationColumn = ARow.Table.Columns[PmGeneralApplicationTable.ColumnAppTypeNameId]; if (AValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { VerificationResult = TStringChecks.StringMustNotBeEmpty(ARow.AppTypeName, ValidationControlsData.ValidationControlLabel, AContext, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection AVerificationResultCollection.Auto_Add_Or_AddOrRemove(AContext, VerificationResult, ValidationColumn); PtApplicationTypeTable AppTypeTable; PtApplicationTypeRow AppTypeRow = null; VerificationResult = null; if (!ARow.IsAppTypeNameNull()) { AppTypeTable = (PtApplicationTypeTable)TSharedDataCache.TMPersonnel.GetCacheablePersonnelTableDelegate( TCacheablePersonTablesEnum.ApplicationTypeList); AppTypeRow = (PtApplicationTypeRow)AppTypeTable.Rows.Find(ARow.AppTypeName); // 'Application Type' must not be unassignable if ((AppTypeRow != null) && AppTypeRow.UnassignableFlag && (AppTypeRow.IsUnassignableDateNull() || (AppTypeRow.UnassignableDate <= DateTime.Today))) { // if 'Application Type' is unassignable then check if the value has been changed or if it is a new record if (TSharedValidationHelper.IsRowAddedOrFieldModified(ARow, PmGeneralApplicationTable.GetAppTypeNameDBName())) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(AContext, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_VALUEUNASSIGNABLE_WARNING, new string[] { ValidationControlsData.ValidationControlLabel, ARow.AppTypeName })), ValidationColumn, ValidationControlsData.ValidationControl); } } } // Handle addition/removal to/from TVerificationResultCollection AVerificationResultCollection.Auto_Add_Or_AddOrRemove(AContext, VerificationResult, ValidationColumn); } // 'Application Status' must not be unassignable ValidationColumn = ARow.Table.Columns[PmGeneralApplicationTable.ColumnGenApplicationStatusId]; if (AValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { PtApplicantStatusTable AppStatusTable; PtApplicantStatusRow AppStatusRow = null; VerificationResult = null; if (!ARow.IsGenApplicationStatusNull()) { AppStatusTable = (PtApplicantStatusTable)TSharedDataCache.TMPersonnel.GetCacheablePersonnelTableDelegate( TCacheablePersonTablesEnum.ApplicantStatusList); AppStatusRow = (PtApplicantStatusRow)AppStatusTable.Rows.Find(ARow.GenApplicationStatus); // 'Application Status' must not be unassignable if ((AppStatusRow != null) && AppStatusRow.UnassignableFlag && (AppStatusRow.IsUnassignableDateNull() || (AppStatusRow.UnassignableDate <= DateTime.Today))) { // if 'Application Status' is unassignable then check if the value has been changed or if it is a new record if (TSharedValidationHelper.IsRowAddedOrFieldModified(ARow, PmGeneralApplicationTable.GetGenApplicationStatusDBName())) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(AContext, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_VALUEUNASSIGNABLE_WARNING, new string[] { ValidationControlsData.ValidationControlLabel, ARow.GenApplicationStatus })), ValidationColumn, ValidationControlsData.ValidationControl); } } } // Handle addition/removal to/from TVerificationResultCollection AVerificationResultCollection.Auto_Add_Or_AddOrRemove(AContext, VerificationResult, ValidationColumn); } // following validation only relevant for event applications if (AEventApplication) { // 'Organization Contact 1' must not be unassignable ValidationColumn = ARow.Table.Columns[PmGeneralApplicationTable.ColumnGenContact1Id]; if (AValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { PtContactTable ContactTable; PtContactRow ContactRow; VerificationResult = null; if ((!ARow.IsGenContact1Null()) && (ARow.GenContact1 != String.Empty)) { ContactTable = (PtContactTable)TSharedDataCache.TMPersonnel.GetCacheablePersonnelTable( TCacheablePersonTablesEnum.ContactList); ContactRow = (PtContactRow)ContactTable.Rows.Find(ARow.GenContact1); // 'Contact' must not be unassignable if ((ContactRow != null) && ContactRow.UnassignableFlag && (ContactRow.IsUnassignableDateNull() || (ContactRow.UnassignableDate <= DateTime.Today))) { // if 'Contact' is unassignable then check if the value has been changed or if it is a new record if (TSharedValidationHelper.IsRowAddedOrFieldModified(ARow, PmGeneralApplicationTable.GetGenContact1DBName())) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(AContext, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_VALUEUNASSIGNABLE_WARNING, new string[] { ValidationControlsData.ValidationControlLabel, ARow.GenContact1 })), ValidationColumn, ValidationControlsData.ValidationControl); } } } // Handle addition/removal to/from TVerificationResultCollection AVerificationResultCollection.Auto_Add_Or_AddOrRemove(AContext, VerificationResult, ValidationColumn); } // 'Organization Contact 2' must not be unassignable ValidationColumn = ARow.Table.Columns[PmGeneralApplicationTable.ColumnGenContact2Id]; if (AValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { PtContactTable ContactTable; PtContactRow ContactRow; VerificationResult = null; if ((!ARow.IsGenContact2Null()) && (ARow.GenContact2 != String.Empty)) { ContactTable = (PtContactTable)TSharedDataCache.TMPersonnel.GetCacheablePersonnelTable( TCacheablePersonTablesEnum.ContactList); ContactRow = (PtContactRow)ContactTable.Rows.Find(ARow.GenContact2); // 'Contact' must not be unassignable if ((ContactRow != null) && ContactRow.UnassignableFlag && (ContactRow.IsUnassignableDateNull() || (ContactRow.UnassignableDate <= DateTime.Today))) { // if 'Contact' is unassignable then check if the value has been changed or if it is a new record if (TSharedValidationHelper.IsRowAddedOrFieldModified(ARow, PmGeneralApplicationTable.GetGenContact2DBName())) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(AContext, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_VALUEUNASSIGNABLE_WARNING, new string[] { ValidationControlsData.ValidationControlLabel, ARow.GenContact2 })), ValidationColumn, ValidationControlsData.ValidationControl); } } } // Handle addition/removal to/from TVerificationResultCollection AVerificationResultCollection.Auto_Add_Or_AddOrRemove(AContext, VerificationResult, ValidationColumn); } } // following validation only relevant for field applications if (!AEventApplication) { // Field Application: 'Field' must be a Partner of Class 'UNIT' and must not be 0 and not be null ValidationColumn = ARow.Table.Columns[PmGeneralApplicationTable.ColumnGenAppPossSrvUnitKeyId]; if (AValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { if (ARow.IsGenAppPossSrvUnitKeyNull()) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(AContext, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_PARTNERKEY_INVALID_NOTNULL, new string[] { ValidationControlsData.ValidationControlLabel })), ValidationColumn, ValidationControlsData.ValidationControl); } else { VerificationResult = TSharedPartnerValidation_Partner.IsValidUNITPartner( ARow.GenAppPossSrvUnitKey, false, THelper.NiceValueDescription( ValidationControlsData.ValidationControlLabel) + " must be set correctly.", AContext, ValidationColumn, ValidationControlsData.ValidationControl); } // Since the validation can result in different ResultTexts we need to remove any validation result manually as a call to // AVerificationResultCollection.AddOrRemove wouldn't remove a previous validation result with a different // ResultText! AVerificationResultCollection.Remove(ValidationColumn); AVerificationResultCollection.AddAndIgnoreNullValue(VerificationResult); } } // 'Cancellation date' must not be a future date ValidationColumn = ARow.Table.Columns[PmGeneralApplicationTable.ColumnGenAppCancelledId]; if (AValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { VerificationResult = null; VerificationResult = TDateChecks.IsCurrentOrPastDate(ARow.GenAppCancelled, ValidationControlsData.ValidationControlLabel, AContext, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection AVerificationResultCollection.Auto_Add_Or_AddOrRemove(AContext, VerificationResult, ValidationColumn); } // 'Accepted by sending field date' must not be a future date ValidationColumn = ARow.Table.Columns[PmGeneralApplicationTable.ColumnGenAppSendFldAcceptDateId]; if (AValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { VerificationResult = null; VerificationResult = TDateChecks.IsCurrentOrPastDate(ARow.GenAppSendFldAcceptDate, ValidationControlsData.ValidationControlLabel, AContext, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection AVerificationResultCollection.Auto_Add_Or_AddOrRemove(AContext, VerificationResult, ValidationColumn); } // 'Accepted by receiving field date' must not be a future date ValidationColumn = ARow.Table.Columns[PmGeneralApplicationTable.ColumnGenAppRecvgFldAcceptId]; if (AValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { VerificationResult = null; VerificationResult = TDateChecks.IsCurrentOrPastDate(ARow.GenAppRecvgFldAccept, ValidationControlsData.ValidationControlLabel, AContext, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection AVerificationResultCollection.Auto_Add_Or_AddOrRemove(AContext, VerificationResult, ValidationColumn); } }
/// <summary> /// method for importing data entered on the web form /// </summary> /// <returns></returns> public static string DataImportFromForm(string AFormID, string AJSONFormData, bool ASendApplicationReceivedEmail) { if (AFormID == "TestPrintingEmail") { // This is a test for printing to PDF and sending an email, no partner is created in the database. // make sure you have a photo with name data\photos\815.jpg for the photo to appear in the pdf TApplicationFormData data = (TApplicationFormData)TJsonTools.ImportIntoTypedStructure(typeof(TApplicationFormData), AJSONFormData); data.RawData = AJSONFormData; string pdfIdentifier; string pdfFilename = GeneratePDF(0815, data.registrationcountrycode, data, out pdfIdentifier); try { if (SendEmail(0815, data.registrationcountrycode, data, pdfFilename)) { // return id of the PDF pdfIdentifier string result = "{\"success\":true,\"data\":{\"pdfPath\":\"downloadPDF.aspx?pdf-id=" + pdfIdentifier + "\"}}"; return(result); } else { string message = String.Format(Catalog.GetString("We were not able to send the email to {0}"), data.email); TLogging.Log("returning: " + "{\"failure\":true, \"data\":{\"result\":\"" + message + "\"}}"); return("{\"failure\":true, \"data\":{\"result\":\"" + message + "\"}}"); } } catch (Exception e) { TLogging.Log(e.Message); TLogging.Log(e.StackTrace); } } if (AFormID == "RegisterPerson") { TApplicationFormData data = (TApplicationFormData)TJsonTools.ImportIntoTypedStructure(typeof(TApplicationFormData), AJSONFormData); data.RawData = AJSONFormData; Int64 NewPersonPartnerKey = -1; string imageTmpPath = String.Empty; try { PartnerEditTDS MainDS = new PartnerEditTDS(); // TODO: check that email is unique. do not allow email to be associated with 2 records. this would cause trouble with authentication // TODO: create a user for this partner Int64 NewFamilyPartnerKey = CreateFamily(ref MainDS, data); NewPersonPartnerKey = CreatePerson(ref MainDS, NewFamilyPartnerKey, data); CreateAddress(ref MainDS, data, NewFamilyPartnerKey); try { PartnerEditTDSAccess.SubmitChanges(MainDS); } catch (Exception Exc) { string message = "There is some critical error when saving to the database: " + Exc.ToString(); return("{\"failure\":true, \"data\":{\"result\":\"" + message + "\"}}"); } // add a record for the application ConferenceApplicationTDS ConfDS = new ConferenceApplicationTDS(); PmGeneralApplicationRow GeneralApplicationRow = ConfDS.PmGeneralApplication.NewRowTyped(); GeneralApplicationRow.RawApplicationData = AJSONFormData; GeneralApplicationRow.PartnerKey = NewPersonPartnerKey; GeneralApplicationRow.ApplicationKey = -1; GeneralApplicationRow.RegistrationOffice = data.registrationoffice; GeneralApplicationRow.GenAppDate = DateTime.Today; GeneralApplicationRow.AppTypeName = MConferenceConstants.APPTYPE_CONFERENCE; // TODO pm_st_basic_camp_identifier_c is quite strange. will there be an overflow soon? // see ticket https://sourceforge.net/apps/mantisbt/openpetraorg/view.php?id=161 GeneralApplicationRow.OldLink = ""; GeneralApplicationRow.GenApplicantType = ""; GeneralApplicationRow.GenApplicationStatus = MConferenceConstants.APPSTATUS_ONHOLD; ConfDS.PmGeneralApplication.Rows.Add(GeneralApplicationRow); PmShortTermApplicationRow ShortTermApplicationRow = ConfDS.PmShortTermApplication.NewRowTyped(); ShortTermApplicationRow.PartnerKey = NewPersonPartnerKey; ShortTermApplicationRow.ApplicationKey = -1; ShortTermApplicationRow.RegistrationOffice = data.registrationoffice; ShortTermApplicationRow.StAppDate = DateTime.Today; ShortTermApplicationRow.StApplicationType = MConferenceConstants.APPTYPE_CONFERENCE; ShortTermApplicationRow.StBasicOutreachId = GeneralApplicationRow.OldLink; ShortTermApplicationRow.StCongressCode = data.role; ShortTermApplicationRow.ConfirmedOptionCode = data.eventidentifier; ShortTermApplicationRow.StConfirmedOption = Convert.ToInt64(data.eventpartnerkey); ShortTermApplicationRow.StFieldCharged = data.registrationoffice; ShortTermApplicationRow.Arrival = data.dateofarrival; ShortTermApplicationRow.Departure = data.dateofdeparture; ConfDS.PmShortTermApplication.Rows.Add(ShortTermApplicationRow); // TODO ApplicationForms try { ConferenceApplicationTDSAccess.SubmitChanges(ConfDS); } catch (Exception Exc) { string message = "There is some critical error when saving to the database: " + Exc.ToString(); return("{\"failure\":true, \"data\":{\"result\":\"" + message + "\"}}"); } // process Photo imageTmpPath = TAppSettingsManager.GetValue("Server.PathTemp") + Path.DirectorySeparatorChar + Path.GetFileName(data.imageid); if (File.Exists(imageTmpPath)) { string photosPath = TAppSettingsManager.GetValue("Server.PathData") + Path.DirectorySeparatorChar + "photos"; if (!Directory.Exists(photosPath)) { Directory.CreateDirectory(photosPath); } File.Copy(imageTmpPath, photosPath + Path.DirectorySeparatorChar + NewPersonPartnerKey + Path.GetExtension(imageTmpPath).ToLower(), true); } } catch (Exception e) { TLogging.Log(e.Message); TLogging.Log(e.StackTrace); string message = "There is some critical error when saving to the database"; return("{\"failure\":true, \"data\":{\"result\":\"" + message + "\"}}"); } if (ASendApplicationReceivedEmail) { string pdfIdentifier; string pdfFilename = GeneratePDF(NewPersonPartnerKey, data.registrationcountrycode, data, out pdfIdentifier); try { if (SendEmail(NewPersonPartnerKey, data.registrationcountrycode, data, pdfFilename)) { if (File.Exists(imageTmpPath)) { // only delete the temp image after successful application. otherwise we have a problem with resending the application, because the tmp image is gone File.Delete(imageTmpPath); } // return id of the PDF pdfIdentifier string result = "{\"success\":true,\"data\":{\"pdfPath\":\"downloadPDF.aspx?pdf-id=" + pdfIdentifier + "\"}}"; return(result); } } catch (Exception e) { TLogging.Log(e.Message); TLogging.Log(e.StackTrace); } } string message2 = String.Format(Catalog.GetString("We were not able to send the email to {0}"), data.email); string result2 = "{\"failure\":true, \"data\":{\"result\":\"" + message2 + "\"}}"; if (ASendApplicationReceivedEmail) { TLogging.Log(result2); } return(result2); } else { string message = "The server does not know about a form called " + AFormID; TLogging.Log(message); return("{\"failure\":true, \"data\":{\"result\":\"" + message + "\"}}"); } }
private void ReadLongApplicationForm(TFileVersionInfo APetraVersion, PmGeneralApplicationRow AGeneralApplicationRow, TDBTransaction ATransaction, out Boolean ARecordAddedOrModified) { ARecordAddedOrModified = false; PmYearProgramApplicationRow YearProgramApplicationRow = FMainDS.PmYearProgramApplication.NewRowTyped(); YearProgramApplicationRow.PartnerKey = FPartnerKey; YearProgramApplicationRow.ApplicationKey = AGeneralApplicationRow.ApplicationKey; YearProgramApplicationRow.YpAppDate = AGeneralApplicationRow.GenAppDate; YearProgramApplicationRow.YpBasicAppType = AGeneralApplicationRow.AppTypeName; YearProgramApplicationRow.RegistrationOffice = AGeneralApplicationRow.RegistrationOffice; YearProgramApplicationRow.HoOrientConfBookingKey = ReadString(); YearProgramApplicationRow.YpAgreedJoiningCharge = ReadDecimal(); YearProgramApplicationRow.YpAgreedSupportFigure = ReadDecimal(); if (APetraVersion.FileMajorPart < 3) { ReadBoolean(); // Field removed: YearProgramApplicationRow.YpAppFeeReceived } YearProgramApplicationRow.YpBasicDeleteFlag = ReadBoolean(); YearProgramApplicationRow.YpJoiningConf = ReadInt32(); YearProgramApplicationRow.StartOfCommitment = ReadNullableDate(); YearProgramApplicationRow.EndOfCommitment = ReadNullableDate(); YearProgramApplicationRow.IntendedComLengthMonths = ReadInt32(); YearProgramApplicationRow.PositionName = ReadString(); YearProgramApplicationRow.PositionScope = ReadString(); YearProgramApplicationRow.AssistantTo = ReadBoolean(); if (APetraVersion.FileMajorPart < 3) { ReadString(); // Field removed: YearProgramApplicationRow.YpScholarshipAthrizedBy ReadNullableDate(); // Field removed: YearProgramApplicationRow.YpScholarshipBeginDate ReadNullableDate(); // Field removed: YearProgramApplicationRow.YpScholarshipEndDate ReadDecimal(); // Field removed: YearProgramApplicationRow.YpScholarship ReadString(); // Field removed: YearProgramApplicationRow.YpScholarshipPeriod ReadNullableDate(); // Field removed: YearProgramApplicationRow.YpScholarshipReviewDate } YearProgramApplicationRow.YpSupportPeriod = ReadString(); if (!FIgnoreApplication) { PmYearProgramApplicationAccess.AddOrModifyRecord( YearProgramApplicationRow.PartnerKey, YearProgramApplicationRow.ApplicationKey, YearProgramApplicationRow.RegistrationOffice, FMainDS.PmYearProgramApplication, YearProgramApplicationRow, FDoNotOverwrite, ATransaction); ARecordAddedOrModified = true; } }
/// <summary> /// Read data from controls into Row parameters /// </summary> /// <param name="ARow"></param> /// <param name="AFieldAppRow"></param> public void GetDetails(PmGeneralApplicationRow ARow, PmYearProgramApplicationRow AFieldAppRow) { GetDataFromControls(ARow, AFieldAppRow); }
private void WriteShortApplicationForm(PartnerImportExportTDS AMainDS, PmGeneralApplicationRow AGeneralApplicationRow) { AMainDS.PmShortTermApplication.DefaultView.RowFilter = String.Format("{0}={1} and {2}={3} and {4}={5}", PmShortTermApplicationTable.GetPartnerKeyDBName(), AGeneralApplicationRow.PartnerKey, PmShortTermApplicationTable.GetApplicationKeyDBName(), AGeneralApplicationRow.ApplicationKey, PmShortTermApplicationTable.GetRegistrationOfficeDBName(), AGeneralApplicationRow.RegistrationOffice); if (AMainDS.PmShortTermApplication.DefaultView.Count > 0) { PmShortTermApplicationRow ShortTermApplicationRow = (PmShortTermApplicationRow)AMainDS.PmShortTermApplication.DefaultView[0].Row; Write(ShortTermApplicationRow.IsConfirmedOptionCodeNull() ? "" : ShortTermApplicationRow.ConfirmedOptionCode); //Write(ShortTermApplicationRow.IsOption1CodeNull() ? "" : ShortTermApplicationRow.Option1Code); //Write(ShortTermApplicationRow.IsOption2CodeNull() ? "" : ShortTermApplicationRow.Option2Code); Write(ShortTermApplicationRow.IsFromCongTravelInfoNull() ? "" : ShortTermApplicationRow.FromCongTravelInfo); WriteLine(); Write(ShortTermApplicationRow.IsArrivalNull() ? "?" : ShortTermApplicationRow.Arrival.Value.ToString(DATEFORMAT)); Write(ShortTermApplicationRow.IsArrivalHourNull() ? 0 : ShortTermApplicationRow.ArrivalHour); Write(ShortTermApplicationRow.IsArrivalMinuteNull() ? 0 : ShortTermApplicationRow.ArrivalMinute); Write(ShortTermApplicationRow.IsDepartureNull() ? "?" : ShortTermApplicationRow.Departure.Value.ToString(DATEFORMAT)); Write(ShortTermApplicationRow.IsDepartureHourNull() ? 0 : ShortTermApplicationRow.DepartureHour); Write(ShortTermApplicationRow.IsDepartureMinuteNull() ? 0 : ShortTermApplicationRow.DepartureMinute); WriteLine(); Write(ShortTermApplicationRow.IsStApplicationHoldReasonNull() ? "" : ShortTermApplicationRow.StApplicationHoldReason); Write(ShortTermApplicationRow.IsStApplicationOnHoldNull() ? false : ShortTermApplicationRow.StApplicationOnHold); Write(ShortTermApplicationRow.IsStBasicDeleteFlagNull() ? false : ShortTermApplicationRow.StBasicDeleteFlag); //Write(ShortTermApplicationRow.IsStBookingFeeReceivedNull() ? false : ShortTermApplicationRow.StBookingFeeReceived); Write(ShortTermApplicationRow.IsStOutreachOnlyFlagNull() ? false : ShortTermApplicationRow.StOutreachOnlyFlag); Write(ShortTermApplicationRow.IsStOutreachSpecialCostNull() ? 0 : ShortTermApplicationRow.StOutreachSpecialCost); Write(ShortTermApplicationRow.IsStCngrssSpecialCostNull() ? 0 : ShortTermApplicationRow.StCngrssSpecialCost); WriteLine(); //Write(ShortTermApplicationRow.IsStCommentNull() ? "" : ShortTermApplicationRow.StComment); WriteLine(); Write(ShortTermApplicationRow.IsStConfirmedOptionNull() ? 0 : ShortTermApplicationRow.StConfirmedOption); Write(ShortTermApplicationRow.IsStCongressCodeNull() ? "" : ShortTermApplicationRow.StCongressCode); Write(ShortTermApplicationRow.IsStCongressLanguageNull() ? "" : ShortTermApplicationRow.StCongressLanguage); //Write(ShortTermApplicationRow.IsStCountryPrefNull() ? "" : ShortTermApplicationRow.StCountryPref); Write(ShortTermApplicationRow.IsStCurrentFieldNull() ? 0 : ShortTermApplicationRow.StCurrentField); Write(ShortTermApplicationRow.IsOutreachRoleNull() ? "" : ShortTermApplicationRow.OutreachRole); WriteLine(); Write(ShortTermApplicationRow.IsStFgCodeNull() ? "" : ShortTermApplicationRow.StFgCode); Write(ShortTermApplicationRow.IsStFgLeaderNull() ? false : ShortTermApplicationRow.StFgLeader); Write(ShortTermApplicationRow.IsStFieldChargedNull() ? 0 : ShortTermApplicationRow.StFieldCharged); // Write(ShortTermApplicationRow.IsStLeadershipRatingNull()? "" : ShortTermApplicationRow.StLeadershipRating); // fields removed // Write(ShortTermApplicationRow.IsStOption1Null()? 0 : ShortTermApplicationRow.StOption1); // Write(ShortTermApplicationRow.IsStOption2Null()? 0 : ShortTermApplicationRow.StOption2); WriteLine(); // Write(ShortTermApplicationRow.IsStPartyContactNull()? 0 : ShortTermApplicationRow.StPartyContact); // Write(ShortTermApplicationRow.IsStPartyTogetherNull()? "" : ShortTermApplicationRow.StPartyTogether); Write(ShortTermApplicationRow.IsStPreCongressCodeNull() ? "" : ShortTermApplicationRow.StPreCongressCode); // Write(ShortTermApplicationRow.IsStProgramFeeReceivedNull()? false : ShortTermApplicationRow.StProgramFeeReceived); // Write(ShortTermApplicationRow.IsStRecruitEffortsNull()? "" : ShortTermApplicationRow.StRecruitEfforts); // Write(ShortTermApplicationRow.IsStScholarshipAmountNull()? 0 : ShortTermApplicationRow.StScholarshipAmount); // Write(ShortTermApplicationRow.IsStScholarshipApprovedByNull()? "" : ShortTermApplicationRow.StScholarshipApprovedBy); // Write(ShortTermApplicationRow.IsStScholarshipPeriodNull()? "" : ShortTermApplicationRow.StScholarshipPeriod); // Write(ShortTermApplicationRow.IsStScholarshipReviewDateNull()? "?" : ShortTermApplicationRow.StScholarshipReviewDate.Value.ToString(DATEFORMAT)); WriteLine(); Write(ShortTermApplicationRow.IsStSpecialApplicantNull() ? "" : ShortTermApplicationRow.StSpecialApplicant); //Write(ShortTermApplicationRow.IsStActivityPrefNull() ? "" : ShortTermApplicationRow.StActivityPref); Write(ShortTermApplicationRow.IsToCongTravelInfoNull() ? "" : ShortTermApplicationRow.ToCongTravelInfo); Write(ShortTermApplicationRow.IsArrivalPointCodeNull() ? "" : ShortTermApplicationRow.ArrivalPointCode); Write(ShortTermApplicationRow.IsDeparturePointCodeNull() ? "" : ShortTermApplicationRow.DeparturePointCode); Write(ShortTermApplicationRow.IsTravelTypeFromCongCodeNull() ? "" : ShortTermApplicationRow.TravelTypeFromCongCode); Write(ShortTermApplicationRow.IsTravelTypeToCongCodeNull() ? "" : ShortTermApplicationRow.TravelTypeToCongCode); WriteLine(); //Write(ShortTermApplicationRow.IsContactNumberNull() ? "" : ShortTermApplicationRow.ContactNumber); Write(ShortTermApplicationRow.IsArrivalDetailsStatusNull() ? "" : ShortTermApplicationRow.ArrivalDetailsStatus); Write(ShortTermApplicationRow.IsArrivalTransportNeededNull() ? false : ShortTermApplicationRow.ArrivalTransportNeeded); // Write(ShortTermApplicationRow.IsArrivalExpNull()? "?" : ShortTermApplicationRow.ArrivalExp.Value.ToString(DATEFORMAT)); // Write(ShortTermApplicationRow.IsArrivalExpHourNull()? 0 : ShortTermApplicationRow.ArrivalExpHour); // Write(ShortTermApplicationRow.IsArrivalMinuteNull()? 0 : ShortTermApplicationRow.ArrivalExpMinute); Write(ShortTermApplicationRow.IsArrivalCommentsNull() ? "" : ShortTermApplicationRow.ArrivalComments); Write(ShortTermApplicationRow.IsTransportInterestNull() ? false : ShortTermApplicationRow.TransportInterest); WriteLine(); Write(ShortTermApplicationRow.IsDepartureDetailsStatusNull() ? "" : ShortTermApplicationRow.DepartureDetailsStatus); Write(ShortTermApplicationRow.IsDepartureTransportNeededNull() ? false : ShortTermApplicationRow.DepartureTransportNeeded); // Write(ShortTermApplicationRow.IsDepartureExpNull()? "?" : ShortTermApplicationRow.DepartureExp.Value.ToString(DATEFORMAT)); // Write(ShortTermApplicationRow.IsDepartureHourNull()? 0 : ShortTermApplicationRow.DepartureExpHour); // Write(ShortTermApplicationRow.IsDepartureMinuteNull()? 0 : ShortTermApplicationRow.DepartureExpMinute); Write(ShortTermApplicationRow.IsDepartureCommentsNull() ? "" : ShortTermApplicationRow.DepartureComments); WriteLine(); } else { Write(""); // ShortTermApplicationRow.ConfirmedOptionCode //Write(""); // ShortTermApplicationRow.Option1Code //Write(""); // ShortTermApplicationRow.Option2Code Write(""); // ShortTermApplicationRow.FromCongTravelInfo WriteLine(); Write("?"); // ShortTermApplicationRow.Arrival Write(0); // ShortTermApplicationRow.ArrivalHour Write(0); // ShortTermApplicationRow.ArrivalMinute Write("?"); // ShortTermApplicationRow.Departure Write(0); // ShortTermApplicationRow.DepartureHour Write(0); // ShortTermApplicationRow.DepartureMinute WriteLine(); Write(""); // ShortTermApplicationRow.StApplicationHoldReason Write(true); // ShortTermApplicationRow.StApplicationOnHold Write(false); // ShortTermApplicationRow.StBasicDeleteFlag Write(false); // ShortTermApplicationRow.StBookingFeeReceived Write(false); // ShortTermApplicationRow.StOutreachOnlyFlag Write(0); // ShortTermApplicationRow.StOutreachSpecialCost Write(0); // ShortTermApplicationRow.StCngrssSpecialCost WriteLine(); Write(""); // ShortTermApplicationRow.StComment WriteLine(); Write(0); // ShortTermApplicationRow.StConfirmedOption Write(""); // ShortTermApplicationRow.StCongressCode Write(""); // ShortTermApplicationRow.StCongressLanguage Write(""); // ShortTermApplicationRow.StCountryPref Write(0); // ShortTermApplicationRow.StCurrentField Write(""); // ShortTermApplicationRow.OutreachRole WriteLine(); Write(""); // ShortTermApplicationRow.StFgCode Write(false); // ShortTermApplicationRow.StFgLeader Write(0); // ShortTermApplicationRow.StFieldCharged // Write(""); // ShortTermApplicationRow.StLeadershipRating removed // Write(0); // ShortTermApplicationRow.StOption1 // Write(0); // ShortTermApplicationRow.StOption2 WriteLine(); // Write(0); // ShortTermApplicationRow.StPartyContact // Write(""); // ShortTermApplicationRow.StPartyTogether Write(""); // ShortTermApplicationRow.StPreCongressCode // Write(false); // ShortTermApplicationRow.StProgramFeeReceived // Write(""); // ShortTermApplicationRow.StRecruitEfforts // Write(0); // ShortTermApplicationRow.StScholarshipAmount // Write(""); // ShortTermApplicationRow.StScholarshipApprovedBy // Write(""); // ShortTermApplicationRow.StScholarshipPeriod // Write("?"); // ShortTermApplicationRow.StScholarshipReviewDate WriteLine(); Write(""); // ShortTermApplicationRow.StSpecialApplicant Write(""); // ShortTermApplicationRow.StActivityPref Write(""); // ShortTermApplicationRow.ToCongTravelInfo Write(""); // ShortTermApplicationRow.ArrivalPointCode Write(""); // ShortTermApplicationRow.DeparturePointCode Write(""); // ShortTermApplicationRow.TravelTypeFromCongCode Write(""); // ShortTermApplicationRow.TravelTypeToCongCode WriteLine(); Write(""); // ShortTermApplicationRow.ContactNumber Write(""); // ShortTermApplicationRow.ArrivalDetailsStatus Write(false); // ShortTermApplicationRow.ArrivalTransportNeeded // Write("?"); // ShortTermApplicationRow.ArrivalExp // Write(0); // ShortTermApplicationRow.ArrivalExpHour // Write(0); // ShortTermApplicationRow.ArrivalExpMinute Write(""); // ShortTermApplicationRow.ArrivalComments Write(false); // ShortTermApplicationRow.TransportInterest WriteLine(); Write(""); // ShortTermApplicationRow.DepartureDetailsStatus Write(false); // ShortTermApplicationRow.DepartureTransportNeeded // Write("?"); // ShortTermApplicationRow.DepartureExp // Write(0); // ShortTermApplicationRow.DepartureExpHour // Write(0); // ShortTermApplicationRow.DepartureExpMinute Write(""); // ShortTermApplicationRow.DepartureComments WriteLine(); } }
private void WriteLongApplicationForm(PartnerImportExportTDS AMainDS, PmGeneralApplicationRow AGeneralApplicationRow) { // TODO: test that the filter works with the date AMainDS.PmYearProgramApplication.DefaultView.RowFilter = String.Format("{0}={1} and {2}='{3}' and {4}=#{5}#", PmYearProgramApplicationTable.GetPartnerKeyDBName(), AGeneralApplicationRow.PartnerKey, PmYearProgramApplicationTable.GetYpBasicAppTypeDBName(), AGeneralApplicationRow.AppTypeName, PmYearProgramApplicationTable.GetYpAppDateDBName(), AGeneralApplicationRow.GenAppDate.Date.ToString("yyyy-MM-dd")); // The RowFilter above will be applied when the Count property is accessed. // if (AMainDS.PmYearProgramApplication.DefaultView.Count > 0) { PmYearProgramApplicationRow Row = (PmYearProgramApplicationRow)AMainDS.PmYearProgramApplication.DefaultView[0].Row; Write(Row.IsHoOrientConfBookingKeyNull() ? "" : Row.HoOrientConfBookingKey); Write(Row.IsYpAgreedJoiningChargeNull() ? 0 : Row.YpAgreedJoiningCharge); Write(Row.IsYpAgreedSupportFigureNull() ? 0 : Row.YpAgreedSupportFigure); // Write(Row.IsYpAppFeeReceivedNull()? false : Row.YpAppFeeReceived); // Field removed Write(Row.IsYpBasicDeleteFlagNull() ? false : Row.YpBasicDeleteFlag); Write(Row.IsYpJoiningConfNull() ? 0 : Row.YpJoiningConf); Write(Row.IsStartOfCommitmentNull() ? "?" : Row.StartOfCommitment.Value.ToString(DATEFORMAT)); Write(Row.IsEndOfCommitmentNull() ? "?" : Row.EndOfCommitment.Value.ToString(DATEFORMAT)); Write(Row.IsIntendedComLengthMonthsNull() ? 0 : Row.IntendedComLengthMonths); Write(Row.IsPositionNameNull() ? "" : Row.PositionName); Write(Row.IsPositionScopeNull() ? "" : Row.PositionScope); Write(Row.IsAssistantToNull() ? false : Row.AssistantTo); WriteLine(); // Write(Row.IsYpScholarshipAthrizedByNull()? "" : Row.YpScholarshipAthrizedBy); // Write(Row.IsYpScholarshipBeginDateNull()? "?" : Row.YpScholarshipBeginDate.Value.ToString(DATEFORMAT)); // Write(Row.IsYpScholarshipEndDateNull()? "?" : Row.YpScholarshipEndDate.Value.ToString(DATEFORMAT)); // Write(Row.IsYpScholarshipNull()? 0 : Row.YpScholarship); // Write(Row.IsYpScholarshipPeriodNull()? "" : Row.YpScholarshipPeriod); // Write(Row.IsYpScholarshipReviewDateNull()? "?" : Row.YpScholarshipReviewDate.Value.ToString(DATEFORMAT)); Write(Row.IsYpSupportPeriodNull() ? "" : Row.YpSupportPeriod); WriteLine(); } else { // PmYearProgramApplicationRow YearProgramApplicationRow = // (PmYearProgramApplicationRow)AMainDS.PmYearProgramApplication.DefaultView[0].Row; Write(""); // YearProgramApplicationRow.HoOrientConfBookingKey Write(0); // YearProgramApplicationRow.YpAgreedJoiningCharge Write(0); // YearProgramApplicationRow.YpAgreedSupportFigure // Write(false); // YearProgramApplicationRow.YpAppFeeReceived Write(false); // YearProgramApplicationRow.YpBasicDeleteFlag Write(0); // YearProgramApplicationRow.YpJoiningConf Write("?"); // YearProgramApplicationRow.StartOfCommitment Write("?"); // YearProgramApplicationRow.EndOfCommitment Write(0); // YearProgramApplicationRow.IntendedComLengthMonths Write(""); // YearProgramApplicationRow.PositionName Write(""); // YearProgramApplicationRow.PositionScope Write(false); // YearProgramApplicationRow.AssistantTo WriteLine(); // Write(""); // YearProgramApplicationRow.YpScholarshipAthrizedBy // Write("?"); // YearProgramApplicationRow.YpScholarshipBeginDate // Write("?"); // YearProgramApplicationRow.YpScholarshipEndDate // Write(0); // YearProgramApplicationRow.YpScholarship // Write(""); // YearProgramApplicationRow.YpScholarshipPeriod // Write("?"); // YearProgramApplicationRow.YpScholarshipReviewDate Write(""); // YearProgramApplicationRow.YpSupportPeriod WriteLine(); } }
/// <summary> /// Load/Refresh all Attendees for a conference /// </summary> public static void RefreshAttendees(Int64 AConferenceKey) { TDBTransaction Transaction = new TDBTransaction(); bool SubmissionOK = true; PcConferenceTable ConferenceTable; PUnitTable UnitTable; string OutreachPrefix = String.Empty; ConferenceApplicationTDS MainDS; // make sure outreach codes are up to date in case it has changed in Unit record RefreshOutreachCode(AConferenceKey); DBAccess.WriteTransaction( ref Transaction, ref SubmissionOK, delegate { ConferenceTable = new PcConferenceTable(); UnitTable = new PUnitTable(); MainDS = new ConferenceApplicationTDS(); // get the conference prefix which links all outreaches associated with a conference ConferenceTable = PcConferenceAccess.LoadByPrimaryKey(AConferenceKey, Transaction); if (ConferenceTable.Count == 0) { throw new Exception("Cannot find conference " + AConferenceKey.ToString("0000000000")); } OutreachPrefix = ConferenceTable[0].OutreachPrefix; // load application data for all conference attendees from db TApplicationManagement.GetApplications(ref MainDS, AConferenceKey, OutreachPrefix, "all", -1, true, null, false); // check a valid pcattendee record exists for each short term application foreach (PmShortTermApplicationRow ShortTermAppRow in MainDS.PmShortTermApplication.Rows) { if (!IsAttendeeValid(MainDS, OutreachPrefix, ShortTermAppRow.PartnerKey)) { // ignore deleted applications, or cancelled applications continue; } // update outreach code in application (it may have changed) UnitTable = PUnitAccess.LoadByPrimaryKey(ShortTermAppRow.StConfirmedOption, Transaction); ShortTermAppRow.ConfirmedOptionCode = ((PUnitRow)UnitTable.Rows[0]).OutreachCode; // Do we have a record for this attendee yet? bool AttendeeRecordExists = false; if (MainDS.PcAttendee.Rows.Contains(new object[] { AConferenceKey, ShortTermAppRow.PartnerKey })) { AttendeeRecordExists = true; } // create a new PcAttendee record if one does not already exist for this attendee if (!AttendeeRecordExists) { PcAttendeeRow AttendeeRow = MainDS.PcAttendee.NewRowTyped(); AttendeeRow.ConferenceKey = AConferenceKey; AttendeeRow.PartnerKey = ShortTermAppRow.PartnerKey; if (ShortTermAppRow.ConfirmedOptionCode.Length >= 11) { AttendeeRow.OutreachType = ShortTermAppRow.ConfirmedOptionCode.Substring(5, 6); } PmGeneralApplicationRow GeneralAppRow = (PmGeneralApplicationRow)MainDS.PmGeneralApplication.Rows.Find( new object[] { ShortTermAppRow.PartnerKey, ShortTermAppRow.ApplicationKey, ShortTermAppRow.RegistrationOffice }); DateTime DateAccepted = GeneralAppRow.GenAppDate; if (!GeneralAppRow.IsGenAppSendFldAcceptDateNull()) { DateAccepted = GeneralAppRow.GenAppSendFldAcceptDate.Value; } else if (!GeneralAppRow.IsGenAppRecvgFldAcceptNull()) { DateAccepted = GeneralAppRow.GenAppRecvgFldAccept.Value; } AttendeeRow.Registered = DateAccepted; // TODO: in Petra 2.x, this was calculated from pm_staff_data AttendeeRow.HomeOfficeKey = ShortTermAppRow.RegistrationOffice; if (AttendeeRow.HomeOfficeKey == 0) { AttendeeRow.HomeOfficeKey = ((int)AttendeeRow.PartnerKey / 1000000) * 1000000; } MainDS.PcAttendee.Rows.Add(AttendeeRow); } } PcRoomAllocTable RoomAllocTable = null; PcExtraCostTable ExtraCostTable = null; // now check the other way: all attendees of this conference, are they still valid? foreach (PcAttendeeRow AttendeeRow in MainDS.PcAttendee.Rows) { if ((AttendeeRow.RowState != DataRowState.Added) && !IsAttendeeValid(MainDS, OutreachPrefix, AttendeeRow.PartnerKey)) { // remove their accommodation RoomAllocTable = PcRoomAllocAccess.LoadViaPcAttendee(AttendeeRow.ConferenceKey, AttendeeRow.PartnerKey, Transaction); foreach (DataRow Row in RoomAllocTable.Rows) { Row.Delete(); } if (RoomAllocTable != null) { PcRoomAllocAccess.SubmitChanges(RoomAllocTable, Transaction); } // remove any extra costs ExtraCostTable = PcExtraCostAccess.LoadViaPcAttendee(AttendeeRow.ConferenceKey, AttendeeRow.PartnerKey, Transaction); foreach (DataRow Row in ExtraCostTable.Rows) { Row.Delete(); } if (ExtraCostTable != null) { PcExtraCostAccess.SubmitChanges(ExtraCostTable, Transaction); } // remove attendee AttendeeRow.Delete(); } } int shorttermApplicationsCount = MainDS.PmShortTermApplication.Count; int attendeeCount = MainDS.PcAttendee.Count; MainDS.ThrowAwayAfterSubmitChanges = true; ConferenceApplicationTDSAccess.SubmitChanges(MainDS); }); }
private static void CreateShortTermApplication(XmlNode ANode, Int64 APartnerKey, ref PartnerImportExportTDS AMainDS, TDBTransaction ATransaction) { String strEventKey = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_EVENTKEY); long EventKey = -1; if (strEventKey.Length > 0) { try { EventKey = long.Parse(strEventKey); } catch (System.FormatException) { AddVerificationResult("Bad number format in EventKey: " + strEventKey); } if (!PUnitAccess.Exists(EventKey, ATransaction)) { AddVerificationResult("EventKey not known - application cannot be imported: " + EventKey); return; } PmGeneralApplicationRow GenAppRow = AMainDS.PmGeneralApplication.NewRowTyped(); GenAppRow.PartnerKey = APartnerKey; GenAppRow.ApplicationKey = (int)DBAccess.GDBAccessObj.GetNextSequenceValue("seq_application", ATransaction); GenAppRow.OldLink = TSystemDefaults.GetSystemDefault(SharedConstants.SYSDEFAULT_SITEKEY, "") + ";" + GenAppRow.ApplicationKey.ToString(); GenAppRow.RegistrationOffice = DomainManager.GSiteKey; // When this is imported, RegistrationOffice can't be null. GenAppRow.GenAppDate = DateTime.Now; GenAppRow.AppTypeName = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_APPTYPE); GenAppRow.GenApplicationStatus = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_APPSTATUS); GenAppRow.Comment = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_APPCOMMENTS); PmShortTermApplicationRow ShortTermRow = AMainDS.PmShortTermApplication.NewRowTyped(); ShortTermRow.PartnerKey = APartnerKey; ShortTermRow.ApplicationKey = GenAppRow.ApplicationKey; ShortTermRow.RegistrationOffice = GenAppRow.RegistrationOffice; // When this is imported, RegistrationOffice can't be null. ShortTermRow.StBasicOutreachId = "Unused field"; // This field is scheduled for deletion, but NOT NULL now. ShortTermRow.StAppDate = DateTime.Now; ShortTermRow.StApplicationType = GenAppRow.AppTypeName; ShortTermRow.StConfirmedOption = EventKey; String TimeString = ""; try { TimeString = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_ARRIVALDATE); if (TimeString.Length > 0) { ShortTermRow.Arrival = DateTime.Parse(TimeString); } TimeString = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_DEPARTUREDATE); if (TimeString.Length > 0) { ShortTermRow.Departure = DateTime.Parse(TimeString); } } catch (System.FormatException) { AddVerificationResult("Bad date format in Application: " + TimeString); } DateTime TempTime; TimeString = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_ARRIVALTIME); if (TimeString.Length > 0) { try { TempTime = DateTime.Parse(TimeString); ShortTermRow.ArrivalHour = TempTime.Hour; ShortTermRow.ArrivalMinute = TempTime.Minute; } catch (System.FormatException) { AddVerificationResult("Bad time format in Application: " + TimeString); } } TimeString = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_DEPARTURETIME); if (TimeString.Length > 0) { try { TempTime = DateTime.Parse(TimeString); ShortTermRow.DepartureHour = TempTime.Hour; ShortTermRow.DepartureMinute = TempTime.Minute; } catch (System.FormatException) { AddVerificationResult("Bad time format in Application: " + TimeString); } } ShortTermRow.OutreachRole = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_EVENTROLE); String ChargedField = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_CHARGEDFIELD); if (ChargedField.Length > 0) { try { ShortTermRow.StFieldCharged = long.Parse(ChargedField); } catch { AddVerificationResult("Bad number format in ChargedField: " + ChargedField); } } AMainDS.PmGeneralApplication.Rows.Add(GenAppRow); AMainDS.PmShortTermApplication.Rows.Add(ShortTermRow); AddVerificationResult("Application Record Created.", TResultSeverity.Resv_Status); } }
private void ReadShortApplicationForm(TFileVersionInfo APetraVersion, PmGeneralApplicationRow AGeneralApplicationRow, TDBTransaction ATransaction, out Boolean ARecordAddedOrModified) { ARecordAddedOrModified = false; PmShortTermApplicationRow ShortTermApplicationRow = FMainDS.PmShortTermApplication.NewRowTyped(); ShortTermApplicationRow.PartnerKey = FPartnerKey; ShortTermApplicationRow.ApplicationKey = AGeneralApplicationRow.ApplicationKey; ShortTermApplicationRow.RegistrationOffice = AGeneralApplicationRow.RegistrationOffice; ShortTermApplicationRow.StAppDate = AGeneralApplicationRow.GenAppDate; ShortTermApplicationRow.StApplicationType = AGeneralApplicationRow.AppTypeName; ShortTermApplicationRow.StBasicOutreachId = AGeneralApplicationRow.OldLink; ShortTermApplicationRow.ConfirmedOptionCode = ReadString(); if ((FLimitToOption.Length > 0) && (ShortTermApplicationRow.ConfirmedOptionCode != FLimitToOption)) { FIgnoreApplication = true; } if (APetraVersion.FileMajorPart < 3) { ReadString(); // field removed: ShortTermApplicationRow.Option1Code ReadString(); // field removed: ShortTermApplicationRow.Option2Code } ShortTermApplicationRow.FromCongTravelInfo = ReadString(); ShortTermApplicationRow.Arrival = ReadNullableDate(); ShortTermApplicationRow.ArrivalHour = ReadInt32(); ShortTermApplicationRow.ArrivalMinute = ReadInt32(); ShortTermApplicationRow.Departure = ReadNullableDate(); ShortTermApplicationRow.DepartureHour = ReadInt32(); ShortTermApplicationRow.DepartureMinute = ReadInt32(); ShortTermApplicationRow.StApplicationHoldReason = ReadString(); ShortTermApplicationRow.StApplicationOnHold = ReadBoolean(); ShortTermApplicationRow.StBasicDeleteFlag = ReadBoolean(); if (APetraVersion.FileMajorPart < 3) { ReadBoolean(); // field removed: ShortTermApplicationRow.StBookingFeeReceived } ShortTermApplicationRow.StOutreachOnlyFlag = ReadBoolean(); ShortTermApplicationRow.StOutreachSpecialCost = ReadInt32(); ShortTermApplicationRow.StCngrssSpecialCost = ReadInt32(); if (APetraVersion.FileMajorPart < 3) { ReadString(); // field removed: ShortTermApplicationRow.StComment } Int64 Option = ReadInt64(); if (Option > 0) { ShortTermApplicationRow.StConfirmedOption = Option; if (!FIgnoreApplication) { // only process application if no other application for this option (event) exists in data import file if (!FExistingPartnerOptions.Contains(Option)) { if (PUnitAccess.Exists(Option, ATransaction)) { AddUnitOption(Option); FExistingPartnerOptions.Add(Option); } else { // if unit does not exist in system then don't add this application AddVerificationResult("Unknown Event in Application: " + Option + ". Application will not be imported!"); FIgnoreApplication = true; } } else { // if there is already an application for this option (event) then don't import this one AddVerificationResult("More than one Application for Event: " + Option + ". Only first application will be imported!"); FIgnoreApplication = true; } } } ShortTermApplicationRow.StCongressCode = CheckCongressCode(ReadString(), ATransaction); ShortTermApplicationRow.StCongressLanguage = ReadString(); if (APetraVersion.FileMajorPart < 3) { ReadString(); // field removed: ShortTermApplicationRow.StCountryPref } Int64? StCurrentField = ReadNullableInt64(); if (!FIgnoreApplication && StCurrentField.HasValue && (StCurrentField.Value != 0)) { ShortTermApplicationRow.StCurrentField = StCurrentField.Value; AddRequiredOffice(ShortTermApplicationRow.StCurrentField); } ShortTermApplicationRow.OutreachRole = CheckCongressCode(ReadString(), ATransaction); ShortTermApplicationRow.StFgCode = ReadString(); ShortTermApplicationRow.StFgLeader = ReadBoolean(); ShortTermApplicationRow.StFieldCharged = ReadInt64(); if (!FIgnoreApplication) { AddRequiredOffice(ShortTermApplicationRow.StFieldCharged); } if (APetraVersion.FileMajorPart < 3) { ReadString(); // field removed: ShortTermApplicationRow.StLeadershipRating ReadNullableInt64(); // field removed: StOption1 ReadNullableInt64(); // field removed: StOption2 ReadInt64(); // field removed: ShortTermApplicationRow.StPartyContact ReadString(); // field removed: ShortTermApplicationRow.StPartyTogether } ShortTermApplicationRow.StPreCongressCode = CheckCongressCode(ReadString(), ATransaction); if (APetraVersion.FileMajorPart < 3) { ReadBoolean(); // field removed: ShortTermApplicationRow.StProgramFeeReceived ReadString(); // field removed: ShortTermApplicationRow.StRecruitEfforts ReadDecimal(); // field removed: ShortTermApplicationRow.StScholarshipAmount ReadString(); // field removed: ShortTermApplicationRow.StScholarshipApprovedBy ReadString(); // field removed: ShortTermApplicationRow.StScholarshipPeriod ReadNullableDate(); // field removed: ShortTermApplicationRow.StScholarshipReviewDate } ShortTermApplicationRow.StSpecialApplicant = ReadString(); if (APetraVersion.FileMajorPart < 3) { ReadString(); // field removed: ShortTermApplicationRow.StActivityPref } ShortTermApplicationRow.ToCongTravelInfo = ReadString(); ShortTermApplicationRow.ArrivalPointCode = ReadString(); ShortTermApplicationRow.DeparturePointCode = ReadString(); ShortTermApplicationRow.TravelTypeFromCongCode = ReadString(); ShortTermApplicationRow.TravelTypeToCongCode = ReadString(); if (APetraVersion.FileMajorPart < 3) { ReadString(); // field removed: ShortTermApplicationRow.ContactNumber } ShortTermApplicationRow.ArrivalDetailsStatus = ReadString(); ShortTermApplicationRow.ArrivalTransportNeeded = ReadBoolean(); if (FArrivalPointTable == null) { FArrivalPointTable = PtArrivalPointAccess.LoadAll(StringHelper.StrSplit(PtArrivalPointTable.GetCodeDBName(), ","), ATransaction); } // clear unknown arrival points if (FArrivalPointTable.Rows.Find(ShortTermApplicationRow.ArrivalPointCode) == null) { ShortTermApplicationRow.SetArrivalPointCodeNull(); } if (FArrivalPointTable.Rows.Find(ShortTermApplicationRow.DeparturePointCode) == null) { ShortTermApplicationRow.SetDeparturePointCodeNull(); } if (APetraVersion.FileMajorPart < 3) { ReadNullableDate(); // field removed: ShortTermApplicationRow.ArrivalExp ReadInt32(); // field removed: ShortTermApplicationRow.ArrivalExpHour ReadInt32(); // field removed: ShortTermApplicationRow.ArrivalExpMinute } ShortTermApplicationRow.ArrivalComments = ReadString(); ShortTermApplicationRow.TransportInterest = ReadBoolean(); ShortTermApplicationRow.DepartureDetailsStatus = ReadString(); ShortTermApplicationRow.DepartureTransportNeeded = ReadBoolean(); if (APetraVersion.FileMajorPart < 3) { ReadNullableDate(); // field removed: ShortTermApplicationRow.DepartureExp ReadInt32(); // field removed: ShortTermApplicationRow.DepartureExpHour ReadInt32(); // field removed: ShortTermApplicationRow.DepartureExpMinute } ShortTermApplicationRow.DepartureComments = ReadString(); /* * I don't think that this should be done - In "old Petra" we could have 0 in StFieldCharged, * but in OpenPetra that's not a legal value. * (Tim Ingham, Oct 2011) */ if (ShortTermApplicationRow.StFieldCharged == 0) { // We cannot import a partner that has no field charged - this would be an invalid application. // we assume that the registration office will be charged. ShortTermApplicationRow.StFieldCharged = ShortTermApplicationRow.RegistrationOffice; } if (!FIgnoreApplication && !(ShortTermApplicationRow.IsStConfirmedOptionNull() || (ShortTermApplicationRow.StConfirmedOption == 0))) { PmShortTermApplicationAccess.AddOrModifyRecord( ShortTermApplicationRow.PartnerKey, ShortTermApplicationRow.ApplicationKey, ShortTermApplicationRow.RegistrationOffice, FMainDS.PmShortTermApplication, ShortTermApplicationRow, FDoNotOverwrite, ATransaction); ARecordAddedOrModified = true; } }
/// <summary> /// Display data in control based on data from Rows /// </summary> /// <param name="AGeneralAppRow"></param> /// <param name="AFieldAppRow"></param> public void ShowDetails(PmGeneralApplicationRow AGeneralAppRow, PmYearProgramApplicationRow AFieldAppRow) { ShowData(AGeneralAppRow, AFieldAppRow); }
private void ReadApplicationForm(PmGeneralApplicationRow AGeneralApplicationRow, TDBTransaction ATransaction) { // only needed in case of file form version < 3.0.0 ReadString(); // field removed: ApplicationFormRow.FormName ReadBoolean(); // field removed: ApplicationFormRow.FormDeleteFlag ReadBoolean(); // field removed: ApplicationFormRow.FormEdited ReadNullableDate(); // field removed: ApplicationFormRow.FormReceivedDate ReadBoolean(); // field removed: ApplicationFormRow.FormReceived ReadNullableDate(); // field removed: ApplicationFormRow.FormSentDate ReadBoolean(); // field removed: ApplicationFormRow.FormSent ReadInt64(); // field removed: ApplicationFormRow.ReferencePartnerKey ReadString(); // field removed: ApplicationFormRow.Comment }
/// <summary> /// Read data from controls into Row parameters /// </summary> /// <param name="ARow"></param> /// <param name="AEventAppRow"></param> public void GetDetails(PmGeneralApplicationRow ARow, PmShortTermApplicationRow AEventAppRow) { GetDataFromControls(ARow, AEventAppRow); }