/* 
 * GK application - OmniPOS Service API
 *
 * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
 *
 * OpenAPI spec version: 5.21.1-b03
 * 
 * Generated by: https://github.com/swagger-api/swagger-codegen.git
 */

using System;
using System.Linq;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Runtime.Serialization;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System.ComponentModel.DataAnnotations;
using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter;

namespace IO.Swagger.Model
{
    /// <summary>
    /// PosUOMItemSearchFilter &lt;p&gt;Filter for search view.&lt;br /&gt;&lt;/p&gt;
    /// </summary>
    [DataContract]
    public partial class ComGkSoftwareGkrApiServerMdItemDtoDomPosPosUOMItemSearchFilter :  IEquatable<ComGkSoftwareGkrApiServerMdItemDtoDomPosPosUOMItemSearchFilter>, IValidatableObject
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="ComGkSoftwareGkrApiServerMdItemDtoDomPosPosUOMItemSearchFilter" /> class.
        /// </summary>
        /// <param name="itemID">&lt;p&gt;Item number. Alphanumeric key that identifies the item uniquely.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="name">&lt;p&gt;Item name which is searched in GK_BUG_ITEM_I8N_ITEM_TEXT.TEXT if exists, otherwise (if it is allowed by configuration) in AS_BSNGP_ITM.NM_ITM_GK. &lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="merchandiseHierarchyGroupName">&lt;p&gt;Merchandise Hierarchy Group Name which is searched in GK_I18N_TEXT.LOCALIZED_TEXT if exists, otherwise in CO_MRHRC_GP.NM_MRHRC_GP.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="priceAmount">&lt;p&gt;Amount of the price.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="authorisedForSaleFlag">&lt;p&gt;If true only items authorized for sale are searched (RU_ITM_SL.FL_AZN_FR_SLS is true). &lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemCollectionSet">&lt;p&gt;For filtering items with Item Collections. If true only items with Item Collection are searched. &lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemIDCaseSensitive">&lt;p&gt;For enabling/disabling case sensitivity for search in ItemID&lt;br /&gt; &lt;br/&gt;&lt;strong&gt;Example&lt;/strong&gt; - in DB are items where AS_BSNGP_ITM.ID_ITM &#x3D; { A001, a001 }&lt;br /&gt;&lt;ul&gt;&lt;li&gt;caseSensitive&#x3D;true: &#x3D;&amp;gt; only one: A001&lt;/li&gt;&lt;li&gt;caseSensitive&#x3D;false: &#x3D;&amp;gt; returns both of them: A001, a001&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="scaleDomainID">scaleDomainID.</param>
        /// <param name="posIdentityTypeCode">&lt;p&gt;For filtering according to the code of the POS identity. &lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="optionLoadPosIdentity">&lt;p&gt;Search option whether the POS item identifier should be loaded and filled to provided view. If this flag is set to false the {@link PosUOMItemSearchView#posItemId} field in the view is always null.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="optionLoadCharacteristics">&lt;p&gt;Search option whether the Characteristics should be loaded and filled to provided view. If this flag is set to false the {@link PosUOMItemSearchView#characteristicViewList} field in the view is always null.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="characteristicFilterList">&lt;p&gt;Filter for Characteristics.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="searchItemIdInRootItemId">&lt;p&gt;Search option whether the {@link #itemID} should be used also for searching by Root Item ID in associations. It means that it searches all item with this root, in other words all child items for requested item.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="offset">offset.</param>
        /// <param name="limit">limit.</param>
        /// <param name="uomITEMXXCUSTOM01">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM02">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM03">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM04">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM05">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM06">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM07">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM08">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM09">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM10">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM11">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM12">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM13">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM14">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM15">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM16">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM17">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM18">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM19">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM20">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM21">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM22">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM23">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM24">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM25">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM26">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM27">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM28">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM29">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="uomITEMXXCUSTOM30">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM01">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM02">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM03">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM04">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM05">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM06">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM07">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM08">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM09">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM10">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM11">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM12">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM13">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM14">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM15">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM16">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM17">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM18">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM19">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM20">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM21">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM22">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM23">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM24">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM25">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM26">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM27">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM28">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM29">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        /// <param name="itemXXCUSTOM30">&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;.</param>
        public ComGkSoftwareGkrApiServerMdItemDtoDomPosPosUOMItemSearchFilter(string itemID = default(string), string name = default(string), string merchandiseHierarchyGroupName = default(string), double? priceAmount = default(double?), bool? authorisedForSaleFlag = default(bool?), bool? itemCollectionSet = default(bool?), bool? itemIDCaseSensitive = default(bool?), string scaleDomainID = default(string), string posIdentityTypeCode = default(string), bool? optionLoadPosIdentity = default(bool?), bool? optionLoadCharacteristics = default(bool?), List<ComGkSoftwareGkrApiServerMdItemDtoDomPosPosUOMItemSearchCharacteristicFilter> characteristicFilterList = default(List<ComGkSoftwareGkrApiServerMdItemDtoDomPosPosUOMItemSearchCharacteristicFilter>), bool? searchItemIdInRootItemId = default(bool?), string offset = default(string), int? limit = default(int?), IBasicFilterConditionString uomITEMXXCUSTOM01 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM02 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM03 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM04 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM05 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM06 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM07 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM08 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM09 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM10 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM11 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM12 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM13 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM14 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM15 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM16 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM17 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM18 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM19 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM20 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM21 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM22 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM23 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM24 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM25 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM26 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM27 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM28 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM29 = default(IBasicFilterConditionString), IBasicFilterConditionString uomITEMXXCUSTOM30 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM01 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM02 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM03 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM04 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM05 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM06 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM07 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM08 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM09 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM10 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM11 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM12 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM13 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM14 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM15 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM16 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM17 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM18 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM19 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM20 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM21 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM22 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM23 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM24 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM25 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM26 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM27 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM28 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM29 = default(IBasicFilterConditionString), IBasicFilterConditionString itemXXCUSTOM30 = default(IBasicFilterConditionString))
        {
            this.ItemID = itemID;
            this.Name = name;
            this.MerchandiseHierarchyGroupName = merchandiseHierarchyGroupName;
            this.PriceAmount = priceAmount;
            this.AuthorisedForSaleFlag = authorisedForSaleFlag;
            this.ItemCollectionSet = itemCollectionSet;
            this.ItemIDCaseSensitive = itemIDCaseSensitive;
            this.ScaleDomainID = scaleDomainID;
            this.PosIdentityTypeCode = posIdentityTypeCode;
            this.OptionLoadPosIdentity = optionLoadPosIdentity;
            this.OptionLoadCharacteristics = optionLoadCharacteristics;
            this.CharacteristicFilterList = characteristicFilterList;
            this.SearchItemIdInRootItemId = searchItemIdInRootItemId;
            this.Offset = offset;
            this.Limit = limit;
            this.UomITEMXXCUSTOM01 = uomITEMXXCUSTOM01;
            this.UomITEMXXCUSTOM02 = uomITEMXXCUSTOM02;
            this.UomITEMXXCUSTOM03 = uomITEMXXCUSTOM03;
            this.UomITEMXXCUSTOM04 = uomITEMXXCUSTOM04;
            this.UomITEMXXCUSTOM05 = uomITEMXXCUSTOM05;
            this.UomITEMXXCUSTOM06 = uomITEMXXCUSTOM06;
            this.UomITEMXXCUSTOM07 = uomITEMXXCUSTOM07;
            this.UomITEMXXCUSTOM08 = uomITEMXXCUSTOM08;
            this.UomITEMXXCUSTOM09 = uomITEMXXCUSTOM09;
            this.UomITEMXXCUSTOM10 = uomITEMXXCUSTOM10;
            this.UomITEMXXCUSTOM11 = uomITEMXXCUSTOM11;
            this.UomITEMXXCUSTOM12 = uomITEMXXCUSTOM12;
            this.UomITEMXXCUSTOM13 = uomITEMXXCUSTOM13;
            this.UomITEMXXCUSTOM14 = uomITEMXXCUSTOM14;
            this.UomITEMXXCUSTOM15 = uomITEMXXCUSTOM15;
            this.UomITEMXXCUSTOM16 = uomITEMXXCUSTOM16;
            this.UomITEMXXCUSTOM17 = uomITEMXXCUSTOM17;
            this.UomITEMXXCUSTOM18 = uomITEMXXCUSTOM18;
            this.UomITEMXXCUSTOM19 = uomITEMXXCUSTOM19;
            this.UomITEMXXCUSTOM20 = uomITEMXXCUSTOM20;
            this.UomITEMXXCUSTOM21 = uomITEMXXCUSTOM21;
            this.UomITEMXXCUSTOM22 = uomITEMXXCUSTOM22;
            this.UomITEMXXCUSTOM23 = uomITEMXXCUSTOM23;
            this.UomITEMXXCUSTOM24 = uomITEMXXCUSTOM24;
            this.UomITEMXXCUSTOM25 = uomITEMXXCUSTOM25;
            this.UomITEMXXCUSTOM26 = uomITEMXXCUSTOM26;
            this.UomITEMXXCUSTOM27 = uomITEMXXCUSTOM27;
            this.UomITEMXXCUSTOM28 = uomITEMXXCUSTOM28;
            this.UomITEMXXCUSTOM29 = uomITEMXXCUSTOM29;
            this.UomITEMXXCUSTOM30 = uomITEMXXCUSTOM30;
            this.ItemXXCUSTOM01 = itemXXCUSTOM01;
            this.ItemXXCUSTOM02 = itemXXCUSTOM02;
            this.ItemXXCUSTOM03 = itemXXCUSTOM03;
            this.ItemXXCUSTOM04 = itemXXCUSTOM04;
            this.ItemXXCUSTOM05 = itemXXCUSTOM05;
            this.ItemXXCUSTOM06 = itemXXCUSTOM06;
            this.ItemXXCUSTOM07 = itemXXCUSTOM07;
            this.ItemXXCUSTOM08 = itemXXCUSTOM08;
            this.ItemXXCUSTOM09 = itemXXCUSTOM09;
            this.ItemXXCUSTOM10 = itemXXCUSTOM10;
            this.ItemXXCUSTOM11 = itemXXCUSTOM11;
            this.ItemXXCUSTOM12 = itemXXCUSTOM12;
            this.ItemXXCUSTOM13 = itemXXCUSTOM13;
            this.ItemXXCUSTOM14 = itemXXCUSTOM14;
            this.ItemXXCUSTOM15 = itemXXCUSTOM15;
            this.ItemXXCUSTOM16 = itemXXCUSTOM16;
            this.ItemXXCUSTOM17 = itemXXCUSTOM17;
            this.ItemXXCUSTOM18 = itemXXCUSTOM18;
            this.ItemXXCUSTOM19 = itemXXCUSTOM19;
            this.ItemXXCUSTOM20 = itemXXCUSTOM20;
            this.ItemXXCUSTOM21 = itemXXCUSTOM21;
            this.ItemXXCUSTOM22 = itemXXCUSTOM22;
            this.ItemXXCUSTOM23 = itemXXCUSTOM23;
            this.ItemXXCUSTOM24 = itemXXCUSTOM24;
            this.ItemXXCUSTOM25 = itemXXCUSTOM25;
            this.ItemXXCUSTOM26 = itemXXCUSTOM26;
            this.ItemXXCUSTOM27 = itemXXCUSTOM27;
            this.ItemXXCUSTOM28 = itemXXCUSTOM28;
            this.ItemXXCUSTOM29 = itemXXCUSTOM29;
            this.ItemXXCUSTOM30 = itemXXCUSTOM30;
        }
        
