hg merge release-2.0 (merge release2 into development)
This commit is contained in:
commit
1dd6fecce4
|
@ -0,0 +1,15 @@
|
||||||
|
SET SQLBLANKLINES ON
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
-- Apr 11, 2014 10:56:44 AM COT
|
||||||
|
-- IDEMPIERE-1877 Product Info Window Implementation broke the usage of barcode reader
|
||||||
|
UPDATE AD_InfoColumn SET IsIdentifier='Y',Updated=TO_DATE('2014-04-11 10:56:44','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_InfoColumn_ID=200003
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Apr 11, 2014 10:56:47 AM COT
|
||||||
|
UPDATE AD_InfoColumn SET IsIdentifier='Y',Updated=TO_DATE('2014-04-11 10:56:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_InfoColumn_ID=200004
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201404111058_IDEMPIERE-1877.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
-- Apr 11, 2014 10:56:44 AM COT
|
||||||
|
-- IDEMPIERE-1877 Product Info Window Implementation broke the usage of barcode reader
|
||||||
|
UPDATE AD_InfoColumn SET IsIdentifier='Y',Updated=TO_TIMESTAMP('2014-04-11 10:56:44','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_InfoColumn_ID=200003
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Apr 11, 2014 10:56:47 AM COT
|
||||||
|
UPDATE AD_InfoColumn SET IsIdentifier='Y',Updated=TO_TIMESTAMP('2014-04-11 10:56:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_InfoColumn_ID=200004
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201404111058_IDEMPIERE-1877.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -924,6 +924,12 @@ public class GridTabCSVImporter implements IGridTabImporter
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}else if(isForeing && masterRecord==null && gridTab.getTabLevel()>0){
|
||||||
|
Object master =gridTab.getParentTab().getValue(foreignColumn);
|
||||||
|
if (master!=null && value!=null && !master.toString().equals(value)){
|
||||||
|
logMsg = header.get(i)+" - "+Msg.getMsg(Env.getCtx(),"DiffParentValue", new Object[] {master.toString(),value});
|
||||||
|
break;
|
||||||
|
}
|
||||||
}else if (masterRecord==null && isDetail){
|
}else if (masterRecord==null && isDetail){
|
||||||
MColumn column = MColumn.get(Env.getCtx(),field.getAD_Column_ID());
|
MColumn column = MColumn.get(Env.getCtx(),field.getAD_Column_ID());
|
||||||
String foreignTable = column.getReferenceTableName();
|
String foreignTable = column.getReferenceTableName();
|
||||||
|
|
|
@ -1706,6 +1706,10 @@ public class MInOut extends X_M_InOut implements DocAction
|
||||||
if ( isSOTrx() || !isDropShip() || getC_Order_ID() == 0 )
|
if ( isSOTrx() || !isDropShip() || getC_Order_ID() == 0 )
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
|
int linkedOrderID = new MOrder (getCtx(), getC_Order_ID(), get_TrxName()).getLink_Order_ID();
|
||||||
|
if (linkedOrderID <= 0)
|
||||||
|
return null;
|
||||||
|
|
||||||
// Document Type
|
// Document Type
|
||||||
int C_DocTypeTarget_ID = 0;
|
int C_DocTypeTarget_ID = 0;
|
||||||
MDocType[] shipmentTypes = MDocType.getOfDocBaseType(getCtx(), MDocType.DOCBASETYPE_MaterialDelivery);
|
MDocType[] shipmentTypes = MDocType.getOfDocBaseType(getCtx(), MDocType.DOCBASETYPE_MaterialDelivery);
|
||||||
|
@ -1720,18 +1724,12 @@ public class MInOut extends X_M_InOut implements DocAction
|
||||||
MInOut dropShipment = copyFrom(this, getMovementDate(), getDateAcct(),
|
MInOut dropShipment = copyFrom(this, getMovementDate(), getDateAcct(),
|
||||||
C_DocTypeTarget_ID, !isSOTrx(), false, get_TrxName(), true);
|
C_DocTypeTarget_ID, !isSOTrx(), false, get_TrxName(), true);
|
||||||
|
|
||||||
int linkedOrderID = new MOrder (getCtx(), getC_Order_ID(), get_TrxName()).getLink_Order_ID();
|
|
||||||
if (linkedOrderID != 0)
|
|
||||||
{
|
|
||||||
dropShipment.setC_Order_ID(linkedOrderID);
|
dropShipment.setC_Order_ID(linkedOrderID);
|
||||||
|
|
||||||
// get invoice id from linked order
|
// get invoice id from linked order
|
||||||
int invID = new MOrder (getCtx(), linkedOrderID, get_TrxName()).getC_Invoice_ID();
|
int invID = new MOrder (getCtx(), linkedOrderID, get_TrxName()).getC_Invoice_ID();
|
||||||
if ( invID != 0 )
|
if ( invID != 0 )
|
||||||
dropShipment.setC_Invoice_ID(invID);
|
dropShipment.setC_Invoice_ID(invID);
|
||||||
}
|
|
||||||
else
|
|
||||||
return null;
|
|
||||||
|
|
||||||
dropShipment.setC_BPartner_ID(getDropShip_BPartner_ID());
|
dropShipment.setC_BPartner_ID(getDropShip_BPartner_ID());
|
||||||
dropShipment.setC_BPartner_Location_ID(getDropShip_Location_ID());
|
dropShipment.setC_BPartner_Location_ID(getDropShip_Location_ID());
|
||||||
|
|
|
@ -131,7 +131,7 @@ public class MInfoWindow extends X_AD_InfoWindow
|
||||||
Query query = new Query(getCtx(), MTable.get(getCtx(), I_AD_InfoColumn.Table_ID), I_AD_InfoColumn.COLUMNNAME_AD_InfoWindow_ID+"=?", get_TrxName());
|
Query query = new Query(getCtx(), MTable.get(getCtx(), I_AD_InfoColumn.Table_ID), I_AD_InfoColumn.COLUMNNAME_AD_InfoWindow_ID+"=?", get_TrxName());
|
||||||
List<MInfoColumn> list = query.setParameters(getAD_InfoWindow_ID())
|
List<MInfoColumn> list = query.setParameters(getAD_InfoWindow_ID())
|
||||||
.setOnlyActiveRecords(true)
|
.setOnlyActiveRecords(true)
|
||||||
.setOrderBy(I_AD_InfoColumn.COLUMNNAME_SeqNo)
|
.setOrderBy("SeqNo, AD_InfoColumn_ID")
|
||||||
.list();
|
.list();
|
||||||
for(int i = list.size() - 1; i >= 0; i--) {
|
for(int i = list.size() - 1; i >= 0; i--) {
|
||||||
MInfoColumn infoColumn = list.get(i);
|
MInfoColumn infoColumn = list.get(i);
|
||||||
|
@ -145,7 +145,7 @@ public class MInfoWindow extends X_AD_InfoWindow
|
||||||
Query query = new Query(getCtx(), MTable.get(getCtx(), I_AD_InfoColumn.Table_ID), I_AD_InfoColumn.COLUMNNAME_AD_InfoWindow_ID+"=?", get_TrxName());
|
Query query = new Query(getCtx(), MTable.get(getCtx(), I_AD_InfoColumn.Table_ID), I_AD_InfoColumn.COLUMNNAME_AD_InfoWindow_ID+"=?", get_TrxName());
|
||||||
List<MInfoColumn> list = query.setParameters(getAD_InfoWindow_ID())
|
List<MInfoColumn> list = query.setParameters(getAD_InfoWindow_ID())
|
||||||
.setOnlyActiveRecords(true)
|
.setOnlyActiveRecords(true)
|
||||||
.setOrderBy(I_AD_InfoColumn.COLUMNNAME_SeqNo)
|
.setOrderBy("SeqNo, AD_InfoColumn_ID")
|
||||||
.list();
|
.list();
|
||||||
return list.toArray(new MInfoColumn[0]);
|
return list.toArray(new MInfoColumn[0]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,7 @@ import java.sql.Connection;
|
||||||
import java.sql.DatabaseMetaData;
|
import java.sql.DatabaseMetaData;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.ResultSetMetaData;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.SQLWarning;
|
import java.sql.SQLWarning;
|
||||||
import java.sql.Statement;
|
import java.sql.Statement;
|
||||||
|
@ -2373,4 +2374,92 @@ public final class DB
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get an array of objects from sql (one per each column on the select clause), column indexing starts with 0
|
||||||
|
* @param trxName trx
|
||||||
|
* @param sql sql
|
||||||
|
* @param params array of parameters
|
||||||
|
* @return null if not found
|
||||||
|
* @throws DBException if there is any SQLException
|
||||||
|
*/
|
||||||
|
public static List<Object> getSQLValueObjectsEx(String trxName, String sql, Object... params) {
|
||||||
|
List<Object> retValue = new ArrayList<Object>();
|
||||||
|
PreparedStatement pstmt = null;
|
||||||
|
ResultSet rs = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
pstmt = prepareStatement(sql, trxName);
|
||||||
|
setParameters(pstmt, params);
|
||||||
|
rs = pstmt.executeQuery();
|
||||||
|
ResultSetMetaData rsmd = rs.getMetaData();
|
||||||
|
if (rs.next()) {
|
||||||
|
for (int i=1; i<=rsmd.getColumnCount(); i++) {
|
||||||
|
Object obj = rs.getObject(i);
|
||||||
|
if (rs.wasNull())
|
||||||
|
retValue.add(null);
|
||||||
|
else
|
||||||
|
retValue.add(obj);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
retValue = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (SQLException e)
|
||||||
|
{
|
||||||
|
throw new DBException(e, sql);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
close(rs, pstmt);
|
||||||
|
rs = null; pstmt = null;
|
||||||
|
}
|
||||||
|
return retValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get an array of arrays of objects from sql (one per each row, and one per each column on the select clause), column indexing starts with 0
|
||||||
|
* WARNING: This method must be used just for queries returning few records, using it for many records implies heavy memory consumption
|
||||||
|
* @param trxName trx
|
||||||
|
* @param sql sql
|
||||||
|
* @param params array of parameters
|
||||||
|
* @return null if not found
|
||||||
|
* @throws DBException if there is any SQLException
|
||||||
|
*/
|
||||||
|
public static List<List<Object>> getSQLArrayObjectsEx(String trxName, String sql, Object... params) {
|
||||||
|
List<List<Object>> rowsArray = new ArrayList<List<Object>>();
|
||||||
|
PreparedStatement pstmt = null;
|
||||||
|
ResultSet rs = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
pstmt = prepareStatement(sql, trxName);
|
||||||
|
setParameters(pstmt, params);
|
||||||
|
rs = pstmt.executeQuery();
|
||||||
|
ResultSetMetaData rsmd = rs.getMetaData();
|
||||||
|
while (rs.next()) {
|
||||||
|
List<Object> retValue = new ArrayList<Object>();
|
||||||
|
for (int i=1; i<=rsmd.getColumnCount(); i++) {
|
||||||
|
Object obj = rs.getObject(i);
|
||||||
|
if (rs.wasNull())
|
||||||
|
retValue.add(null);
|
||||||
|
else
|
||||||
|
retValue.add(obj);
|
||||||
|
}
|
||||||
|
rowsArray.add(retValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (SQLException e)
|
||||||
|
{
|
||||||
|
throw new DBException(e, sql);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
close(rs, pstmt);
|
||||||
|
rs = null; pstmt = null;
|
||||||
|
}
|
||||||
|
if (rowsArray.size() == 0)
|
||||||
|
return null;
|
||||||
|
return rowsArray;
|
||||||
|
}
|
||||||
|
|
||||||
} // DB
|
} // DB
|
||||||
|
|
|
@ -973,6 +973,7 @@ public class MWorkflow extends X_AD_Workflow
|
||||||
if (!docAction.equals(po.get_Value(column.getColumnName())))
|
if (!docAction.equals(po.get_Value(column.getColumnName())))
|
||||||
{
|
{
|
||||||
po.set_ValueOfColumn(column.getColumnName(), docAction);
|
po.set_ValueOfColumn(column.getColumnName(), docAction);
|
||||||
|
po.saveEx();
|
||||||
}
|
}
|
||||||
ProcessInfo processInfo = new ProcessInfo (((DocAction)po).getDocumentInfo(),column.getAD_Process_ID(),po.get_Table_ID(),po.get_ID());
|
ProcessInfo processInfo = new ProcessInfo (((DocAction)po).getDocumentInfo(),column.getAD_Process_ID(),po.get_Table_ID(),po.get_ID());
|
||||||
processInfo.setTransactionName(po.get_TrxName());
|
processInfo.setTransactionName(po.get_TrxName());
|
||||||
|
|
|
@ -297,18 +297,6 @@ public class PackInHandler extends DefaultHandler {
|
||||||
setupHandlers();
|
setupHandlers();
|
||||||
} else {
|
} else {
|
||||||
Element e = stack.pop();
|
Element e = stack.pop();
|
||||||
if (e.contents != null && e.contents.length() > 0)
|
|
||||||
{
|
|
||||||
if (e.contents.toString().length() != e.contents.toString().trim().length())
|
|
||||||
{
|
|
||||||
String trim = e.attributes.getValue("trim");
|
|
||||||
if (!(trim != null && trim.equals("false")))
|
|
||||||
{
|
|
||||||
String s = e.contents.toString().trim();
|
|
||||||
e.contents = new StringBuffer(s);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (stack.isEmpty())
|
if (stack.isEmpty())
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -31,11 +31,6 @@ public class PoExporter {
|
||||||
|
|
||||||
private void addTextElement(String qName, String text, AttributesImpl atts) {
|
private void addTextElement(String qName, String text, AttributesImpl atts) {
|
||||||
try {
|
try {
|
||||||
//default trim to false for print item label since trailing space is commonly use
|
|
||||||
//for formatting purpose
|
|
||||||
if (qName.equalsIgnoreCase("PrintName") || qName.equalsIgnoreCase("UserLevel")) {
|
|
||||||
atts.addAttribute("", "", "trim", "CDATA", "false");
|
|
||||||
}
|
|
||||||
transformerHandler.startElement("", "", qName, atts);
|
transformerHandler.startElement("", "", qName, atts);
|
||||||
append(text);
|
append(text);
|
||||||
transformerHandler.endElement("", "", qName);
|
transformerHandler.endElement("", "", qName);
|
||||||
|
|
|
@ -182,8 +182,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processQueryValue() {
|
private void processQueryValue() {
|
||||||
//try first 2 only
|
for (int i = 0; i < identifiers.size(); i++) {
|
||||||
for(int i = 0; i < identifiers.size() && i < 2; i++) {
|
|
||||||
WEditor editor = identifiers.get(i);
|
WEditor editor = identifiers.get(i);
|
||||||
editor.setValue(queryValue);
|
editor.setValue(queryValue);
|
||||||
testCount();
|
testCount();
|
||||||
|
|
|
@ -122,7 +122,8 @@ public class InfoGeneralPanel extends InfoPanel implements EventListener<Event>
|
||||||
if (queryValue != null && queryValue.length() > 0)
|
if (queryValue != null && queryValue.length() > 0)
|
||||||
{
|
{
|
||||||
MTable table = MTable.get(Env.getCtx(), p_tableName);
|
MTable table = MTable.get(Env.getCtx(), p_tableName);
|
||||||
if (table.getIdentifierColumns().length > 1)
|
if ( table.getIdentifierColumns().length > 1
|
||||||
|
&& !p_tableName.startsWith("AD_")) // 32 AD tables with identifiers containing _
|
||||||
{
|
{
|
||||||
String separator = I_C_ElementValue.Table_Name.equalsIgnoreCase(p_tableName) ? "-" : "_";
|
String separator = I_C_ElementValue.Table_Name.equalsIgnoreCase(p_tableName) ? "-" : "_";
|
||||||
if (txt2.isVisible())
|
if (txt2.isVisible())
|
||||||
|
|
Loading…
Reference in New Issue