/// <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));
                }
            }
        }
Пример #5
0
 /// <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);
        }
        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);
        }
        /// <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);
        }
Пример #10
0
        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);
        }
Пример #13
0
        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);
        }
Пример #14
0
        /// <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);
        }
Пример #18
0
        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)
 {
 }
        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);
        }
Пример #23
0
 /// <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);
 }
Пример #25
0
        /// <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);
            }
        }
Пример #26
0
        /// <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 + "\"}}");
            }
        }
Пример #27
0
        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 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 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);
        }
Пример #31
0
        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();
            }
        }
 /// <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);
 }
Пример #33
0
        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();
            }
        }
        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);
        }
Пример #35
0
        /// <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);
            });
        }
Пример #36
0
        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);
            }
        }
Пример #37
0
        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);
 }
Пример #39
0
        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
        }
        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 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>
 /// Read data from controls into ARow parameter
 /// </summary>
 /// <param name="ARow"></param>
 public void GetDetails(PmGeneralApplicationRow ARow)
 {
     GetDataFromControls(ARow);
 }
        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);
        }
Пример #44
0
 /// <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);
 }
 /// <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>
 /// 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);
 }
 /// <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);
 }
 private void GetDataFromControlsManual(PmGeneralApplicationRow ARow)
 {
 }
        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 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 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));
                }
            }
        }