        /// <summary>
        /// &lt;p&gt;Item number. Alphanumeric key that identifies the item uniquely.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Item number. Alphanumeric key that identifies the item uniquely.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="itemID", EmitDefaultValue=false)]
        public string ItemID { get; set; }

        /// <summary>
        /// &lt;p&gt;Item name which is searched in GK_BUG_ITEM_I8N_ITEM_TEXT.TEXT if exists, otherwise (if it is allowed by configuration) in AS_BSNGP_ITM.NM_ITM_GK. &lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Item name which is searched in GK_BUG_ITEM_I8N_ITEM_TEXT.TEXT if exists, otherwise (if it is allowed by configuration) in AS_BSNGP_ITM.NM_ITM_GK. &lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="name", EmitDefaultValue=false)]
        public string Name { get; set; }

        /// <summary>
        /// &lt;p&gt;Merchandise Hierarchy Group Name which is searched in GK_I18N_TEXT.LOCALIZED_TEXT if exists, otherwise in CO_MRHRC_GP.NM_MRHRC_GP.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Merchandise Hierarchy Group Name which is searched in GK_I18N_TEXT.LOCALIZED_TEXT if exists, otherwise in CO_MRHRC_GP.NM_MRHRC_GP.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="merchandiseHierarchyGroupName", EmitDefaultValue=false)]
        public string MerchandiseHierarchyGroupName { get; set; }

        /// <summary>
        /// &lt;p&gt;Amount of the price.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Amount of the price.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="priceAmount", EmitDefaultValue=false)]
        public double? PriceAmount { get; set; }

        /// <summary>
        /// &lt;p&gt;If true only items authorized for sale are searched (RU_ITM_SL.FL_AZN_FR_SLS is true). &lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;If true only items authorized for sale are searched (RU_ITM_SL.FL_AZN_FR_SLS is true). &lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="authorisedForSaleFlag", EmitDefaultValue=false)]
        public bool? AuthorisedForSaleFlag { get; set; }

        /// <summary>
        /// &lt;p&gt;For filtering items with Item Collections. If true only items with Item Collection are searched. &lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;For filtering items with Item Collections. If true only items with Item Collection are searched. &lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="itemCollectionSet", EmitDefaultValue=false)]
        public bool? ItemCollectionSet { get; set; }

