public bool GetMinValueToChargeInRefund(long groupId, ref long minMoney) { trace.Write(TraceLevel.Debug, "CM1GroupsTree::GetMinValueToChargeInRefund"); bool fnResult = true; try { // Get group object of the group of the operation to evaluate CM1Group pGrp = GetGroupFromGrpId(groupId); if (pGrp == null) { throw new InvalidOperationException("Could not obtain group of current operation"); } long lGrpMinValueToCharge = 0; long lMinValueToCharge = 0; minMoney = -1; while (pGrp != null) { lGrpMinValueToCharge = pGrp.GetMinValueToChargeInRefund(); if (lGrpMinValueToCharge == GlobalDefs.DEF_UNDEFINED_VALUE) { lMinValueToCharge = 0; } else { lMinValueToCharge = lGrpMinValueToCharge; } minMoney = Math.Max(lMinValueToCharge, minMoney); pGrp = GetGroupParent(pGrp.GetGrpId()); } trace.Write(TraceLevel.Info, $"Min. money to charge in refunds {groupId}: {minMoney}"); } catch (Exception error) { trace.Write(TraceLevel.Error, error.ToLogString()); fnResult = false; } return(fnResult); }