public bool GetBranchMaxInterdateReentry(long lGroup, ref long lMaxInDtRee)
        {
            trace.Write(TraceLevel.Debug, "CM1GroupsTree::GetBranchMaxInterdateReentry");
            bool fnResult = true;

            try
            {
                lMaxInDtRee = GlobalDefs.DEF_UNDEFINED_VALUE;

                // Get group object of the group of the operation to evaluate
                CM1Group pGrp = GetGroupFromGrpId(lGroup);

                if (pGrp == null)
                {
                    throw new InvalidOperationException("Could not obtain group of current operation");
                }

                long lGrpAccInDtRee = GlobalDefs.DEF_UNDEFINED_VALUE;

                while ((pGrp != null) && (lGrpAccInDtRee == GlobalDefs.DEF_UNDEFINED_VALUE))
                {
                    lGrpAccInDtRee = pGrp.GetMaxInterdateReentry();

                    pGrp = GetGroupParent(pGrp.GetGrpId());
                }

                lMaxInDtRee = lGrpAccInDtRee;
                trace.Write(TraceLevel.Info, $"Max. Interdate for reentry for group {lGroup}: {lMaxInDtRee}");
            }
            catch (Exception error)
            {
                trace.Write(TraceLevel.Error, error.ToLogString());
                fnResult = false;
            }

            return(fnResult);
        }