public void Init()
        {
            m_lId     = GRP_UNDEFINED;
            m_lTypeId = GRP_UNDEFINED;
            m_dtLast.SetStatus(COPSDateStatus.Null);
            trace    = null;
            m_lState = M1GroupState.GRP_ON;

            ResetTime();
            ResetMoney();

            for (int i = 0; i < CM1Constraint.CNSTR_NUM; i++)
            {
                m_Cnstr[i] = new CM1Constraint();
                m_Cnstr[i].Set(CM1Constraint.CNSTR_UNDEFINED, CM1Constraint.CNSTR_UNDEFINED);
            }
        }
        public virtual void Clear()
        {
            trace.Write(TraceLevel.Debug, "CDatM::Clear");

            try
            {
                m_bLookingForType = false;
                m_strIDMsg        = "";
                // Header
                m_dwTelID = 0;
                // Message Attributtes
                m_iIdentifier = GlobalDefs.DEF_UNDEFINED_VALUE;
                m_iRet        = GlobalDefs.DEF_UNDEFINED_VALUE;
                m_iPriority   = GlobalDefs.DEF_UNDEFINED_VALUE;
                m_iInUnit     = GlobalDefs.DEF_UNDEFINED_VALUE;

                m_iTelType = DEF_TELTYPE_UNKNOW;
                m_iMxType  = DEF_MTYPE_MUNKNOW;
                m_iNbError = 0;
                m_bTagAtt  = false;

                m_dtHdDate?.SetStatus(COPSDateStatus.Null);

                m_szHdSrc    = string.Empty;
                m_szDst      = string.Empty;
                m_szTagValue = string.Empty;
                m_szTagName  = string.Empty;

                m_iSent            = 0;
                m_pStatColl        = null;
                m_iSendingPriority = (int)Priority.PRIORITY_MEDIUM;
            }
            catch (Exception error)
            {
                trace.Write(TraceLevel.Error, error.ToLogString());
            }
        }
        public override void Clear()
        {
            base.Clear();

            trace.Write(TraceLevel.Debug, "CDatM1::Clear");

            m_iSendingPriority   = (int)Priority.PRIORITY_VERY_HIGH;
            m_szInGroupDesc      = string.Empty;
            m_szInArticleDefDesc = string.Empty;
            m_iInOperType        = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_iInArticle         = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_iInArticleDef      = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_iInGroup           = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_lInMoney           = 0;
            m_dtInDate?.SetStatus(COPSDateStatus.Null);
            m_strInVehicleID?.Empty();
            m_iPaymentType = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_dtInMaxDate?.SetStatus(COPSDateStatus.Null);
            m_bInComputeTimeLimits           = false;
            m_lInMaxTime                     = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_bInHistOnlyWithSamePaymentType = false;
            m_lInIntervalOffsetMinutes       = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_lInIntervalOffsetMoney         = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_bRoundMoney                    = true;
            m_iInCheckArticle                = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_lInOperationID                 = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_lInCurrRotation                = 0;

            m_lInAddFreeMinutesQuantity = 0;
            m_lInAddFreeMoneyQuantity   = 0;

            // Out
            m_iOutResult     = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_lOutMinImport  = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_lOutMaxImport  = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_lOutMinTime    = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_lOutMaxTime    = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_nOutEfMaxTime  = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_lOutStepImport = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_lOutRetImport  = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_lOutImportAcc  = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_dtOutOperDate?.SetStatus(COPSDateStatus.Null);
            m_dtOutOperDateIni?.SetStatus(COPSDateStatus.Null);
            m_dtOutOperDateEnd?.SetStatus(COPSDateStatus.Null);
            m_dtOutOperDateIni0?.SetStatus(COPSDateStatus.Null);
            m_dtOutMinOperDate?.SetStatus(COPSDateStatus.Null);
            m_dtOutMaxOperDate?.SetStatus(COPSDateStatus.Null);
            m_lOutAcummImport         = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_nOutAcummTime           = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_lOutAcummImportAllGroup = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_nOutAcummTimeAllGroup   = GlobalDefs.DEF_UNDEFINED_VALUE;

            m_iOutWholeOperationWithChipCard = 0;
            m_iOutWholeOperationWithMobile   = 0;
            m_dtOutOperDateRealIni?.SetStatus(COPSDateStatus.Null);
            m_lOutRealAcummImport = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_nOutRealAcummTime   = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_iOutPostPay         = 0;
            m_iOutIsResident      = 0;
            m_iOutIsVIP           = 0;
            m_bOutHistPostPay     = false;
            m_iOutRemainingMinutesWithZeroValue = 0;
            m_bCurrentAmountIsAllowed           = false;
            m_iCurNumPhotos         = 0;
            m_iOutNumPhotosReceived = 0;

            foreach (PhotoStorage photoStorage in m_OutPhotoStorage)
            {
                photoStorage?.Clear();
            }

            int i = 0;

            for (i = 0; i < MAX_NUM_USR_MSGS; i++)
            {
                m_szOutUserMsgs[i] = string.Empty;
            }

            m_szVAOCardID1 = string.Empty;
            m_szVAOCardID2 = string.Empty;
            m_szVAOCardID3 = string.Empty;

            m_bMinEqMax = false;

            m_szOutFineNumber   = string.Empty;
            m_iOutFineResult    = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_bFineAlreadyPayed = 0;

            for (i = 0; i < MAX_DYN_TARIFF_PARS; i++)
            {
                m_OutDynTariffParameters[i] = -1;
            }

            m_lOutAddFreeMinutesQuantity = 0;
            m_lOutAddFreeMoneyQuantity   = 0;
            m_bHistFreeMoneyUsed         = false;

            m_iNumMoneyOffDiscounts = 0;
            for (i = 0; i < MAX_MONEYOFF_DISCOUNTS; i++)
            {
                //m_stMoneyOffDiscounts[i].szCode, 0, sizeof(m_stMoneyOffDiscounts[i].szCode));
                m_stMoneyOffDiscounts[i].ulId    = 0;
                m_stMoneyOffDiscounts[i].lResult = 0;
            }

            m_bInCalculateTimeSteps        = false;
            m_bInCalculateQuantitySteps    = false;
            m_iInCalculateSteps_StepValue  = GlobalDefs.DEF_UNDEFINED_VALUE;
            m_strOutStepsCalculationString = string.Empty;

            m_strIDMsg = "m1";
            SetMxType(typeof(MSG_M_TEXT).GetValueFromString <int>(m_strIDMsg));
        }