/* 
 * 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>
    /// RelatedItemView &lt;emph&gt;undocumented&lt;/emph&gt;
    /// </summary>
    [DataContract]
    public partial class ComGkSoftwareGkrApiServerMdItemDtoDomPosRelatedItemView :  IEquatable<ComGkSoftwareGkrApiServerMdItemDtoDomPosRelatedItemView>, IValidatableObject
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="ComGkSoftwareGkrApiServerMdItemDtoDomPosRelatedItemView" /> class.
        /// </summary>
        /// <param name="itemID">itemID.</param>
        /// <param name="uomCode">uomCode.</param>
        /// <param name="mainPOSItemId">mainPOSItemId.</param>
        /// <param name="uomItemName">uomItemName.</param>
        /// <param name="currentPrice">currentPrice.</param>
        /// <param name="uomITEMXXCUSTOM01">uomITEMXXCUSTOM01.</param>
        /// <param name="uomITEMXXCUSTOM02">uomITEMXXCUSTOM02.</param>
        /// <param name="uomITEMXXCUSTOM03">uomITEMXXCUSTOM03.</param>
        /// <param name="uomITEMXXCUSTOM04">uomITEMXXCUSTOM04.</param>
        /// <param name="uomITEMXXCUSTOM05">uomITEMXXCUSTOM05.</param>
        /// <param name="uomITEMXXCUSTOM06">uomITEMXXCUSTOM06.</param>
        /// <param name="uomITEMXXCUSTOM07">uomITEMXXCUSTOM07.</param>
        /// <param name="uomITEMXXCUSTOM08">uomITEMXXCUSTOM08.</param>
        /// <param name="uomITEMXXCUSTOM09">uomITEMXXCUSTOM09.</param>
        /// <param name="uomITEMXXCUSTOM10">uomITEMXXCUSTOM10.</param>
        /// <param name="uomITEMXXCUSTOM11">uomITEMXXCUSTOM11.</param>
        /// <param name="uomITEMXXCUSTOM12">uomITEMXXCUSTOM12.</param>
        /// <param name="uomITEMXXCUSTOM13">uomITEMXXCUSTOM13.</param>
        /// <param name="uomITEMXXCUSTOM14">uomITEMXXCUSTOM14.</param>
        /// <param name="uomITEMXXCUSTOM15">uomITEMXXCUSTOM15.</param>
        /// <param name="uomITEMXXCUSTOM16">uomITEMXXCUSTOM16.</param>
        /// <param name="uomITEMXXCUSTOM17">uomITEMXXCUSTOM17.</param>
        /// <param name="uomITEMXXCUSTOM18">uomITEMXXCUSTOM18.</param>
        /// <param name="uomITEMXXCUSTOM19">uomITEMXXCUSTOM19.</param>
        /// <param name="uomITEMXXCUSTOM20">uomITEMXXCUSTOM20.</param>
        /// <param name="uomITEMXXCUSTOM21">uomITEMXXCUSTOM21.</param>
        /// <param name="uomITEMXXCUSTOM22">uomITEMXXCUSTOM22.</param>
        /// <param name="uomITEMXXCUSTOM23">uomITEMXXCUSTOM23.</param>
        /// <param name="uomITEMXXCUSTOM24">uomITEMXXCUSTOM24.</param>
        /// <param name="uomITEMXXCUSTOM25">uomITEMXXCUSTOM25.</param>
        /// <param name="uomITEMXXCUSTOM26">uomITEMXXCUSTOM26.</param>
        /// <param name="uomITEMXXCUSTOM27">uomITEMXXCUSTOM27.</param>
        /// <param name="uomITEMXXCUSTOM28">uomITEMXXCUSTOM28.</param>
        /// <param name="uomITEMXXCUSTOM29">uomITEMXXCUSTOM29.</param>
        /// <param name="uomITEMXXCUSTOM30">uomITEMXXCUSTOM30.</param>
        public ComGkSoftwareGkrApiServerMdItemDtoDomPosRelatedItemView(string itemID = default(string), string uomCode = default(string), string mainPOSItemId = default(string), string uomItemName = default(string), double? currentPrice = default(double?), string uomITEMXXCUSTOM01 = default(string), string uomITEMXXCUSTOM02 = default(string), string uomITEMXXCUSTOM03 = default(string), string uomITEMXXCUSTOM04 = default(string), string uomITEMXXCUSTOM05 = default(string), string uomITEMXXCUSTOM06 = default(string), string uomITEMXXCUSTOM07 = default(string), string uomITEMXXCUSTOM08 = default(string), string uomITEMXXCUSTOM09 = default(string), string uomITEMXXCUSTOM10 = default(string), string uomITEMXXCUSTOM11 = default(string), string uomITEMXXCUSTOM12 = default(string), string uomITEMXXCUSTOM13 = default(string), string uomITEMXXCUSTOM14 = default(string), string uomITEMXXCUSTOM15 = default(string), string uomITEMXXCUSTOM16 = default(string), string uomITEMXXCUSTOM17 = default(string), string uomITEMXXCUSTOM18 = default(string), string uomITEMXXCUSTOM19 = default(string), string uomITEMXXCUSTOM20 = default(string), string uomITEMXXCUSTOM21 = default(string), string uomITEMXXCUSTOM22 = default(string), string uomITEMXXCUSTOM23 = default(string), string uomITEMXXCUSTOM24 = default(string), string uomITEMXXCUSTOM25 = default(string), string uomITEMXXCUSTOM26 = default(string), string uomITEMXXCUSTOM27 = default(string), string uomITEMXXCUSTOM28 = default(string), string uomITEMXXCUSTOM29 = default(string), string uomITEMXXCUSTOM30 = default(string))
        {
            this.ItemID = itemID;
            this.UomCode = uomCode;
            this.MainPOSItemId = mainPOSItemId;
            this.UomItemName = uomItemName;
            this.CurrentPrice = currentPrice;
            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;
        }
        
        /// <summary>
        /// Gets or Sets ItemID
        /// </summary>
        [DataMember(Name="itemID", EmitDefaultValue=false)]
        public string ItemID { get; set; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        /// <summary>
        /// Gets or Sets UomITEMXXCUSTOM30
        /// </summary>
        [DataMember(Name="uom_ITEM_XX_CUSTOM_30", EmitDefaultValue=false)]
        public string UomITEMXXCUSTOM30 { 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 ComGkSoftwareGkrApiServerMdItemDtoDomPosRelatedItemView {\n");
            sb.Append("  ItemID: ").Append(ItemID).Append("\n");
            sb.Append("  UomCode: ").Append(UomCode).Append("\n");
            sb.Append("  MainPOSItemId: ").Append(MainPOSItemId).Append("\n");
            sb.Append("  UomItemName: ").Append(UomItemName).Append("\n");
            sb.Append("  CurrentPrice: ").Append(CurrentPrice).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("}\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 ComGkSoftwareGkrApiServerMdItemDtoDomPosRelatedItemView);
        }

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

            return 
                (
                    this.ItemID == input.ItemID ||
                    (this.ItemID != null &&
                    this.ItemID.Equals(input.ItemID))
                ) && 
                (
                    this.UomCode == input.UomCode ||
                    (this.UomCode != null &&
                    this.UomCode.Equals(input.UomCode))
                ) && 
                (
                    this.MainPOSItemId == input.MainPOSItemId ||
                    (this.MainPOSItemId != null &&
                    this.MainPOSItemId.Equals(input.MainPOSItemId))
                ) && 
                (
                    this.UomItemName == input.UomItemName ||
                    (this.UomItemName != null &&
                    this.UomItemName.Equals(input.UomItemName))
                ) && 
                (
                    this.CurrentPrice == input.CurrentPrice ||
                    (this.CurrentPrice != null &&
                    this.CurrentPrice.Equals(input.CurrentPrice))
                ) && 
                (
                    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))
                );
        }

        /// <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.UomCode != null)
                    hashCode = hashCode * 59 + this.UomCode.GetHashCode();
                if (this.MainPOSItemId != null)
                    hashCode = hashCode * 59 + this.MainPOSItemId.GetHashCode();
                if (this.UomItemName != null)
                    hashCode = hashCode * 59 + this.UomItemName.GetHashCode();
                if (this.CurrentPrice != null)
                    hashCode = hashCode * 59 + this.CurrentPrice.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();
                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;
        }
    }

}
