/// <summary>
        ///     Creates a new <see cref="DirectdebitRecord" /> object instance that is a shallow-copy of the current object instance.
        /// </summary>
        /// <returns>
        ///     The shallow-copy of the current <see cref="DirectdebitRecord" /> object instance.
        /// </returns>
        public DirectdebitRecord Clone()
        {
            DirectdebitRecord record = new DirectdebitRecord();

            record.Id               = this.Id;
            record.AddDate          = this.AddDate;
            record.AddBy            = this.AddBy;
            record.ModDate          = this.ModDate;
            record.ModBy            = this.ModBy;
            record.RcvDate          = this.RcvDate;
            record.RcvFrom          = this.RcvFrom;
            record.TableNum         = this.TableNum;
            record.RecId            = this.RecId;
            record.Type             = this.Type;
            record.Oin              = this.Oin;
            record.RecDate          = this.RecDate;
            record.RecMethod        = this.RecMethod;
            record.ToBankDate       = this.ToBankDate;
            record.EffectiveDate    = this.EffectiveDate;
            record.EndDate          = this.EndDate;
            record.Status           = this.Status;
            record.Frequency        = this.Frequency;
            record.DayOfMonth       = this.DayOfMonth;
            record.Variable         = this.Variable;
            record.MaxValue         = this.MaxValue;
            record.CurrencyType     = this.CurrencyType;
            record.BankName         = this.BankName;
            record.BankAdd1         = this.BankAdd1;
            record.BankAdd2         = this.BankAdd2;
            record.BankAdd3         = this.BankAdd3;
            record.BankAdd4         = this.BankAdd4;
            record.BankPostcode     = this.BankPostcode;
            record.CoreRef          = this.CoreRef;
            record.BankAccName      = this.BankAccName;
            record.BankAccCode      = this.BankAccCode;
            record.SortCode         = this.SortCode;
            record.CcardType        = this.CcardType;
            record.NameOnCard       = this.NameOnCard;
            record.CcardNumber      = this.CcardNumber;
            record.CcardIssue       = this.CcardIssue;
            record.CcardSecId       = this.CcardSecId;
            record.CcardStartMth    = this.CcardStartMth;
            record.CcardStartYr     = this.CcardStartYr;
            record.CcardExpyMth     = this.CcardExpyMth;
            record.CcardExpyYr      = this.CcardExpyYr;
            record.Notes            = this.Notes;
            record.BankOrgId        = this.BankOrgId;
            record.BankAddId        = this.BankAddId;
            record.RecordStatus     = this.RecordStatus;
            record.BatId            = this.BatId;
            record.Total            = this.Total;
            record.StatusNotes      = this.StatusNotes;
            record.StatusLastDate   = this.StatusLastDate;
            record.StatusPrevious   = this.StatusPrevious;
            record.NoOfInstallments = this.NoOfInstallments;
            record.DueDate          = this.DueDate;
            return(record);
        }
        public override void Modify(DirectdebitRecord record)
        {
            DbCommand command = this.Provider.GetStoredProcedure("spInsertUpdateDirectDebit");

            this.MapParameterIn(command, "@PA_USER_LOGIN_ID", "dev");
            this.MapParametersIn(command, record, true);
            this.Execute(command);
            this.MapParametersOut(command, record);
        }
        /// <summary>
        ///     Indicates whether the current <see cref="DirectdebitRecord" /> instance is equal to another <see cref="DirectdebitRecord" /> instance.
        /// </summary>
        /// <param name="that">
        ///     The <see cref="DirectdebitRecord" /> instance to be compared against this instance.
        /// </param>
        /// <returns>
        ///     True if both instances are considered equal; otherwise, false.
        /// </returns>
        public Boolean Equals(DirectdebitRecord that)
        {
            Boolean result = true;

            result = result && (this.Id.TrimOrNullify() == that.Id.TrimOrNullify());
            result = result && (this.TableNum == that.TableNum);
            result = result && (this.RecId.TrimOrNullify() == that.RecId.TrimOrNullify());
            result = result && (this.Type == that.Type);
            result = result && (this.Oin.TrimOrNullify() == that.Oin.TrimOrNullify());
            result = result && (this.RecDate == that.RecDate);
            result = result && (this.RecMethod == that.RecMethod);
            result = result && (this.ToBankDate == that.ToBankDate);
            result = result && (this.EffectiveDate == that.EffectiveDate);
            result = result && (this.EndDate == that.EndDate);
            result = result && (this.Status == that.Status);
            result = result && (this.Frequency == that.Frequency);
            result = result && (this.DayOfMonth == that.DayOfMonth);
            result = result && (this.Variable == that.Variable);
            result = result && (this.MaxValue == that.MaxValue);
            result = result && (this.CurrencyType.TrimOrNullify() == that.CurrencyType.TrimOrNullify());
            result = result && (this.BankName.TrimOrNullify() == that.BankName.TrimOrNullify());
            result = result && (this.BankAdd1.TrimOrNullify() == that.BankAdd1.TrimOrNullify());
            result = result && (this.BankAdd2.TrimOrNullify() == that.BankAdd2.TrimOrNullify());
            result = result && (this.BankAdd3.TrimOrNullify() == that.BankAdd3.TrimOrNullify());
            result = result && (this.BankAdd4.TrimOrNullify() == that.BankAdd4.TrimOrNullify());
            result = result && (this.BankPostcode.TrimOrNullify() == that.BankPostcode.TrimOrNullify());
            result = result && (this.CoreRef.TrimOrNullify() == that.CoreRef.TrimOrNullify());
            result = result && (this.BankAccName.TrimOrNullify() == that.BankAccName.TrimOrNullify());
            result = result && (this.BankAccCode.TrimOrNullify() == that.BankAccCode.TrimOrNullify());
            result = result && (this.SortCode.TrimOrNullify() == that.SortCode.TrimOrNullify());
            result = result && (this.CcardType.TrimOrNullify() == that.CcardType.TrimOrNullify());
            result = result && (this.NameOnCard.TrimOrNullify() == that.NameOnCard.TrimOrNullify());
            result = result && (this.CcardNumber.TrimOrNullify() == that.CcardNumber.TrimOrNullify());
            result = result && (this.CcardIssue.TrimOrNullify() == that.CcardIssue.TrimOrNullify());
            result = result && (this.CcardSecId.TrimOrNullify() == that.CcardSecId.TrimOrNullify());
            result = result && (this.CcardStartMth.TrimOrNullify() == that.CcardStartMth.TrimOrNullify());
            result = result && (this.CcardStartYr.TrimOrNullify() == that.CcardStartYr.TrimOrNullify());
            result = result && (this.CcardExpyMth.TrimOrNullify() == that.CcardExpyMth.TrimOrNullify());
            result = result && (this.CcardExpyYr.TrimOrNullify() == that.CcardExpyYr.TrimOrNullify());
            result = result && (this.Notes.TrimOrNullify() == that.Notes.TrimOrNullify());
            result = result && (this.BankOrgId.TrimOrNullify() == that.BankOrgId.TrimOrNullify());
            result = result && (this.BankAddId.TrimOrNullify() == that.BankAddId.TrimOrNullify());
            result = result && (this.RecordStatus == that.RecordStatus);
            result = result && (this.BatId.TrimOrNullify() == that.BatId.TrimOrNullify());
            result = result && (this.Total == that.Total);
            result = result && (this.StatusNotes.TrimOrNullify() == that.StatusNotes.TrimOrNullify());
            result = result && (this.StatusLastDate == that.StatusLastDate);
            result = result && (this.StatusPrevious == that.StatusPrevious);
            result = result && (this.NoOfInstallments == that.NoOfInstallments);
            result = result && (this.DueDate == that.DueDate);
            return(result);
        }