Example #1
0
        private Boolean HasFamilyFamilyMembers()
        {
            Boolean  ReturnValue;
            DataView TmpDV;

            ReturnValue = false;

            if (FMainDS.Tables.Contains(PartnerEditTDSFamilyMembersTable.GetTableName()))
            {
                TmpDV = new DataView(FMainDS.FamilyMembers, "", "", DataViewRowState.CurrentRows);

                if (TmpDV.Count > 0)
                {
                    ReturnValue = true;
                }
            }
            else
            {
                if (FMainDS.MiscellaneousData[0].ItemsCountFamilyMembers > 0)
                {
                    ReturnValue = true;
                }
            }

            return(ReturnValue);
        }
Example #2
0
        /// <summary>
        /// Loads FamilyMembers Data from Petra Server into FMainDS.
        ///
        /// </summary>
        /// <returns>true if successful and Family has Family Members, otherwise false.
        /// //DevAge.ComponentModel.Validator;</returns>
        public Boolean LoadDataOnDemand()
        {
            Boolean ReturnValue;
            TRecalculateScreenPartsEventArgs RecalculateScreenPartsEventArgs;
            Int64 FamilyPartnerKey;

            if (FMainDS.PPartner[0].PartnerClass == SharedTypes.PartnerClassEnumToString(TPartnerClass.FAMILY))
            {
                FamilyPartnerKey = FMainDS.PFamily[0].PartnerKey;
            }
            else
            {
                FamilyPartnerKey = FMainDS.PPerson[0].FamilyKey;
            }

            // retrieve Family Members from PetraServer
            // If family has no members, returns false
            try
            {
                // Make sure that Typed DataTable is already there at Client side
                if (FMainDS.FamilyMembers == null)
                {
                    FMainDS.Tables.Add(new PartnerEditTDSFamilyMembersTable(PartnerEditTDSFamilyMembersTable.GetTableName()));
                    FMainDS.InitVars();
                }

                FMainDS.FamilyMembers.Rows.Clear();
                FMainDS.Merge(FPartnerEditUIConnector.GetDataFamilyMembers(FamilyPartnerKey, ""));
                FMainDS.FamilyMembers.AcceptChanges();

                if (FMainDS.FamilyMembers.Rows.Count > 0)
                {
                    ReturnValue = true;
                }
                else
                {
                    ReturnValue = false;
                }
            }
            catch (System.NullReferenceException)
            {
                ReturnValue = false;
                return(false);
            }
            catch (Exception)
            {
                ReturnValue = false;

                // raise;
            }

            // Fire OnRecalculateScreenParts event
            RecalculateScreenPartsEventArgs            = new TRecalculateScreenPartsEventArgs();
            RecalculateScreenPartsEventArgs.ScreenPart = TScreenPartEnum.spCounters;
            OnRecalculateScreenParts(RecalculateScreenPartsEventArgs);
            FDataGrid.Selection.Focus(new Position(1, 1), true);
            return(ReturnValue);
        }
Example #3
0
        /// <summary>
        /// Sets up the DataBinding of the Grid.
        ///
        /// </summary>
        /// <returns>void</returns>
        public void DataBindGrid()
        {
            FFamilyMembersDV             = FFamilyMembersDT.DefaultView;
            FFamilyMembersDV.AllowNew    = false;
            FFamilyMembersDV.AllowEdit   = true;
            FFamilyMembersDV.AllowDelete = false;
            FFamilyMembersDV.Sort        = PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName() + " ASC";

            // DataBind the DataGrid
            this.FDataGrid.DataSource = new DevAge.ComponentModel.BoundDataView(FFamilyMembersDV);
            this.FDataGrid.Selection.SelectRow(1, true);
        }
Example #4
0
        /// <summary>
        /// This function determines the current PartnerKey
        ///
        /// </summary>
        /// <returns>void</returns>
        public Int64 DeterminePartnerKeyFromRowNumber(System.Int32 ARowNumber)
        {
            System.Data.DataRowView mRowView;
            System.Data.DataRow     mRow;
            System.Object           mObject;

            // TLogging.Log('Begin of DeterminePartnerKeyFromRowNumber: ' + ARowNumber.ToString, [TLoggingType.ToLogfile]);
            // Grid starts counting with 1
            mRowView = (DataRowView)this.FDataGrid.Rows.IndexToDataSourceRow(ARowNumber + 1);
            mRow     = mRowView.Row;
            mObject  = mRow[PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName()];
            return((System.Int64)(mObject));

            // TLogging.Log('PartnerKey: ' + Result.ToString, [TLoggingType.ToLogfile]);
            // TLogging.Log('End of DeterminePartnerKeyFromRowNumber: ' + ARowNumber.ToString, [TLoggingType.ToLogfile]);
        }
Example #5
0
        /// <summary>
        /// returns Arraylist that has FamilyID and PartnerID pairs. For testing purposes.
        /// </summary>
        /// <returns>void</returns>
        public ArrayList PrintOrder()
        {
            Int32     i;
            ArrayList List;

            List = new ArrayList();

            // Goes through the FamilyMembers, and list FamilyID and PartnerKey
            for (i = 0; i <= (GetNumberOfRows() - 1); i += 1)
            {
                List.Add(Convert.ToString(FFamilyMembersDV[i].Row[PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName()]) + ':' +
                         Convert.ToString(FFamilyMembersDV[i].Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()]));
            }

            return(List);
        }
