StockLevelRow.java
package com.tradecloud.domain.model.requestforquote;
import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.place.FinalDestination;
import javax.persistence.*;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
@MappedSuperclass
public abstract class StockLevelRow extends PersistenceBase {
@ElementCollection
@MapKeyEnumerated(EnumType.STRING)
private Map<GeneratedColumns, BigDecimal> columnValueMap =new HashMap<>();
private transient int rowNo;
@Enumerated(value = EnumType.STRING)
private GeneratedColumns averageUsed;
private Integer originalQuantity;
private Integer branchQuantity;
private Integer rfqQuantity;
private String reason;
public Integer getColumn(GeneratedColumns column) {
return switch (column.getType()) {
case SALE,STOCK , AVERAGE -> getColumnValue(column);
default -> null;
};
}
public Integer getTotalColumn(GeneratedColumns column) {
if(column==GeneratedColumns.ORIGINAL_QUANTITY){
return getOriginalQuantity();
}else{
return getColumn(column);
}
}
public String getStyle(){
return null;
}
public String getCode(){
return null;
}
public String getDescription(){
return null;
}
public String getBrand(){
return null;
}
public int getRowNo() {
return rowNo;
}
public void setRowNo(int rowNo) {
this.rowNo = rowNo;
}
public void addColumnValue(GeneratedColumns col, int value) {
columnValueMap.merge(col, BigDecimal.valueOf(value), BigDecimal::add);
}
public void addColumnValue(GeneratedColumns col, double value) {
columnValueMap.merge(col, BigDecimal.valueOf(value), BigDecimal::add);
}
public Integer getColumnValue(GeneratedColumns col) {
BigDecimal bigDecimal = columnValueMap.get(col);
return bigDecimal !=null?bigDecimal.intValue():null;
}
public BigDecimal getColumnValueBigDecimal(GeneratedColumns col) {
BigDecimal bigDecimal = columnValueMap.get(col);
return bigDecimal ;
}
public GeneratedColumns getAverageUsed() {
return averageUsed;
}
public void setAverageUsed(GeneratedColumns averageUsed) {
this.averageUsed = averageUsed;
}
public void setColumnValueMap(Map<GeneratedColumns, BigDecimal> columnValueMap) {
this.columnValueMap = columnValueMap;
}
public Map<GeneratedColumns, BigDecimal> getColumnValueMap() {
return columnValueMap;
}
public Integer getBranchQuantity() {
return branchQuantity;
}
public void setBranchQuantity(Integer branchQuantity) {
this.branchQuantity = branchQuantity;
}
public Integer getRfqQuantity() {
return rfqQuantity;
}
public void setRfqQuantity(Integer rfqQuantity) {
this.rfqQuantity = rfqQuantity;
}
public FinalDestination getFinalDestination(){
return null;
}
public boolean isProduct(){
return false;
}
public Integer getOriginalQuantity() {
return originalQuantity;
}
public void setOriginalQuantity(Integer originalQuantity) {
this.originalQuantity = originalQuantity;
}
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public boolean isRegion(){
return false;
}
public boolean isStyleLevel(){
return false;
}
public boolean isRootLevel(){
return false;
}
public boolean isBranchQuantitySelected() {
return false;
}
public void setBranchQuantitySelected(boolean branchQuantitySelected) {
}
public boolean isOriginalQuantitySelected() {
return false;
}
public void setOriginalQuantitySelected(boolean originalQuantitySelected) {
}
@Override
public String toString() {
return "StockLevelRow{" +
"originalQuantity=" + originalQuantity +
", branchQuantity=" + branchQuantity +
", rfqQuantity=" + rfqQuantity +
", reason='" + reason + '\'' +
'}';
}
}