silentbalanceyh/vertx-zero

View on GitHub
vertx-pin/zero-psi/src/main/java/cn/vertxup/psi/domain/tables/pojos/POutItem.java

Summary

Maintainability
F
2 wks
Test Coverage
/*
 * This file is generated by jOOQ.
 */
package cn.vertxup.psi.domain.tables.pojos;


import cn.vertxup.psi.domain.tables.interfaces.IPOutItem;
import io.github.jklingsporn.vertx.jooq.shared.internal.VertxPojo;

import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
 * This class is generated by jOOQ.
 */
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class POutItem implements VertxPojo, IPOutItem {

    private static final long serialVersionUID = 1L;

    private String key;
    private String serial;
    private String status;
    private String commodityId;
    private String commodityCode;
    private String commodityName;
    private String commodityLogo;
    private String customerId;
    private String fromName;
    private String fromCode;
    private String ticketId;
    private String whId;
    private Integer num;
    private BigDecimal amount;
    private BigDecimal price;
    private String comment;
    private BigDecimal costPerBasis;
    private BigDecimal costPer;
    private BigDecimal costAmount;
    private BigDecimal discountAmount;
    private BigDecimal discountRate;
    private Boolean active;
    private String sigma;
    private String metadata;
    private String language;
    private LocalDateTime createdAt;
    private String createdBy;
    private LocalDateTime updatedAt;
    private String updatedBy;

    public POutItem() {}

    public POutItem(IPOutItem value) {
        this.key = value.getKey();
        this.serial = value.getSerial();
        this.status = value.getStatus();
        this.commodityId = value.getCommodityId();
        this.commodityCode = value.getCommodityCode();
        this.commodityName = value.getCommodityName();
        this.commodityLogo = value.getCommodityLogo();
        this.customerId = value.getCustomerId();
        this.fromName = value.getFromName();
        this.fromCode = value.getFromCode();
        this.ticketId = value.getTicketId();
        this.whId = value.getWhId();
        this.num = value.getNum();
        this.amount = value.getAmount();
        this.price = value.getPrice();
        this.comment = value.getComment();
        this.costPerBasis = value.getCostPerBasis();
        this.costPer = value.getCostPer();
        this.costAmount = value.getCostAmount();
        this.discountAmount = value.getDiscountAmount();
        this.discountRate = value.getDiscountRate();
        this.active = value.getActive();
        this.sigma = value.getSigma();
        this.metadata = value.getMetadata();
        this.language = value.getLanguage();
        this.createdAt = value.getCreatedAt();
        this.createdBy = value.getCreatedBy();
        this.updatedAt = value.getUpdatedAt();
        this.updatedBy = value.getUpdatedBy();
    }

    public POutItem(
        String key,
        String serial,
        String status,
        String commodityId,
        String commodityCode,
        String commodityName,
        String commodityLogo,
        String customerId,
        String fromName,
        String fromCode,
        String ticketId,
        String whId,
        Integer num,
        BigDecimal amount,
        BigDecimal price,
        String comment,
        BigDecimal costPerBasis,
        BigDecimal costPer,
        BigDecimal costAmount,
        BigDecimal discountAmount,
        BigDecimal discountRate,
        Boolean active,
        String sigma,
        String metadata,
        String language,
        LocalDateTime createdAt,
        String createdBy,
        LocalDateTime updatedAt,
        String updatedBy
    ) {
        this.key = key;
        this.serial = serial;
        this.status = status;
        this.commodityId = commodityId;
        this.commodityCode = commodityCode;
        this.commodityName = commodityName;
        this.commodityLogo = commodityLogo;
        this.customerId = customerId;
        this.fromName = fromName;
        this.fromCode = fromCode;
        this.ticketId = ticketId;
        this.whId = whId;
        this.num = num;
        this.amount = amount;
        this.price = price;
        this.comment = comment;
        this.costPerBasis = costPerBasis;
        this.costPer = costPer;
        this.costAmount = costAmount;
        this.discountAmount = discountAmount;
        this.discountRate = discountRate;
        this.active = active;
        this.sigma = sigma;
        this.metadata = metadata;
        this.language = language;
        this.createdAt = createdAt;
        this.createdBy = createdBy;
        this.updatedAt = updatedAt;
        this.updatedBy = updatedBy;
    }

        public POutItem(io.vertx.core.json.JsonObject json) {
                this();
                fromJson(json);
        }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.KEY</code>. 「key」- 出库明细主键
     */
    @Override
    public String getKey() {
        return this.key;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.KEY</code>. 「key」- 出库明细主键
     */
    @Override
    public POutItem setKey(String key) {
        this.key = key;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.SERIAL</code>. 「serial」-
     * 出库明细号(系统可用,直接计算)
     */
    @Override
    public String getSerial() {
        return this.serial;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.SERIAL</code>. 「serial」-
     * 出库明细号(系统可用,直接计算)
     */
    @Override
    public POutItem setSerial(String serial) {
        this.serial = serial;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.STATUS</code>. 「status」- 明细状态
     */
    @Override
    public String getStatus() {
        return this.status;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.STATUS</code>. 「status」- 明细状态
     */
    @Override
    public POutItem setStatus(String status) {
        this.status = status;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.COMMODITY_ID</code>.
     * 「commodityId」- 商品ID
     */
    @Override
    public String getCommodityId() {
        return this.commodityId;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.COMMODITY_ID</code>.
     * 「commodityId」- 商品ID
     */
    @Override
    public POutItem setCommodityId(String commodityId) {
        this.commodityId = commodityId;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.COMMODITY_CODE</code>.
     * 「commodityCode」- 商品编码
     */
    @Override
    public String getCommodityCode() {
        return this.commodityCode;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.COMMODITY_CODE</code>.
     * 「commodityCode」- 商品编码
     */
    @Override
    public POutItem setCommodityCode(String commodityCode) {
        this.commodityCode = commodityCode;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.COMMODITY_NAME</code>.
     * 「commodityName」- 商品名称
     */
    @Override
    public String getCommodityName() {
        return this.commodityName;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.COMMODITY_NAME</code>.
     * 「commodityName」- 商品名称
     */
    @Override
    public POutItem setCommodityName(String commodityName) {
        this.commodityName = commodityName;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.COMMODITY_LOGO</code>.
     * 「commodityLogo」- 商品Logo
     */
    @Override
    public String getCommodityLogo() {
        return this.commodityLogo;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.COMMODITY_LOGO</code>.
     * 「commodityLogo」- 商品Logo
     */
    @Override
    public POutItem setCommodityLogo(String commodityLogo) {
        this.commodityLogo = commodityLogo;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.CUSTOMER_ID</code>. 「customerId」-
     * 供应商
     */
    @Override
    public String getCustomerId() {
        return this.customerId;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.CUSTOMER_ID</code>. 「customerId」-
     * 供应商
     */
    @Override
    public POutItem setCustomerId(String customerId) {
        this.customerId = customerId;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.FROM_NAME</code>. 「fromName」-
     * 供应商商品名称
     */
    @Override
    public String getFromName() {
        return this.fromName;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.FROM_NAME</code>. 「fromName」-
     * 供应商商品名称
     */
    @Override
    public POutItem setFromName(String fromName) {
        this.fromName = fromName;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.FROM_CODE</code>. 「fromCode」-
     * 供应商商品编码
     */
    @Override
    public String getFromCode() {
        return this.fromCode;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.FROM_CODE</code>. 「fromCode」-
     * 供应商商品编码
     */
    @Override
    public POutItem setFromCode(String fromCode) {
        this.fromCode = fromCode;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.TICKET_ID</code>. 「ticketId」-
     * 出库单ID
     */
    @Override
    public String getTicketId() {
        return this.ticketId;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.TICKET_ID</code>. 「ticketId」-
     * 出库单ID
     */
    @Override
    public POutItem setTicketId(String ticketId) {
        this.ticketId = ticketId;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.WH_ID</code>. 「whId」- 实际出库仓库
     */
    @Override
    public String getWhId() {
        return this.whId;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.WH_ID</code>. 「whId」- 实际出库仓库
     */
    @Override
    public POutItem setWhId(String whId) {
        this.whId = whId;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.NUM</code>. 「num」- 实际出库数量
     */
    @Override
    public Integer getNum() {
        return this.num;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.NUM</code>. 「num」- 实际出库数量
     */
    @Override
    public POutItem setNum(Integer num) {
        this.num = num;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.AMOUNT</code>. 「amount」-
     * 销售总价(订单总价)
     */
    @Override
    public BigDecimal getAmount() {
        return this.amount;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.AMOUNT</code>. 「amount」-
     * 销售总价(订单总价)
     */
    @Override
    public POutItem setAmount(BigDecimal amount) {
        this.amount = amount;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.PRICE</code>. 「price」- 销售单价(销售价)
     */
    @Override
    public BigDecimal getPrice() {
        return this.price;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.PRICE</code>. 「price」- 销售单价(销售价)
     */
    @Override
    public POutItem setPrice(BigDecimal price) {
        this.price = price;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.COMMENT</code>. 「comment」- 商品行备注
     */
    @Override
    public String getComment() {
        return this.comment;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.COMMENT</code>. 「comment」- 商品行备注
     */
    @Override
    public POutItem setComment(String comment) {
        this.comment = comment;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.COST_PER_BASIS</code>.
     * 「costPerBasis」- 基本单位成本
     */
    @Override
    public BigDecimal getCostPerBasis() {
        return this.costPerBasis;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.COST_PER_BASIS</code>.
     * 「costPerBasis」- 基本单位成本
     */
    @Override
    public POutItem setCostPerBasis(BigDecimal costPerBasis) {
        this.costPerBasis = costPerBasis;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.COST_PER</code>. 「costPer」- 单位成本
     */
    @Override
    public BigDecimal getCostPer() {
        return this.costPer;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.COST_PER</code>. 「costPer」- 单位成本
     */
    @Override
    public POutItem setCostPer(BigDecimal costPer) {
        this.costPer = costPer;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.COST_AMOUNT</code>. 「costAmount」-
     * 出库成本
     */
    @Override
    public BigDecimal getCostAmount() {
        return this.costAmount;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.COST_AMOUNT</code>. 「costAmount」-
     * 出库成本
     */
    @Override
    public POutItem setCostAmount(BigDecimal costAmount) {
        this.costAmount = costAmount;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.DISCOUNT_AMOUNT</code>.
     * 「discountAmount」- 折扣金额
     */
    @Override
    public BigDecimal getDiscountAmount() {
        return this.discountAmount;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.DISCOUNT_AMOUNT</code>.
     * 「discountAmount」- 折扣金额
     */
    @Override
    public POutItem setDiscountAmount(BigDecimal discountAmount) {
        this.discountAmount = discountAmount;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.DISCOUNT_RATE</code>.
     * 「discountRate」- 折扣率
     */
    @Override
    public BigDecimal getDiscountRate() {
        return this.discountRate;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.DISCOUNT_RATE</code>.
     * 「discountRate」- 折扣率
     */
    @Override
    public POutItem setDiscountRate(BigDecimal discountRate) {
        this.discountRate = discountRate;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.ACTIVE</code>. 「active」- 是否启用
     */
    @Override
    public Boolean getActive() {
        return this.active;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.ACTIVE</code>. 「active」- 是否启用
     */
    @Override
    public POutItem setActive(Boolean active) {
        this.active = active;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.SIGMA</code>. 「sigma」- 统一标识
     */
    @Override
    public String getSigma() {
        return this.sigma;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.SIGMA</code>. 「sigma」- 统一标识
     */
    @Override
    public POutItem setSigma(String sigma) {
        this.sigma = sigma;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.METADATA</code>. 「metadata」- 附加配置
     */
    @Override
    public String getMetadata() {
        return this.metadata;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.METADATA</code>. 「metadata」- 附加配置
     */
    @Override
    public POutItem setMetadata(String metadata) {
        this.metadata = metadata;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.LANGUAGE</code>. 「language」- 使用的语言
     */
    @Override
    public String getLanguage() {
        return this.language;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.LANGUAGE</code>. 「language」- 使用的语言
     */
    @Override
    public POutItem setLanguage(String language) {
        this.language = language;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.CREATED_AT</code>. 「createdAt」-
     * 创建时间
     */
    @Override
    public LocalDateTime getCreatedAt() {
        return this.createdAt;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.CREATED_AT</code>. 「createdAt」-
     * 创建时间
     */
    @Override
    public POutItem setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.CREATED_BY</code>. 「createdBy」-
     * 创建人
     */
    @Override
    public String getCreatedBy() {
        return this.createdBy;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.CREATED_BY</code>. 「createdBy」-
     * 创建人
     */
    @Override
    public POutItem setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.UPDATED_AT</code>. 「updatedAt」-
     * 更新时间
     */
    @Override
    public LocalDateTime getUpdatedAt() {
        return this.updatedAt;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.UPDATED_AT</code>. 「updatedAt」-
     * 更新时间
     */
    @Override
    public POutItem setUpdatedAt(LocalDateTime updatedAt) {
        this.updatedAt = updatedAt;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_OUT_ITEM.UPDATED_BY</code>. 「updatedBy」-
     * 更新人
     */
    @Override
    public String getUpdatedBy() {
        return this.updatedBy;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_OUT_ITEM.UPDATED_BY</code>. 「updatedBy」-
     * 更新人
     */
    @Override
    public POutItem setUpdatedBy(String updatedBy) {
        this.updatedBy = updatedBy;
        return this;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        final POutItem other = (POutItem) obj;
        if (this.key == null) {
            if (other.key != null)
                return false;
        }
        else if (!this.key.equals(other.key))
            return false;
        if (this.serial == null) {
            if (other.serial != null)
                return false;
        }
        else if (!this.serial.equals(other.serial))
            return false;
        if (this.status == null) {
            if (other.status != null)
                return false;
        }
        else if (!this.status.equals(other.status))
            return false;
        if (this.commodityId == null) {
            if (other.commodityId != null)
                return false;
        }
        else if (!this.commodityId.equals(other.commodityId))
            return false;
        if (this.commodityCode == null) {
            if (other.commodityCode != null)
                return false;
        }
        else if (!this.commodityCode.equals(other.commodityCode))
            return false;
        if (this.commodityName == null) {
            if (other.commodityName != null)
                return false;
        }
        else if (!this.commodityName.equals(other.commodityName))
            return false;
        if (this.commodityLogo == null) {
            if (other.commodityLogo != null)
                return false;
        }
        else if (!this.commodityLogo.equals(other.commodityLogo))
            return false;
        if (this.customerId == null) {
            if (other.customerId != null)
                return false;
        }
        else if (!this.customerId.equals(other.customerId))
            return false;
        if (this.fromName == null) {
            if (other.fromName != null)
                return false;
        }
        else if (!this.fromName.equals(other.fromName))
            return false;
        if (this.fromCode == null) {
            if (other.fromCode != null)
                return false;
        }
        else if (!this.fromCode.equals(other.fromCode))
            return false;
        if (this.ticketId == null) {
            if (other.ticketId != null)
                return false;
        }
        else if (!this.ticketId.equals(other.ticketId))
            return false;
        if (this.whId == null) {
            if (other.whId != null)
                return false;
        }
        else if (!this.whId.equals(other.whId))
            return false;
        if (this.num == null) {
            if (other.num != null)
                return false;
        }
        else if (!this.num.equals(other.num))
            return false;
        if (this.amount == null) {
            if (other.amount != null)
                return false;
        }
        else if (!this.amount.equals(other.amount))
            return false;
        if (this.price == null) {
            if (other.price != null)
                return false;
        }
        else if (!this.price.equals(other.price))
            return false;
        if (this.comment == null) {
            if (other.comment != null)
                return false;
        }
        else if (!this.comment.equals(other.comment))
            return false;
        if (this.costPerBasis == null) {
            if (other.costPerBasis != null)
                return false;
        }
        else if (!this.costPerBasis.equals(other.costPerBasis))
            return false;
        if (this.costPer == null) {
            if (other.costPer != null)
                return false;
        }
        else if (!this.costPer.equals(other.costPer))
            return false;
        if (this.costAmount == null) {
            if (other.costAmount != null)
                return false;
        }
        else if (!this.costAmount.equals(other.costAmount))
            return false;
        if (this.discountAmount == null) {
            if (other.discountAmount != null)
                return false;
        }
        else if (!this.discountAmount.equals(other.discountAmount))
            return false;
        if (this.discountRate == null) {
            if (other.discountRate != null)
                return false;
        }
        else if (!this.discountRate.equals(other.discountRate))
            return false;
        if (this.active == null) {
            if (other.active != null)
                return false;
        }
        else if (!this.active.equals(other.active))
            return false;
        if (this.sigma == null) {
            if (other.sigma != null)
                return false;
        }
        else if (!this.sigma.equals(other.sigma))
            return false;
        if (this.metadata == null) {
            if (other.metadata != null)
                return false;
        }
        else if (!this.metadata.equals(other.metadata))
            return false;
        if (this.language == null) {
            if (other.language != null)
                return false;
        }
        else if (!this.language.equals(other.language))
            return false;
        if (this.createdAt == null) {
            if (other.createdAt != null)
                return false;
        }
        else if (!this.createdAt.equals(other.createdAt))
            return false;
        if (this.createdBy == null) {
            if (other.createdBy != null)
                return false;
        }
        else if (!this.createdBy.equals(other.createdBy))
            return false;
        if (this.updatedAt == null) {
            if (other.updatedAt != null)
                return false;
        }
        else if (!this.updatedAt.equals(other.updatedAt))
            return false;
        if (this.updatedBy == null) {
            if (other.updatedBy != null)
                return false;
        }
        else if (!this.updatedBy.equals(other.updatedBy))
            return false;
        return true;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((this.key == null) ? 0 : this.key.hashCode());
        result = prime * result + ((this.serial == null) ? 0 : this.serial.hashCode());
        result = prime * result + ((this.status == null) ? 0 : this.status.hashCode());
        result = prime * result + ((this.commodityId == null) ? 0 : this.commodityId.hashCode());
        result = prime * result + ((this.commodityCode == null) ? 0 : this.commodityCode.hashCode());
        result = prime * result + ((this.commodityName == null) ? 0 : this.commodityName.hashCode());
        result = prime * result + ((this.commodityLogo == null) ? 0 : this.commodityLogo.hashCode());
        result = prime * result + ((this.customerId == null) ? 0 : this.customerId.hashCode());
        result = prime * result + ((this.fromName == null) ? 0 : this.fromName.hashCode());
        result = prime * result + ((this.fromCode == null) ? 0 : this.fromCode.hashCode());
        result = prime * result + ((this.ticketId == null) ? 0 : this.ticketId.hashCode());
        result = prime * result + ((this.whId == null) ? 0 : this.whId.hashCode());
        result = prime * result + ((this.num == null) ? 0 : this.num.hashCode());
        result = prime * result + ((this.amount == null) ? 0 : this.amount.hashCode());
        result = prime * result + ((this.price == null) ? 0 : this.price.hashCode());
        result = prime * result + ((this.comment == null) ? 0 : this.comment.hashCode());
        result = prime * result + ((this.costPerBasis == null) ? 0 : this.costPerBasis.hashCode());
        result = prime * result + ((this.costPer == null) ? 0 : this.costPer.hashCode());
        result = prime * result + ((this.costAmount == null) ? 0 : this.costAmount.hashCode());
        result = prime * result + ((this.discountAmount == null) ? 0 : this.discountAmount.hashCode());
        result = prime * result + ((this.discountRate == null) ? 0 : this.discountRate.hashCode());
        result = prime * result + ((this.active == null) ? 0 : this.active.hashCode());
        result = prime * result + ((this.sigma == null) ? 0 : this.sigma.hashCode());
        result = prime * result + ((this.metadata == null) ? 0 : this.metadata.hashCode());
        result = prime * result + ((this.language == null) ? 0 : this.language.hashCode());
        result = prime * result + ((this.createdAt == null) ? 0 : this.createdAt.hashCode());
        result = prime * result + ((this.createdBy == null) ? 0 : this.createdBy.hashCode());
        result = prime * result + ((this.updatedAt == null) ? 0 : this.updatedAt.hashCode());
        result = prime * result + ((this.updatedBy == null) ? 0 : this.updatedBy.hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder("POutItem (");

        sb.append(key);
        sb.append(", ").append(serial);
        sb.append(", ").append(status);
        sb.append(", ").append(commodityId);
        sb.append(", ").append(commodityCode);
        sb.append(", ").append(commodityName);
        sb.append(", ").append(commodityLogo);
        sb.append(", ").append(customerId);
        sb.append(", ").append(fromName);
        sb.append(", ").append(fromCode);
        sb.append(", ").append(ticketId);
        sb.append(", ").append(whId);
        sb.append(", ").append(num);
        sb.append(", ").append(amount);
        sb.append(", ").append(price);
        sb.append(", ").append(comment);
        sb.append(", ").append(costPerBasis);
        sb.append(", ").append(costPer);
        sb.append(", ").append(costAmount);
        sb.append(", ").append(discountAmount);
        sb.append(", ").append(discountRate);
        sb.append(", ").append(active);
        sb.append(", ").append(sigma);
        sb.append(", ").append(metadata);
        sb.append(", ").append(language);
        sb.append(", ").append(createdAt);
        sb.append(", ").append(createdBy);
        sb.append(", ").append(updatedAt);
        sb.append(", ").append(updatedBy);

        sb.append(")");
        return sb.toString();
    }

    // -------------------------------------------------------------------------
    // FROM and INTO
    // -------------------------------------------------------------------------

    @Override
    public void from(IPOutItem from) {
        setKey(from.getKey());
        setSerial(from.getSerial());
        setStatus(from.getStatus());
        setCommodityId(from.getCommodityId());
        setCommodityCode(from.getCommodityCode());
        setCommodityName(from.getCommodityName());
        setCommodityLogo(from.getCommodityLogo());
        setCustomerId(from.getCustomerId());
        setFromName(from.getFromName());
        setFromCode(from.getFromCode());
        setTicketId(from.getTicketId());
        setWhId(from.getWhId());
        setNum(from.getNum());
        setAmount(from.getAmount());
        setPrice(from.getPrice());
        setComment(from.getComment());
        setCostPerBasis(from.getCostPerBasis());
        setCostPer(from.getCostPer());
        setCostAmount(from.getCostAmount());
        setDiscountAmount(from.getDiscountAmount());
        setDiscountRate(from.getDiscountRate());
        setActive(from.getActive());
        setSigma(from.getSigma());
        setMetadata(from.getMetadata());
        setLanguage(from.getLanguage());
        setCreatedAt(from.getCreatedAt());
        setCreatedBy(from.getCreatedBy());
        setUpdatedAt(from.getUpdatedAt());
        setUpdatedBy(from.getUpdatedBy());
    }

    @Override
    public <E extends IPOutItem> E into(E into) {
        into.from(this);
        return into;
    }
}