Example #6
0
        /// <summary>
        /// Sets the order of colums
        /// </summary>
        /// <returns>void</returns>
        public void CreateColumns()
        {
            SourceGrid.Cells.Editors.TextBoxUITypeEditor l_editorDt2;
            Ict.Common.TypeConverter.TDateConverter      DateTypeConverter;
            FFamilyMembersDT = FMainDS.FamilyMembers;

            // Editor for Date of Birth column (Petra Date format)
            l_editorDt2 = new SourceGrid.Cells.Editors.TextBoxUITypeEditor(typeof(DateTime));
            l_editorDt2.EditableMode = EditableMode.None;
            DateTypeConverter        = new Ict.Common.TypeConverter.TDateConverter();

            // DateTypeConverter.
            l_editorDt2.TypeConverter = DateTypeConverter;
            try
            {
                this.FDataGrid.AddTextColumn("Person Name",
                                             FFamilyMembersDT.Columns[PartnerEditTDSFamilyMembersTable.GetPartnerShortNameDBName()], -1, FSpecialCellController, null, null,
                                             null);
                this.FDataGrid.AddTextColumn("Gender",
                                             FFamilyMembersDT.Columns[PartnerEditTDSFamilyMembersTable.GetGenderDBName()], -1, FSpecialCellController, null, null, null);
                this.FDataGrid.AddTextColumn("Date of Birth",
                                             FFamilyMembersDT.Columns[PartnerEditTDSFamilyMembersTable.GetDateOfBirthDBName()], -1, FSpecialCellController, l_editorDt2, null,
                                             null);
                this.FDataGrid.AddTextColumn("Partner Key",
                                             FFamilyMembersDT.Columns[PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName()], -1, FSpecialCellController, null, null, null);
                FamilyIDDropDownValues = new Int32[] {
                    1, 2, 3, 4, 5, 6, 7, 8, 9, 0
                };
                FFamilyIDEditor = new SourceGrid.Cells.Editors.ComboBox(typeof(Int32), FamilyIDDropDownValues, false);
                this.FDataGrid.AddTextColumn("Family ID",
                                             FFamilyMembersDT.Columns[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()], 80, FFamilyIDEditor);
                DisableEditing();
                FFamilyIDEditor.EnableEdit          = false;
                FFamilyIDEditor.Control.Validating += new CancelEventHandler(this.FamilyID_Validating);
                // DevAge.ComponentModel.Validator.ValueMapping FamilyIDDropDownMapping =
                new DevAge.ComponentModel.Validator.ValueMapping();
            }
            catch (System.NullReferenceException)
            {
            }

            // to do if no lines.
        }
Example #7
0
        /// <summary>
        /// Finds out the number of row, and it's Partnerkey in datagrid that's selected.
        /// </summary>
        /// <returns>void</returns>
        public void GetRowSelected(out Int32 ARowNumber, out Int64 ASiteKey)
        {
            System.Int32 CurrentRow;
            DataView     AGridDataView;

            AGridDataView = ((DevAge.ComponentModel.BoundDataView)FDataGrid.DataSource).DataView;
            ARowNumber    = 0;
            ASiteKey      = Convert.ToInt64(((DataRowView)FDataGrid.SelectedDataRows[0]).Row[PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName()]);

            // goes throuhg the FamilyID:s in datagrid, break when comes to selected.
            for (CurrentRow = 0; CurrentRow <= AGridDataView.Count - 1; CurrentRow += 1)
            {
                ARowNumber = ARowNumber + 1;

                if (Convert.ToInt64(AGridDataView[CurrentRow].Row[PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName()]) == ASiteKey)
                {
                    break;
                }
            }
        }
Example #8
0
        /// <summary>
        /// This function determines the current PartnerKey
        ///
        /// </summary>
        /// <returns>void</returns>
        public Int64 DetermineCurrentFamilyMemberPartnerKey(TSgrdDataGrid AGrid)
        {
            DataRowView[] TheDataRowViewArray;
            Int64         PersonPartnerKey;

            // MessageBox.Show(ARow.ToString);
            TheDataRowViewArray = AGrid.SelectedDataRowsAsDataRowView;

            // get PartnerKey of current DataRow
            try
            {
                PersonPartnerKey = Convert.ToInt64(TheDataRowViewArray[0].Row[PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName()]);
            }
            catch (Exception)
            {
                throw;
            }

            // MessageBox.Show(PersonPartnerKey.ToString);
            return(PersonPartnerKey);
        }
