예제 #1
0
        public static int CanFamilyMergeIntoDifferentClass(long APartnerKey)
        {
            int            ReturnValue = 0;
            TDBTransaction Transaction = null;

            DBAccess.GDBAccessObj.BeginAutoReadTransaction(IsolationLevel.ReadCommitted,
                                                           ref Transaction,
                                                           delegate
            {
                PPersonTable PersonTable = PPersonAccess.LoadViaPFamily(APartnerKey, Transaction);

                if (PersonTable.Rows.Count > 0)
                {
                    ReturnValue = 1;
                }

                AGiftDetailTable GiftDetailTable = AGiftDetailAccess.LoadViaPPartnerRecipientKey(APartnerKey, Transaction);

                if (GiftDetailTable.Rows.Count > 0)
                {
                    ReturnValue = 2;
                }

                PBankingDetailsTable BankingDetailsTable = PBankingDetailsAccess.LoadViaPPartner(APartnerKey, Transaction);

                if (BankingDetailsTable.Rows.Count > 0)
                {
                    ReturnValue = 3;
                }
            });

            return(ReturnValue);
        }
예제 #2
0
        public static int CheckPartnerCommitments(long AFromPartnerKey, long AToPartnerKey, TPartnerClass APartnerClass)
        {
            PPersonTable FromPersonTable = null;
            PPersonTable ToPersonTable   = null;
            int          ReturnValue     = 0;

            TDBTransaction Transaction = DBAccess.GDBAccessObj.BeginTransaction(IsolationLevel.ReadCommitted);

            try
            {
                if (APartnerClass == TPartnerClass.FAMILY)
                {
                    FromPersonTable = PPersonAccess.LoadViaPFamily(AFromPartnerKey, Transaction);
                    ToPersonTable   = PPersonAccess.LoadViaPFamily(AToPartnerKey, Transaction);
                }
                else if (APartnerClass == TPartnerClass.PERSON)
                {
                    FromPersonTable = PPersonAccess.LoadViaPPartner(AFromPartnerKey, Transaction);
                    ToPersonTable   = PPersonAccess.LoadViaPPartner(AToPartnerKey, Transaction);
                }

                // check if from partner has commitments
                if (PersonHasCommitments(FromPersonTable, Transaction))
                {
                    ReturnValue = 1;

                    // check if two persons are in same family
                    if ((APartnerClass == TPartnerClass.PERSON) &&
                        (((PPersonRow)FromPersonTable.Rows[0]).FamilyKey == ((PPersonRow)ToPersonTable.Rows[0]).FamilyKey))
                    {
                        ReturnValue = 3;
                    }
                    // check if to partner also has commitments
                    else if (PersonHasCommitments(ToPersonTable, Transaction))
                    {
                        ReturnValue = 2;
                    }
                }
            }
            catch (Exception e)
            {
                TLogging.Log(e.ToString());
            }
            finally
            {
                DBAccess.GDBAccessObj.RollbackTransaction();
                TLogging.LogAtLevel(7, "TMergePartnersWebConnector.CheckPartnerCommitments: rollback own transaction.");
            }

            return(ReturnValue);
        }
예제 #3
0
        public static int CheckPartnerCommitments(long AFromPartnerKey, long AToPartnerKey, TPartnerClass APartnerClass)
        {
            PPersonTable FromPersonTable = null;
            PPersonTable ToPersonTable   = null;
            int          ReturnValue     = 0;

            TDBTransaction Transaction = null;

            DBAccess.GDBAccessObj.BeginAutoReadTransaction(IsolationLevel.ReadCommitted,
                                                           ref Transaction,
                                                           delegate
            {
                if (APartnerClass == TPartnerClass.FAMILY)
                {
                    FromPersonTable = PPersonAccess.LoadViaPFamily(AFromPartnerKey, Transaction);
                    ToPersonTable   = PPersonAccess.LoadViaPFamily(AToPartnerKey, Transaction);
                }
                else if (APartnerClass == TPartnerClass.PERSON)
                {
                    FromPersonTable = PPersonAccess.LoadViaPPartner(AFromPartnerKey, Transaction);
                    ToPersonTable   = PPersonAccess.LoadViaPPartner(AToPartnerKey, Transaction);
                }

                // check if from partner has commitments
                if (PersonHasCommitments(FromPersonTable, Transaction))
                {
                    ReturnValue = 1;

                    // check if two persons are in same family
                    if ((APartnerClass == TPartnerClass.PERSON) &&
                        (((PPersonRow)FromPersonTable.Rows[0]).FamilyKey == ((PPersonRow)ToPersonTable.Rows[0]).FamilyKey))
                    {
                        ReturnValue = 3;
                    }
                    // check if to partner also has commitments
                    else if (PersonHasCommitments(ToPersonTable, Transaction))
                    {
                        ReturnValue = 2;
                    }
                }
            });

            return(ReturnValue);
        }
예제 #4
0
        public static int CanFamilyMergeIntoDifferentClass(long APartnerKey)
        {
            TDBTransaction Transaction = DBAccess.GDBAccessObj.BeginTransaction(IsolationLevel.ReadCommitted);

            try
            {
                PPersonTable PersonTable = PPersonAccess.LoadViaPFamily(APartnerKey, Transaction);

                if (PersonTable.Rows.Count > 0)
                {
                    return(1);
                }

                AGiftDetailTable GiftDetailTable = AGiftDetailAccess.LoadViaPPartnerRecipientKey(APartnerKey, Transaction);

                if (GiftDetailTable.Rows.Count > 0)
                {
                    return(2);
                }

                PBankingDetailsTable BankingDetailsTable = PBankingDetailsAccess.LoadViaPPartner(APartnerKey, Transaction);

                if (BankingDetailsTable.Rows.Count > 0)
                {
                    return(3);
                }
            }
            catch (Exception e)
            {
                TLogging.Log(e.ToString());
            }
            finally
            {
                DBAccess.GDBAccessObj.RollbackTransaction();
                TLogging.LogAtLevel(7, "TMergePartnersWebConnector.CanFamilyMergeIntoDifferentClass: rollback own transaction.");
            }

            return(0);
        }