package book.stock;
|
|
import java.util.Date;
|
|
import foundation.dao.DataPackage;
|
import foundation.dao.DataSource;
|
import foundation.data.entity.Entity;
|
import foundation.data.meta.field.FieldsRuntime;
|
import foundation.data.object.DataObject;
|
import foundation.util.ID;
|
import foundation.util.Util;
|
|
public class BookCommand {
|
|
private BookCommandMeta meta;
|
private DataPackage document;
|
private DataObject masterObject;
|
private DataObject detailObject;
|
private Date bookDate;
|
private Entity org;
|
private Entity warehouse;
|
private FlowTable flowTable;
|
private String batchMark;
|
|
public BookCommand(BookCommandMeta meta) {
|
this.meta = meta;
|
this.bookDate = new Date();
|
this.flowTable = new FlowTable();
|
this.batchMark = ID.newValue();
|
}
|
|
public void setDocument(DataPackage document) {
|
this.document = document;
|
this.masterObject = document.getMasterDataObject();
|
this.detailObject = document.getDetailDataObject();
|
}
|
|
public String getId() {
|
return meta.getId();
|
}
|
|
public String getCode() {
|
return meta.getCode();
|
}
|
|
public String getName() {
|
return meta.getName();
|
}
|
|
public OrderRight getOrderRight() {
|
return meta.getOrderRight();
|
}
|
|
public StockType getStockType() {
|
return meta.getStockType();
|
}
|
|
public QtyCommand getQtyCommand() {
|
return meta.getQtyCommand();
|
}
|
|
public BookCommandMeta getMeta() {
|
return meta;
|
}
|
|
public DataPackage getDocument() {
|
return document;
|
}
|
|
public Entity getOrg() {
|
return org;
|
}
|
|
public FlowTable getFlowTable() {
|
return flowTable;
|
}
|
|
public String getBatchMark() {
|
return batchMark;
|
}
|
|
public String getDocumentTableName() {
|
DataObject dataObject = document.getMasterDataObject();
|
return dataObject.getTableName();
|
}
|
|
public String getDocumentDetailTableName() {
|
DataObject dataObject = document.getDetailDataObject();
|
return dataObject.getTableName();
|
}
|
|
public boolean getDetailedWarehouse() throws Exception {
|
return !Util.isEmpty(meta.getWarehouseSource());
|
}
|
|
public String getDocumentId() {
|
return document.getMasterId();
|
}
|
|
public String getQtyCalculateOperator() {
|
return "+";
|
}
|
|
public Date getBookDate() {
|
return bookDate;
|
}
|
|
public String getOrgID() {
|
return org.getId();
|
}
|
|
public String getWarehouseID() throws Exception {
|
return warehouse.getId();
|
}
|
|
public void setOrg(Entity org) {
|
this.org = org;
|
}
|
|
public void setWarehouse(Entity warehouse) {
|
this.warehouse = warehouse;
|
}
|
|
public Entity getWarehouse() {
|
return warehouse;
|
}
|
|
public boolean isDocumentDetailContainsOrderRight() throws Exception {
|
FieldsRuntime meta = detailObject.getTableFieldMetas();
|
boolean exists = meta.contains("order_right_code");
|
return exists;
|
}
|
|
public String getDocumentDetailOrderRightFilter() {
|
return "document_detail.order_right_code = book_detail.order_right_code";
|
}
|
|
public String getConfigOrderRightFilter() {
|
OrderRight orderRight = meta.getOrderRight();
|
return "order_right_code = '" + orderRight.name() + "'";
|
}
|
|
public boolean isDocumentDetailContainsStockType() throws Exception {
|
FieldsRuntime meta = detailObject.getTableFieldMetas();
|
boolean exists = meta.contains("stock_type_code");
|
return exists;
|
}
|
|
public String getDocumentDetailStockTypeFilter() {
|
return "document_detail.stock_type_code = book_detail.stock_type_code";
|
}
|
|
public String getConfigStockTypeFilter() {
|
StockType stockType = meta.getStockType();
|
return "stock_type_code = '" + stockType.name() + "'";
|
}
|
|
public boolean isDocumentContainsDocType() throws Exception {
|
FieldsRuntime meta = masterObject.getTableFieldMetas();
|
boolean exists = meta.contains("doc_type");
|
return exists;
|
}
|
|
public String getDocumentDocTypeSegment() throws Exception {
|
if (isDocumentContainsDocType()) {
|
return "document.doc_type";
|
}
|
|
return null;
|
}
|
|
public String getDocumentDocType() {
|
return meta.getDocType();
|
}
|
|
public String getConfigDocTypeSegment() {
|
String result = Util.quotedStr(meta.getDocType());
|
return result;
|
}
|
|
public boolean isDocumentContainsOrderRight() throws Exception {
|
FieldsRuntime meta = masterObject.getTableFieldMetas();
|
boolean exists = meta.contains("order_right_code");
|
if (exists) {
|
return true;
|
}
|
|
meta = detailObject.getTableFieldMetas();
|
exists = meta.contains("order_right_code");
|
if (exists) {
|
return true;
|
}
|
|
return false;
|
}
|
|
public String getDocumentOrderRightSegment() throws Exception {
|
FieldsRuntime meta = masterObject.getTableFieldMetas();
|
boolean exists = meta.contains("order_right_code");
|
if (exists) {
|
return "document.order_right_code";
|
}
|
|
meta = detailObject.getTableFieldMetas();
|
exists = meta.contains("order_right_code");
|
if (exists) {
|
return "document_detail.order_right_code";
|
}
|
|
return null;
|
}
|
|
public String getConfigOrderRightSegment() {
|
String result = Util.quotedStr(meta.getOrderRight().name());
|
return result;
|
}
|
|
public boolean isDocumentContainsStockType() throws Exception {
|
FieldsRuntime meta = masterObject.getTableFieldMetas();
|
boolean exists = meta.contains("stock_type_code");
|
if (exists) {
|
return true;
|
}
|
|
meta = detailObject.getTableFieldMetas();
|
exists = meta.contains("stock_type_code");
|
if (exists) {
|
return true;
|
}
|
|
return false;
|
}
|
|
public String getConfigStockTypeSegment() {
|
String result = Util.quotedStr(meta.getStockType().name());
|
return result;
|
}
|
|
public String getDocumentStockTypeSegment() throws Exception {
|
FieldsRuntime meta = masterObject.getTableFieldMetas();
|
boolean exists = meta.contains("stock_type_code");
|
if (exists) {
|
return "document.stock_type_code";
|
}
|
|
meta = detailObject.getTableFieldMetas();
|
exists = meta.contains("stock_type_code");
|
if (exists) {
|
return "document_detail.stock_type_code";
|
}
|
|
return null;
|
}
|
|
public String getDocumentQtySegment() throws Exception {
|
FieldsRuntime meta = detailObject.getTableFieldMetas();
|
boolean exists = meta.contains(IStockLetter.Field_DiffQty);
|
if (exists) {
|
return IStockLetter.Field_DiffQty;
|
}
|
|
return IStockLetter.Field_Qty;
|
}
|
|
public boolean isNegativeConvert() {
|
return meta.isNegativeConvert();
|
}
|
|
public String getWarehouseDirection() {
|
return meta.getWarehouseDirection();
|
}
|
|
public FreezeCondition getFreezeCondition() {
|
return meta.getFreezeCondition();
|
}
|
|
public String getFilter() {
|
return meta.getFilter();
|
}
|
|
public String getWarehouseSource() {
|
return meta.getWarehouseSource();
|
}
|
|
public DataSource getDataSource() {
|
return meta.getDataSource();
|
}
|
}
|