Example #9
0
        /// <summary>
        /// This procedure initializes this System.Object.
        ///
        /// </summary>
        /// <returns>void</returns>
        public void InitialisePartnerTypeFamilyMembers(PartnerEditTDSFamilyMembersTable AFamilyMembersDT)
        {
            // Create the result table
            if (FFamilyMembersResultDT == null)
            {
                FFamilyMembersResultDT = new PartnerEditTDSPartnerTypeChangeFamilyMembersPromotionTable();
            }

            // Logger := new Ict.Common.Logging.TLogging('U:\delphi.net\ICT\Petra\Client\_bin\Debug\Propagation.log');
            // Set the column names for the FFamilyMembersResultDT table.
            this.FResultPartnerKeyName     = PartnerEditTDSPartnerTypeChangeFamilyMembersPromotionTable.GetPartnerKeyDBName();
            this.FResultTypeCodeName       = PartnerEditTDSPartnerTypeChangeFamilyMembersPromotionTable.GetTypeCodeDBName();
            this.FResultAddTypeCodeName    = PartnerEditTDSPartnerTypeChangeFamilyMembersPromotionTable.GetAddTypeCodeDBName();
            this.FResultRemoveTypeCodeName = PartnerEditTDSPartnerTypeChangeFamilyMembersPromotionTable.GetRemoveTypeCodeDBName();

            // Set the column names for the FFamilyMembersDT table.
            this.FFamilyMembersDT     = AFamilyMembersDT;
            this.FTypeCodeModifyName  = PartnerEditTDSFamilyMembersTable.GetTypeCodeModifyDBName();
            this.FTypeCodePresentName = PartnerEditTDSFamilyMembersTable.GetTypeCodePresentDBName();
            this.FPartnerKeyName      = PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName();
        }
Example #10
0
        /// <summary>
        /// Checks if the selected FamilyID is maximum.
        /// </summary>
        /// <returns>void</returns>
        public Boolean IsMaximum()
        {
            Boolean ReturnValue = false;
            Int32   Counter;
            Int32   FamilyIDint;

            FamilyIDint = Convert.ToInt32(((DataRowView)FDataGrid.SelectedDataRows[0])[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()]);

            // Goes throuht the FamilyID:s, If finds larger than selected, breaks and returns false. Otherwice true.
            for (Counter = 0; Counter <= (this.GetNumberOfRows() - 1); Counter += 1)
            {
                if (Convert.ToInt64(FFamilyMembersDV[Counter].Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()]) > FamilyIDint)
                {
                    ReturnValue = false;
                    break;
                }

                ReturnValue = true;
            }

            return(ReturnValue);
        }
Example #11
0
        /// <summary>
        /// This procedure creates the colums of the DataGrid displayed
        ///
        /// </summary>
        /// <returns>void</returns>
        public void CreateColumns(TSgrdDataGrid AGrid, System.Data.DataTable ASourceTable, String AAction)
        {
            String FAddRemoveHeaderText;

            SourceGrid.Cells.Editors.TextBoxUITypeEditor      l_editor;
            Ict.Common.TypeConverter.TBooleanToYesNoConverter BooleanToYesNoConverter;
            l_editor = new SourceGrid.Cells.Editors.TextBoxUITypeEditor(typeof(Boolean));
            l_editor.EditableMode   = EditableMode.None;
            BooleanToYesNoConverter = new Ict.Common.TypeConverter.TBooleanToYesNoConverter();

            // PetraDtConverter.
            l_editor.TypeConverter = BooleanToYesNoConverter;
            this.DataGrid          = AGrid;

            // Assemble column heading
            if (AAction == "ADD")
            {
                FAddRemoveHeaderText = "Add?";
                this.FAction         = "ADD";
            }
            else
            {
                FAddRemoveHeaderText = "Remove?";
                this.FAction         = "REMOVE";
            }

            // TLogging.Log('Hello Test Markusm: ', [TLoggingType.ToLogfile]);
            this.FDataGrid.AddCheckBoxColumn(FAddRemoveHeaderText, ASourceTable.Columns[PartnerEditTDSFamilyMembersTable.GetTypeCodeModifyDBName()]);
            this.FDataGrid.AddTextColumn("Currently assigned",
                                         ASourceTable.Columns[PartnerEditTDSFamilyMembersTable.GetTypeCodePresentDBName()], -1, FSpecialCellController, l_editor, null, null);
            this.FDataGrid.AddTextColumn("Person Name", ASourceTable.Columns[PartnerEditTDSFamilyMembersTable.GetPartnerShortNameDBName()]);
            this.FDataGrid.AddTextColumn("Person PartnerKey", ASourceTable.Columns[PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName()]);
            this.FDataGrid.AddTextColumn("Family ID", ASourceTable.Columns[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()]);

            // Add controller to each line
            // mNumberRows := AGrid.Rows.Count;
            // messagebox.show('Number of rows in  the grid: ' + mNumberRows.ToString);
        }
Example #12
0
        /// <summary>
        /// gets asd sets the combox values. Redraws the grids last column. causes errors.
        /// </summary>
        /// <returns>void</returns>
        public void GetComboBoxValues(out Int32[] ComboBoxValues)
        {
            Int32     Counter;
            ArrayList List;
            String    epo;

            // fills the list with numbers 0,1,...9
            ComboBoxValues = new Int32[(10 - GetNumberOfRows())];
            List           = new ArrayList();

            for (Counter = 0; Counter <= 9; Counter += 1)
            {
                List.Add(Counter.ToString());
            }

            // removes the existing familyID:s from the list
            for (Counter = 0; Counter <= this.GetNumberOfRows() - 1; Counter += 1)
            {
                epo = Convert.ToString(FFamilyMembersDV[Counter].Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()]);
                List.Remove(epo);

                // ShowArraylistMembers(List);
            }

            // creates the array of int 32 of the ArrayList members
            for (Counter = 0; Counter <= List.Count - 1; Counter += 1)
            {
                try
                {
                    ComboBoxValues[Counter] = Convert.ToInt32(List[Counter]);
                }
                catch (System.ArgumentOutOfRangeException e)
                {
                    MessageBox.Show("Again a error:" + e.ToString());
                }
            }
        }
