package com.eksad.masterdata.domain; import com.eksad.ddms.common.util.object.EntityObject; import com.eksad.ddms.common.util.status.DataStatus; import com.eksad.masterdata.common.listEnum.PickSlipStatusType; import com.fasterxml.jackson.annotation.JsonFormat; import jakarta.persistence.*; import javax.validation.constraints.NotNull; import java.util.Date; import java.util.Objects; import java.util.Set; @NamedStoredProcedureQuery( name = "PickSlip.generatePickSlipNumber", procedureName = "generate_pickslip_number", parameters = { @StoredProcedureParameter(name = "dealercode", type = String.class, mode = ParameterMode.IN), @StoredProcedureParameter(name = "soid", type = String.class, mode = ParameterMode.IN) } ) @Entity @Table(name = "TRX_PICKSLIP") public class PickSlip implements EntityObject<PickSlip> { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trx_pickslip_gen") @SequenceGenerator(name = "trx_pickslip_gen", sequenceName = "trx_pickslip_seq", allocationSize = 1) Integer id; @Version private Long version; @NotNull private String pickSlipNumber; private String salesOrderID; private String ahassID; private String pickerID; @Temporal(TemporalType.TIMESTAMP) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy HH:mm:ss") private Date pickSlipDate; @Enumerated(EnumType.STRING) private PickSlipStatusType pickSlipStatusType; @Enumerated(EnumType.STRING) private DataStatus pickSlipStatus; @Embedded private CreationalSpecification pickSlipCreational; @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL) @JoinColumn(name = "pickSlipNumber", referencedColumnName = "id") private Set<PickSlipDetail> pickSlipDetails; @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL) @JoinColumn(name = "pickSlipNumber", referencedColumnName = "id") private Set<PickSlipDetailEV> pickSlipDetailsEV; private String posServiceID; public PickSlip() { } public PickSlip(Integer id, String pickSlipNumber, String salesOrderID, String ahassID, String pickerID, Date pickSlipDate, PickSlipStatusType pickSlipStatusType, DataStatus pickSlipStatus, CreationalSpecification pickSlipCreational, Set<PickSlipDetail> pickSlipDetails, Set<PickSlipDetailEV> pickSlipDetailsEV, Long version, String posServiceID) { this.id = id; this.pickSlipNumber = pickSlipNumber; this.salesOrderID = salesOrderID; this.ahassID = ahassID; this.pickerID = pickerID; this.pickSlipDate = pickSlipDate; this.pickSlipStatusType = pickSlipStatusType; this.pickSlipStatus = pickSlipStatus; this.pickSlipCreational = pickSlipCreational; this.pickSlipDetails = pickSlipDetails; this.pickSlipDetailsEV = pickSlipDetailsEV; this.version = version; this.posServiceID = posServiceID; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public PickSlipStatusType getPickSlipStatusType() { return pickSlipStatusType; } public void setPickSlipStatusType(PickSlipStatusType pickSlipStatusType) { this.pickSlipStatusType = pickSlipStatusType; } public String getPickerID() { return pickerID; } public void setPickerID(String pickerID) { this.pickerID = pickerID; } public Date getPickSlipDate() { return pickSlipDate; } public void setPickSlipDate(Date pickSlipDate) { this.pickSlipDate = pickSlipDate; } public DataStatus getPickSlipStatus() { return pickSlipStatus; } public void setPickSlipStatus(DataStatus pickSlipStatus) { this.pickSlipStatus = pickSlipStatus; } public String getPickSlipNumber() { return pickSlipNumber; } public void setPickSlipNumber(String pickSlipNumber) { this.pickSlipNumber = pickSlipNumber; } public String getSalesOrderID() { return salesOrderID; } public void setSalesOrderID(String salesOrderID) { this.salesOrderID = salesOrderID; } public CreationalSpecification getPickSlipCreational() { return pickSlipCreational; } public void setPickSlipCreational(CreationalSpecification pickSlipCreational) { this.pickSlipCreational = pickSlipCreational; } public Set<PickSlipDetail> getPickSlipDetails() { return pickSlipDetails; } public void setPickSlipDetails(Set<PickSlipDetail> pickSlipDetails) { this.pickSlipDetails = pickSlipDetails; } public Set<PickSlipDetailEV> getPickSlipDetailsEV() { return pickSlipDetailsEV; } public void setPickSlipDetailsEV(Set<PickSlipDetailEV> pickSlipDetailsEV) { this.pickSlipDetailsEV = pickSlipDetailsEV; } public String getAhassID() { return ahassID; } public void setAhassID(String ahassID) { this.ahassID = ahassID; } public Long getVersion() { return version; } public void setVersion(Long version) { this.version = version; } public String getPosServiceID() { return posServiceID; } public void setPosServiceID(String posServiceID) { this.posServiceID = posServiceID; } @Override public int hashCode() { int hash = 3; hash = 89 * hash + Objects.hashCode(this.id); hash = 89 * hash + Objects.hashCode(this.pickSlipNumber); hash = 89 * hash + Objects.hashCode(this.salesOrderID); hash = 89 * hash + Objects.hashCode(this.ahassID); hash = 89 * hash + Objects.hashCode(this.pickerID); hash = 89 * hash + Objects.hashCode(this.pickSlipDate); hash = 89 * hash + Objects.hashCode(this.pickSlipStatusType); hash = 89 * hash + Objects.hashCode(this.pickSlipStatus); hash = 89 * hash + Objects.hashCode(this.pickSlipCreational); hash = 89 * hash + Objects.hashCode(this.pickSlipDetails); hash = 89 * hash + Objects.hashCode(this.pickSlipDetailsEV); hash = 89 * hash + Objects.hashCode(this.version); hash = 89 * hash + Objects.hashCode(this.posServiceID); return hash; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final PickSlip other = (PickSlip) obj; if (!Objects.equals(this.id, other.id)) { return false; } return true; } @Override public boolean sameIdentityAs(PickSlip other) { return this.equals(other); } }