        /// <summary>
        /// &lt;p&gt;For enabling/disabling case sensitivity for search in ItemID&lt;br /&gt; &lt;br/&gt;&lt;strong&gt;Example&lt;/strong&gt; - in DB are items where AS_BSNGP_ITM.ID_ITM &#x3D; { A001, a001 }&lt;br /&gt;&lt;ul&gt;&lt;li&gt;caseSensitive&#x3D;true: &#x3D;&amp;gt; only one: A001&lt;/li&gt;&lt;li&gt;caseSensitive&#x3D;false: &#x3D;&amp;gt; returns both of them: A001, a001&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;For enabling/disabling case sensitivity for search in ItemID&lt;br /&gt; &lt;br/&gt;&lt;strong&gt;Example&lt;/strong&gt; - in DB are items where AS_BSNGP_ITM.ID_ITM &#x3D; { A001, a001 }&lt;br /&gt;&lt;ul&gt;&lt;li&gt;caseSensitive&#x3D;true: &#x3D;&amp;gt; only one: A001&lt;/li&gt;&lt;li&gt;caseSensitive&#x3D;false: &#x3D;&amp;gt; returns both of them: A001, a001&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="itemIDCaseSensitive", EmitDefaultValue=false)]
        public bool? ItemIDCaseSensitive { get; set; }

        /// <summary>
        /// Gets or Sets ScaleDomainID
        /// </summary>
        [DataMember(Name="scaleDomainID", EmitDefaultValue=false)]
        public string ScaleDomainID { get; set; }

        /// <summary>
        /// &lt;p&gt;For filtering according to the code of the POS identity. &lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;For filtering according to the code of the POS identity. &lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="posIdentityTypeCode", EmitDefaultValue=false)]
        public string PosIdentityTypeCode { get; set; }

        /// <summary>
        /// &lt;p&gt;Search option whether the POS item identifier should be loaded and filled to provided view. If this flag is set to false the {@link PosUOMItemSearchView#posItemId} field in the view is always null.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Search option whether the POS item identifier should be loaded and filled to provided view. If this flag is set to false the {@link PosUOMItemSearchView#posItemId} field in the view is always null.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="optionLoadPosIdentity", EmitDefaultValue=false)]
        public bool? OptionLoadPosIdentity { get; set; }

        /// <summary>
        /// &lt;p&gt;Search option whether the Characteristics should be loaded and filled to provided view. If this flag is set to false the {@link PosUOMItemSearchView#characteristicViewList} field in the view is always null.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Search option whether the Characteristics should be loaded and filled to provided view. If this flag is set to false the {@link PosUOMItemSearchView#characteristicViewList} field in the view is always null.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="optionLoadCharacteristics", EmitDefaultValue=false)]
        public bool? OptionLoadCharacteristics { get; set; }

        /// <summary>
        /// &lt;p&gt;Filter for Characteristics.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Filter for Characteristics.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="characteristicFilterList", EmitDefaultValue=false)]
        public List<ComGkSoftwareGkrApiServerMdItemDtoDomPosPosUOMItemSearchCharacteristicFilter> CharacteristicFilterList { get; set; }

        /// <summary>
        /// &lt;p&gt;Search option whether the {@link #itemID} should be used also for searching by Root Item ID in associations. It means that it searches all item with this root, in other words all child items for requested item.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Search option whether the {@link #itemID} should be used also for searching by Root Item ID in associations. It means that it searches all item with this root, in other words all child items for requested item.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="searchItemIdInRootItemId", EmitDefaultValue=false)]
        public bool? SearchItemIdInRootItemId { get; set; }

        /// <summary>
        /// Gets or Sets Offset
        /// </summary>
        [DataMember(Name="offset", EmitDefaultValue=false)]
        public string Offset { get; set; }