Example #13
0
        private void FamilyID_Validating(object sender, System.ComponentModel.CancelEventArgs e)
        {
            const int NEWFAMILYID_DEFAULT = -1;
            Int32     Counter;
            Int64     PartnerKey;
            Boolean   IsInUse;

            IsInUse = false;
            int  NewFamilyID = NEWFAMILYID_DEFAULT;
            bool ValidFormat = true;

            try
            {
                try
                {
                    NewFamilyID = Convert.ToInt32((sender as Control).Text);
                }
                catch (System.FormatException)
                {
                    ValidFormat = false;
                }
                catch (Exception exp)
                {
                    e.Cancel = true;
                    MessageBox.Show("Exception in FamilyID_Validating: " + exp.ToString());
                    throw;
                }

                if (ValidFormat)
                {
                    if ((NewFamilyID < 0) || (NewFamilyID > 99))
                    {
                        MessageBox.Show("Family ID needs to be a number between 0 and 99!");
                        e.Cancel = true;
                        return;
                    }
                }
                else
                {
                    MessageBox.Show("Only numbers are allowed as Family IDs!");
                    e.Cancel = true;
                    return;
                }

                PartnerKey = this.GetPartnerKeySelected();

                // checks if the FamilyID selected from the Combobox is already in use
                for (Counter = 0; Counter <= (GetNumberOfRows() - 1); Counter += 1)
                {
                    if (FFamilyMembersDV[Counter].Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()].ToString() == NewFamilyID.ToString())
                    {
                        if (FFamilyMembersDV[Counter].Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()].ToString() ==
                            this.GetFamilyID().ToString())
                        {
                            break;
                        }

                        IsInUse = true;

                        // the validating event is cancelled. (for saving the old FamilyID
                        e.Cancel = true;
                        break;
                    }
                }

                // if The Family ID selected from the Combobox is already in use, copies the old FamilyID to that Person edited.
                // This needs to be done, because the combobox (or FFamilyIDEditor) is databinded to the database.
                if (IsInUse)
                {
                    for (Counter = 0; Counter <= (GetNumberOfRows() - 1); Counter += 1)
                    {
                        if (FFamilyMembersDV[Counter].Row == (object)PartnerKey)
                        {
                            FFamilyMembersDV[Counter].Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()] = (object)this.GetFamilyID();

                            // Int32 LocationMemory = Counter;

                            break;
                        }
                    }

                    MessageBox.Show("Please, select another Family ID, the one you selected (" + NewFamilyID.ToString() + ") is already in use!");
                }
            }
            catch
            {
                throw;
            }
        }
