[ 1778385 ] Move GenericPO to core
This commit is contained in:
parent
002302edea
commit
accb337873
|
@ -0,0 +1,141 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* Product: Adempiere ERP & CRM Smart Business Solution * Copyright (C)
|
||||||
|
* 1999-2006 Adempiere, Inc. All Rights Reserved. * This program is free
|
||||||
|
* software; you can redistribute it and/or modify it * under the terms version
|
||||||
|
* 2 of the GNU General Public License as published * by the Free Software
|
||||||
|
* Foundation. This program is distributed in the hope * that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied * warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General
|
||||||
|
* Public License for more details. * You should have received a copy of the GNU
|
||||||
|
* General Public License along * with this program; if not, write to the Free
|
||||||
|
* Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
* 02111-1307 USA. *
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004 Marco LOMBARDO. lombardo@mayking.com
|
||||||
|
* Contributor(s): Low Heng Sin hengsin@avantz.com
|
||||||
|
* __________________________________________
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
// Generic PO.
|
||||||
|
package org.adempiere.model;
|
||||||
|
|
||||||
|
// import for GenericPO
|
||||||
|
import java.util.*;
|
||||||
|
import java.sql.*;
|
||||||
|
import org.compiere.model.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generic PO implementation, this can be use together with ModelValidator as alternative to the classic
|
||||||
|
* generated model class and extend ( X_ & M_ ) approach.
|
||||||
|
*
|
||||||
|
* Originally for used to insert/update data from adempieredata.xml file in 2pack.
|
||||||
|
* @author Marco LOMBARDO
|
||||||
|
* @contributor Low Heng Sin
|
||||||
|
*/
|
||||||
|
public class GenericPO extends PO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param tableName
|
||||||
|
* @param ctx
|
||||||
|
* @param ID
|
||||||
|
*/
|
||||||
|
public GenericPO(String tableName, Properties ctx, int ID) {
|
||||||
|
super(new PropertiesWrapper(ctx, tableName), ID, null, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param tableName
|
||||||
|
* @param ctx
|
||||||
|
* @param rs
|
||||||
|
*/
|
||||||
|
public GenericPO(String tableName, Properties ctx, ResultSet rs) {
|
||||||
|
super(new PropertiesWrapper(ctx, tableName), 0, null, rs);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param tableName
|
||||||
|
* @param ctx
|
||||||
|
* @param ID
|
||||||
|
* @param trxName
|
||||||
|
*/
|
||||||
|
public GenericPO(String tableName, Properties ctx, int ID, String trxName) {
|
||||||
|
super(new PropertiesWrapper(ctx, tableName), ID, trxName, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param tableName
|
||||||
|
* @param ctx
|
||||||
|
* @param rs
|
||||||
|
* @param trxName
|
||||||
|
*/
|
||||||
|
public GenericPO(String tableName, Properties ctx, ResultSet rs, String trxName) {
|
||||||
|
super(new PropertiesWrapper(ctx, tableName), 0, trxName, rs);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int tableID = 0;
|
||||||
|
|
||||||
|
private String tableName = null;
|
||||||
|
|
||||||
|
/** Load Meta Data */
|
||||||
|
protected POInfo initPO(Properties ctx) {
|
||||||
|
PropertiesWrapper wrapper = (PropertiesWrapper)ctx;
|
||||||
|
p_ctx = wrapper.source;
|
||||||
|
tableName = wrapper.tableName;
|
||||||
|
tableID = MTable.getTable_ID(tableName);
|
||||||
|
// log.info("Table_ID: "+Table_ID);
|
||||||
|
POInfo poi = POInfo.getPOInfo(ctx, tableID);
|
||||||
|
return poi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString() {
|
||||||
|
StringBuffer sb = new StringBuffer("GenericPO[Table=").append(
|
||||||
|
"" + tableID + ",ID=").append(get_ID()).append("]");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final int AD_ORGTRX_ID_AD_Reference_ID = 130;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set Trx Organization. Performing or initiating organization
|
||||||
|
*/
|
||||||
|
public void setAD_OrgTrx_ID(int AD_OrgTrx_ID) {
|
||||||
|
if (AD_OrgTrx_ID == 0)
|
||||||
|
set_Value("AD_OrgTrx_ID", null);
|
||||||
|
else
|
||||||
|
set_Value("AD_OrgTrx_ID", new Integer(AD_OrgTrx_ID));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Trx Organization. Performing or initiating organization
|
||||||
|
*/
|
||||||
|
public int getAD_OrgTrx_ID() {
|
||||||
|
Integer ii = (Integer) get_Value("AD_OrgTrx_ID");
|
||||||
|
if (ii == null)
|
||||||
|
return 0;
|
||||||
|
return ii.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int get_AccessLevel() {
|
||||||
|
return Integer.parseInt(p_info.getAccessLevel());
|
||||||
|
}
|
||||||
|
|
||||||
|
} // GenericPO
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wrapper class to workaround the limit of PO constructor that doesn't take a tableName or
|
||||||
|
* tableID parameter. Note that in the generated class scenario ( X_ ), tableName and tableId
|
||||||
|
* is generated as a static field.
|
||||||
|
* @author Low Heng Sin
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class PropertiesWrapper extends Properties {
|
||||||
|
protected Properties source;
|
||||||
|
protected String tableName;
|
||||||
|
|
||||||
|
PropertiesWrapper(Properties source, String tableName) {
|
||||||
|
this.source = source;
|
||||||
|
this.tableName = tableName;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,115 +0,0 @@
|
||||||
/*******************************************************************************
|
|
||||||
* Product: Adempiere ERP & CRM Smart Business Solution * Copyright (C)
|
|
||||||
* 1999-2006 Adempiere, Inc. All Rights Reserved. * This program is free
|
|
||||||
* software; you can redistribute it and/or modify it * under the terms version
|
|
||||||
* 2 of the GNU General Public License as published * by the Free Software
|
|
||||||
* Foundation. This program is distributed in the hope * that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied * warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General
|
|
||||||
* Public License for more details. * You should have received a copy of the GNU
|
|
||||||
* General Public License along * with this program; if not, write to the Free
|
|
||||||
* Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
* 02111-1307 USA. *
|
|
||||||
*
|
|
||||||
* Copyright (C) 2004 Marco LOMBARDO. lombardo@mayking.com Contributor(s):
|
|
||||||
* __________________________________________
|
|
||||||
******************************************************************************/
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------
|
|
||||||
// Generic PO.
|
|
||||||
// Used to insert/update data from a adempieredata.xml file.
|
|
||||||
package org.adempiere.pipo;
|
|
||||||
|
|
||||||
// import for GenericPO
|
|
||||||
import java.util.*;
|
|
||||||
import java.sql.*;
|
|
||||||
import org.compiere.model.*;
|
|
||||||
|
|
||||||
public class GenericPO extends PO {
|
|
||||||
|
|
||||||
// private Logger log = Logger.getCLogger(getClass());
|
|
||||||
|
|
||||||
/** Standard Constructor */
|
|
||||||
public GenericPO(Properties ctx, int ID) {
|
|
||||||
super(ctx, ID, null, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Load Constructor */
|
|
||||||
public GenericPO(Properties ctx, ResultSet rs) {
|
|
||||||
super(ctx, 0, null, rs);
|
|
||||||
}
|
|
||||||
|
|
||||||
public GenericPO(Properties ctx, int ID, String trxName) {
|
|
||||||
super(ctx, ID, trxName, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public GenericPO(Properties ctx, ResultSet rs, String trxName) {
|
|
||||||
super(ctx, 0, trxName, rs);
|
|
||||||
}
|
|
||||||
|
|
||||||
private int Table_ID = 0;
|
|
||||||
|
|
||||||
/** Load Meta Data */
|
|
||||||
protected POInfo initPO(Properties ctx) {
|
|
||||||
Table_ID = Integer.valueOf(ctx.getProperty("adempieredataTable_ID"))
|
|
||||||
.intValue();
|
|
||||||
// log.info("Table_ID: "+Table_ID);
|
|
||||||
POInfo poi = POInfo.getPOInfo(ctx, Table_ID);
|
|
||||||
return poi;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toString() {
|
|
||||||
StringBuffer sb = new StringBuffer("GenericPO[Table=").append(
|
|
||||||
"" + Table_ID + ",ID=").append(get_ID()).append("]");
|
|
||||||
return sb.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final int AD_ORGTRX_ID_AD_Reference_ID = 130;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set Trx Organization. Performing or initiating organization
|
|
||||||
*/
|
|
||||||
public void setAD_OrgTrx_ID(int AD_OrgTrx_ID) {
|
|
||||||
if (AD_OrgTrx_ID == 0)
|
|
||||||
set_Value("AD_OrgTrx_ID", null);
|
|
||||||
else
|
|
||||||
set_Value("AD_OrgTrx_ID", new Integer(AD_OrgTrx_ID));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get Trx Organization. Performing or initiating organization
|
|
||||||
*/
|
|
||||||
public int getAD_OrgTrx_ID() {
|
|
||||||
Integer ii = (Integer) get_Value("AD_OrgTrx_ID");
|
|
||||||
if (ii == null)
|
|
||||||
return 0;
|
|
||||||
return ii.intValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
// setValue
|
|
||||||
public void setValue(String columnName, Object value) {
|
|
||||||
set_Value(columnName, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
// setValueNoCheck
|
|
||||||
public void setValueNoCheck(String columnName, Object value) {
|
|
||||||
set_ValueNoCheck(columnName, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
// setValue
|
|
||||||
public void setValue(int index, Object value) {
|
|
||||||
set_Value(index, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void copyRS(PO From, PO To) {
|
|
||||||
copyValues(From, To);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int get_AccessLevel() {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // GenericPO
|
|
||||||
|
|
|
@ -30,9 +30,9 @@ import java.util.logging.Level;
|
||||||
|
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
|
||||||
|
import org.adempiere.model.GenericPO;
|
||||||
import org.adempiere.pipo.AbstractElementHandler;
|
import org.adempiere.pipo.AbstractElementHandler;
|
||||||
import org.adempiere.pipo.Element;
|
import org.adempiere.pipo.Element;
|
||||||
import org.adempiere.pipo.GenericPO;
|
|
||||||
import org.adempiere.pipo.IDFinder;
|
import org.adempiere.pipo.IDFinder;
|
||||||
import org.adempiere.pipo.exception.POSaveFailedException;
|
import org.adempiere.pipo.exception.POSaveFailedException;
|
||||||
import org.compiere.model.POInfo;
|
import org.compiere.model.POInfo;
|
||||||
|
@ -95,11 +95,11 @@ public class DataElementHandler extends AbstractElementHandler {
|
||||||
Attributes atts = element.attributes;
|
Attributes atts = element.attributes;
|
||||||
log.info(elementValue+" "+atts.getValue("name"));
|
log.info(elementValue+" "+atts.getValue("name"));
|
||||||
String d_rowname = atts.getValue("name");
|
String d_rowname = atts.getValue("name");
|
||||||
ctx.setProperty("adempieredataTable_ID", String.valueOf(get_IDWithColumn(ctx, "AD_Table", "TableName", d_tablename)));
|
|
||||||
// name can be null if there are keyXname attributes.
|
// name can be null if there are keyXname attributes.
|
||||||
if (!d_rowname.equals("")){
|
if (!d_rowname.equals("")){
|
||||||
int id = get_ID(ctx, d_tablename, d_rowname);
|
int id = get_ID(ctx, d_tablename, d_rowname);
|
||||||
genericPO = new GenericPO(ctx, id, getTrxName(ctx));
|
genericPO = new GenericPO(d_tablename, ctx, id, getTrxName(ctx));
|
||||||
if (id > 0){
|
if (id > 0){
|
||||||
AD_Backup_ID = copyRecord(ctx,d_tablename,genericPO);
|
AD_Backup_ID = copyRecord(ctx,d_tablename,genericPO);
|
||||||
objectStatus = "Update";
|
objectStatus = "Update";
|
||||||
|
@ -130,13 +130,13 @@ public class DataElementHandler extends AbstractElementHandler {
|
||||||
ResultSet rs = pstmt.executeQuery();
|
ResultSet rs = pstmt.executeQuery();
|
||||||
if (rs.next()) {
|
if (rs.next()) {
|
||||||
objectStatus = "Update";
|
objectStatus = "Update";
|
||||||
genericPO = new GenericPO(ctx, rs, getTrxName(ctx));
|
genericPO = new GenericPO(d_tablename, ctx, rs, getTrxName(ctx));
|
||||||
rs.close();
|
rs.close();
|
||||||
pstmt.close();
|
pstmt.close();
|
||||||
pstmt = null;
|
pstmt = null;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
genericPO = new GenericPO(ctx, 0, getTrxName(ctx));
|
genericPO = new GenericPO(d_tablename, ctx, 0, getTrxName(ctx));
|
||||||
rs.close();
|
rs.close();
|
||||||
pstmt.close();
|
pstmt.close();
|
||||||
pstmt = null;
|
pstmt = null;
|
||||||
|
@ -144,11 +144,11 @@ public class DataElementHandler extends AbstractElementHandler {
|
||||||
// set keyXname.
|
// set keyXname.
|
||||||
CURRENT_KEY = "key1name";
|
CURRENT_KEY = "key1name";
|
||||||
if (!atts.getValue(CURRENT_KEY).equals("")) {
|
if (!atts.getValue(CURRENT_KEY).equals("")) {
|
||||||
genericPO.setValueNoCheck(atts.getValue(CURRENT_KEY), atts.getValue("lookup"+CURRENT_KEY));
|
genericPO.set_ValueOfColumn(atts.getValue(CURRENT_KEY), atts.getValue("lookup"+CURRENT_KEY));
|
||||||
}
|
}
|
||||||
CURRENT_KEY = "key2name";
|
CURRENT_KEY = "key2name";
|
||||||
if (!atts.getValue(CURRENT_KEY).equals("")) {
|
if (!atts.getValue(CURRENT_KEY).equals("")) {
|
||||||
genericPO.setValueNoCheck(atts.getValue(CURRENT_KEY), atts.getValue("lookup"+CURRENT_KEY));
|
genericPO.set_ValueOfColumn(atts.getValue(CURRENT_KEY), atts.getValue("lookup"+CURRENT_KEY));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,8 +157,7 @@ public class DataElementHandler extends AbstractElementHandler {
|
||||||
log.info ("keyXname attribute. init from rs error."+e);
|
log.info ("keyXname attribute. init from rs error."+e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// reset Table ID for GenericPO.
|
|
||||||
ctx.setProperty("adempieredataTable_ID", "0");
|
|
||||||
// for debug GenericPO.
|
// for debug GenericPO.
|
||||||
if (false) {
|
if (false) {
|
||||||
POInfo poInfo = POInfo.getPOInfo(ctx, get_ID(ctx, "AD_Table", d_tablename));
|
POInfo poInfo = POInfo.getPOInfo(ctx, get_ID(ctx, "AD_Table", d_tablename));
|
||||||
|
@ -170,11 +169,11 @@ public class DataElementHandler extends AbstractElementHandler {
|
||||||
}
|
}
|
||||||
// globalqss: set AD_Client_ID to the client setted in adempieredata
|
// globalqss: set AD_Client_ID to the client setted in adempieredata
|
||||||
if (getClientId(ctx) > 0 && genericPO.getAD_Client_ID() != getClientId(ctx))
|
if (getClientId(ctx) > 0 && genericPO.getAD_Client_ID() != getClientId(ctx))
|
||||||
genericPO.setValue("AD_Client_ID", getClientId(ctx));
|
genericPO.set_ValueOfColumn("AD_Client_ID", getClientId(ctx));
|
||||||
// if new. TODO: no defaults for keyXname.
|
// if new. TODO: no defaults for keyXname.
|
||||||
if (!d_rowname.equals("") && ((Integer)(genericPO.get_Value(d_tablename+"_ID"))).intValue() == 0) {
|
if (!d_rowname.equals("") && ((Integer)(genericPO.get_Value(d_tablename+"_ID"))).intValue() == 0) {
|
||||||
log.info("new genericPO, table: "+d_tablename+" name:"+d_rowname);
|
log.info("new genericPO, table: "+d_tablename+" name:"+d_rowname);
|
||||||
genericPO.setValue("Name", d_rowname);
|
genericPO.set_ValueOfColumn("Name", d_rowname);
|
||||||
// Set defaults.
|
// Set defaults.
|
||||||
//TODO: get defaults from configuration
|
//TODO: get defaults from configuration
|
||||||
HashMap defaults = new HashMap();
|
HashMap defaults = new HashMap();
|
||||||
|
@ -185,11 +184,11 @@ public class DataElementHandler extends AbstractElementHandler {
|
||||||
while (iter.hasNext()) {
|
while (iter.hasNext()) {
|
||||||
thisValue = (ArrayList)iter.next();
|
thisValue = (ArrayList)iter.next();
|
||||||
if (((String)(thisValue.get(2))).equals("String"))
|
if (((String)(thisValue.get(2))).equals("String"))
|
||||||
genericPO.setValue((String)thisValue.get(0), (String)thisValue.get(1));
|
genericPO.set_ValueOfColumn((String)thisValue.get(0), (String)thisValue.get(1));
|
||||||
else if (((String)(thisValue.get(2))).equals("Integer"))
|
else if (((String)(thisValue.get(2))).equals("Integer"))
|
||||||
genericPO.setValue((String)thisValue.get(0), Integer.valueOf((String)thisValue.get(1)));
|
genericPO.set_ValueOfColumn((String)thisValue.get(0), Integer.valueOf((String)thisValue.get(1)));
|
||||||
else if (((String)(thisValue.get(2))).equals("Boolean"))
|
else if (((String)(thisValue.get(2))).equals("Boolean"))
|
||||||
genericPO.setValue((String)thisValue.get(0), new Boolean(((String)thisValue.get(1)).equals("true") ? true : false));
|
genericPO.set_ValueOfColumn((String)thisValue.get(0), new Boolean(((String)thisValue.get(1)).equals("true") ? true : false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -235,31 +234,31 @@ public class DataElementHandler extends AbstractElementHandler {
|
||||||
|| atts.getValue("class").equals("List")|| atts.getValue("class").equals("Yes-No")
|
|| atts.getValue("class").equals("List")|| atts.getValue("class").equals("Yes-No")
|
||||||
|| atts.getValue("class").equals("Button")
|
|| atts.getValue("class").equals("Button")
|
||||||
|| atts.getValue("class").equals("Memo")|| atts.getValue("class").equals("Text Long")) {
|
|| atts.getValue("class").equals("Memo")|| atts.getValue("class").equals("Text Long")) {
|
||||||
genericPO.setValue(atts.getValue("name").toString(), atts.getValue("value").toString());
|
genericPO.set_ValueOfColumn(atts.getValue("name").toString(), atts.getValue("value").toString());
|
||||||
}
|
}
|
||||||
else if (atts.getValue("class").equals("Number") || atts.getValue("class").equals("Amount")
|
else if (atts.getValue("class").equals("Number") || atts.getValue("class").equals("Amount")
|
||||||
|| atts.getValue("class").equals("Quantity")|| atts.getValue("class").equals("Costs+Prices")){
|
|| atts.getValue("class").equals("Quantity")|| atts.getValue("class").equals("Costs+Prices")){
|
||||||
genericPO.setValue(atts.getValue("name").toString(), new BigDecimal(atts.getValue("value")));
|
genericPO.set_ValueOfColumn(atts.getValue("name").toString(), new BigDecimal(atts.getValue("value")));
|
||||||
}
|
}
|
||||||
else if (atts.getValue("class").equals("Integer") || atts.getValue("class").equals("ID")
|
else if (atts.getValue("class").equals("Integer") || atts.getValue("class").equals("ID")
|
||||||
|| atts.getValue("class").equals("Table Direct")|| atts.getValue("class").equals("Table")
|
|| atts.getValue("class").equals("Table Direct")|| atts.getValue("class").equals("Table")
|
||||||
|| atts.getValue("class").equals("Location (Address)")|| atts.getValue("class").equals("Account")
|
|| atts.getValue("class").equals("Location (Address)")|| atts.getValue("class").equals("Account")
|
||||||
|| atts.getValue("class").equals("Color)")|| atts.getValue("class").equals("Search")
|
|| atts.getValue("class").equals("Color)")|| atts.getValue("class").equals("Search")
|
||||||
|| atts.getValue("class").equals("Locator (WH)")|| atts.getValue("class").equals("Product Attribute")) {
|
|| atts.getValue("class").equals("Locator (WH)")|| atts.getValue("class").equals("Product Attribute")) {
|
||||||
genericPO.setValue(atts.getValue("name").toString(), Integer.valueOf(atts.getValue("value")));
|
genericPO.set_ValueOfColumn(atts.getValue("name").toString(), Integer.valueOf(atts.getValue("value")));
|
||||||
}
|
}
|
||||||
else if (atts.getValue("class").equals("Boolean")) {
|
else if (atts.getValue("class").equals("Boolean")) {
|
||||||
genericPO.setValue(atts.getValue("name"), new Boolean(atts.getValue("value").equals("true") ? true : false));
|
genericPO.set_ValueOfColumn(atts.getValue("name"), new Boolean(atts.getValue("value").equals("true") ? true : false));
|
||||||
}
|
}
|
||||||
else if (atts.getValue("class").equals("Date") || atts.getValue("class").equals("Date+Time")
|
else if (atts.getValue("class").equals("Date") || atts.getValue("class").equals("Date+Time")
|
||||||
|| atts.getValue("class").equals("Time")) {
|
|| atts.getValue("class").equals("Time")) {
|
||||||
genericPO.setValue(atts.getValue("name").toString(), Timestamp.valueOf(atts.getValue("value")));
|
genericPO.set_ValueOfColumn(atts.getValue("name").toString(), Timestamp.valueOf(atts.getValue("value")));
|
||||||
}//Binary, Radio, RowID, Image not supported
|
}//Binary, Radio, RowID, Image not supported
|
||||||
} else { // value is null
|
} else { // value is null
|
||||||
if (atts.getValue("lookupname") != null && !"".equals(atts.getValue("lookupname"))) {
|
if (atts.getValue("lookupname") != null && !"".equals(atts.getValue("lookupname"))) {
|
||||||
// globalqss - bring support from XML2AD to lookupname
|
// globalqss - bring support from XML2AD to lookupname
|
||||||
String m_tablename = atts.getValue("name").substring(0, atts.getValue("name").length()-3);
|
String m_tablename = atts.getValue("name").substring(0, atts.getValue("name").length()-3);
|
||||||
genericPO.setValue(atts.getValue("name"), new Integer(getIDbyName(ctx, m_tablename, atts.getValue("lookupname"))));
|
genericPO.set_ValueOfColumn(atts.getValue("name"), new Integer(getIDbyName(ctx, m_tablename, atts.getValue("lookupname"))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ import java.sql.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.logging.*;
|
import java.util.logging.*;
|
||||||
|
|
||||||
|
import org.adempiere.model.GenericPO;
|
||||||
import org.compiere.db.CConnection;
|
import org.compiere.db.CConnection;
|
||||||
import org.compiere.interfaces.Server;
|
import org.compiere.interfaces.Server;
|
||||||
import org.compiere.util.*;
|
import org.compiere.util.*;
|
||||||
|
@ -135,6 +136,7 @@ public class MTable extends X_AD_Table
|
||||||
private static final String[] s_packages = new String[] {
|
private static final String[] s_packages = new String[] {
|
||||||
"compiere.model", // globalqss allow compatibility with other plugins
|
"compiere.model", // globalqss allow compatibility with other plugins
|
||||||
"adempiere.model", // Extensions
|
"adempiere.model", // Extensions
|
||||||
|
"org.adempiere.model",
|
||||||
"org.compiere.model", "org.compiere.wf",
|
"org.compiere.model", "org.compiere.wf",
|
||||||
"org.compiere.print", "org.compiere.impexp"
|
"org.compiere.print", "org.compiere.impexp"
|
||||||
};
|
};
|
||||||
|
@ -178,7 +180,7 @@ public class MTable extends X_AD_Table
|
||||||
Class cache = s_classCache.get(tableName);
|
Class cache = s_classCache.get(tableName);
|
||||||
if (cache != null)
|
if (cache != null)
|
||||||
{
|
{
|
||||||
//Object.class indicate no PO class for tableName
|
//Object.class indicate no generated PO class for tableName
|
||||||
if (cache.equals(Object.class))
|
if (cache.equals(Object.class))
|
||||||
return null;
|
return null;
|
||||||
else
|
else
|
||||||
|
@ -440,9 +442,13 @@ public class MTable extends X_AD_Table
|
||||||
Class clazz = getClass(tableName);
|
Class clazz = getClass(tableName);
|
||||||
if (clazz == null)
|
if (clazz == null)
|
||||||
{
|
{
|
||||||
log.log(Level.WARNING, "(id) - Class not found for " + tableName);
|
//log.log(Level.WARNING, "(id) - Class not found for " + tableName);
|
||||||
return null;
|
//return null;
|
||||||
|
log.log(Level.INFO, "Using GenericPO for " + tableName);
|
||||||
|
GenericPO po = new GenericPO(tableName, getCtx(), new Integer(Record_ID), trxName);
|
||||||
|
return po;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean errorLogged = false;
|
boolean errorLogged = false;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -501,9 +507,13 @@ public class MTable extends X_AD_Table
|
||||||
Class clazz = getClass(tableName);
|
Class clazz = getClass(tableName);
|
||||||
if (clazz == null)
|
if (clazz == null)
|
||||||
{
|
{
|
||||||
log.log(Level.SEVERE, "(rs) - Class not found for " + tableName);
|
//log.log(Level.SEVERE, "(rs) - Class not found for " + tableName);
|
||||||
return null;
|
//return null;
|
||||||
|
log.log(Level.INFO, "Using GenericPO for " + tableName);
|
||||||
|
GenericPO po = new GenericPO(tableName, getCtx(), rs, trxName);
|
||||||
|
return po;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean errorLogged = false;
|
boolean errorLogged = false;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
|
@ -1048,7 +1048,7 @@ public abstract class PO
|
||||||
* @param from old, existing & unchanged PO
|
* @param from old, existing & unchanged PO
|
||||||
* @param to new, not saved PO
|
* @param to new, not saved PO
|
||||||
*/
|
*/
|
||||||
protected static void copyValues (PO from, PO to)
|
public static void copyValues (PO from, PO to)
|
||||||
{
|
{
|
||||||
s_log.fine("From ID=" + from.get_ID() + " - To ID=" + to.get_ID());
|
s_log.fine("From ID=" + from.get_ID() + " - To ID=" + to.get_ID());
|
||||||
// Different Classes
|
// Different Classes
|
||||||
|
|
Loading…
Reference in New Issue