        /// <summary>
        /// Gets or Sets Limit
        /// </summary>
        [DataMember(Name="limit", EmitDefaultValue=false)]
        public int? Limit { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_01", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM01 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_02", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM02 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_03", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM03 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_04", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM04 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_05", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM05 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_06", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM06 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_07", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM07 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_08", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM08 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_09", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM09 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_10", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM10 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_11", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM11 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_12", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM12 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_13", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM13 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_14", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM14 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_15", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM15 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_16", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM16 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_17", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM17 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_18", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM18 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_19", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM19 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_20", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM20 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_21", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM21 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_22", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM22 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_23", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM23 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_24", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM24 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_25", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM25 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_26", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM26 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_27", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM27 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_28", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM28 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_29", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM29 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_30", EmitDefaultValue=false)]
        public IBasicFilterConditionString UomITEMXXCUSTOM30 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_01", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM01 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_02", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM02 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_03", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM03 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_04", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM04 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_05", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM05 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_06", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM06 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_07", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM07 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_08", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM08 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_09", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM09 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_10", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM10 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_11", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM11 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_12", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM12 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_13", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM13 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_14", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM14 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_15", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM15 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_16", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM16 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_17", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM17 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_18", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM18 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_19", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM19 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_20", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM20 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_21", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM21 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_22", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM22 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_23", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM23 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_24", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM24 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_25", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM25 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_26", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM26 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_27", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM27 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_28", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM28 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_29", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM29 { get; set; }

        /// <summary>
        /// &lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Additional field for custom development.&lt;br /&gt;&lt;/p&gt;</value>
        [DataMember(Name="item_XX_CUSTOM_30", EmitDefaultValue=false)]
        public IBasicFilterConditionString ItemXXCUSTOM30 { get; set; }

        /// <summary>
        /// Returns the string presentation of the object
        /// </summary>
        /// <returns>String presentation of the object</returns>
        public override string ToString()
        {
            var sb = new StringBuilder();
            sb.Append("class ComGkSoftwareGkrApiServerMdItemDtoDomPosPosUOMItemSearchFilter {\n");
            sb.Append("  ItemID: ").Append(ItemID).Append("\n");
            sb.Append("  Name: ").Append(Name).Append("\n");
            sb.Append("  MerchandiseHierarchyGroupName: ").Append(MerchandiseHierarchyGroupName).Append("\n");
            sb.Append("  PriceAmount: ").Append(PriceAmount).Append("\n");
            sb.Append("  AuthorisedForSaleFlag: ").Append(AuthorisedForSaleFlag).Append("\n");
            sb.Append("  ItemCollectionSet: ").Append(ItemCollectionSet).Append("\n");
            sb.Append("  ItemIDCaseSensitive: ").Append(ItemIDCaseSensitive).Append("\n");
            sb.Append("  ScaleDomainID: ").Append(ScaleDomainID).Append("\n");
            sb.Append("  PosIdentityTypeCode: ").Append(PosIdentityTypeCode).Append("\n");
            sb.Append("  OptionLoadPosIdentity: ").Append(OptionLoadPosIdentity).Append("\n");
            sb.Append("  OptionLoadCharacteristics: ").Append(OptionLoadCharacteristics).Append("\n");
            sb.Append("  CharacteristicFilterList: ").Append(CharacteristicFilterList).Append("\n");
            sb.Append("  SearchItemIdInRootItemId: ").Append(SearchItemIdInRootItemId).Append("\n");
            sb.Append("  Offset: ").Append(Offset).Append("\n");
            sb.Append("  Limit: ").Append(Limit).Append("\n");
            sb.Append("  UomITEMXXCUSTOM01: ").Append(UomITEMXXCUSTOM01).Append("\n");
            sb.Append("  UomITEMXXCUSTOM02: ").Append(UomITEMXXCUSTOM02).Append("\n");
            sb.Append("  UomITEMXXCUSTOM03: ").Append(UomITEMXXCUSTOM03).Append("\n");
            sb.Append("  UomITEMXXCUSTOM04: ").Append(UomITEMXXCUSTOM04).Append("\n");
            sb.Append("  UomITEMXXCUSTOM05: ").Append(UomITEMXXCUSTOM05).Append("\n");
            sb.Append("  UomITEMXXCUSTOM06: ").Append(UomITEMXXCUSTOM06).Append("\n");
            sb.Append("  UomITEMXXCUSTOM07: ").Append(UomITEMXXCUSTOM07).Append("\n");
            sb.Append("  UomITEMXXCUSTOM08: ").Append(UomITEMXXCUSTOM08).Append("\n");
            sb.Append("  UomITEMXXCUSTOM09: ").Append(UomITEMXXCUSTOM09).Append("\n");
            sb.Append("  UomITEMXXCUSTOM10: ").Append(UomITEMXXCUSTOM10).Append("\n");
            sb.Append("  UomITEMXXCUSTOM11: ").Append(UomITEMXXCUSTOM11).Append("\n");
            sb.Append("  UomITEMXXCUSTOM12: ").Append(UomITEMXXCUSTOM12).Append("\n");
            sb.Append("  UomITEMXXCUSTOM13: ").Append(UomITEMXXCUSTOM13).Append("\n");
            sb.Append("  UomITEMXXCUSTOM14: ").Append(UomITEMXXCUSTOM14).Append("\n");
            sb.Append("  UomITEMXXCUSTOM15: ").Append(UomITEMXXCUSTOM15).Append("\n");
            sb.Append("  UomITEMXXCUSTOM16: ").Append(UomITEMXXCUSTOM16).Append("\n");
            sb.Append("  UomITEMXXCUSTOM17: ").Append(UomITEMXXCUSTOM17).Append("\n");
            sb.Append("  UomITEMXXCUSTOM18: ").Append(UomITEMXXCUSTOM18).Append("\n");
            sb.Append("  UomITEMXXCUSTOM19: ").Append(UomITEMXXCUSTOM19).Append("\n");
            sb.Append("  UomITEMXXCUSTOM20: ").Append(UomITEMXXCUSTOM20).Append("\n");
            sb.Append("  UomITEMXXCUSTOM21: ").Append(UomITEMXXCUSTOM21).Append("\n");
            sb.Append("  UomITEMXXCUSTOM22: ").Append(UomITEMXXCUSTOM22).Append("\n");
            sb.Append("  UomITEMXXCUSTOM23: ").Append(UomITEMXXCUSTOM23).Append("\n");
            sb.Append("  UomITEMXXCUSTOM24: ").Append(UomITEMXXCUSTOM24).Append("\n");
            sb.Append("  UomITEMXXCUSTOM25: ").Append(UomITEMXXCUSTOM25).Append("\n");
            sb.Append("  UomITEMXXCUSTOM26: ").Append(UomITEMXXCUSTOM26).Append("\n");
            sb.Append("  UomITEMXXCUSTOM27: ").Append(UomITEMXXCUSTOM27).Append("\n");
            sb.Append("  UomITEMXXCUSTOM28: ").Append(UomITEMXXCUSTOM28).Append("\n");
            sb.Append("  UomITEMXXCUSTOM29: ").Append(UomITEMXXCUSTOM29).Append("\n");
            sb.Append("  UomITEMXXCUSTOM30: ").Append(UomITEMXXCUSTOM30).Append("\n");
            sb.Append("  ItemXXCUSTOM01: ").Append(ItemXXCUSTOM01).Append("\n");
            sb.Append("  ItemXXCUSTOM02: ").Append(ItemXXCUSTOM02).Append("\n");
            sb.Append("  ItemXXCUSTOM03: ").Append(ItemXXCUSTOM03).Append("\n");
            sb.Append("  ItemXXCUSTOM04: ").Append(ItemXXCUSTOM04).Append("\n");
            sb.Append("  ItemXXCUSTOM05: ").Append(ItemXXCUSTOM05).Append("\n");
            sb.Append("  ItemXXCUSTOM06: ").Append(ItemXXCUSTOM06).Append("\n");
            sb.Append("  ItemXXCUSTOM07: ").Append(ItemXXCUSTOM07).Append("\n");
            sb.Append("  ItemXXCUSTOM08: ").Append(ItemXXCUSTOM08).Append("\n");
            sb.Append("  ItemXXCUSTOM09: ").Append(ItemXXCUSTOM09).Append("\n");
            sb.Append("  ItemXXCUSTOM10: ").Append(ItemXXCUSTOM10).Append("\n");
            sb.Append("  ItemXXCUSTOM11: ").Append(ItemXXCUSTOM11).Append("\n");
            sb.Append("  ItemXXCUSTOM12: ").Append(ItemXXCUSTOM12).Append("\n");
            sb.Append("  ItemXXCUSTOM13: ").Append(ItemXXCUSTOM13).Append("\n");
            sb.Append("  ItemXXCUSTOM14: ").Append(ItemXXCUSTOM14).Append("\n");
            sb.Append("  ItemXXCUSTOM15: ").Append(ItemXXCUSTOM15).Append("\n");
            sb.Append("  ItemXXCUSTOM16: ").Append(ItemXXCUSTOM16).Append("\n");
            sb.Append("  ItemXXCUSTOM17: ").Append(ItemXXCUSTOM17).Append("\n");
            sb.Append("  ItemXXCUSTOM18: ").Append(ItemXXCUSTOM18).Append("\n");
            sb.Append("  ItemXXCUSTOM19: ").Append(ItemXXCUSTOM19).Append("\n");
            sb.Append("  ItemXXCUSTOM20: ").Append(ItemXXCUSTOM20).Append("\n");
            sb.Append("  ItemXXCUSTOM21: ").Append(ItemXXCUSTOM21).Append("\n");
            sb.Append("  ItemXXCUSTOM22: ").Append(ItemXXCUSTOM22).Append("\n");
            sb.Append("  ItemXXCUSTOM23: ").Append(ItemXXCUSTOM23).Append("\n");
            sb.Append("  ItemXXCUSTOM24: ").Append(ItemXXCUSTOM24).Append("\n");
            sb.Append("  ItemXXCUSTOM25: ").Append(ItemXXCUSTOM25).Append("\n");
            sb.Append("  ItemXXCUSTOM26: ").Append(ItemXXCUSTOM26).Append("\n");
            sb.Append("  ItemXXCUSTOM27: ").Append(ItemXXCUSTOM27).Append("\n");
            sb.Append("  ItemXXCUSTOM28: ").Append(ItemXXCUSTOM28).Append("\n");
            sb.Append("  ItemXXCUSTOM29: ").Append(ItemXXCUSTOM29).Append("\n");
            sb.Append("  ItemXXCUSTOM30: ").Append(ItemXXCUSTOM30).Append("\n");
            sb.Append("}\n");
            return sb.ToString();
        }
  
        /// <summary>
        /// Returns the JSON string presentation of the object
        /// </summary>
        /// <returns>JSON string presentation of the object</returns>
        public virtual string ToJson()
        {
            return JsonConvert.SerializeObject(this, Formatting.Indented);
        }

        /// <summary>
        /// Returns true if objects are equal
        /// </summary>
        /// <param name="input">Object to be compared</param>
        /// <returns>Boolean</returns>
        public override bool Equals(object input)
        {
            return this.Equals(input as ComGkSoftwareGkrApiServerMdItemDtoDomPosPosUOMItemSearchFilter);
        }

        /// <summary>
        /// Returns true if ComGkSoftwareGkrApiServerMdItemDtoDomPosPosUOMItemSearchFilter instances are equal
        /// </summary>
        /// <param name="input">Instance of ComGkSoftwareGkrApiServerMdItemDtoDomPosPosUOMItemSearchFilter to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(ComGkSoftwareGkrApiServerMdItemDtoDomPosPosUOMItemSearchFilter input)
        {
            if (input == null)
                return false;

            return 
                (
                    this.ItemID == input.ItemID ||
                    (this.ItemID != null &&
                    this.ItemID.Equals(input.ItemID))
                ) && 
                (
                    this.Name == input.Name ||
                    (this.Name != null &&
                    this.Name.Equals(input.Name))
                ) && 
                (
                    this.MerchandiseHierarchyGroupName == input.MerchandiseHierarchyGroupName ||
                    (this.MerchandiseHierarchyGroupName != null &&
                    this.MerchandiseHierarchyGroupName.Equals(input.MerchandiseHierarchyGroupName))
                ) && 
                (
                    this.PriceAmount == input.PriceAmount ||
                    (this.PriceAmount != null &&
                    this.PriceAmount.Equals(input.PriceAmount))
                ) && 
                (
                    this.AuthorisedForSaleFlag == input.AuthorisedForSaleFlag ||
                    (this.AuthorisedForSaleFlag != null &&
                    this.AuthorisedForSaleFlag.Equals(input.AuthorisedForSaleFlag))
                ) && 
                (
                    this.ItemCollectionSet == input.ItemCollectionSet ||
                    (this.ItemCollectionSet != null &&
                    this.ItemCollectionSet.Equals(input.ItemCollectionSet))
                ) && 
                (
                    this.ItemIDCaseSensitive == input.ItemIDCaseSensitive ||
                    (this.ItemIDCaseSensitive != null &&
                    this.ItemIDCaseSensitive.Equals(input.ItemIDCaseSensitive))
                ) && 
                (
                    this.ScaleDomainID == input.ScaleDomainID ||
                    (this.ScaleDomainID != null &&
                    this.ScaleDomainID.Equals(input.ScaleDomainID))
                ) && 
                (
                    this.PosIdentityTypeCode == input.PosIdentityTypeCode ||
                    (this.PosIdentityTypeCode != null &&
                    this.PosIdentityTypeCode.Equals(input.PosIdentityTypeCode))
                ) && 
                (
                    this.OptionLoadPosIdentity == input.OptionLoadPosIdentity ||
                    (this.OptionLoadPosIdentity != null &&
                    this.OptionLoadPosIdentity.Equals(input.OptionLoadPosIdentity))
                ) && 
                (
                    this.OptionLoadCharacteristics == input.OptionLoadCharacteristics ||
                    (this.OptionLoadCharacteristics != null &&
                    this.OptionLoadCharacteristics.Equals(input.OptionLoadCharacteristics))
                ) && 
                (
                    this.CharacteristicFilterList == input.CharacteristicFilterList ||
                    this.CharacteristicFilterList != null &&
                    this.CharacteristicFilterList.SequenceEqual(input.CharacteristicFilterList)
                ) && 
                (
                    this.SearchItemIdInRootItemId == input.SearchItemIdInRootItemId ||
                    (this.SearchItemIdInRootItemId != null &&
                    this.SearchItemIdInRootItemId.Equals(input.SearchItemIdInRootItemId))
                ) && 
                (
                    this.Offset == input.Offset ||
                    (this.Offset != null &&
                    this.Offset.Equals(input.Offset))
                ) && 
                (
                    this.Limit == input.Limit ||
                    (this.Limit != null &&
                    this.Limit.Equals(input.Limit))
                ) && 
                (
                    this.UomITEMXXCUSTOM01 == input.UomITEMXXCUSTOM01 ||
                    (this.UomITEMXXCUSTOM01 != null &&
                    this.UomITEMXXCUSTOM01.Equals(input.UomITEMXXCUSTOM01))
                ) && 
                (
                    this.UomITEMXXCUSTOM02 == input.UomITEMXXCUSTOM02 ||
                    (this.UomITEMXXCUSTOM02 != null &&
                    this.UomITEMXXCUSTOM02.Equals(input.UomITEMXXCUSTOM02))
                ) && 
                (
                    this.UomITEMXXCUSTOM03 == input.UomITEMXXCUSTOM03 ||
                    (this.UomITEMXXCUSTOM03 != null &&
                    this.UomITEMXXCUSTOM03.Equals(input.UomITEMXXCUSTOM03))
                ) && 
                (
                    this.UomITEMXXCUSTOM04 == input.UomITEMXXCUSTOM04 ||
                    (this.UomITEMXXCUSTOM04 != null &&
                    this.UomITEMXXCUSTOM04.Equals(input.UomITEMXXCUSTOM04))
                ) && 
                (
                    this.UomITEMXXCUSTOM05 == input.UomITEMXXCUSTOM05 ||
                    (this.UomITEMXXCUSTOM05 != null &&
                    this.UomITEMXXCUSTOM05.Equals(input.UomITEMXXCUSTOM05))
                ) && 
                (
                    this.UomITEMXXCUSTOM06 == input.UomITEMXXCUSTOM06 ||
                    (this.UomITEMXXCUSTOM06 != null &&
                    this.UomITEMXXCUSTOM06.Equals(input.UomITEMXXCUSTOM06))
                ) && 
                (
                    this.UomITEMXXCUSTOM07 == input.UomITEMXXCUSTOM07 ||
                    (this.UomITEMXXCUSTOM07 != null &&
                    this.UomITEMXXCUSTOM07.Equals(input.UomITEMXXCUSTOM07))
                ) && 
                (
                    this.UomITEMXXCUSTOM08 == input.UomITEMXXCUSTOM08 ||
                    (this.UomITEMXXCUSTOM08 != null &&
                    this.UomITEMXXCUSTOM08.Equals(input.UomITEMXXCUSTOM08))
                ) && 
                (
                    this.UomITEMXXCUSTOM09 == input.UomITEMXXCUSTOM09 ||
                    (this.UomITEMXXCUSTOM09 != null &&
                    this.UomITEMXXCUSTOM09.Equals(input.UomITEMXXCUSTOM09))
                ) && 
                (
                    this.UomITEMXXCUSTOM10 == input.UomITEMXXCUSTOM10 ||
                    (this.UomITEMXXCUSTOM10 != null &&
                    this.UomITEMXXCUSTOM10.Equals(input.UomITEMXXCUSTOM10))
                ) && 
                (
                    this.UomITEMXXCUSTOM11 == input.UomITEMXXCUSTOM11 ||
                    (this.UomITEMXXCUSTOM11 != null &&
                    this.UomITEMXXCUSTOM11.Equals(input.UomITEMXXCUSTOM11))
                ) && 
                (
                    this.UomITEMXXCUSTOM12 == input.UomITEMXXCUSTOM12 ||
                    (this.UomITEMXXCUSTOM12 != null &&
                    this.UomITEMXXCUSTOM12.Equals(input.UomITEMXXCUSTOM12))
                ) && 
                (
                    this.UomITEMXXCUSTOM13 == input.UomITEMXXCUSTOM13 ||
                    (this.UomITEMXXCUSTOM13 != null &&
                    this.UomITEMXXCUSTOM13.Equals(input.UomITEMXXCUSTOM13))
                ) && 
                (
                    this.UomITEMXXCUSTOM14 == input.UomITEMXXCUSTOM14 ||
                    (this.UomITEMXXCUSTOM14 != null &&
                    this.UomITEMXXCUSTOM14.Equals(input.UomITEMXXCUSTOM14))
                ) && 
                (
                    this.UomITEMXXCUSTOM15 == input.UomITEMXXCUSTOM15 ||
                    (this.UomITEMXXCUSTOM15 != null &&
                    this.UomITEMXXCUSTOM15.Equals(input.UomITEMXXCUSTOM15))
                ) && 
                (
                    this.UomITEMXXCUSTOM16 == input.UomITEMXXCUSTOM16 ||
                    (this.UomITEMXXCUSTOM16 != null &&
                    this.UomITEMXXCUSTOM16.Equals(input.UomITEMXXCUSTOM16))
                ) && 
                (
                    this.UomITEMXXCUSTOM17 == input.UomITEMXXCUSTOM17 ||
                    (this.UomITEMXXCUSTOM17 != null &&
                    this.UomITEMXXCUSTOM17.Equals(input.UomITEMXXCUSTOM17))
                ) && 
                (
                    this.UomITEMXXCUSTOM18 == input.UomITEMXXCUSTOM18 ||
                    (this.UomITEMXXCUSTOM18 != null &&
                    this.UomITEMXXCUSTOM18.Equals(input.UomITEMXXCUSTOM18))
                ) && 
                (
                    this.UomITEMXXCUSTOM19 == input.UomITEMXXCUSTOM19 ||
                    (this.UomITEMXXCUSTOM19 != null &&
                    this.UomITEMXXCUSTOM19.Equals(input.UomITEMXXCUSTOM19))
                ) && 
                (
                    this.UomITEMXXCUSTOM20 == input.UomITEMXXCUSTOM20 ||
                    (this.UomITEMXXCUSTOM20 != null &&
                    this.UomITEMXXCUSTOM20.Equals(input.UomITEMXXCUSTOM20))
                ) && 
                (
                    this.UomITEMXXCUSTOM21 == input.UomITEMXXCUSTOM21 ||
                    (this.UomITEMXXCUSTOM21 != null &&
                    this.UomITEMXXCUSTOM21.Equals(input.UomITEMXXCUSTOM21))
                ) && 
                (
                    this.UomITEMXXCUSTOM22 == input.UomITEMXXCUSTOM22 ||
                    (this.UomITEMXXCUSTOM22 != null &&
                    this.UomITEMXXCUSTOM22.Equals(input.UomITEMXXCUSTOM22))
                ) && 
                (
                    this.UomITEMXXCUSTOM23 == input.UomITEMXXCUSTOM23 ||
                    (this.UomITEMXXCUSTOM23 != null &&
                    this.UomITEMXXCUSTOM23.Equals(input.UomITEMXXCUSTOM23))
                ) && 
                (
                    this.UomITEMXXCUSTOM24 == input.UomITEMXXCUSTOM24 ||
                    (this.UomITEMXXCUSTOM24 != null &&
                    this.UomITEMXXCUSTOM24.Equals(input.UomITEMXXCUSTOM24))
                ) && 
                (
                    this.UomITEMXXCUSTOM25 == input.UomITEMXXCUSTOM25 ||
                    (this.UomITEMXXCUSTOM25 != null &&
                    this.UomITEMXXCUSTOM25.Equals(input.UomITEMXXCUSTOM25))
                ) && 
                (
                    this.UomITEMXXCUSTOM26 == input.UomITEMXXCUSTOM26 ||
                    (this.UomITEMXXCUSTOM26 != null &&
                    this.UomITEMXXCUSTOM26.Equals(input.UomITEMXXCUSTOM26))
                ) && 
                (
                    this.UomITEMXXCUSTOM27 == input.UomITEMXXCUSTOM27 ||
                    (this.UomITEMXXCUSTOM27 != null &&
                    this.UomITEMXXCUSTOM27.Equals(input.UomITEMXXCUSTOM27))
                ) && 
                (
                    this.UomITEMXXCUSTOM28 == input.UomITEMXXCUSTOM28 ||
                    (this.UomITEMXXCUSTOM28 != null &&
                    this.UomITEMXXCUSTOM28.Equals(input.UomITEMXXCUSTOM28))
                ) && 
                (
                    this.UomITEMXXCUSTOM29 == input.UomITEMXXCUSTOM29 ||
                    (this.UomITEMXXCUSTOM29 != null &&
                    this.UomITEMXXCUSTOM29.Equals(input.UomITEMXXCUSTOM29))
                ) && 
                (
                    this.UomITEMXXCUSTOM30 == input.UomITEMXXCUSTOM30 ||
                    (this.UomITEMXXCUSTOM30 != null &&
                    this.UomITEMXXCUSTOM30.Equals(input.UomITEMXXCUSTOM30))
                ) && 
                (
                    this.ItemXXCUSTOM01 == input.ItemXXCUSTOM01 ||
                    (this.ItemXXCUSTOM01 != null &&
                    this.ItemXXCUSTOM01.Equals(input.ItemXXCUSTOM01))
                ) && 
                (
                    this.ItemXXCUSTOM02 == input.ItemXXCUSTOM02 ||
                    (this.ItemXXCUSTOM02 != null &&
                    this.ItemXXCUSTOM02.Equals(input.ItemXXCUSTOM02))
                ) && 
                (
                    this.ItemXXCUSTOM03 == input.ItemXXCUSTOM03 ||
                    (this.ItemXXCUSTOM03 != null &&
                    this.ItemXXCUSTOM03.Equals(input.ItemXXCUSTOM03))
                ) && 
                (
                    this.ItemXXCUSTOM04 == input.ItemXXCUSTOM04 ||
                    (this.ItemXXCUSTOM04 != null &&
                    this.ItemXXCUSTOM04.Equals(input.ItemXXCUSTOM04))
                ) && 
                (
                    this.ItemXXCUSTOM05 == input.ItemXXCUSTOM05 ||
                    (this.ItemXXCUSTOM05 != null &&
                    this.ItemXXCUSTOM05.Equals(input.ItemXXCUSTOM05))
                ) && 
                (
                    this.ItemXXCUSTOM06 == input.ItemXXCUSTOM06 ||
                    (this.ItemXXCUSTOM06 != null &&
                    this.ItemXXCUSTOM06.Equals(input.ItemXXCUSTOM06))
                ) && 
                (
                    this.ItemXXCUSTOM07 == input.ItemXXCUSTOM07 ||
                    (this.ItemXXCUSTOM07 != null &&
                    this.ItemXXCUSTOM07.Equals(input.ItemXXCUSTOM07))
                ) && 
                (
                    this.ItemXXCUSTOM08 == input.ItemXXCUSTOM08 ||
                    (this.ItemXXCUSTOM08 != null &&
                    this.ItemXXCUSTOM08.Equals(input.ItemXXCUSTOM08))
                ) && 
                (
                    this.ItemXXCUSTOM09 == input.ItemXXCUSTOM09 ||
                    (this.ItemXXCUSTOM09 != null &&
                    this.ItemXXCUSTOM09.Equals(input.ItemXXCUSTOM09))
                ) && 
                (
                    this.ItemXXCUSTOM10 == input.ItemXXCUSTOM10 ||
                    (this.ItemXXCUSTOM10 != null &&
                    this.ItemXXCUSTOM10.Equals(input.ItemXXCUSTOM10))
                ) && 
                (
                    this.ItemXXCUSTOM11 == input.ItemXXCUSTOM11 ||
                    (this.ItemXXCUSTOM11 != null &&
                    this.ItemXXCUSTOM11.Equals(input.ItemXXCUSTOM11))
                ) && 
                (
                    this.ItemXXCUSTOM12 == input.ItemXXCUSTOM12 ||
                    (this.ItemXXCUSTOM12 != null &&
                    this.ItemXXCUSTOM12.Equals(input.ItemXXCUSTOM12))
                ) && 
                (
                    this.ItemXXCUSTOM13 == input.ItemXXCUSTOM13 ||
                    (this.ItemXXCUSTOM13 != null &&
                    this.ItemXXCUSTOM13.Equals(input.ItemXXCUSTOM13))
                ) && 
                (
                    this.ItemXXCUSTOM14 == input.ItemXXCUSTOM14 ||
                    (this.ItemXXCUSTOM14 != null &&
                    this.ItemXXCUSTOM14.Equals(input.ItemXXCUSTOM14))
                ) && 
                (
                    this.ItemXXCUSTOM15 == input.ItemXXCUSTOM15 ||
                    (this.ItemXXCUSTOM15 != null &&
                    this.ItemXXCUSTOM15.Equals(input.ItemXXCUSTOM15))
                ) && 
                (
                    this.ItemXXCUSTOM16 == input.ItemXXCUSTOM16 ||
                    (this.ItemXXCUSTOM16 != null &&
                    this.ItemXXCUSTOM16.Equals(input.ItemXXCUSTOM16))
                ) && 
                (
                    this.ItemXXCUSTOM17 == input.ItemXXCUSTOM17 ||
                    (this.ItemXXCUSTOM17 != null &&
                    this.ItemXXCUSTOM17.Equals(input.ItemXXCUSTOM17))
                ) && 
                (
                    this.ItemXXCUSTOM18 == input.ItemXXCUSTOM18 ||
                    (this.ItemXXCUSTOM18 != null &&
                    this.ItemXXCUSTOM18.Equals(input.ItemXXCUSTOM18))
                ) && 
                (
                    this.ItemXXCUSTOM19 == input.ItemXXCUSTOM19 ||
                    (this.ItemXXCUSTOM19 != null &&
                    this.ItemXXCUSTOM19.Equals(input.ItemXXCUSTOM19))
                ) && 
                (
                    this.ItemXXCUSTOM20 == input.ItemXXCUSTOM20 ||
                    (this.ItemXXCUSTOM20 != null &&
                    this.ItemXXCUSTOM20.Equals(input.ItemXXCUSTOM20))
                ) && 
                (
                    this.ItemXXCUSTOM21 == input.ItemXXCUSTOM21 ||
                    (this.ItemXXCUSTOM21 != null &&
                    this.ItemXXCUSTOM21.Equals(input.ItemXXCUSTOM21))
                ) && 
                (
                    this.ItemXXCUSTOM22 == input.ItemXXCUSTOM22 ||
                    (this.ItemXXCUSTOM22 != null &&
                    this.ItemXXCUSTOM22.Equals(input.ItemXXCUSTOM22))
                ) && 
                (
                    this.ItemXXCUSTOM23 == input.ItemXXCUSTOM23 ||
                    (this.ItemXXCUSTOM23 != null &&
                    this.ItemXXCUSTOM23.Equals(input.ItemXXCUSTOM23))
                ) && 
                (
                    this.ItemXXCUSTOM24 == input.ItemXXCUSTOM24 ||
                    (this.ItemXXCUSTOM24 != null &&
                    this.ItemXXCUSTOM24.Equals(input.ItemXXCUSTOM24))
                ) && 
                (
                    this.ItemXXCUSTOM25 == input.ItemXXCUSTOM25 ||
                    (this.ItemXXCUSTOM25 != null &&
                    this.ItemXXCUSTOM25.Equals(input.ItemXXCUSTOM25))
                ) && 
                (
                    this.ItemXXCUSTOM26 == input.ItemXXCUSTOM26 ||
                    (this.ItemXXCUSTOM26 != null &&
                    this.ItemXXCUSTOM26.Equals(input.ItemXXCUSTOM26))
                ) && 
                (
                    this.ItemXXCUSTOM27 == input.ItemXXCUSTOM27 ||
                    (this.ItemXXCUSTOM27 != null &&
                    this.ItemXXCUSTOM27.Equals(input.ItemXXCUSTOM27))
                ) && 
                (
                    this.ItemXXCUSTOM28 == input.ItemXXCUSTOM28 ||
                    (this.ItemXXCUSTOM28 != null &&
                    this.ItemXXCUSTOM28.Equals(input.ItemXXCUSTOM28))
                ) && 
                (
                    this.ItemXXCUSTOM29 == input.ItemXXCUSTOM29 ||
                    (this.ItemXXCUSTOM29 != null &&
                    this.ItemXXCUSTOM29.Equals(input.ItemXXCUSTOM29))
                ) && 
                (
                    this.ItemXXCUSTOM30 == input.ItemXXCUSTOM30 ||
                    (this.ItemXXCUSTOM30 != null &&
                    this.ItemXXCUSTOM30.Equals(input.ItemXXCUSTOM30))
                );
        }

        /// <summary>
        /// Gets the hash code
        /// </summary>
        /// <returns>Hash code</returns>
        public override int GetHashCode()
        {
            unchecked // Overflow is fine, just wrap
            {
                int hashCode = 41;
                if (this.ItemID != null)
                    hashCode = hashCode * 59 + this.ItemID.GetHashCode();
                if (this.Name != null)
                    hashCode = hashCode * 59 + this.Name.GetHashCode();
                if (this.MerchandiseHierarchyGroupName != null)
                    hashCode = hashCode * 59 + this.MerchandiseHierarchyGroupName.GetHashCode();
                if (this.PriceAmount != null)
                    hashCode = hashCode * 59 + this.PriceAmount.GetHashCode();
                if (this.AuthorisedForSaleFlag != null)
                    hashCode = hashCode * 59 + this.AuthorisedForSaleFlag.GetHashCode();
                if (this.ItemCollectionSet != null)
                    hashCode = hashCode * 59 + this.ItemCollectionSet.GetHashCode();
                if (this.ItemIDCaseSensitive != null)
                    hashCode = hashCode * 59 + this.ItemIDCaseSensitive.GetHashCode();
                if (this.ScaleDomainID != null)
                    hashCode = hashCode * 59 + this.ScaleDomainID.GetHashCode();
                if (this.PosIdentityTypeCode != null)
                    hashCode = hashCode * 59 + this.PosIdentityTypeCode.GetHashCode();
                if (this.OptionLoadPosIdentity != null)
                    hashCode = hashCode * 59 + this.OptionLoadPosIdentity.GetHashCode();
                if (this.OptionLoadCharacteristics != null)
                    hashCode = hashCode * 59 + this.OptionLoadCharacteristics.GetHashCode();
                if (this.CharacteristicFilterList != null)
                    hashCode = hashCode * 59 + this.CharacteristicFilterList.GetHashCode();
                if (this.SearchItemIdInRootItemId != null)
                    hashCode = hashCode * 59 + this.SearchItemIdInRootItemId.GetHashCode();
                if (this.Offset != null)
                    hashCode = hashCode * 59 + this.Offset.GetHashCode();
                if (this.Limit != null)
                    hashCode = hashCode * 59 + this.Limit.GetHashCode();
                if (this.UomITEMXXCUSTOM01 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM01.GetHashCode();
                if (this.UomITEMXXCUSTOM02 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM02.GetHashCode();
                if (this.UomITEMXXCUSTOM03 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM03.GetHashCode();
                if (this.UomITEMXXCUSTOM04 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM04.GetHashCode();
                if (this.UomITEMXXCUSTOM05 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM05.GetHashCode();
                if (this.UomITEMXXCUSTOM06 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM06.GetHashCode();
                if (this.UomITEMXXCUSTOM07 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM07.GetHashCode();
                if (this.UomITEMXXCUSTOM08 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM08.GetHashCode();
                if (this.UomITEMXXCUSTOM09 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM09.GetHashCode();
                if (this.UomITEMXXCUSTOM10 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM10.GetHashCode();
                if (this.UomITEMXXCUSTOM11 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM11.GetHashCode();
                if (this.UomITEMXXCUSTOM12 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM12.GetHashCode();
                if (this.UomITEMXXCUSTOM13 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM13.GetHashCode();
                if (this.UomITEMXXCUSTOM14 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM14.GetHashCode();
                if (this.UomITEMXXCUSTOM15 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM15.GetHashCode();
                if (this.UomITEMXXCUSTOM16 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM16.GetHashCode();
                if (this.UomITEMXXCUSTOM17 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM17.GetHashCode();
                if (this.UomITEMXXCUSTOM18 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM18.GetHashCode();
                if (this.UomITEMXXCUSTOM19 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM19.GetHashCode();
                if (this.UomITEMXXCUSTOM20 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM20.GetHashCode();
                if (this.UomITEMXXCUSTOM21 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM21.GetHashCode();
                if (this.UomITEMXXCUSTOM22 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM22.GetHashCode();
                if (this.UomITEMXXCUSTOM23 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM23.GetHashCode();
                if (this.UomITEMXXCUSTOM24 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM24.GetHashCode();
                if (this.UomITEMXXCUSTOM25 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM25.GetHashCode();
                if (this.UomITEMXXCUSTOM26 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM26.GetHashCode();
                if (this.UomITEMXXCUSTOM27 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM27.GetHashCode();
                if (this.UomITEMXXCUSTOM28 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM28.GetHashCode();
                if (this.UomITEMXXCUSTOM29 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM29.GetHashCode();
                if (this.UomITEMXXCUSTOM30 != null)
                    hashCode = hashCode * 59 + this.UomITEMXXCUSTOM30.GetHashCode();
                if (this.ItemXXCUSTOM01 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM01.GetHashCode();
                if (this.ItemXXCUSTOM02 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM02.GetHashCode();
                if (this.ItemXXCUSTOM03 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM03.GetHashCode();
                if (this.ItemXXCUSTOM04 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM04.GetHashCode();
                if (this.ItemXXCUSTOM05 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM05.GetHashCode();
                if (this.ItemXXCUSTOM06 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM06.GetHashCode();
                if (this.ItemXXCUSTOM07 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM07.GetHashCode();
                if (this.ItemXXCUSTOM08 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM08.GetHashCode();
                if (this.ItemXXCUSTOM09 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM09.GetHashCode();
                if (this.ItemXXCUSTOM10 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM10.GetHashCode();
                if (this.ItemXXCUSTOM11 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM11.GetHashCode();
                if (this.ItemXXCUSTOM12 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM12.GetHashCode();
                if (this.ItemXXCUSTOM13 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM13.GetHashCode();
                if (this.ItemXXCUSTOM14 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM14.GetHashCode();
                if (this.ItemXXCUSTOM15 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM15.GetHashCode();
                if (this.ItemXXCUSTOM16 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM16.GetHashCode();
                if (this.ItemXXCUSTOM17 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM17.GetHashCode();
                if (this.ItemXXCUSTOM18 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM18.GetHashCode();
                if (this.ItemXXCUSTOM19 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM19.GetHashCode();
                if (this.ItemXXCUSTOM20 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM20.GetHashCode();
                if (this.ItemXXCUSTOM21 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM21.GetHashCode();
                if (this.ItemXXCUSTOM22 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM22.GetHashCode();
                if (this.ItemXXCUSTOM23 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM23.GetHashCode();
                if (this.ItemXXCUSTOM24 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM24.GetHashCode();
                if (this.ItemXXCUSTOM25 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM25.GetHashCode();
                if (this.ItemXXCUSTOM26 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM26.GetHashCode();
                if (this.ItemXXCUSTOM27 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM27.GetHashCode();
                if (this.ItemXXCUSTOM28 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM28.GetHashCode();
                if (this.ItemXXCUSTOM29 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM29.GetHashCode();
                if (this.ItemXXCUSTOM30 != null)
                    hashCode = hashCode * 59 + this.ItemXXCUSTOM30.GetHashCode();
                return hashCode;
            }
        }

        /// <summary>
        /// To validate all properties of the instance
        /// </summary>
        /// <param name="validationContext">Validation context</param>
        /// <returns>Validation Result</returns>
        IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
        {
            yield break;
        }
    }

}