Example #14
0
        /// <summary>
        /// Demotes selected ID (and promotes the FamilyID next (lower) to selected FamilyID
        /// </summary>
        /// <returns>void</returns>
        public void DemoteFamilyID()
        {
            Int32 Buttonvalue = -1;
            Int32 NumberOfRows;
            Int32 Counter;
            Int32 CounterToMax;
            Int32 FamilyIDint;

            System.Object     PartnerKey;
            System.Object     FamilyID         = -1;
            System.Object     PreviousFamilyID = -1;
            System.Object     PersonName1      = "";
            System.Object     PersonName2      = "";
            Boolean           MemberFind;
            MessageBoxButtons Button;

            // Get the PartnerKey of the selected Row
            PartnerKey   = ((DataRowView)FDataGrid.SelectedDataRows[0]).Row[PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName()];
            NumberOfRows = GetNumberOfRows();

            // for loop to get the selected partners ID
            for (Counter = 0; Counter <= (NumberOfRows - 1); Counter += 1)
            {
                if (FFamilyMembersDV[Counter].Row[PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName()].ToString() == PartnerKey.ToString())
                {
                    FamilyID    = FFamilyMembersDV[Counter].Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()];
                    PersonName1 = FFamilyMembersDV[Counter].Row[PartnerEditTDSFamilyMembersTable.GetPartnerShortNameDBName()];
                    break;
                }
            }

            if ((this.IsMinimum()) && (Convert.ToInt32(FamilyID) > 0))
            {
                FFamilyMembersDV[Counter].Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()] = (object)0;
                Buttonvalue = 1;
                FamilyID    = (object)0;
            }

            // loop to find the nearest smaller FamilyID compared to selected FamilyID.
            // sets the previous FamilyID to correct.
            MemberFind  = true;
            FamilyIDint = Convert.ToInt32(FamilyID);

            // If Family ID is 2, or A parent is to be replaced with child, gives warning.
            if (FamilyIDint == 2)
            {
                Button = MessageBoxButtons.YesNo;

                if (MessageBox.Show("Parents should be Family ID 0 or 1" + "\r\nAre you sure you want to change this Family ID?", "Family ID Change",
                                    Button) == DialogResult.No)
                {
                    Buttonvalue = 1;
                }
            }

            // if FamilyID to be demoted is 2 and cancel is selected from warnind messagebox, does nothing. otherwice goes through the  for loop
            if (Buttonvalue != 1)
            {
                // Goes through the FamilyID:s from 1 to selected FamilyID
                for (CounterToMax = 1; CounterToMax <= FamilyIDint; CounterToMax += 1)
                {
                    // Goes through all the FamilyID:s
                    for (Counter = 0; Counter <= (NumberOfRows - 1); Counter += 1)
                    {
                        // when finds FamilyID next to selected (below), Sets the found Family ID to selected
                        if (Convert.ToInt32(FFamilyMembersDV[Counter].Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()].ToString()) ==
                            (FamilyIDint - CounterToMax))
                        {
                            // saves the found FamilyID
                            PreviousFamilyID = FFamilyMembersDV[Counter].Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()];
                            FFamilyMembersDV[Counter].Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()] =
                                (object)(Convert.ToInt32(PreviousFamilyID) + 1);
                            PersonName2 = FFamilyMembersDV[Counter].Row[PartnerEditTDSFamilyMembersTable.GetPartnerShortNameDBName()];

                            if (PersonName2 == PersonName1)
                            {
                                PersonName1 = PreviousPartnerMemory;
                            }

                            MemberFind = false;
                            break;
                        }
                    }

                    if (!MemberFind)
                    {
                        break;
                    }
                }

                // loop to set the selected FamilyID to the PreviousFamilyID
                for (Counter = 0; Counter <= (NumberOfRows - 1); Counter += 1)
                {
                    if (FFamilyMembersDV[Counter].Row[PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName()].ToString() == PartnerKey.ToString())
                    {
                        FFamilyMembersDV[Counter].Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()] = PreviousFamilyID;
                        break;
                    }
                }

                MessageBox.Show(String.Format(StrFamilyIDChangeDone, PersonName1, FamilyID, PreviousFamilyID,
                                              PersonName2, PreviousFamilyID, (Convert.ToInt32(PreviousFamilyID) + 1)),
                                StrFamilyIDChangeDoneTitle);
                PreviousPartnerMemory = PersonName1;
            }
            else
            {
            }
        }
        /// <summary>
        /// Sets the order of colums
        /// </summary>
        /// <returns>void</returns>
        private void CreateGridColumns()
        {
            SourceGrid.Cells.Editors.TextBoxUITypeEditor l_editorDt2;
            Ict.Common.TypeConverter.TDateConverter DateTypeConverter;
            FFamilyMembersDT = FMainDS.FamilyMembers;

            // Editor for Date of Birth column (Petra Date format)
            l_editorDt2 = new SourceGrid.Cells.Editors.TextBoxUITypeEditor(typeof(DateTime));
            l_editorDt2.EditableMode = EditableMode.None;
            DateTypeConverter = new Ict.Common.TypeConverter.TDateConverter();

            // DateTypeConverter.
            l_editorDt2.TypeConverter = DateTypeConverter;
            try
            {
                grdFamilyMembers.AddTextColumn("Person Name",
                    FFamilyMembersDT.Columns[PartnerEditTDSFamilyMembersTable.GetPartnerShortNameDBName()], -1, FSpecialCellController, null, null,
                    null);
                grdFamilyMembers.AddTextColumn("Gender",
                    FFamilyMembersDT.Columns[PartnerEditTDSFamilyMembersTable.GetGenderDBName()], -1, FSpecialCellController, null, null, null);
                grdFamilyMembers.AddTextColumn("Date of Birth",
                    FFamilyMembersDT.Columns[PartnerEditTDSFamilyMembersTable.GetDateOfBirthDBName()], -1, FSpecialCellController, l_editorDt2, null,
                    null);
                grdFamilyMembers.AddPartnerKeyColumn("Partner Key",
                    FFamilyMembersDT.Columns[PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName()]);
                FamilyIDDropDownValues = new Int32[] {
                    1, 2, 3, 4, 5, 6, 7, 8, 9, 0
                };
                FFamilyIDEditor = new SourceGrid.Cells.Editors.ComboBox(typeof(Int32), FamilyIDDropDownValues, false);
                grdFamilyMembers.AddTextColumn("Family ID",
                    FFamilyMembersDT.Columns[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()], 80, FFamilyIDEditor);
                DisableEditing();
                FFamilyIDEditor.EnableEdit = false;
                FFamilyIDEditor.Control.Validating += new CancelEventHandler(this.FamilyID_Validating);
                // DevAge.ComponentModel.Validator.ValueMapping FamilyIDDropDownMapping =
                new DevAge.ComponentModel.Validator.ValueMapping();
            }
            catch (System.NullReferenceException)
            {
            }

            // to do if no lines.
        }
        private void SpecialSubmitProcessingFamilyMembers(
            PartnerEditTDSFamilyMembersTable AFamilyMembersTable,
            TDBTransaction ASubmitChangesTransaction)
        {
            Int32 DummyCounter = 100;

            /*
             * Load the Persons of a Family
             */
            PPersonTable FamilyPersonsDT = PPersonAccess.LoadViaPFamily(FPartnerEditScreenDS.PFamily[0].PartnerKey, ASubmitChangesTransaction);

            /*
             * Now change the FamilyID of those rows that have been modified on the
             * Client side (first to a dummy value to prevent uniqueness constraint
             * violations)
             */
            for (int Counter = 0; Counter <= AFamilyMembersTable.Rows.Count - 1; Counter += 1)
            {
                PPersonRow ChangePersonRow = (PPersonRow)FamilyPersonsDT.Rows.Find(new Object[] { AFamilyMembersTable[Counter].PartnerKey });
                ChangePersonRow.FamilyId = DummyCounter;
//              TLogging.LogAtLevel(7, "Person " + ChangePersonRow.PartnerKey.ToString() + ": changed OldFamilyID to Dummy " + DummyCounter.ToString());
                DummyCounter = DummyCounter - 1;
            }

            // Save the dummy values
            PPersonAccess.SubmitChanges(FamilyPersonsDT, ASubmitChangesTransaction);

            FamilyPersonsDT.AcceptChanges();

            // Now change it to the real values
            for (int Counter = 0; Counter <= AFamilyMembersTable.Rows.Count - 1; Counter += 1)
            {
                PPersonRow ChangePersonRow = (PPersonRow)FamilyPersonsDT.Rows.Find(new Object[] { AFamilyMembersTable[Counter].PartnerKey });
                ChangePersonRow.FamilyId = AFamilyMembersTable[Counter].FamilyId;
//              TLogging.LogAtLevel(7, "Person " + ChangePersonRow.PartnerKey.ToString() + ": changed OldFamilyID to " + ChangePersonRow.FamilyId.ToString());
            }

            // Save the changes
            PPersonAccess.SubmitChanges(FamilyPersonsDT, ASubmitChangesTransaction);
        }
