public override void Modify(AccountRecord record)
        {
            DbCommand command = this.Provider.GetStoredProcedure("spInsertUpdateAccount");

            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="AccountRecord" /> instance is equal to another <see cref="AccountRecord" /> instance.
        /// </summary>
        /// <param name="that">
        ///     The <see cref="AccountRecord" /> instance to be compared against this instance.
        /// </param>
        /// <returns>
        ///     True if both instances are considered equal; otherwise, false.
        /// </returns>
        public Boolean Equals(AccountRecord that)
        {
            Boolean result = true;

            result = result && (this.Id.TrimOrNullify() == that.Id.TrimOrNullify());
            result = result && (this.Lock.TrimOrNullify() == that.Lock.TrimOrNullify());
            result = result && (this.System.TrimOrNullify() == that.System.TrimOrNullify());
            result = result && (this.SystemRef.TrimOrNullify() == that.SystemRef.TrimOrNullify());
            result = result && (this.OrgId.TrimOrNullify() == that.OrgId.TrimOrNullify());
            result = result && (this.Principal == that.Principal);
            result = result && (this.ProleId.TrimOrNullify() == that.ProleId.TrimOrNullify());
            result = result && (this.ContactId.TrimOrNullify() == that.ContactId.TrimOrNullify());
            result = result && (this.AddId.TrimOrNullify() == that.AddId.TrimOrNullify());
            result = result && (this.SelcoSpId.TrimOrNullify() == that.SelcoSpId.TrimOrNullify());
            result = result && (this.NoAddChange == that.NoAddChange);
            result = result && (this.PaymentDays == that.PaymentDays);
            result = result && (this.Status.TrimOrNullify() == that.Status.TrimOrNullify());
            result = result && (this.PaymentType == that.PaymentType);
            result = result && (this.PayTerms1.TrimOrNullify() == that.PayTerms1.TrimOrNullify());
            result = result && (this.PayTerms2.TrimOrNullify() == that.PayTerms2.TrimOrNullify());
            result = result && (this.PayTerms3.TrimOrNullify() == that.PayTerms3.TrimOrNullify());
            result = result && (this.PayTerms4.TrimOrNullify() == that.PayTerms4.TrimOrNullify());
            result = result && (this.Credit == that.Credit);
            result = result && (this.SpecialTerms.TrimOrNullify() == that.SpecialTerms.TrimOrNullify());
            result = result && (this.Vatcd.TrimOrNullify() == that.Vatcd.TrimOrNullify());
            result = result && (this.InvForAttnOf.TrimOrNullify() == that.InvForAttnOf.TrimOrNullify());
            result = result && (this.InvoiceRule == that.InvoiceRule);
            result = result && (this.InvoiceRuleOffset == that.InvoiceRuleOffset);
            result = result && (this.InvoiceConsolidate == that.InvoiceConsolidate);
            result = result && (this.InvoiceWhenStatus.TrimOrNullify() == that.InvoiceWhenStatus.TrimOrNullify());
            result = result && (this.InvoiceFormat == that.InvoiceFormat);
            result = result && (this.InvoiceMustUseRule == that.InvoiceMustUseRule);
            result = result && (this.InvoiceFormat0Text.TrimOrNullify() == that.InvoiceFormat0Text.TrimOrNullify());
            result = result && (this.InvoiceFormat1Text.TrimOrNullify() == that.InvoiceFormat1Text.TrimOrNullify());
            result = result && (this.InvoiceOffsetType.TrimOrNullify() == that.InvoiceOffsetType.TrimOrNullify());
            result = result && (this.InvAddTo == that.InvAddTo);
            result = result && (this.NatAccount == that.NatAccount);
            result = result && (this.BankName.TrimOrNullify() == that.BankName.TrimOrNullify());
            result = result && (this.BankSortCode.TrimOrNullify() == that.BankSortCode.TrimOrNullify());
            result = result && (this.BankNo.TrimOrNullify() == that.BankNo.TrimOrNullify());
            result = result && (this.BankAddId.TrimOrNullify() == that.BankAddId.TrimOrNullify());
            result = result && (this.PaymentMethd.TrimOrNullify() == that.PaymentMethd.TrimOrNullify());
            result = result && (this.DocType.TrimOrNullify() == that.DocType.TrimOrNullify());
            result = result && (this.CoutOffDays == that.CoutOffDays);
            result = result && (this.Type.TrimOrNullify() == that.Type.TrimOrNullify());
            result = result && (this.Title.TrimOrNullify() == that.Title.TrimOrNullify());
            result = result && (this.StatusDate == that.StatusDate);
            result = result && (this.BatId.TrimOrNullify() == that.BatId.TrimOrNullify());
            result = result && (this.ReqCredit == that.ReqCredit);
            result = result && (this.DocsMethod.TrimOrNullify() == that.DocsMethod.TrimOrNullify());
            result = result && (this.DoNotChase == that.DoNotChase);
            result = result && (this.InvPackId.TrimOrNullify() == that.InvPackId.TrimOrNullify());
            result = result && (this.ReqPaymentType == that.ReqPaymentType);
            result = result && (this.ReqPaymentDays == that.ReqPaymentDays);
            result = result && (this.DefaultInvStatus == that.DefaultInvStatus);
            result = result && (this.CurrencyType.TrimOrNullify() == that.CurrencyType.TrimOrNullify());
            result = result && (this.VatRegNum.TrimOrNullify() == that.VatRegNum.TrimOrNullify());
            result = result && (this.MemPaymentDays == that.MemPaymentDays);
            result = result && (this.PoReq == that.PoReq);
            result = result && (this.RunDate == that.RunDate);
            result = result && (this.PshId == that.PshId);
            result = result && (this.Default == that.Default);
            result = result && (this.RuleType == that.RuleType);
            result = result && (this.NatAccountDate == that.NatAccountDate);
            result = result && (this.CourseLen == that.CourseLen);
            result = result && (this.RenewDays == that.RenewDays);
            result = result && (this.FixedRenewal == that.FixedRenewal);
            result = result && (this.RenewalMonth.TrimOrNullify() == that.RenewalMonth.TrimOrNullify());
            result = result && (this.RenewalDay.TrimOrNullify() == that.RenewalDay.TrimOrNullify());
            result = result && (this.Renew == that.Renew);
            result = result && (this.ExclDay.TrimOrNullify() == that.ExclDay.TrimOrNullify());
            return(result);
        }
        /// <summary>
        ///     Creates a new <see cref="AccountRecord" /> object instance that is a shallow-copy of the current object instance.
        /// </summary>
        /// <returns>
        ///     The shallow-copy of the current <see cref="AccountRecord" /> object instance.
        /// </returns>
        public AccountRecord Clone()
        {
            AccountRecord record = new AccountRecord();

            record.Id                 = this.Id;
            record.Lock               = this.Lock;
            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.System             = this.System;
            record.SystemRef          = this.SystemRef;
            record.OrgId              = this.OrgId;
            record.Principal          = this.Principal;
            record.ProleId            = this.ProleId;
            record.ContactId          = this.ContactId;
            record.AddId              = this.AddId;
            record.SelcoSpId          = this.SelcoSpId;
            record.NoAddChange        = this.NoAddChange;
            record.PaymentDays        = this.PaymentDays;
            record.Status             = this.Status;
            record.PaymentType        = this.PaymentType;
            record.PayTerms1          = this.PayTerms1;
            record.PayTerms2          = this.PayTerms2;
            record.PayTerms3          = this.PayTerms3;
            record.PayTerms4          = this.PayTerms4;
            record.Credit             = this.Credit;
            record.SpecialTerms       = this.SpecialTerms;
            record.Vatcd              = this.Vatcd;
            record.InvForAttnOf       = this.InvForAttnOf;
            record.InvoiceRule        = this.InvoiceRule;
            record.InvoiceRuleOffset  = this.InvoiceRuleOffset;
            record.InvoiceConsolidate = this.InvoiceConsolidate;
            record.InvoiceWhenStatus  = this.InvoiceWhenStatus;
            record.InvoiceFormat      = this.InvoiceFormat;
            record.InvoiceMustUseRule = this.InvoiceMustUseRule;
            record.InvoiceFormat0Text = this.InvoiceFormat0Text;
            record.InvoiceFormat1Text = this.InvoiceFormat1Text;
            record.InvoiceOffsetType  = this.InvoiceOffsetType;
            record.InvAddTo           = this.InvAddTo;
            record.NatAccount         = this.NatAccount;
            record.BankName           = this.BankName;
            record.BankSortCode       = this.BankSortCode;
            record.BankNo             = this.BankNo;
            record.BankAddId          = this.BankAddId;
            record.PaymentMethd       = this.PaymentMethd;
            record.DocType            = this.DocType;
            record.CoutOffDays        = this.CoutOffDays;
            record.Type               = this.Type;
            record.Title              = this.Title;
            record.StatusDate         = this.StatusDate;
            record.BatId              = this.BatId;
            record.ReqCredit          = this.ReqCredit;
            record.DocsMethod         = this.DocsMethod;
            record.DoNotChase         = this.DoNotChase;
            record.InvPackId          = this.InvPackId;
            record.ReqPaymentType     = this.ReqPaymentType;
            record.ReqPaymentDays     = this.ReqPaymentDays;
            record.DefaultInvStatus   = this.DefaultInvStatus;
            record.CurrencyType       = this.CurrencyType;
            record.VatRegNum          = this.VatRegNum;
            record.MemPaymentDays     = this.MemPaymentDays;
            record.PoReq              = this.PoReq;
            record.RunDate            = this.RunDate;
            record.PshId              = this.PshId;
            record.Default            = this.Default;
            record.RuleType           = this.RuleType;
            record.NatAccountDate     = this.NatAccountDate;
            record.CourseLen          = this.CourseLen;
            record.RenewDays          = this.RenewDays;
            record.FixedRenewal       = this.FixedRenewal;
            record.RenewalMonth       = this.RenewalMonth;
            record.RenewalDay         = this.RenewalDay;
            record.Renew              = this.Renew;
            record.ExclDay            = this.ExclDay;
            return(record);
        }