package book.rebate;
|
|
import java.util.Date;
|
|
import book.BookName;
|
import book.FlowTable;
|
import book.FreezeCondition;
|
import book.OrderRight;
|
import book.QtyCommand;
|
import book.StockType;
|
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 String ioBatchId;
|
private FlowTable flowTable;
|
private String batchMark;
|
private String operate;
|
private BookName bookName;
|
private String flowTableName;
|
private String detailTableName;
|
|
public BookCommand(BookCommandMeta meta) {
|
this.meta = meta;
|
this.bookDate = new Date();
|
this.flowTable = new FlowTable();
|
this.batchMark = ID.newValue();
|
if(meta != null ) {
|
this.bookName = meta.getBookName();
|
this.flowTableName = bookName.getFlowTable();
|
this.detailTableName = bookName.getDetailTable();
|
}
|
}
|
|
public void setDocument(DataPackage document) {
|
this.document = document;
|
this.masterObject = document.getMasterDataObject();
|
|
try{
|
this.detailObject = document.getDetailDataObject();
|
}catch(Exception e ) {
|
this.detailObject = document.getMasterDataObject();
|
return;
|
}
|
|
}
|
|
public void setBatchDocument(DataObject batchDocument) {
|
this.masterObject = batchDocument ;
|
}
|
|
public void setBatchDocumentDetail(DataObject batchDocumentDetail) {
|
this.detailObject = batchDocumentDetail;
|
}
|
|
public String getId() {
|
return meta.getId();
|
}
|
|
public BookName getBookName() {
|
return bookName;
|
}
|
|
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 getOperate() {
|
return operate;
|
}
|
|
public void setOperate(String operate) {
|
this.operate = operate;
|
}
|
|
public String getFlowTableName() {
|
return flowTableName;
|
}
|
|
public String getDetailTableName() {
|
return detailTableName;
|
}
|
|
public String getDocumentTableName() {
|
DataObject dataObject = masterObject;
|
return dataObject.getTableName();
|
}
|
|
public String getDocumentAmtDetailTableName() {
|
return "so_order_detail_rebate";
|
}
|
|
public String getDocumentDetailTableName() {
|
DataObject dataObject = this.detailObject;
|
return dataObject.getTableName();
|
}
|
|
public String getDocumentId() {
|
if(document != null ) {
|
return document.getMasterId();
|
}
|
return ioBatchId;
|
}
|
|
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 getDocumentIdField() {
|
return "document_detail.id";
|
}
|
|
public String getDocumentDetailParentIdField() {
|
return "document_detail.parent_id";
|
}
|
|
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 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 getDocumentAmtSegment() throws Exception {
|
FieldsRuntime fieldMetas = detailObject.getTableFieldMetas();
|
|
if (fieldMetas.contains("amt_diff")) {
|
return "document_detail.amt_diff";
|
}
|
|
if (OrderRight.Return == getOrderRight()) {
|
return "amt_rebate_close";
|
}
|
|
return "document_detail.amt";
|
}
|
|
public String getDocumentQtySegment() throws Exception {
|
FieldsRuntime fieldMetas = detailObject.getTableFieldMetas();
|
|
if (fieldMetas.contains("qty_diff")) {
|
return "document_detail.qty_diff";
|
}
|
|
if (OrderRight.Return == getOrderRight()) {
|
return "qty_rebate_close";
|
}
|
|
return "document_detail.qty";
|
}
|
|
public String getFilter() throws Exception {
|
return meta.getFilter();
|
}
|
|
public String getRebateId() throws Exception {
|
return getBookSource();
|
}
|
|
public boolean isNegativeConvert() {
|
return meta.isNegativeConvert();
|
}
|
|
public DataSource getDataSource() {
|
return meta.getDataSource();
|
}
|
|
private String getBookSource() {
|
return meta.getBookSource();
|
}
|
|
public String getWarehouseDirection() {
|
return meta.getWarehouseDirection();
|
}
|
|
public FreezeCondition getFreezeCondition() {
|
return meta.getFreezeCondition();
|
}
|
|
public String getIoBatchId() {
|
return ioBatchId;
|
}
|
|
public void setIoBatchId(String batchNo) {
|
this.ioBatchId = batchNo;
|
}
|
|
}
|