Example #17
0
        /// <summary>
        /// Promotes selected ID (and demotes the FamilyID next (up) to selected FamilyID
        /// </summary>
        /// <returns>void</returns>
        public void PromoteFamilyID()
        {
            Int32 buttonvalue = -1;
            Int32 Counter1;
            Int32 NumberOfRows;
            Int32 Counter2;
            Int32 Counter2ToMax;
            Int32 FamilyIDint;

            System.Object     PartnerKey;
            System.Object     FamilyID     = -1;
            System.Object     PersonName1  = "";
            System.Object     PersonName2  = "";
            System.Object     NextFamilyID = "";
            Boolean           MemberFind;
            MessageBoxButtons Button;

            // Get the PartnerKey of the selected Row
            PartnerKey   = ((DataRowView)FDataGrid.SelectedDataRows[0]).Row[PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName()];
            NumberOfRows = GetNumberOfRows();

            // for loop to get the selected partners ID
            for (Counter2 = 0; Counter2 <= (NumberOfRows - 1); Counter2 += 1)
            {
                if (FFamilyMembersDV[Counter2].Row[PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName()].ToString() == PartnerKey.ToString())
                {
                    FamilyID    = FFamilyMembersDV[Counter2].Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()];
                    PersonName1 = FFamilyMembersDV[Counter2].Row[PartnerEditTDSFamilyMembersTable.GetPartnerShortNameDBName()];
                    break;
                }
            }

            // loop to find the nearest  FamilyID compared to selected FamilyID.
            // sets the next FamilyID to correct.
            MemberFind  = true;
            FamilyIDint = Convert.ToInt32(FamilyID);

            // If Family ID 1 (parent) is about to be promoted
            if (FamilyIDint == 1)
            {
                Button      = MessageBoxButtons.YesNo;
                buttonvalue = 0;

                // if pressed No to question below, does nothing.
                if (MessageBox.Show("Parents should be Family ID 0 or 1" + "\r\nAre you sure you want to change this Family ID?", "Family ID Change",
                                    Button) == DialogResult.No)
                {
                    buttonvalue = 1;
                }
            }

            // Executes this loop, if Family ID to be promoted is not 1.
            if (buttonvalue != 1)
            {
                Counter2ToMax = 100;

                // goes through all values from selected +1 to 100+selected.
                for (Counter1 = 1; Counter1 <= Counter2ToMax; Counter1 += 1)
                {
                    // goes through all FamilyID:s
                    for (Counter2 = 0; Counter2 <= (NumberOfRows - 1); Counter2 += 1)
                    {
                        // When finds FamilyID that's next (above) to selected FamilyID, Replaces the Found Family members ID with selected ID
                        if (Convert.ToInt32(FFamilyMembersDV[Counter2].Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()].ToString())
                            == FamilyIDint + Counter1)
                        {
                            // saves the FamilyIF just found
                            NextFamilyID = FFamilyMembersDV[Counter2].Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()];
                            FFamilyMembersDV[Counter2].Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()] = FamilyID;
                            PersonName2 = FFamilyMembersDV[Counter2].Row[PartnerEditTDSFamilyMembersTable.GetPartnerShortNameDBName()];
                            MemberFind  = false;
                            break;
                        }
                    }

                    if (!MemberFind)
                    {
                        break;
                    }
                }

                // end;
                // loop to set the selected FamilyID to the PreviousFamilyID
                for (Counter2 = 0; Counter2 <= (NumberOfRows - 1); Counter2 += 1)
                {
                    if (FFamilyMembersDV[Counter2].Row[PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName()].ToString() == PartnerKey.ToString())
                    {
                        FFamilyMembersDV[Counter2].Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()] = (object)(FamilyIDint + 1);
                        break;
                    }
                }

                // button := MessageBoxButtons.OK;

                MessageBox.Show(String.Format(StrFamilyIDChangeDone, PersonName1, FamilyID, (FamilyIDint + 1),
                                              PersonName2, NextFamilyID, FamilyID),
                                StrFamilyIDChangeDoneTitle);
            }
            else
            {
            }
        }
        private PartnerEditTDSFamilyMembersTable GetFamilyMembersInternal(Int64 AFamilyPartnerKey,
            String AWorkWithSpecialType,
            out Int32 ACount,
            Boolean ACountOnly)
        {
            TDBTransaction ReadTransaction;

            OdbcParameter[] ParametersArray;
            Boolean NewTransaction = false;
            PartnerEditTDSFamilyMembersTable PartnerTypeFamilyMembersDT;
            PPersonTable FamilyPersonsDT;
            PPartnerTypeTable PartnerTypesDT;
            DataRow[] PartnerTypesFoundRows;
            PartnerEditTDSFamilyMembersRow NewRow;
            StringCollection RequiredColumns;
            int Counter;
            Boolean TypeCodePresent;
            DataSet TmpDS;


            PartnerTypeFamilyMembersDT = new PartnerEditTDSFamilyMembersTable();

            try
            {
                ReadTransaction = DBAccess.GDBAccessObj.GetNewOrExistingTransaction(IsolationLevel.RepeatableRead,
                    TEnforceIsolationLevel.eilMinimum, out NewTransaction);

                ParametersArray = new OdbcParameter[1];
                ParametersArray[0] = new OdbcParameter("", OdbcType.Decimal, 10);
                ParametersArray[0].Value = (System.Object)AFamilyPartnerKey;

                if (ACountOnly)
                {
                    ACount = Convert.ToInt32(DBAccess.GDBAccessObj.ExecuteScalar(
                            "SELECT COUNT(*) " +
                            "FROM PUB_" + PPersonTable.GetTableDBName() +
                            " INNER JOIN " + "PUB_" + PPartnerTable.GetTableDBName() +
                            " ON " + "PUB_" + PPersonTable.GetTableDBName() + '.' +
                            PPartnerTable.GetPartnerKeyDBName() + " = " +
                            "PUB_" + PPartnerTable.GetTableDBName() + '.' +
                            PPartnerTable.GetPartnerKeyDBName() + ' ' +
                            "WHERE " + PPersonTable.GetFamilyKeyDBName() + " = ? " +
                            "AND " + PPartnerTable.GetStatusCodeDBName() + " <> '" +
                            SharedTypes.StdPartnerStatusCodeEnumToString(TStdPartnerStatusCode.spscMERGED) + "'", ReadTransaction,
                            ParametersArray));

                    // Make sure we don't count MERGED Partners (shouldn't have a p_family_key_n, but just in case.)
                }
                else
                {
                    // Find all Persons that belong to the Family
//                  TLogging.LogAtLevel(7, "TPartnerEditUIConnector.GetFamilyMembersInternal: loading Persons for Family " + AFamilyPartnerKey.ToString() + "...");

                    TmpDS = new DataSet();
                    FamilyPersonsDT = new PPersonTable();
                    TmpDS.Tables.Add(FamilyPersonsDT);
                    DBAccess.GDBAccessObj.Select(TmpDS,
                        "SELECT " + "PUB_" + PPartnerTable.GetTableDBName() + '.' +
                        PPartnerTable.GetPartnerKeyDBName() + ", " +
                        PPersonTable.GetFamilyNameDBName() + ", " +
                        PPersonTable.GetTitleDBName() + ", " +
                        PPersonTable.GetFirstNameDBName() + ", " +
                        PPersonTable.GetMiddleName1DBName() + ", " +
                        PPersonTable.GetFamilyIdDBName() + ", " +
                        PPersonTable.GetGenderDBName() + ", " +
                        PPersonTable.GetDateOfBirthDBName() + ' ' +
                        "FROM PUB_" + PPersonTable.GetTableDBName() +
                        " INNER JOIN " + "PUB_" + PPartnerTable.GetTableDBName() + " ON " +
                        "PUB_" + PPersonTable.GetTableDBName() + '.' +
                        PPartnerTable.GetPartnerKeyDBName() + " = " +
                        "PUB_" + PPartnerTable.GetTableDBName() + '.' +
                        PPartnerTable.GetPartnerKeyDBName() + ' ' +
                        "WHERE " + PPersonTable.GetFamilyKeyDBName() + " = ? " +
                        "AND " + PPartnerTable.GetStatusCodeDBName() + " <> '" +
                        SharedTypes.StdPartnerStatusCodeEnumToString(TStdPartnerStatusCode.spscMERGED) + "'",    // Make sure we don't load MERGED Partners (shouldn't have a p_family_key_n, but just in case.)
                        PPersonTable.GetTableName(), ReadTransaction, ParametersArray, 0, 0);

                    ACount = FamilyPersonsDT.Rows.Count;

                    RequiredColumns = new StringCollection();
                    RequiredColumns.Add(PPartnerTypeTable.GetTypeCodeDBName());

                    TypeCodePresent = false;

                    // Add Persons to Table
                    for (Counter = 0; Counter <= FamilyPersonsDT.Rows.Count - 1; Counter += 1)
                    {
                        // Load a Person's SpecialTypes if requested
                        if (AWorkWithSpecialType != "")
                        {
                            PartnerTypesDT = PPartnerTypeAccess.LoadViaPPartner(
                                FamilyPersonsDT[Counter].PartnerKey,
                                RequiredColumns,
                                ReadTransaction,
                                null,
                                0,
                                0);

                            if (PartnerTypesDT.Rows.Count != 0)
                            {
                                // check if the searched for Special Type is present
                                PartnerTypesFoundRows = PartnerTypesDT.Select(
                                    PPartnerTypeTable.GetTypeCodeDBName() + " = '" + AWorkWithSpecialType + "'");

                                if ((PartnerTypesFoundRows != null) && (PartnerTypesFoundRows.Length > 0))
                                {
                                    TypeCodePresent = true;
                                }
                                else
                                {
                                    TypeCodePresent = false;
                                }
                            }
                            else
                            {
                                TypeCodePresent = false;
                            }
                        }

                        NewRow = PartnerTypeFamilyMembersDT.NewRowTyped(false);
                        NewRow.PartnerKey = FamilyPersonsDT[Counter].PartnerKey;
                        NewRow.PartnerShortName =
                            Calculations.DeterminePartnerShortName(TSaveConvert.StringColumnToString(FamilyPersonsDT.ColumnFamilyName,
                                    FamilyPersonsDT[Counter]), TSaveConvert.StringColumnToString(FamilyPersonsDT.ColumnTitle,
                                    FamilyPersonsDT[Counter]), TSaveConvert.StringColumnToString(FamilyPersonsDT.ColumnFirstName,
                                    FamilyPersonsDT[Counter]),
                                TSaveConvert.StringColumnToString(FamilyPersonsDT.ColumnMiddleName1, FamilyPersonsDT[Counter]));
                        NewRow.FamilyId = FamilyPersonsDT[Counter].FamilyId;

                        if (AWorkWithSpecialType != "")
                        {
                            NewRow.TypeCodePresent = TypeCodePresent;
                            NewRow.TypeCodeModify = false;

                            // TODO 2 oChristianK cSpecial Types / Family Members : Add all other Special Types of each Person
                            NewRow.OtherTypeCodes = "#NOT YET RETRIEVED FROM DB!#";
                        }

                        NewRow.Gender = FamilyPersonsDT[Counter].Gender;

                        try
                        {
                            NewRow.DateOfBirth = FamilyPersonsDT[Counter].DateOfBirth;
                        }
                        catch (System.Data.StrongTypingException)
                        {
                            NewRow.DateOfBirth = System.DateTime.MinValue;
                        }

                        PartnerTypeFamilyMembersDT.Rows.Add(NewRow);
                    }
                }
            }
            finally
            {
                if (NewTransaction)
                {
                    DBAccess.GDBAccessObj.CommitTransaction();
                    TLogging.LogAtLevel(7, "TPartnerEditUIConnector.GetFamilyMembersInternal: committed own transaction.");
                }
            }
            return PartnerTypeFamilyMembersDT;
        }
Example #19
0
 /// <summary>
 /// returns the selected Family ID
 /// </summary>
 /// <returns>void</returns>
 public Int32 GetFamilyID()
 {
     return(Convert.ToInt32(((DataRowView)FDataGrid.SelectedDataRows[0]).Row[PartnerEditTDSFamilyMembersTable.GetFamilyIdDBName()]));
 }
Example #20
0
 /// <summary>
 /// todoComment
 /// </summary>
 /// <returns></returns>
 public Int64 GetPartnerKeySelected()
 {
     return(Convert.ToInt64(((DataRowView)FDataGrid.SelectedDataRows[0]).Row[PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName()]));
 }
        /// <summary>
        /// This procedure initializes this System.Object.
        ///
        /// </summary>
        /// <returns>void</returns>
        public void InitialisePartnerTypeFamilyMembers(PartnerEditTDSFamilyMembersTable AFamilyMembersDT)
        {
            // Create the result table
            if (FFamilyMembersResultDT == null)
            {
                FFamilyMembersResultDT = new PartnerEditTDSPartnerTypeChangeFamilyMembersPromotionTable();
            }

            // Logger := new Ict.Common.Logging.TLogging('U:\delphi.net\ICT\Petra\Client\_bin\Debug\Propagation.log');
            // Set the column names for the FFamilyMembersResultDT table.
            this.FResultPartnerKeyName = PartnerEditTDSPartnerTypeChangeFamilyMembersPromotionTable.GetPartnerKeyDBName();
            this.FResultTypeCodeName = PartnerEditTDSPartnerTypeChangeFamilyMembersPromotionTable.GetTypeCodeDBName();
            this.FResultAddTypeCodeName = PartnerEditTDSPartnerTypeChangeFamilyMembersPromotionTable.GetAddTypeCodeDBName();
            this.FResultRemoveTypeCodeName = PartnerEditTDSPartnerTypeChangeFamilyMembersPromotionTable.GetRemoveTypeCodeDBName();

            // Set the column names for the FFamilyMembersDT table.
            this.FFamilyMembersDT = AFamilyMembersDT;
            this.FTypeCodeModifyName = PartnerEditTDSFamilyMembersTable.GetTypeCodeModifyDBName();
            this.FTypeCodePresentName = PartnerEditTDSFamilyMembersTable.GetTypeCodePresentDBName();
            this.FPartnerKeyName = PartnerEditTDSFamilyMembersTable.GetPartnerKeyDBName();
        }