From 738b97ccaf88e7031a476295082206ec566c261e Mon Sep 17 00:00:00 2001 From: hengsin Date: Tue, 5 May 2020 02:36:59 +0800 Subject: [PATCH] IDEMPIERE-4199 Clean up org.adempiere.extend (#29) Remove org.adempiere.pipo.legacy project. --- org.adempiere.pipo.legacy/.classpath | 7 - org.adempiere.pipo.legacy/.project | 28 - .../.settings/org.eclipse.pde.core.prefs | 4 - .../META-INF/MANIFEST.MF | 13 - org.adempiere.pipo.legacy/build.properties | 4 - .../pipo/AbstractElementHandler.java | 399 -------- .../org/adempiere/pipo/AttributeFiller.java | 112 --- .../src/org/adempiere/pipo/CreateZipFile.java | 120 --- .../src/org/adempiere/pipo/Element.java | 72 -- .../org/adempiere/pipo/ElementHandler.java | 56 -- .../src/org/adempiere/pipo/IDFinder.java | 385 -------- .../src/org/adempiere/pipo/PackIn.java | 305 ------ .../src/org/adempiere/pipo/PackInHandler.java | 856 ----------------- .../src/org/adempiere/pipo/PackOut.java | 894 ------------------ .../src/org/adempiere/pipo/PackRoll.java | 546 ----------- .../src/org/adempiere/pipo/PoFiller.java | 36 - .../exception/DatabaseAccessException.java | 26 - .../exception/NonUniqueIDLookupException.java | 24 - .../pipo/exception/POSaveFailedException.java | 25 - .../pipo/handler/AdElementHandler.java | 170 ---- .../handler/CodeSnipitElementHandler.java | 244 ----- .../pipo/handler/ColumnElementHandler.java | 527 ----------- .../handler/CommonTranslationHandler.java | 319 ------- .../pipo/handler/DataElementHandler.java | 415 -------- .../pipo/handler/DistFileElementHandler.java | 200 ---- .../handler/DynValRuleElementHandler.java | 139 --- .../handler/EntityTypeElementHandler.java | 162 ---- .../pipo/handler/FieldElementHandler.java | 386 -------- .../handler/FieldGroupElementHandler.java | 155 --- .../handler/FormAccessElementHandler.java | 139 --- .../pipo/handler/FormElementHandler.java | 130 --- .../pipo/handler/ImpFormatElementHandler.java | 183 ---- .../handler/ImpFormatRowElementHandler.java | 169 ---- .../pipo/handler/MenuElementHandler.java | 503 ---------- .../pipo/handler/MessageElementHandler.java | 147 --- .../handler/ModelValidatorElementHandler.java | 172 ---- .../pipo/handler/OrgRoleElementHandler.java | 132 --- .../handler/PreferenceElementHandler.java | 118 --- .../handler/PrintFormatElementHandler.java | 355 ------- .../PrintFormatItemElementHandler.java | 455 --------- .../handler/PrintPaperElementHandler.java | 256 ----- .../handler/ProcessAccessElementHandler.java | 140 --- .../pipo/handler/ProcessElementHandler.java | 344 ------- .../handler/ProcessParaElementHandler.java | 314 ------ .../pipo/handler/ReferenceElementHandler.java | 279 ------ .../handler/ReferenceListElementHandler.java | 165 ---- .../handler/ReferenceTableElementHandler.java | 293 ------ .../handler/ReportViewColElementHandler.java | 177 ---- .../handler/ReportViewElementHandler.java | 269 ------ .../pipo/handler/RoleElementHandler.java | 520 ---------- .../handler/SQLStatementElementHandler.java | 113 --- .../pipo/handler/TabElementHandler.java | 333 ------- .../pipo/handler/TableElementHandler.java | 342 ------- .../handler/TaskAccessElementHandler.java | 137 --- .../pipo/handler/TaskElementHandler.java | 140 --- .../pipo/handler/UserRoleElementHandler.java | 141 --- .../handler/WindowAccessElementHandler.java | 142 --- .../pipo/handler/WindowElementHandler.java | 309 ------ .../handler/WorkflowAccessElementHandler.java | 138 --- .../pipo/handler/WorkflowElementHandler.java | 453 --------- .../handler/WorkflowNodeElementHandler.java | 435 --------- ...rkflowNodeNextConditionElementHandler.java | 270 ------ .../WorkflowNodeNextElementHandler.java | 276 ------ .../src/test/functional/PackOutTest.java | 88 -- 64 files changed, 15206 deletions(-) delete mode 100644 org.adempiere.pipo.legacy/.classpath delete mode 100644 org.adempiere.pipo.legacy/.project delete mode 100644 org.adempiere.pipo.legacy/.settings/org.eclipse.pde.core.prefs delete mode 100644 org.adempiere.pipo.legacy/META-INF/MANIFEST.MF delete mode 100644 org.adempiere.pipo.legacy/build.properties delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/AbstractElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/AttributeFiller.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/CreateZipFile.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/Element.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/ElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/IDFinder.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/PackIn.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/PackInHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/PackOut.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/PackRoll.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/PoFiller.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/exception/DatabaseAccessException.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/exception/NonUniqueIDLookupException.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/exception/POSaveFailedException.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/AdElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/CodeSnipitElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ColumnElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/CommonTranslationHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/DataElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/DistFileElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/DynValRuleElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/EntityTypeElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/FieldElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/FieldGroupElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/FormAccessElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/FormElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ImpFormatElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ImpFormatRowElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/MenuElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/MessageElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ModelValidatorElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/OrgRoleElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/PreferenceElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/PrintFormatElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/PrintFormatItemElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/PrintPaperElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ProcessAccessElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ProcessElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ProcessParaElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReferenceElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReferenceListElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReferenceTableElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReportViewColElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReportViewElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/RoleElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/SQLStatementElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/TabElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/TableElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/TaskAccessElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/TaskElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/UserRoleElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WindowAccessElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WindowElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowAccessElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowNodeElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowNodeNextConditionElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowNodeNextElementHandler.java delete mode 100644 org.adempiere.pipo.legacy/src/test/functional/PackOutTest.java diff --git a/org.adempiere.pipo.legacy/.classpath b/org.adempiere.pipo.legacy/.classpath deleted file mode 100644 index 1fa3e6803d..0000000000 --- a/org.adempiere.pipo.legacy/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/org.adempiere.pipo.legacy/.project b/org.adempiere.pipo.legacy/.project deleted file mode 100644 index 0e5657c6fa..0000000000 --- a/org.adempiere.pipo.legacy/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.adempiere.pipo.legacy - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/org.adempiere.pipo.legacy/.settings/org.eclipse.pde.core.prefs b/org.adempiere.pipo.legacy/.settings/org.eclipse.pde.core.prefs deleted file mode 100644 index e06c667360..0000000000 --- a/org.adempiere.pipo.legacy/.settings/org.eclipse.pde.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -#Mon Sep 27 13:03:25 MYT 2010 -eclipse.preferences.version=1 -pluginProject.extensions=false -resolve.requirebundle=false diff --git a/org.adempiere.pipo.legacy/META-INF/MANIFEST.MF b/org.adempiere.pipo.legacy/META-INF/MANIFEST.MF deleted file mode 100644 index 5b853b4caf..0000000000 --- a/org.adempiere.pipo.legacy/META-INF/MANIFEST.MF +++ /dev/null @@ -1,13 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: Old Pipo -Bundle-SymbolicName: org.adempiere.pipo.legacy -Bundle-Version: 1.0.0.qualifier -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Require-Bundle: org.adempiere.base;bundle-version="1.0.0" -Export-Package: org.adempiere.pipo, - org.adempiere.pipo.exception, - org.adempiere.pipo.handler -Import-Package: junit.framework;version="3.8.2", - org.apache.tools.ant, - org.apache.tools.ant.taskdefs diff --git a/org.adempiere.pipo.legacy/build.properties b/org.adempiere.pipo.legacy/build.properties deleted file mode 100644 index 34d2e4d2da..0000000000 --- a/org.adempiere.pipo.legacy/build.properties +++ /dev/null @@ -1,4 +0,0 @@ -source.. = src/ -output.. = bin/ -bin.includes = META-INF/,\ - . diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/AbstractElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/AbstractElementHandler.java deleted file mode 100644 index d778ee75bc..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/AbstractElementHandler.java +++ /dev/null @@ -1,399 +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) 2005 Robert Klein. robeklein@hotmail.com * - * Contributor(s): Low Heng Sin hengsin@avantz.com * - *****************************************************************************/ -package org.adempiere.pipo; - -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_BUTTON; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_LIST; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_MEMO; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_STRING; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_TEXT; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_YES_NO; - -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.compiere.model.PO; -import org.compiere.model.POInfo; -import org.compiere.model.X_AD_Package_Imp_Detail; -import org.compiere.util.CLogger; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public abstract class AbstractElementHandler implements ElementHandler { - - protected CLogger log = CLogger.getCLogger("PackIn"); - - /** - * Get ID from Name for a table. - * TODO: substitute with PO.getAllIDs - * - * @param tableName - * @param name - * - */ - public int get_ID (Properties ctx, String tableName, String name) { - return IDFinder.get_ID(tableName, name, getClientId(ctx), getTrxName(ctx)); - } - - /** - * Get ID from column value for a table. - * - * @param tableName - * @param columName - * @param name - */ - public int get_IDWithColumn (Properties ctx, String tableName, String columnName, Object value) { - return IDFinder.get_IDWithColumn(tableName, columnName, value, getClientId(ctx), getTrxName(ctx)); - } - - /** - * Write results to log and records in history table - * - * @param success - * @param tableName - * @param objectType - * @param objectID - * @param objectStatus - * @throws SAXException - * - */ - public int record_log (Properties ctx, int success, String objectName,String objectType, int objectID, - int objectIDBackup, String objectStatus, String tableName, int AD_Table_ID) throws SAXException{ - StringBuffer recordLayout = new StringBuffer(); - int id = 0; - TransformerHandler hd_document = getLogDocument(ctx); - AttributesImpl attsOut = new AttributesImpl(); - String result = success == 1 ? "Success" : "Failure"; - - //hd_documemt.startElement("","","Successful",attsOut); - recordLayout.append("Type:") - .append(objectType) - .append(" - Name:") - .append(objectName) - .append(" - ID:") - .append(objectID) - .append(" - Action:") - .append(objectStatus) - .append(" - " + result); - - hd_document.startElement("","",result,attsOut); - hd_document.characters(recordLayout.toString().toCharArray(),0,recordLayout.length()); - hd_document.endElement("","",result); - - X_AD_Package_Imp_Detail detail = new X_AD_Package_Imp_Detail(ctx, 0, getTrxName(ctx)); - detail.setAD_Package_Imp_ID(getPackageImpId(ctx)); - detail.setAD_Org_ID(Env.getAD_Org_ID(ctx) ); - detail.setType(objectType); - detail.setName(objectName); - detail.setAction(objectStatus); - detail.setSuccess(result); - detail.setRecord_ID(objectID); - detail.setAD_Backup_ID(objectIDBackup); - detail.setTableName(tableName); - detail.setAD_Table_ID(AD_Table_ID); - - if ( !detail.save(getTrxName(ctx)) ) - log.info("Insert to import detail failed"); - - id = detail.get_ID(); - - return id; - } - - /** - * Get ID from Name for a table with a Master reference. - * - * @param tableName - * @param name - * @param tableNameMaster - * @param nameMaster - */ - public int get_IDWithMaster (Properties ctx, String tableName, String name, String tableNameMaster, String nameMaster) { - return IDFinder.get_IDWithMaster(tableName, name, tableNameMaster, nameMaster, getTrxName(ctx)); - } - - /** - * Get ID from Name for a table with a Master reference. - * - * @param tableName - * @param name - * @param tableNameMaster - * @param nameMaster - */ - - public int get_IDWithMasterAndColumn (Properties ctx, String tableName, String columnName, String name, String tableNameMaster, int masterID) { - return IDFinder.get_IDWithMasterAndColumn(tableName, columnName, name, tableNameMaster, masterID, - getTrxName(ctx)); - } - - /** - * Get ID from Name for a table with a Master reference ID. - * - * @param tableName - * @param name - * @param tableNameMaster - * @param masterID - */ - public int get_IDWithMaster (Properties ctx, String tableName, String name, String tableNameMaster, int masterID) { - return IDFinder.get_IDWithMaster(tableName, name, tableNameMaster, masterID, getTrxName(ctx)); - } - - /** - * Get ID from Name for a table. - * TODO: substitute with PO.getAllIDs - * - * @param tableName - * @param name - */ - public int getIDbyName (Properties ctx, String tableName, String name) { - return IDFinder.getIDbyName(tableName, name, getClientId(ctx), getTrxName(ctx)); - } - - /** - * Get ID from Value for a table. - * TODO: substitute with PO.getAllIDs - * - * @param tableName - * @param name - */ - public int getIDbyValue (Properties ctx, String tableName, String value) { - return IDFinder.getIDbyValue(tableName, value, getClientId(ctx), getTrxName(ctx)); - } - - /** - * Make backup copy of record. - * - * @param tablename - * - * - * - */ - public int copyRecord(Properties ctx, String tableName,PO from){ - // Create new record - int idBackup = 0; - String colValue=null; - int tableID = get_IDWithColumn(ctx, "AD_Table", "TableName", tableName); - POInfo poInfo = POInfo.getPOInfo(ctx, tableID, getTrxName(ctx)); - for (int i = 0; i < poInfo.getColumnCount(); i++){ - colValue=null; - - int columnID =get_IDWithMasterAndColumn (ctx, "AD_Column", "ColumnName", poInfo.getColumnName(i), "AD_Table", tableID); - StringBuffer sqlD = new StringBuffer("SELECT AD_Reference_ID FROM AD_COLUMN WHERE AD_Column_ID = '"+columnID+"'"); - int referenceID = DB.getSQLValue(getTrxName(ctx),sqlD.toString()); - - idBackup = DB.getNextID (getClientId(ctx), "AD_Package_Imp_Backup", getTrxName(ctx)); - - sqlD = new StringBuffer("SELECT MAX(AD_PACKAGE_IMP_DETAIL_ID) FROM AD_PACKAGE_IMP_DETAIL"); - int idDetail = DB.getSQLValue(getTrxName(ctx),sqlD.toString())+1; - - if (referenceID == REFERENCE_DATATYPE_STRING || referenceID == REFERENCE_DATATYPE_TEXT || referenceID == REFERENCE_DATATYPE_MEMO || referenceID == REFERENCE_DATATYPE_LIST) - if (from != null && from.get_Value(i)!= null) - colValue = from.get_Value(i).toString().replaceAll("'","''"); - else if (referenceID == REFERENCE_DATATYPE_YES_NO|| referenceID == REFERENCE_DATATYPE_BUTTON) - if (from != null && from.get_Value(i)!= null) - colValue = from.get_Value(i).toString().replaceAll("'","''"); - else - ;//Ignore - - StringBuffer sqlB = new StringBuffer ("INSERT INTO AD_Package_Imp_Backup") - .append( "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, " ) - .append( "AD_PACKAGE_IMP_BACKUP_ID, AD_PACKAGE_IMP_DETAIL_ID, AD_PACKAGE_IMP_ID," ) - .append( " AD_TABLE_ID, AD_COLUMN_ID, AD_REFERENCE_ID, COLVALUE)" ) - .append( "VALUES(" ) - .append( " "+ Env.getAD_Client_ID(ctx) ) - .append( ", "+ Env.getAD_Org_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", " + idBackup ) - .append( ", " + idDetail ) - .append( ", " + getPackageImpId(ctx) ) - .append( ", " + tableID ) - .append( ", " + (columnID == -1 ? "null" : columnID) ) - .append( ", " + (referenceID == -1 ? "null" : referenceID) ) - .append( ", '" + (colValue != null ? colValue : (from != null ? from.get_Value(i) : "null")) ) - .append( "')"); - - int no = DB.executeUpdate (sqlB.toString(), getTrxName(ctx)); - if (no == -1) - log.info("Insert to import backup failed"); - //} - } - return idBackup; - } - - /** - * Open input file for processing - * - * @param String file with path - * - */ - public FileInputStream OpenInputfile (String filePath) { - - FileInputStream fileTarget = null; - - try { - fileTarget = new FileInputStream(filePath); - } - catch (FileNotFoundException e ) { - System.out.println("File not found: " + filePath); - - return null; - } - return fileTarget; - } - - /** - * Open output file for processing - * - * @param String file with path - * - */ - public OutputStream OpenOutputfile (String filePath) { - - OutputStream fileTarget = null; - - try { - fileTarget = new FileOutputStream(filePath); - } - catch (FileNotFoundException e ) { - System.out.println("File not found: " + filePath); - - return null; - } - return fileTarget; - } - - /** - * Copyfile - * - * @param String file with path - * - */ - public int copyFile (InputStream source,OutputStream target) { - - int byteCount = 0; - int success = 0; - try { - while (true) { - int data = source.read(); - if (data < 0) - break; - target.write(data); - byteCount++; - } - source.close(); - target.close(); - //System.out.println("Successfully copied " + byteCount + " bytes."); - } - catch (Exception e) { - System.out.println("Error occurred while copying. "+ byteCount + " bytes copied."); - log.log(Level.SEVERE, e.getLocalizedMessage(), e); - - success = -1; - } - return success; - } - - /** - * Get client id - * @param ctx - * @return int - */ - protected int getClientId(Properties ctx) { - return Env.getContextAsInt(ctx, "AD_Client_ID"); - } - - /** - * Get AD_Package_Imp_ID - * @param ctx - * @return int - */ - protected int getPackageImpId(Properties ctx) { - return Env.getContextAsInt(ctx, "AD_Package_Imp_ID"); - } - - /** - * Get update system maintained dictionary flag - * @param ctx - * @return update mode - */ - protected String getUpdateMode(Properties ctx) { - return Env.getContext(ctx, "UpdateMode"); - } - - /** - * Get current transaction name - * @param ctx - * @return transaction name - */ - protected String getTrxName(Properties ctx) { - return Env.getContext(ctx, "TrxName"); - } - - /** - * Get share document - * @param ctx - * @return TransformerHandler - */ - protected TransformerHandler getLogDocument(Properties ctx) { - return (TransformerHandler)ctx.get("LogDocument"); - } - - /** - * @param ctx - * @return package directory - */ - protected String getPackageDirectory(Properties ctx) { - return Env.getContext(ctx, "PackageDirectory"); - } - - /** - * Process element by entity type and user setting. - * @param ctx - * @param entityType - * @return boolean - */ - protected boolean isProcessElement(Properties ctx, String entityType) { - if ("D".equals(entityType) || "C".equals(entityType)) { - return "true".equalsIgnoreCase(getUpdateMode(ctx)); - } else { - return true; - } - } - - /** - * return null for empty string (""). - * @param atts - * @param qName - * @return string value - */ - protected String getStringValue(Attributes atts, String qName) { - String s = atts.getValue(qName); - return ("".equals(s) ? null : s); - } - -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/AttributeFiller.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/AttributeFiller.java deleted file mode 100644 index 04d28e8c77..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/AttributeFiller.java +++ /dev/null @@ -1,112 +0,0 @@ -package org.adempiere.pipo; - -import org.compiere.model.PO; -import org.xml.sax.helpers.AttributesImpl; - -public class AttributeFiller { - - private AttributesImpl atts = null; - private PO po = null; - - /** - * Will clear attributes !!! - * @param _atts - */ - public AttributeFiller(AttributesImpl attributes){ - attributes.clear(); - atts = attributes; - po = null; - } - - /** - * Will clear attributes !!! - * @param _atts - */ - public AttributeFiller(AttributesImpl attributes, PO poToAutoFill){ - attributes.clear(); - atts = attributes; - - po = poToAutoFill; - } - - /** - * - * @param name - * @param value - */ - public void addUnchecked(String name, String value){ - - atts.addAttribute("", "", name, "CDATA", value); - } - - /** - * - * @param name - * @param stringValue - */ - public void addString(String name, String stringValue){ - - atts.addAttribute("", "", name, "CDATA", stringValue != null ? stringValue : ""); - - } - - /** - * - * @param name - * @param boolValue - */ - public void addBoolean(String name, boolean boolValue){ - - atts.addAttribute("", "", name, "CDATA", boolValue == true ? "true" : "false"); - } - - - /** - * - * @param name - * @param stringValue - */ - public void add(String columnName){ - - Object value = po.get_Value(columnName); - - if(value == null){ - - atts.addAttribute("", "", columnName, "CDATA", ""); - return; - } - - if(value instanceof String){ - atts.addAttribute("", "", columnName, "CDATA", (String)value); - - }else if(value instanceof Boolean) { - atts.addAttribute("", "", columnName, "CDATA", (Boolean)value == true ? "true" : "false"); - - }else if(value instanceof Integer) { - atts.addAttribute("", "", columnName, "CDATA", value.toString()); - - }else{ - - throw new IllegalArgumentException("Add your own type implementation here."); - } - } - - - /** - * - * - */ - public void addIsActive(){ - - atts.addAttribute("", "", "IsActive", "CDATA", (Boolean)po.isActive() == true ? "true" : "false"); - } - - /** - * - * @return - */ - public AttributesImpl getAttributes(){ - - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/CreateZipFile.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/CreateZipFile.java deleted file mode 100644 index f9cf407149..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/CreateZipFile.java +++ /dev/null @@ -1,120 +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) 2005 Robert Klein. robeklein@hotmail.com - * _____________________________________________ - *****************************************************************************/ -package org.adempiere.pipo; - - -import java.io.File; -import java.io.IOException; -import java.util.Enumeration; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; - -import org.apache.tools.ant.Project; -import org.apache.tools.ant.Target; -import org.apache.tools.ant.taskdefs.Expand; -import org.apache.tools.ant.taskdefs.GZip; -import org.apache.tools.ant.taskdefs.Tar; -import org.apache.tools.ant.taskdefs.Zip; -/** - * Compress package - * - * @author Rob Klein - * @version $Id: ImportFAJournal2.java,v 1.0 $ - * - */ -public class CreateZipFile { - - - /** - * Zip the srcFolder into the destFileZipFile. All the folder subtree of the src folder is added to the destZipFile - * archive. - * - * - * @param srcFolder File, the path of the srcFolder - * @param destZipFile File, the path of the destination zipFile. This file will be created or erased. - */ - static public void zipFolder(File srcFolder, File destZipFile, String includesdir) - { - Zip zipper = new Zip(); - zipper.setDestFile(destZipFile); - zipper.setBasedir(srcFolder); - zipper.setIncludes(includesdir); - zipper.setUpdate(true); - zipper.setCompress(true); - zipper.setCaseSensitive(false); - zipper.setFilesonly(false); - zipper.setTaskName("zip"); - zipper.setTaskType("zip"); - zipper.setProject(new Project()); - zipper.setOwningTarget(new Target()); - zipper.execute(); - System.out.println(destZipFile); - } - static public void tarFolder(File srcFolder, File destTarFile, String includesdir) - { - Tar tarer = new Tar(); - tarer.setDestFile(destTarFile); - tarer.setBasedir(srcFolder); - tarer.setIncludes(includesdir); - tarer.setCaseSensitive(false); - tarer.setTaskName("tar"); - tarer.setTaskType("tar"); - tarer.setProject(new Project()); - tarer.setOwningTarget(new Target()); - tarer.execute(); - } - static public void gzipFile(File srcFile, File destFile) - { - GZip GZiper = new GZip(); - GZiper.setDestfile(destFile); - GZiper.setSrc(srcFile); - GZiper.setTaskName("gzip"); - GZiper.setTaskType("gzip"); - GZiper.setProject(new Project()); - GZiper.setOwningTarget(new Target()); - GZiper.execute(); - } - static public void unpackFile(File zipFilepath, File destinationDir) - { - Expand Unzipper = new Expand(); - Unzipper.setDest(destinationDir); - Unzipper.setSrc(zipFilepath); - Unzipper.setTaskType ("unzip"); - Unzipper.setTaskName ("unzip"); - Unzipper.setProject(new Project()); - Unzipper.setOwningTarget(new Target()); - Unzipper.execute(); - } - static public String getParentDir(File zipFilepath) - { - try { - ZipFile zipFile = new ZipFile(zipFilepath); - Enumeration entries = zipFile.entries(); - ZipEntry entry = entries.nextElement(); - File tempfile = new File(entry.getName()); - while (tempfile.getParent()!=null) - tempfile = tempfile.getParentFile(); - return tempfile.getName(); - } catch (IOException ioe) { - System.err.println("Unhandled exception:"); - ioe.printStackTrace(); - return ""; - } - } - }// CreateZipFile - - diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/Element.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/Element.java deleted file mode 100644 index afc4262094..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/Element.java +++ /dev/null @@ -1,72 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo; - -import org.xml.sax.Attributes; - -/** - * XML element structure - * @author Low Heng Sin - * - */ -public class Element { - - public String uri; - public String localName; - public String qName; - //element attributes - public Attributes attributes; - //defer for later reprocessing - public boolean defer = false; - //parent element - public Element parent; - //resolved db recordid, store for reference by child element - public int recordId = 0; - //unresolved dependency - public String unresolved = ""; - //number of pass - public int pass = 1; - //skip this node - public boolean skip = false; - - public boolean deferEnd = false; - - /** - * @param uri - * @param localName - * @param qName - * @param attributes - */ - public Element(String uri, String localName, String qName, Attributes attributes) { - this.uri = uri; - this.localName = localName; - this.qName = qName; - this.attributes = attributes; - } - - /** - * @return elementValue - */ - public String getElementValue() { - String elementValue = null; - if ("".equals (uri)) - elementValue = qName; - else - elementValue = uri + localName; - return elementValue; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/ElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/ElementHandler.java deleted file mode 100644 index 4eef64dd1f..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/ElementHandler.java +++ /dev/null @@ -1,56 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo; - -import java.util.Properties; - -import javax.xml.transform.sax.TransformerHandler; - -import org.xml.sax.SAXException; - -/** - * Interface for handling import and export of table data to xml - * @author Low Heng Sin - * - */ -public interface ElementHandler { - - /** - * Handle start of xml element ( import ). - * @param ctx - * @param element - * @throws org.xml.sax.SAXException - */ - public void startElement (Properties ctx, Element element) - throws org.xml.sax.SAXException; - - /** - * Handle closing of xml element ( import ). - * @param ctx - * @param element - * @throws SAXException - */ - public void endElement (Properties ctx, Element element) throws SAXException; - - /** - * Create xml element ( export ). - * @param ctx - * @param document - * @throws SAXException - */ - public void create(Properties ctx, TransformerHandler document) throws SAXException; -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/IDFinder.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/IDFinder.java deleted file mode 100644 index a76ce5f86d..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/IDFinder.java +++ /dev/null @@ -1,385 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - * Teo Sarca, teo.sarca@gmail.com - *****************************************************************************/ -package org.adempiere.pipo; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.adempiere.exceptions.DBException; -import org.adempiere.pipo.exception.NonUniqueIDLookupException; -import org.compiere.util.CLogger; -import org.compiere.util.DB; - -/** - * Utility class for the looking up of record id. - * @author Low Heng Sin - * @author Teo Sarca - */ -public final class IDFinder -{ - private static CLogger log = CLogger.getCLogger(IDFinder.class); - - private static Map idCache = new HashMap(); - - /** - * Get ID from Name for a table. - * - * @param tableName - * @param name - * @param AD_Client_ID - * @param trxName - * @throws NonUniqueIDLookupException if more then one result found for search criteria - */ - public static int get_ID (String tableName, String name, int AD_Client_ID, String trxName) - { - //construct cache key - StringBuffer key = new StringBuffer(); - key.append(tableName) - .append(".Name=") - .append(name); - if (!tableName.startsWith("AD_")) - key.append(" and AD_Client_ID=").append(AD_Client_ID); - - //check cache - if (idCache.containsKey(key.toString())) - return idCache.get(key.toString()); - - ArrayList params = new ArrayList(); - StringBuffer sqlB = new StringBuffer ("select ") - .append(tableName) - .append("_ID from ") - .append(tableName) - .append(" where name=?"); - params.add(name); - - if (!tableName.startsWith("AD_")) - { - sqlB = sqlB.append(" and AD_Client_ID=?"); - params.add(AD_Client_ID); - } - - return getID(sqlB.toString(), params, key.toString(), true, trxName); - } - - /** - * Get ID from column value for a table. - * - * @param tableName - * @param columName - * @param value - * @param AD_Client_ID - * @param trxName - * @throws NonUniqueIDLookupException if more then one result found for search criteria - */ - public static int get_IDWithColumn (String tableName, String columnName, Object value, int AD_Client_ID, String trxName) - { - return get_IDWithColumn(tableName, columnName, value, AD_Client_ID, true, trxName); - } - /** - * Get ID from column value for a table. - * - * @param tableName - * @param columName - * @param value - * @param AD_Client_ID - * @param strict if true we throw NonUniqueIDLookupException on more then one result. Else we will return 0. - * @param trxName - * @return id or 0 - * @throws NonUniqueIDLookupException if more then one result found for search criteria and strict is true - */ - public static int get_IDWithColumn (String tableName, String columnName, Object value, int AD_Client_ID, boolean strict, String trxName) - { - if (value == null) - return 0; - - //construct cache key - StringBuffer key = new StringBuffer(); - key.append(tableName) - .append(".") - .append(columnName) - .append("=") - .append(value.toString()); - if (!tableName.startsWith("AD_")) - key.append(" and AD_Client_ID=").append(AD_Client_ID); - - ArrayList params = new ArrayList(); - StringBuffer sqlB = new StringBuffer ("select ") - .append(tableName) - .append("_ID from ") - .append(tableName) - .append(" where ") - .append(columnName) - .append(" = ?"); - params.add(value); - - if (!tableName.startsWith("AD_")) - { - sqlB = sqlB.append(" and AD_Client_ID=?"); - params.add(AD_Client_ID); - } - - sqlB = sqlB.append(" Order By ") - .append(tableName) - .append("_ID"); - - return getID(sqlB.toString(), params, key.toString(), strict, trxName); - } - - /** - * Get ID from Name for a table with a Master reference. - * - * @param tableName - * @param name - * @param tableNameMaster - * @param nameMaster - * @param trxName - * @throws NonUniqueIDLookupException if more then one result found for search criteria - */ - public static int get_IDWithMaster (String tableName, String name, String tableNameMaster, String nameMaster, String trxName) - { - //construct cache key - StringBuffer key = new StringBuffer(); - key.append(tableName) - .append(".Name=") - .append(name) - .append(" and ") - .append(tableNameMaster) - .append(".Name=") - .append(nameMaster); - - ArrayList params = new ArrayList(); - StringBuffer sqlB = new StringBuffer ("select ") - .append(tableName) - .append("_ID from ") - .append(tableName) - .append(" where name = ? and ") - .append(tableNameMaster) - .append("_ID = (select ") - .append(tableNameMaster) - .append("_ID from ") - .append(tableNameMaster) - .append(" where name = ?)"); - params.add(name); - params.add(nameMaster); - - return getID(sqlB.toString(), params, key.toString(), true, trxName); - } - - /** - * Get ID from Name for a table with a Master reference. - * - * @param tableName - * @param name - * @param tableNameMaster - * @param masterID - * @param trxName - * @throws NonUniqueIDLookupException if more then one result found for search criteria - */ - public static int get_IDWithMasterAndColumn (String tableName, String columnName, String name, String tableNameMaster, int masterID, String trxName) - { - String key = tableName + "." + columnName + "=" + name + tableNameMaster + "=" + masterID; - - ArrayList params = new ArrayList(); - StringBuffer sqlB = new StringBuffer ("select ") - .append(tableName) - .append("_ID from ") - .append(tableName) - .append(" where ") - .append(columnName) - .append(" = ? and ") - .append(tableNameMaster+"_ID =?"); - params.add(name); - params.add(masterID); - - return getID(sqlB.toString(), params, key, true, trxName); - } - - /** - * Get ID from Name for a table with a Master reference ID. - * - * @param tableName - * @param name - * @param tableNameMaster - * @param masterID - * @param trxName - * @throws NonUniqueIDLookupException if more then one result found for search criteria - */ - public static int get_IDWithMaster (String tableName, String name, String tableNameMaster, int masterID, String trxName) - { - //construct cache key - StringBuffer key = new StringBuffer(); - key.append(tableName) - .append(".Name=") - .append(name) - .append(" and ") - .append(tableNameMaster) - .append(".") - .append(tableNameMaster) - .append("_ID=") - .append(masterID); - - ArrayList params = new ArrayList(); - StringBuffer sqlB = new StringBuffer ("select ") - .append(tableName) - .append("_ID from ") - .append(tableName) - .append(" where name=? and ") - .append(tableNameMaster) - .append("_ID=?"); - params.add(name); - params.add(masterID); - - return getID(sqlB.toString(), params, key.toString(), true, trxName); - } - - /** - * Get ID from Column for a table. - * - * @param tableName - * @param column - * @param name - * @param AD_Client_ID - * @param trxName - * @throws NonUniqueIDLookupException if more then one result found for search criteria - */ - public static int getIDbyColumn (String tableName, String column, String name, int AD_Client_ID, String trxName) - { - //construct cache key - StringBuffer key = new StringBuffer(); - key.append(tableName) - .append("."+column+"=") - .append(name); - if (!tableName.startsWith("AD_")) - key.append(" AND AD_Client_ID=").append(AD_Client_ID); - - ArrayList params = new ArrayList(); - StringBuffer sql = new StringBuffer("SELECT ") - .append(tableName) - .append("_ID ") - .append("FROM ") - .append(tableName) - .append(" ") - .append("WHERE "+column+"=?"); - params.add(name); - if (!tableName.startsWith("AD_")) - { - sql.append(" AND AD_Client_ID=?"); - params.add(AD_Client_ID); - } - - return getID(sql.toString(), params, key.toString(), true, trxName); - } - - /** - * - * @param tableName - * @param name - * @param AD_Client_ID - * @param trxName - * @return - * @throws NonUniqueIDLookupException if more then one result found for search criteria - */ - public static int getIDbyName (String tableName, String name, int AD_Client_ID, String trxName) - { - return getIDbyColumn(tableName, "Name", name, AD_Client_ID, trxName); - } - - /** - * - * @param tableName - * @param name - * @param AD_Client_ID - * @param trxName - * @return - * @throws NonUniqueIDLookupException if more then one result found for search criteria - */ - public static int getIDbyValue (String tableName, String name, int AD_Client_ID, String trxName) - { - return getIDbyColumn(tableName, "Value", name, AD_Client_ID, trxName); - } - - - public static void clearIDCache() - { - idCache.clear(); - } - - /** - * - * @param sql - * @param params - * @param key - * @param strict if true we throw NonUniqueIDLookupException on more then one result. Else we will return 0. - * @param trxName - * @return id or 0 - * @throws NonUniqueIDLookupException if more then one result found for search criteria and strict is true - */ - private static int getID(String sql, List params, String key, boolean strict, String trxName) - { - if (key != null && idCache.containsKey(key)) - return idCache.get(key); - - int id = 0; - PreparedStatement pstmt = null; - ResultSet rs = null; - try - { - pstmt = DB.prepareStatement(sql, trxName); - DB.setParameters(pstmt, params); - - rs = pstmt.executeQuery(); - if (rs.next()) - { - id = rs.getInt(1); - } - if (rs.next()) - { - if (strict) - { - throw new NonUniqueIDLookupException(key); - } - else - { - log.warning("Non Unique ID Lookup found for "+key); - } - } - } - catch (SQLException e) - { - throw new DBException(e, sql); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - - // update cache - if (key != null && id > 0) - { - idCache.put(key, id); - } - - return id; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/PackIn.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/PackIn.java deleted file mode 100644 index bb210d8674..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/PackIn.java +++ /dev/null @@ -1,305 +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) 2005 Robert KLEIN. robeklein@hotmail.com - * - *****************************************************************************/ - -package org.adempiere.pipo; - -import java.io.File; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.compiere.Adempiere; -import org.compiere.db.CConnection; -import org.compiere.model.X_AD_Package_Imp_Proc; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.CLogMgt; -import org.compiere.util.CLogger; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.compiere.util.Ini; -import org.compiere.util.Trx; - -/** - * IntPackIn Tool. - * - * @author: Robert KLEIN. robeklein@hotmail.com - */ -public class PackIn extends SvrProcess { - - /** Logger */ - private CLogger log = CLogger.getCLogger("PackIn"); - //update system maintain dictionary, default to true - public static String m_UpdateMode = "true"; - public static String m_Database = "Oracle"; - public static String m_Package_Dir = null; - public int p_PackIn_ID = 0; - - private Map tableCache = new HashMap(); - private Map columnCache = new HashMap(); - - /** - * add to table id cache - * @param tableName - * @param tableId - */ - public void addTable(String tableName, int tableId) { - tableCache.put(tableName, tableId); - } - - /** - * Find table id from cache - * @param tableName - * @return tableId - */ - public int getTableId(String tableName) { - if (tableCache.containsKey(tableName)) - return tableCache.get(tableName).intValue(); - else - return 0; - } - - /** - * add to column id cache - * @param tableName - * @param columnName - * @param columnId - */ - public void addColumn(String tableName, String columnName, int columnId) { - columnCache.put(tableName+"."+columnName, columnId); - } - - /** - * find column id from cache - * @param tableName - * @param columnName - * @return column id - */ - public int getColumnId(String tableName, String columnName) { - String key = tableName+"."+columnName; - if (columnCache.containsKey(key)) - return columnCache.get(key).intValue(); - else - return 0; - } - - protected void prepare() { - p_PackIn_ID = getRecord_ID(); - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) { - } - } // prepare - - /** - * Uses PackInHandler to update AD. - * - * @param fileName - * xml file to read - * @return status message - */ - public String importXML(String fileName, Properties ctx, String trxName) throws Exception { - if (log.isLoggable(Level.INFO)) log.info("importXML:" + fileName); - File in = new File(fileName); - if (!in.exists()) { - String msg = "File does not exist: " + fileName; - if (log.isLoggable(Level.INFO)) log.info("importXML:" + msg); - return msg; - } - try { - log.info("starting"); - System.setProperty("javax.xml.parsers.SAXParserFactory", - "org.apache.xerces.jaxp.SAXParserFactoryImpl"); - PackInHandler handler = new PackInHandler(); - handler.set_TrxName(trxName); - handler.setCtx(ctx); - handler.setProcess(this); - SAXParserFactory factory = SAXParserFactory.newInstance(); - SAXParser parser = factory.newSAXParser(); - String msg = "Start Parser"; - log.info(msg); - parser.parse(in, handler); - msg = "End Parser"; - log.info(msg); - return "OK."; - } catch (Exception e) { - log.log(Level.SEVERE, "importXML:", e); - throw e; - } - } - - /** - * Doit - * - * @return "" - * - */ - protected String doIt() throws Exception { - - X_AD_Package_Imp_Proc adPackageImp = new X_AD_Package_Imp_Proc(getCtx(), - p_PackIn_ID, null); - - // clear cache of previous runs - IDFinder.clearIDCache(); - - // Create Target directory if required - String packageDirectory = adPackageImp.getAD_Package_Dir(); - if (packageDirectory == null || packageDirectory.trim().length() == 0) { - packageDirectory = Adempiere.getAdempiereHome(); - } - File targetDir = new File( packageDirectory + File.separator - + "packages"); - - if (!targetDir.exists()) { - boolean success = (new File(packageDirectory - + File.separator + "packages")).mkdirs(); - if (!success) { - log.info("Target directory creation failed"); - } - } - - // Unzip package - File zipFilepath = new File(adPackageImp.getAD_Package_Source()); - if (log.isLoggable(Level.INFO)) log.info("zipFilepath->" + zipFilepath); - String PackageName = CreateZipFile.getParentDir(zipFilepath); - CreateZipFile.unpackFile(zipFilepath, targetDir); - - String dict_file = packageDirectory + File.separator - + "packages" + File.separator + PackageName + File.separator - + "dict" + File.separator + "PackOut.xml"; - if (log.isLoggable(Level.INFO)) log.info("dict file->" + dict_file); - PackIn packIn = new PackIn(); - - if (adPackageImp.isAD_Override_Dict() == true) - PackIn.m_UpdateMode = "true"; - else - PackIn.m_UpdateMode = "false"; - - PackIn.m_Package_Dir = packageDirectory + File.separator - + "packages" + File.separator + PackageName + File.separator; - if (DB.isOracle()) - PackIn.m_Database = "Oracle"; - else if (DB.isPostgreSQL()) - PackIn.m_Database = "PostgreSQL"; - - // call XML Handler - String msg = packIn.importXML(dict_file, getCtx(), get_TrxName()); - - // Generate Model Classes - // globalqss - don't call Generate Model must be done manual - // String args[] = - // {IntPackIn.getAD_Package_Dir()+"/dbPort/src/org/compiere/model/", - // "org.compiere.model","'U'"}; - // org.compiere.util.GenerateModel.main(args) ; - - return msg; - } // doIt - - /*************************************************************************** - * - * @param args - * XMLfile host port db username password - */ - public static void main(String[] args) { - if (args.length < 1) { - System.out - .println("Please give the file name to read as first parameter."); - System.exit(1); - } - - String file = args[0]; - org.compiere.Adempiere.startup(true); - - // globalqss - added argument 8 to generate system sequences - if (args.length > 8 && args[8].equals(Ini.P_ADEMPIERESYS)) { - System.out.println("**** WARNING: Working with system sequences " - + Ini.P_ADEMPIERESYS + " ****"); - Ini.setProperty(Ini.P_ADEMPIERESYS, true); - } - - PackIn packIn = new PackIn(); - // org.compiere.Compiere.startupEnvironment(true); - // Force connection if there are enough parameters. Else we work with - // Compiere.properties - if (args.length >= 6) { - // CConnection cc = CConnection.get("PostgreSQL", args[1], - // Integer.valueOf(args[2]).intValue(), args[5], args[3], args[4]); - CConnection cc = CConnection.get(); - // System.out.println("DB Connect String1:"+cc.getDbName()); - PackIn.m_Database = cc.getType(); - DB.setDBTarget(cc); - } - - // Level.OFF, Level.SEVERE, Level.WARNING, Level.INFO, - // Level.CONFIG, Level.FINE, Level.FINER, Level.FINEST, Level.ALL - - Level logLevel = Level.FINER; - - switch (Integer.parseInt(args[6])) { - case 1: - logLevel = Level.OFF; - break; - case 2: - logLevel = Level.SEVERE; - break; - case 3: - logLevel = Level.WARNING; - break; - case 4: - logLevel = Level.INFO; - break; - case 5: - logLevel = Level.CONFIG; - break; - case 6: - logLevel = Level.FINE; - break; - case 7: - logLevel = Level.FINER; - break; - case 8: - logLevel = Level.FINEST; - break; - case 9: - logLevel = Level.ALL; - break; - } - CLogMgt.setLevel(logLevel); - CLogMgt.setLoggerLevel(logLevel, null); - - if (args.length >= 8) - PackIn.m_UpdateMode = args[7]; - - String trxName = Trx.createTrxName("PackIn"); - try { - packIn.importXML(file, Env.getCtx(), trxName); - Trx trx = Trx.get(trxName, false); - if (trx != null) - trx.commit(true); - } catch (Exception e) { - System.out.println("Import Failed: " + e.getLocalizedMessage()); - Trx trx = Trx.get(trxName, false); - if (trx != null) - trx.rollback(); - } - - System.exit(0); - } // main -} // PackIn diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/PackInHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/PackInHandler.java deleted file mode 100644 index 495b3696b8..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/PackInHandler.java +++ /dev/null @@ -1,856 +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: Robert KLEIN. robeklein@hotmail.com * - * Contributor: Tim Heath * - * Contributor: Low Heng Sin hengsin@avantz.com * - *****************************************************************************/ - -package org.adempiere.pipo; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.OutputStream; -import java.sql.Connection; -import java.sql.DatabaseMetaData; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.Stack; -import java.util.logging.Level; - -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.sax.SAXTransformerFactory; -import javax.xml.transform.sax.TransformerHandler; -import javax.xml.transform.stream.StreamResult; - -import org.adempiere.pipo.handler.AdElementHandler; -import org.adempiere.pipo.handler.CodeSnipitElementHandler; -import org.adempiere.pipo.handler.ColumnElementHandler; -import org.adempiere.pipo.handler.CommonTranslationHandler; -import org.adempiere.pipo.handler.DataElementHandler; -import org.adempiere.pipo.handler.DistFileElementHandler; -import org.adempiere.pipo.handler.DynValRuleElementHandler; -import org.adempiere.pipo.handler.EntityTypeElementHandler; -import org.adempiere.pipo.handler.FieldElementHandler; -import org.adempiere.pipo.handler.FieldGroupElementHandler; -import org.adempiere.pipo.handler.FormAccessElementHandler; -import org.adempiere.pipo.handler.FormElementHandler; -import org.adempiere.pipo.handler.ImpFormatElementHandler; -import org.adempiere.pipo.handler.ImpFormatRowElementHandler; -import org.adempiere.pipo.handler.MenuElementHandler; -import org.adempiere.pipo.handler.MessageElementHandler; -import org.adempiere.pipo.handler.ModelValidatorElementHandler; -import org.adempiere.pipo.handler.OrgRoleElementHandler; -import org.adempiere.pipo.handler.PreferenceElementHandler; -import org.adempiere.pipo.handler.PrintFormatElementHandler; -import org.adempiere.pipo.handler.PrintFormatItemElementHandler; -import org.adempiere.pipo.handler.PrintPaperElementHandler; -import org.adempiere.pipo.handler.ProcessAccessElementHandler; -import org.adempiere.pipo.handler.ProcessElementHandler; -import org.adempiere.pipo.handler.ProcessParaElementHandler; -import org.adempiere.pipo.handler.ReferenceElementHandler; -import org.adempiere.pipo.handler.ReferenceListElementHandler; -import org.adempiere.pipo.handler.ReferenceTableElementHandler; -import org.adempiere.pipo.handler.ReportViewColElementHandler; -import org.adempiere.pipo.handler.ReportViewElementHandler; -import org.adempiere.pipo.handler.RoleElementHandler; -import org.adempiere.pipo.handler.SQLStatementElementHandler; -import org.adempiere.pipo.handler.TabElementHandler; -import org.adempiere.pipo.handler.TableElementHandler; -import org.adempiere.pipo.handler.TaskAccessElementHandler; -import org.adempiere.pipo.handler.TaskElementHandler; -import org.adempiere.pipo.handler.UserRoleElementHandler; -import org.adempiere.pipo.handler.WindowAccessElementHandler; -import org.adempiere.pipo.handler.WindowElementHandler; -import org.adempiere.pipo.handler.WorkflowAccessElementHandler; -import org.adempiere.pipo.handler.WorkflowElementHandler; -import org.adempiere.pipo.handler.WorkflowNodeElementHandler; -import org.adempiere.pipo.handler.WorkflowNodeNextConditionElementHandler; -import org.adempiere.pipo.handler.WorkflowNodeNextElementHandler; -import org.compiere.model.MSequence; -import org.compiere.util.CLogger; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.compiere.util.Trx; -import org.compiere.wf.MWFNode; -import org.compiere.wf.MWorkflow; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; -import org.xml.sax.helpers.DefaultHandler; - -/** - * SAX Handler for parsing XML description of the GUI. - * - * @author Marco LOMBARDO, lombardo@mayking.com - * @author Robert KLEIN, robeklein@hotmail - * - * Contributor: William G. Heath - Import of workflows and dynamic validations - */ -public class PackInHandler extends DefaultHandler { - - /** - * PackInHandler Handler - */ - public PackInHandler () { - setupHandlers(); - } // PackInHandler - - /** Set this if you want to update Dictionary */ - private String m_UpdateMode = "true"; - private String packageDirectory = null; - private String m_DatabaseType = "Oracle"; - private int m_AD_Client_ID = 0; - private int AD_Package_Imp_ID=0; - private int AD_Package_Imp_Inst_ID=0; - private CLogger log = CLogger.getCLogger(PackInHandler.class); - private OutputStream fw_document = null; - private TransformerHandler logDocument = null; - private StreamResult streamResult_document = null; - private SAXTransformerFactory tf_document = null; - private Transformer serializer_document = null; - private int Start_Doc = 0; - private String logDate = null; - private String PK_Status = "Installing"; - // transaction name - private String m_trxName = null; - private Properties m_ctx = null; - - private Maphandlers = null; - private List menus = new ArrayList(); - private List workflow = new ArrayList(); - private List nodes = new ArrayList(); - private List defer = new ArrayList(); - private Stack stack = new Stack(); - private PackIn packIn; - - private void init() throws SAXException { - if (packIn == null) - packIn = new PackIn(); - packageDirectory = PackIn.m_Package_Dir; - m_UpdateMode = PackIn.m_UpdateMode; - m_DatabaseType = PackIn.m_Database; - SimpleDateFormat formatter_file = new SimpleDateFormat("yyMMddHHmmssZ"); - SimpleDateFormat formatter_log = new SimpleDateFormat("MM/dd/yy HH:mm:ss"); - Date today = new Date(); - String fileDate = formatter_file.format(today); - logDate = formatter_log.format(today); - - String file_document = packageDirectory+File.separator+"doc"+File.separator+"Importlog_"+fileDate+".xml"; - if (log.isLoggable(Level.INFO)) log.info("file_document="+file_document); - try { - fw_document = new FileOutputStream (file_document, false); - } catch (FileNotFoundException e1) { - log.warning ("Failed to create log file:"+e1); - } - streamResult_document = new StreamResult(fw_document); - tf_document = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); - - try { - logDocument = tf_document.newTransformerHandler(); - } catch (TransformerConfigurationException e2) { - if (log.isLoggable(Level.INFO)) log.info ("startElement:"+e2); - } - serializer_document = logDocument.getTransformer(); - serializer_document.setOutputProperty(OutputKeys.ENCODING,"ISO-8859-1"); - serializer_document.setOutputProperty(OutputKeys.INDENT,"yes"); - logDocument.setResult(streamResult_document); - logDocument.startDocument(); - logDocument.processingInstruction("xml-stylesheet","type=\"text/css\" href=\"adempiereDocument.css\""); - Properties tmp = new Properties(); - if (m_ctx != null) - tmp.putAll(m_ctx); - else - tmp.putAll(Env.getCtx()); - m_ctx = tmp; - if (m_trxName == null) - m_trxName = Trx.createTrxName("PackIn"); - - m_AD_Client_ID = Env.getContextAsInt(m_ctx, "AD_Client_ID"); - - Start_Doc=1; - } - - private void setupHandlers() { - DataElementHandler dataHandler = new DataElementHandler(); - handlers = new HashMap(); - handlers.put("menu", new MenuElementHandler()); - handlers.put("adempieredata", dataHandler); - handlers.put("data", dataHandler); - handlers.put("dtable", dataHandler); - handlers.put("drow", dataHandler); - handlers.put("dcolumn", dataHandler); - handlers.put("window", new WindowElementHandler()); - handlers.put("windowaccess", new WindowAccessElementHandler()); - handlers.put("preference", new PreferenceElementHandler()); - handlers.put("tab", new TabElementHandler()); - handlers.put("field", new FieldElementHandler()); - handlers.put("process", new ProcessElementHandler()); - handlers.put("processpara", new ProcessParaElementHandler()); - handlers.put("processaccess", new ProcessAccessElementHandler()); - handlers.put("message", new MessageElementHandler()); - handlers.put("dynvalrule", new DynValRuleElementHandler()); - handlers.put("workflow", new WorkflowElementHandler()); - handlers.put("workflowNode", new WorkflowNodeElementHandler()); - handlers.put("workflowNodeNext", new WorkflowNodeNextElementHandler()); - handlers.put("workflowNodeNextCondition", new WorkflowNodeNextConditionElementHandler()); - handlers.put("workflowaccess", new WorkflowAccessElementHandler()); - handlers.put("table", new TableElementHandler()); - handlers.put("column", new ColumnElementHandler()); - handlers.put("role", new RoleElementHandler()); - handlers.put("userrole", new UserRoleElementHandler()); - handlers.put("orgrole", new OrgRoleElementHandler()); - handlers.put("form", new FormElementHandler()); - handlers.put("formaccess", new FormAccessElementHandler()); - handlers.put("task", new TaskElementHandler()); - handlers.put("taskaccess", new TaskAccessElementHandler()); - handlers.put("impformat", new ImpFormatElementHandler()); - handlers.put("impformatrow", new ImpFormatRowElementHandler()); - handlers.put("codesnipit", new CodeSnipitElementHandler()); - handlers.put("distfile", new DistFileElementHandler()); - handlers.put("reportview", new ReportViewElementHandler()); - handlers.put("reportviewcol", new ReportViewColElementHandler()); - handlers.put("printformat", new PrintFormatElementHandler()); - handlers.put("printformatitem", new PrintFormatItemElementHandler()); - handlers.put("SQLStatement", new SQLStatementElementHandler()); - handlers.put("reference", new ReferenceElementHandler()); - handlers.put("referencelist", new ReferenceListElementHandler()); - handlers.put("referencetable", new ReferenceTableElementHandler()); - handlers.put("fieldgroup", new FieldGroupElementHandler()); - handlers.put("element", new AdElementHandler()); - handlers.put("trl", new CommonTranslationHandler()); - handlers.put(ModelValidatorElementHandler.TAG_Name, new ModelValidatorElementHandler()); - handlers.put(EntityTypeElementHandler.TAG_Name, new EntityTypeElementHandler()); - handlers.put(PrintPaperElementHandler.TAG_Name, new PrintPaperElementHandler()); - } - - /** - * Receive notification of the start of an element. - * - * @param uri namespace - * @param localName simple name - * @param qName qualified name - * @param atts attributes - * @throws org.xml.sax.SAXException - */ - public void startElement (String uri, String localName, String qName, Attributes atts) - throws org.xml.sax.SAXException { - - // Create the package log - if (Start_Doc==0){ - init(); - } - // Check namespace. - String elementValue = null; - if ("".equals (uri)) - elementValue = qName; - else - elementValue = uri + localName; - - // adempiereAD. - if (elementValue.equals("adempiereAD")) { - if (log.isLoggable(Level.INFO)) log.info("adempiereAD updateMode="+m_UpdateMode); - //Start package log - AttributesImpl attsOut = new AttributesImpl(); - logDocument.startElement("","","adempiereDocument",attsOut); - logDocument.startElement("","","header",attsOut); - logDocument.characters((atts.getValue("Name")+" Install Log").toCharArray(),0,(atts.getValue("Name")+" Install Log").length()); - logDocument.endElement("","","header"); - logDocument.startElement("","","H3",attsOut); - logDocument.characters(("Package Name:" ).toCharArray(),0,("Package Name:" ).length()); - logDocument.endElement("","","H3"); - logDocument.startElement("","","packagename4log",attsOut); - logDocument.characters(atts.getValue("Name").toCharArray(),0,atts.getValue("Name").length()); - logDocument.endElement("","","packagename4log"); - logDocument.startElement("","","H3",attsOut); - logDocument.characters(("Version:" ).toCharArray(),0,("Version:" ).length()); - logDocument.endElement("","","H3"); - logDocument.startElement("","","Version",attsOut); - logDocument.characters(atts.getValue("Version").toCharArray(),0,atts.getValue("Version").length()); - logDocument.endElement("","","Version"); - logDocument.startElement("","","H3",attsOut); - logDocument.characters(("Package Install Date:" ).toCharArray(),0,("Package Install Date:" ).length()); - logDocument.endElement("","","H3"); - logDocument.startElement("","","installDate",attsOut); - logDocument.characters(logDate.toCharArray(),0,logDate.length()); - logDocument.endElement("","","installDate"); - logDocument.startElement("","","H3",attsOut); - logDocument.characters(("Min. Compiere Version:" ).toCharArray(),0,("Min. Compiere Version:" ).length()); - logDocument.endElement("","","H3"); - logDocument.startElement("","","CompVer",attsOut); - logDocument.characters(atts.getValue("CompVer").toCharArray(),0,atts.getValue("CompVer").length()); - logDocument.endElement("","","CompVer"); - logDocument.startElement("","","H3",attsOut); - logDocument.characters(("Min. Database Date:" ).toCharArray(),0,("Min. Database Date:" ).length()); - logDocument.endElement("","","H3"); - logDocument.startElement("","","DataBase",attsOut); - logDocument.characters(atts.getValue("DataBase").toCharArray(),0,atts.getValue("DataBase").length()); - logDocument.endElement("","","DataBase"); - - createImp_Sum_table ("AD_Package_Imp_Backup"); - createImp_Sum_table ("AD_Package_Imp"); - createImp_Sum_table ("AD_Package_Imp_Inst"); - createImp_Sum_table ("AD_Package_Imp_Detail"); - - // Update Summary Package History Table - String sql2 = "SELECT AD_PACKAGE_IMP_INST_ID FROM AD_PACKAGE_IMP_INST WHERE NAME =" - + "'" + atts.getValue("Name") - + "' AND PK_VERSION ='" + atts.getValue("Version") + "'"; - int PK_preInstalled = DB.getSQLValue(m_trxName,sql2); - - AD_Package_Imp_ID = DB.getNextID (Env.getAD_Client_ID(m_ctx), "AD_Package_Imp", null); - - StringBuffer sqlB = new StringBuffer ("INSERT INTO AD_Package_Imp") - .append( "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, " ) - .append( "AD_PACKAGE_IMP_ID, RELEASENO, PK_VERSION, VERSION " ) - .append( ", DESCRIPTION, NAME, CREATOR" ) - .append( ", CREATORCONTACT, CREATEDDATE,UPDATEDDATE,PK_STATUS)" ) - .append( "VALUES(" ) - .append( " "+ Env.getAD_Client_ID(m_ctx) ) - .append( ", "+ Env.getAD_Org_ID(m_ctx) ) - .append( ", "+ Env.getAD_User_ID(m_ctx) ) - .append( ", "+ Env.getAD_User_ID(m_ctx) ) - .append( ", " + AD_Package_Imp_ID ) - .append( ", '" + atts.getValue("CompVer") ) - .append( "', '" + atts.getValue("Version") ) - .append( "', '" + atts.getValue("DataBase") ) - .append( "', '" + atts.getValue("Description").replaceAll("'","''")) - .append( "', '" + atts.getValue("Name") ) - .append( "', '" + atts.getValue("creator") ) - .append( "', '" + atts.getValue("creatorcontact") ) - .append( "', '" + atts.getValue("createddate") ) - .append( "', '" + atts.getValue("updateddate") ) - .append( "', '" + PK_Status ) - .append( "')" ); - Env.getAD_User_ID(m_ctx); - int no = DB.executeUpdate (sqlB.toString(), m_trxName); - if (no == -1) - log.info("Insert to Package import failed"); - - if ( PK_preInstalled == -1){ - AD_Package_Imp_Inst_ID = DB.getNextID (Env.getAD_Client_ID(m_ctx), "AD_Package_Imp_Inst", null); - - //Insert Package into package install log - sqlB = new StringBuffer ("INSERT INTO AD_Package_Imp_Inst") - .append( "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, " ) - .append( "AD_PACKAGE_IMP_INST_ID, RELEASENO, PK_VERSION, VERSION " ) - .append( ", DESCRIPTION, NAME, CREATOR" ) - .append( ", CREATORCONTACT, CREATEDDATE,UPDATEDDATE,PK_STATUS)" ) - .append( "VALUES(" ) - .append( " "+ Env.getAD_Client_ID(m_ctx) ) - .append( ", "+ Env.getAD_Org_ID(m_ctx) ) - .append( ", "+ Env.getAD_User_ID(m_ctx) ) - .append( ", "+ Env.getAD_User_ID(m_ctx) ) - .append( ", " + AD_Package_Imp_Inst_ID ) - .append( ", '" + atts.getValue("CompVer") ) - .append( "', '" + atts.getValue("Version") ) - .append( "', '" + atts.getValue("DataBase") ) - .append( "', '" + atts.getValue("Description").replaceAll("'","''")) - .append( "', '" + atts.getValue("Name") ) - .append( "', '" + atts.getValue("creator") ) - .append( "', '" + atts.getValue("creatorcontact") ) - .append( "', '" + atts.getValue("createddate") ) - .append( "', '" + atts.getValue("updateddate") ) - .append( "', '" + PK_Status ) - .append( "')" ); - - Env.getAD_User_ID(m_ctx); - no = DB.executeUpdate (sqlB.toString(), m_trxName); - if (no == -1) - log.info("Insert to Package List import failed"); - } - else{ - //Update package list with package status - AD_Package_Imp_Inst_ID = PK_preInstalled; - sqlB = new StringBuffer ("UPDATE AD_Package_Imp_Inst " - + "SET PK_Status = '" + PK_Status - + "' WHERE AD_Package_Imp_Inst_ID = "+AD_Package_Imp_Inst_ID); - no = DB.executeUpdate (sqlB.toString(), m_trxName); - if (no == -1) - log.info("Update to package summary failed"); - } - Env.setContext(m_ctx, "AD_Package_Imp_ID", AD_Package_Imp_ID); - Env.setContext(m_ctx, "UpdateMode", m_UpdateMode); - Env.setContext(m_ctx, "TrxName", m_trxName); - Env.setContext(m_ctx, "PackageDirectory", packageDirectory); - m_ctx.put("LogDocument", logDocument); - m_ctx.put("PackInProcess", packIn); - } - else if (elementValue.equals("menu")) { - //defer - Element e = new Element(uri, localName, qName, new AttributesImpl(atts)); - if (stack.size() > 0) - e.parent = stack.peek(); - stack.push(e); - menus.add(e); - } - else { - Element e = new Element(uri, localName, qName, new AttributesImpl(atts)); - if (stack.size() > 0) - e.parent = stack.peek(); - stack.push(e); - if (elementValue.equals("workflow")) - { - workflow.add(e); - } - - if (elementValue.equals("workflowNode")) - { - nodes.add(e); - } - - - ElementHandler handler = handlers.get(elementValue); - if (handler != null) - handler.startElement(m_ctx, e); - if (e.defer) { - defer.add(new DeferEntry(e, true)); - } - } - } // startElement - - /** - * Check if Package History Table exists in database. If not create - * - * @param tablename - * - */ - public void createImp_Sum_table (String tablename){ - // Check if table exists. - - Connection conn = DB.getConnectionRW(); - DatabaseMetaData dbm; - try { - dbm = conn.getMetaData(); - // check if table is there - ResultSet tables = null; - if (m_DatabaseType.equals("Oracle")) - tables = dbm.getTables(null, null, tablename.toUpperCase(), null ); - else if (m_DatabaseType.equals("PostgreSQL")) - tables = dbm.getTables(null, null, tablename.toLowerCase(), null ); - - if (tables.next()) { - log.info ("Table Found"); - } - else { - if (tablename.equals("AD_Package_Imp")){ - StringBuffer sqlB = new StringBuffer ("CREATE TABLE "+ tablename.toUpperCase() + "( ") - .append( tablename.toUpperCase()+"_ID NUMBER(10) NOT NULL, " ) - .append( "AD_CLIENT_ID NUMBER(10) NOT NULL, " ) - .append( "AD_ORG_ID NUMBER(10) NOT NULL, " ) - .append( "ISACTIVE CHAR(1) DEFAULT 'Y' NOT NULL, " ) - .append( "CREATED DATE DEFAULT SYSDATE NOT NULL, " ) - .append( "CREATEDBY NUMBER(10) NOT NULL, " ) - .append( "UPDATED DATE DEFAULT SYSDATE NOT NULL, " ) - .append( "UPDATEDBY NUMBER(10) NOT NULL, " ) - .append( "NAME NVARCHAR2(60) NOT NULL, " ) - .append( "PK_STATUS NVARCHAR2(22), " ) - .append( "RELEASENO NVARCHAR2(20), " ) - .append( "PK_VERSION NVARCHAR2(20), " ) - .append( "VERSION NVARCHAR2(20), " ) - .append( "DESCRIPTION NVARCHAR2(1000) NOT NULL, " ) - .append( "EMAIL NVARCHAR2(60), " ) - .append( "PROCESSED CHAR(1) DEFAULT 'N', " ) - .append( "PROCESSING CHAR(1) DEFAULT 'N', " ) - .append( "CREATOR VARCHAR2(60 ), " ) - .append( "CREATORCONTACT VARCHAR2(255), " ) - .append( " CREATEDDATE VARCHAR2(25), " ) - .append( "UPDATEDDATE VARCHAR2(25), " ) - .append( "PRIMARY KEY( "+tablename.toUpperCase() +"_ID)"+")" ); - - try { - PreparedStatement pstmt = DB.prepareStatement(sqlB.toString(),ResultSet.TYPE_FORWARD_ONLY, - ResultSet.CONCUR_UPDATABLE, null); - pstmt.executeUpdate(); - MSequence.createTableSequence (m_ctx, "AD_Package_Imp", m_trxName); - pstmt.close(); - pstmt = null; - } - catch (Exception e) { - if (log.isLoggable(Level.INFO)) log.info ("createImp_Sum_table:"+e); - } - } - if (tablename.equals("AD_Package_Imp_Inst")){ - StringBuffer sqlB = new StringBuffer ("CREATE TABLE "+ tablename.toUpperCase() + "( ") - .append( tablename.toUpperCase()+"_ID NUMBER(10) NOT NULL, " ) - .append( "AD_CLIENT_ID NUMBER(10) NOT NULL, " ) - .append( "AD_ORG_ID NUMBER(10) NOT NULL, " ) - .append( "ISACTIVE CHAR(1) DEFAULT 'Y' NOT NULL, " ) - .append( "CREATED DATE DEFAULT SYSDATE NOT NULL, " ) - .append( "CREATEDBY NUMBER(10) NOT NULL, " ) - .append( "UPDATED DATE DEFAULT SYSDATE NOT NULL, " ) - .append( "UPDATEDBY NUMBER(10) NOT NULL, " ) - .append( "NAME NVARCHAR2(60) NOT NULL, " ) - .append( "PK_STATUS NVARCHAR2(22), " ) - .append( "RELEASENO NVARCHAR2(20), " ) - .append( "PK_VERSION NVARCHAR2(20), " ) - .append( "VERSION NVARCHAR2(20), " ) - .append( "DESCRIPTION NVARCHAR2(1000) NOT NULL, " ) - .append( "EMAIL NVARCHAR2(60), " ) - .append( "PROCESSED CHAR(1) DEFAULT 'N', " ) - .append( "PROCESSING CHAR(1) DEFAULT 'N', " ) - .append( "CREATOR VARCHAR2(60 ), " ) - .append( "CREATORCONTACT VARCHAR2(255), " ) - .append( " CREATEDDATE VARCHAR2(25), " ) - .append( "UPDATEDDATE VARCHAR2(25), " ) - .append( "PRIMARY KEY( "+tablename.toUpperCase() +"_ID)"+")" ); - - try { - PreparedStatement pstmt = DB.prepareStatement(sqlB.toString(),ResultSet.TYPE_FORWARD_ONLY, - ResultSet.CONCUR_UPDATABLE, null); - pstmt.executeUpdate(); - MSequence.createTableSequence (m_ctx, "AD_Package_Imp_Inst", m_trxName); - pstmt.close(); - pstmt = null; - } - catch (Exception e) { - if (log.isLoggable(Level.INFO)) log.info ("createImp_Sum_table:"+e); - } - } - if (tablename.equals("AD_Package_Imp_Detail")){ - StringBuffer sqlB = new StringBuffer ("CREATE TABLE "+ tablename.toUpperCase() + "( ") - .append( tablename.toUpperCase()+"_ID NUMBER(10) NOT NULL, " ) - .append( "AD_CLIENT_ID NUMBER(10) NOT NULL, " ) - .append( "AD_ORG_ID NUMBER(10) NOT NULL, " ) - .append( "ISACTIVE CHAR(1) DEFAULT 'Y' NOT NULL, " ) - .append( "CREATED DATE DEFAULT SYSDATE NOT NULL, " ) - .append( "CREATEDBY NUMBER(10) NOT NULL, " ) - .append( "UPDATED DATE DEFAULT SYSDATE NOT NULL, " ) - .append( "UPDATEDBY NUMBER(10) NOT NULL, " ) - .append( "NAME NVARCHAR2(60), " ) - .append( "AD_PACKAGE_IMP_ID Number(10) NOT NULL, " ) - .append( "AD_ORIGINAL_ID Number(10) NOT NULL, " ) - .append( "AD_BACKUP_ID Number(10), " ) - .append( "ACTION NVARCHAR2(20), " ) - .append( "SUCCESS NVARCHAR2(20), " ) - .append( "TYPE NVARCHAR2(60), " ) - .append( "TABLENAME NVARCHAR2(60), " ) - .append( "AD_TABLE_ID NUMBER(10), " ) - .append( "UNINSTALL CHAR(1), " ) - .append( "PRIMARY KEY( "+tablename.toUpperCase() +"_ID)"+")" ); - - try { - PreparedStatement pstmt = DB.prepareStatement(sqlB.toString(),ResultSet.TYPE_FORWARD_ONLY, - ResultSet.CONCUR_UPDATABLE, null); - pstmt.executeUpdate(); - MSequence.createTableSequence (m_ctx, "AD_Package_Imp_Detail", m_trxName); - pstmt.close(); - pstmt = null; - } - catch (Exception e) { - if (log.isLoggable(Level.INFO)) log.info ("createImp_Sum_table:"+e); - } - } - if (tablename.equals("AD_Package_Imp_Backup")){ - StringBuffer sqlB = new StringBuffer ("CREATE TABLE "+ tablename.toUpperCase() + "( ") - .append( tablename.toUpperCase()+"_ID NUMBER(10) NOT NULL, " ) - .append( "AD_CLIENT_ID NUMBER(10) NOT NULL, " ) - .append( "AD_ORG_ID NUMBER(10) NOT NULL, " ) - .append( "ISACTIVE CHAR(1) DEFAULT 'Y' NOT NULL, " ) - .append( "CREATED DATE DEFAULT SYSDATE NOT NULL, " ) - .append( "CREATEDBY NUMBER(10) NOT NULL, " ) - .append( "UPDATED DATE DEFAULT SYSDATE NOT NULL, " ) - .append( "UPDATEDBY NUMBER(10) NOT NULL, " ) - .append( "AD_PACKAGE_IMP_ID Number(10) NOT NULL, " ) - .append( "AD_PACKAGE_IMP_DETAIL_ID Number(10) NOT NULL, " ) - .append( "AD_TABLE_ID NUMBER(10), " ) - .append( "AD_COLUMN_ID NUMBER(10), " ) - .append( "AD_REFERENCE_ID NUMBER(10), " ) - .append( "AD_PACKAGE_IMP_BCK_DIR NVARCHAR2(255), " ) - .append( "AD_PACKAGE_IMP_ORG_DIR NVARCHAR2(255), " ) - .append( "COLVALUE NVARCHAR2(2000), " ) - .append( "UNINSTALL CHAR(1), " ) - .append( "PRIMARY KEY( "+tablename.toUpperCase() +"_ID)"+")" ); - - try { - PreparedStatement pstmt = DB.prepareStatement(sqlB.toString(),ResultSet.TYPE_FORWARD_ONLY, - ResultSet.CONCUR_UPDATABLE, null); - pstmt.executeUpdate(); - MSequence.createTableSequence (m_ctx, "AD_Package_Imp_Backup", m_trxName); - pstmt.close(); - pstmt = null; - } - catch (Exception e) { - if (log.isLoggable(Level.INFO)) log.info ("createImp_Sum_table:"+e); - } - } - } - - tables.close(); - } - - catch (SQLException e) { - if (log.isLoggable(Level.INFO)) log.info ("createImp_Sum_table:"+e); - } - - finally - { - if( conn != null ) - { - try - { - conn.close(); - } - catch( Exception e ){} - } - } - } - - /** - * Receive notification of the end of an element. - * @param uri namespace - * @param localName simple name - * @param qName qualified name - * @throws SAXException - */ - public void endElement (String uri, String localName, String qName) throws SAXException { - // Check namespace. - String elementValue = null; - if ("".equals (uri)) - elementValue = qName; - else - elementValue = uri + localName; - - if (elementValue.equals("adempiereAD")){ - processDeferElements(); - processMenuElements(); - if (!PK_Status.equals("Completed with errors")) - PK_Status = "Completed successfully"; - - //Update package history log with package status - StringBuffer sqlB = new StringBuffer ("UPDATE AD_Package_Imp " - + "SET PK_Status = '" + PK_Status - + "' WHERE AD_Package_Imp_ID = " + AD_Package_Imp_ID); - int no = DB.executeUpdate (sqlB.toString(), m_trxName); - if (no == -1) - log.info("Update to package summary failed"); - - //Update package list with package status - sqlB = new StringBuffer ("UPDATE AD_Package_Imp_Inst " - + "SET PK_Status = '" + PK_Status - + "' WHERE AD_Package_Imp_Inst_ID = " + AD_Package_Imp_Inst_ID); - no = DB.executeUpdate (sqlB.toString(), m_trxName); - if (no == -1) - log.info("Update to package list failed"); - - if(workflow.size() > 0) - { - for (Element e : workflow) - { - Attributes atts = e.attributes; - String workflowName = atts.getValue("Name"); - MWorkflow wf = null; - - int workflow_id = IDFinder.get_IDWithColumn("AD_Workflow", "Name", workflowName ,m_AD_Client_ID , m_trxName); - if(workflow_id > 0) - { - wf = new MWorkflow(m_ctx, workflow_id , m_trxName); - int node_id = 0; - - String name = atts.getValue("ADWorkflowNodeNameID"); - if (name != null && name.trim().length() > 0) - { - MWFNode[] nodes = wf.getNodes(false, m_AD_Client_ID); - - for (MWFNode node : nodes) - { - if (node.getName().trim().equals(name.trim())) - { - node_id = node.getAD_WF_Node_ID(); - wf.setAD_WF_Node_ID(node_id); - if (!wf.save()) - System.out.println("Can not save Start Node "+ name +"to Workflow " + workflowName + " do not exist "); - break; - } - } - - if(node_id == 0) - System.out.println("Unresolved: Start Node to Workflow " + workflowName + " do not exist "); - else - break; - } - - } - } - } - - if(nodes.size() > 0) - { - for (Element e : nodes) - { - Attributes atts = e.attributes; - String nodeName = atts.getValue("Name"); - MWFNode node = null; - int id = IDFinder.get_IDWithColumn("AD_WF_Node", "Name", nodeName, m_AD_Client_ID, false, m_trxName); - if(id > 0) - { - node = new MWFNode(m_ctx, id , m_trxName); - String workflowNodeName = atts.getValue("WorkflowNameID").trim(); - if (workflowNodeName != null && workflowNodeName.trim().length() > 0) - { - int workflow_id = IDFinder.get_IDWithColumn("AD_Workflow", "Name",workflowNodeName, m_AD_Client_ID, m_trxName); - if (workflow_id > 0) - { - node.setWorkflow_ID(workflow_id); - if(!node.save()) - { - System.out.println("can not save Workflow " + workflowNodeName ); - } - } - else - System.out.println("Unresolved: Workflow " + workflowNodeName + " do not exist "); - } - - } - } - } - - logDocument.endElement("","","adempiereDocument"); - logDocument.endDocument(); - try { - fw_document.close(); - } - catch (Exception e) - {} - - //reset - setupHandlers(); - } else { - Element e = stack.pop(); - if (e.defer) { - defer.add(new DeferEntry(e, false)); - } else { - ElementHandler handler = handlers.get(elementValue); - if (handler != null) - handler.endElement(m_ctx, e); - if (e.defer || e.deferEnd) - defer.add(new DeferEntry(e, false)); - else if (!e.skip) { - if (log.isLoggable(Level.INFO)) - log.info("Processed: " + e.getElementValue() + " - " + e.attributes.getValue(0)); - } - } - } - - - - } // endElement - - private void processMenuElements() throws SAXException { - ElementHandler handler = handlers.get("menu"); - if (menus.size() > 0 && handler != null) { - for (Element e : menus) { - handler.startElement(m_ctx, e); - handler.endElement(m_ctx, e); - } - } - } - - private void processDeferElements() throws SAXException { - if (defer.isEmpty()) return; - - do { - int startSize = defer.size(); - List tmp = new ArrayList(defer); - defer.clear(); - for (DeferEntry d : tmp) { - if (d.startElement) { - d.element.defer = false; - d.element.unresolved = ""; - d.element.pass++; - } else { - if (d.element.deferEnd) { - d.element.deferEnd = false; - d.element.unresolved = ""; - } - } - if (log.isLoggable(Level.INFO)) { - log.info("Processeing Defer Element: " + d.element.getElementValue() + " - " - + d.element.attributes.getValue(0)); - } - ElementHandler handler = handlers.get(d.element.getElementValue()); - if (handler != null) { - if (d.startElement) - handler.startElement(m_ctx, d.element); - else - handler.endElement(m_ctx, d.element); - } - if (d.element.defer) - defer.add(d); - else if (!d.startElement) { - if (d.element.deferEnd) - defer.add(d); - else { - if (log.isLoggable(Level.INFO)) - log.info("Imported Defer Element: " + d.element.getElementValue() + " - " - + d.element.attributes.getValue(0)); - } - } - } - int endSize = defer.size(); - if (startSize == endSize) break; - } while (defer.size() > 0); - - if (defer.size() > 0) { - int count = 0; - for (DeferEntry d : defer) { - if (!d.startElement) { - count++; - if (log.isLoggable(Level.SEVERE)) - log.severe("Unresolved: " + d.element.getElementValue() + " - " + d.element.attributes.getValue(0) + ", " + d.element.unresolved); - } - } - throw new RuntimeException("Failed to resolve dependency for " + count + " elements."); - //System.err.println("Failed to resolve dependency for " + count + " elements."); - } - } - - // globalqss - add support for trx in 3.1.2 - public void set_TrxName(String trxName) { - m_trxName = trxName; - } - - // globalqss - add support for trx in 3.1.2 - public void setCtx(Properties ctx) { - m_ctx = ctx; - } - - class DeferEntry { - Element element; - boolean startElement = false; - - DeferEntry(Element e, boolean b) { - element = e; - startElement = b; - } - } - - /** - * @param packIn - */ - public void setProcess(PackIn packIn) { - this.packIn = packIn; - } -} // PackInHandler diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/PackOut.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/PackOut.java deleted file mode 100644 index f9958e4573..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/PackOut.java +++ /dev/null @@ -1,894 +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 Robert KLEIN. robeklein@hotmail.com * - * Contributor(s): Low Heng Sin hengsin@avantz.com * - * Teo Sarca teo.sarca@arhipac.ro, SC ARHIPAC SERVICE SRL * - *****************************************************************************/ -package org.adempiere.pipo; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; -import javax.xml.transform.sax.SAXTransformerFactory; -import javax.xml.transform.sax.TransformerHandler; -import javax.xml.transform.stream.StreamResult; - -import org.adempiere.pipo.handler.AdElementHandler; -import org.adempiere.pipo.handler.CodeSnipitElementHandler; -import org.adempiere.pipo.handler.CommonTranslationHandler; -import org.adempiere.pipo.handler.DataElementHandler; -import org.adempiere.pipo.handler.DistFileElementHandler; -import org.adempiere.pipo.handler.DynValRuleElementHandler; -import org.adempiere.pipo.handler.EntityTypeElementHandler; -import org.adempiere.pipo.handler.FieldGroupElementHandler; -import org.adempiere.pipo.handler.FormElementHandler; -import org.adempiere.pipo.handler.ImpFormatElementHandler; -import org.adempiere.pipo.handler.MenuElementHandler; -import org.adempiere.pipo.handler.MessageElementHandler; -import org.adempiere.pipo.handler.ModelValidatorElementHandler; -import org.adempiere.pipo.handler.PrintFormatElementHandler; -import org.adempiere.pipo.handler.PrintPaperElementHandler; -import org.adempiere.pipo.handler.ProcessElementHandler; -import org.adempiere.pipo.handler.ReferenceElementHandler; -import org.adempiere.pipo.handler.ReportViewElementHandler; -import org.adempiere.pipo.handler.RoleElementHandler; -import org.adempiere.pipo.handler.SQLStatementElementHandler; -import org.adempiere.pipo.handler.TableElementHandler; -import org.adempiere.pipo.handler.TaskElementHandler; -import org.adempiere.pipo.handler.WindowElementHandler; -import org.adempiere.pipo.handler.WorkflowElementHandler; -import org.compiere.model.MSysConfig; -import org.compiere.model.X_AD_Element; -import org.compiere.model.X_AD_FieldGroup; -import org.compiere.model.X_AD_Package_Exp; -import org.compiere.model.X_AD_Package_Exp_Detail; -import org.compiere.model.X_AD_PrintPaper; -import org.compiere.model.X_AD_Reference; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - - -/** - * Convert AD to XML - * - * @author Robert Klein - * @version $Id: PackOut.java,v 1.0 - * - * Contributor: William G. Heath - Export of workflows and dynamic validations - * - * @author Teo Sarca, SC ARHIPAC SERVICE SRL - *
  • BF [ 1819315 ] PackOut: fix xml indentation not working - *
  • BF [ 1819319 ] PackOut: use just active AD_Package_Exp_Detail lines - *
  • -- - *
  • FR [ 2847727 ] 2pack export all messages for a entity type functionality - * https://sourceforge.net/tracker/?func=detail&atid=879335&aid=2847727&group_id=176962 - */ - -public class PackOut extends SvrProcess -{ - /** Record ID */ - private int p_PackOut_ID = 0; - private String PackOutVer = "005"; - private String packagedir = null; - private String packagename = null; - private String includesdir = null; - - public final static int MAX_OFFICIAL_ID = 999999; - - private Properties localContext = null; - - ProcessElementHandler processHandler = new ProcessElementHandler(); - TaskElementHandler taskHandler = new TaskElementHandler(); - FormElementHandler formHandler = new FormElementHandler(); - WindowElementHandler windowHandler = new WindowElementHandler(); - MenuElementHandler menuHandler = new MenuElementHandler(); - ReportViewElementHandler reportViewHandler = new ReportViewElementHandler(); - DataElementHandler dataHandler = new DataElementHandler(); - TableElementHandler tableHandler = new TableElementHandler(); - RoleElementHandler roleHandler = new RoleElementHandler(); - SQLStatementElementHandler sqlHandler = new SQLStatementElementHandler(); - ImpFormatElementHandler impFormtHandler = new ImpFormatElementHandler(); - CodeSnipitElementHandler codeHandler = new CodeSnipitElementHandler(); - WorkflowElementHandler workflowHandler = new WorkflowElementHandler(); - DynValRuleElementHandler dynValRuleHandler = new DynValRuleElementHandler(); - MessageElementHandler messageHandler = new MessageElementHandler(); - PrintFormatElementHandler printFormatHandler = new PrintFormatElementHandler(); - DistFileElementHandler distFileHandler = new DistFileElementHandler(); - ReferenceElementHandler referenceHandler = new ReferenceElementHandler(); - FieldGroupElementHandler fieldGroupHandler = new FieldGroupElementHandler(); - AdElementHandler adElementHandler = new AdElementHandler(); - CommonTranslationHandler translationHandler = new CommonTranslationHandler(); - ModelValidatorElementHandler modelValidatorHandler = new ModelValidatorElementHandler(); - EntityTypeElementHandler entitytypeHandler = new EntityTypeElementHandler(); - PrintPaperElementHandler printPaperHandler = new PrintPaperElementHandler(); - - /** - * Prepare - e.g., get Parameters. - */ - protected void prepare() - { - p_PackOut_ID = getRecord_ID(); - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) - { - } - } // prepare - - - /** - * Start the transformation to XML - * @return info - * @throws Exception - */ - protected String doIt() throws java.lang.Exception - { - initContext(); - - OutputStream packageDocStream = null; - OutputStream packOutDocStream = null; - if (log.isLoggable(Level.INFO)) log.info("doIt - AD_PACKAGE_EXP_ID=" + p_PackOut_ID); - if (p_PackOut_ID == 0) - throw new IllegalArgumentException("No Record"); - String sql1 = "SELECT * FROM AD_Package_Exp WHERE AD_Package_Exp_ID = "+p_PackOut_ID; - PreparedStatement pstmt1 = null; - pstmt1 = DB.prepareStatement (sql1, get_TrxName()); - - try { - ResultSet rs1 = pstmt1.executeQuery(); - while (rs1.next()){ - //Create the package documentation - packagedir = rs1.getString(X_AD_Package_Exp.COLUMNNAME_File_Directory).trim(); - if (!packagedir.endsWith("/") && !packagedir.endsWith("\\")) - packagedir += File.separator; - packagename = packagedir + rs1.getString(X_AD_Package_Exp.COLUMNNAME_Name); - includesdir = rs1.getString(X_AD_Package_Exp.COLUMNNAME_Name) + File.separator +"**"; - @SuppressWarnings("unused") - boolean success = (new File(packagename+File.separator+"doc"+File.separator)).mkdirs(); - String file_document = packagename+File.separator+"doc"+File.separator+rs1.getString(X_AD_Package_Exp.COLUMNNAME_Name)+"Doc.xml"; - packageDocStream = new FileOutputStream (file_document, false); - StreamResult streamResult_document = new StreamResult(new OutputStreamWriter(packageDocStream,"ISO-8859-1")); - SAXTransformerFactory tf_document = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); - tf_document.setAttribute("indent-number", new Integer(4)); - TransformerHandler packageDocument = tf_document.newTransformerHandler(); - Transformer serializer_document = packageDocument.getTransformer(); - serializer_document.setOutputProperty(OutputKeys.ENCODING,"ISO-8859-1"); - serializer_document.setOutputProperty(OutputKeys.INDENT,"yes"); - packageDocument.setResult(streamResult_document); - packageDocument.startDocument(); - AttributesImpl atts = new AttributesImpl(); - atts.clear(); - packageDocument.processingInstruction("xml-stylesheet","type=\"text/css\" href=\"adempiereDocument.css\""); - packageDocument.startElement("","","adempiereDocument",atts); - packageDocument.startElement("","","header",atts); - packageDocument.characters((rs1.getString(X_AD_Package_Exp.COLUMNNAME_Name)+" Package Description").toCharArray(),0,(rs1.getString(X_AD_Package_Exp.COLUMNNAME_Name)+" Package Description").length()); - packageDocument.endElement("","","header"); - packageDocument.startElement("","","H1",atts); - packageDocument.characters(("Package Name:" ).toCharArray(),0,("Package Name:" ).length()); - packageDocument.endElement("","","H1"); - packageDocument.startElement("","","packagename",atts); - packageDocument.characters(rs1.getString(X_AD_Package_Exp.COLUMNNAME_Name).toCharArray(),0,rs1.getString(X_AD_Package_Exp.COLUMNNAME_Name).length()); - packageDocument.endElement("","","packagename"); - packageDocument.startElement("","","H1",atts); - packageDocument.characters(("Creator:" ).toCharArray(),0,("Creator:").length()); - packageDocument.endElement("","","H1"); - packageDocument.startElement("","","creator",atts); - packageDocument.characters(rs1.getString(X_AD_Package_Exp.COLUMNNAME_UserName).toCharArray(),0,rs1.getString(X_AD_Package_Exp.COLUMNNAME_UserName).length()); - packageDocument.endElement("","","creator"); - packageDocument.startElement("","","H1",atts); - packageDocument.characters(("Email Address:" ).toCharArray(),0,("Email Address:" ).length()); - packageDocument.endElement("","","H1"); - packageDocument.startElement("","","creatorcontact",atts); - packageDocument.characters(rs1.getString(X_AD_Package_Exp.COLUMNNAME_EMail).toCharArray(),0,rs1.getString(X_AD_Package_Exp.COLUMNNAME_EMail).length()); - packageDocument.endElement("","","creatorcontact"); - packageDocument.startElement("","","H1",atts); - packageDocument.characters(("Created:" ).toCharArray(),0,("Created:" ).length()); - packageDocument.endElement("","","H1"); - packageDocument.startElement("","","createddate",atts); - packageDocument.characters(rs1.getString("Created").toString().toCharArray(),0,rs1.getString("Created").toString().length()); - packageDocument.endElement("","","createddate"); - packageDocument.startElement("","","H1",atts); - packageDocument.characters(("Updated:" ).toCharArray(),0,("Updated:" ).length()); - packageDocument.endElement("","","H1"); - packageDocument.startElement("","","updateddate",atts); - packageDocument.characters(rs1.getString("Updated").toString().toCharArray(),0,rs1.getString("Updated".toString()).length()); - packageDocument.endElement("","","updateddate"); - packageDocument.startElement("","","H1",atts); - packageDocument.characters(("Description:" ).toCharArray(),0,("Description:" ).length()); - packageDocument.endElement("","","H1"); - packageDocument.startElement("","","description",atts); - packageDocument.characters(rs1.getString(X_AD_Package_Exp.COLUMNNAME_Description).toCharArray(),0,rs1.getString(X_AD_Package_Exp.COLUMNNAME_Description).length()); - packageDocument.endElement("","","description"); - packageDocument.startElement("","","H1",atts); - packageDocument.characters(("Instructions:" ).toCharArray(),0,("Instructions:" ).length()); - packageDocument.endElement("","","H1"); - packageDocument.startElement("","","instructions",atts); - packageDocument.characters(rs1.getString(X_AD_Package_Exp.COLUMNNAME_Instructions).toCharArray(),0,rs1.getString(X_AD_Package_Exp.COLUMNNAME_Instructions).length()); - packageDocument.endElement("","","instructions"); - packageDocument.startElement("","","H1",atts); - packageDocument.characters(("Files in Package:" ).toCharArray(),0,("Files in Package:" ).length()); - packageDocument.endElement("","","H1"); - packageDocument.startElement("","","file",atts); - packageDocument.characters(("File: PackOut.xml").toCharArray(),0,("File: PackOut.xml").length()); - packageDocument.endElement("","","file"); - packageDocument.startElement("","","filedirectory",atts); - packageDocument.characters("Directory: \\dict\\".toCharArray(),0,("Directory: \\dict\\").length()); - packageDocument.endElement("","","filedirectory"); - packageDocument.startElement("","","filenotes",atts); - packageDocument.characters("Notes: Contains all application/object settings for package".toCharArray(),0,"Notes: Contains all application/object settings for package".length()); - packageDocument.endElement("","","filenotes"); - success = (new File(packagename+File.separator+ "dict"+File.separator)).mkdirs(); - String file_menu = packagename+File.separator+ "dict"+File.separator+"PackOut.xml"; - packOutDocStream = new FileOutputStream (file_menu, false); - StreamResult streamResult_menu = new StreamResult(new OutputStreamWriter(packOutDocStream,"ISO-8859-1")); - SAXTransformerFactory tf_menu = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); - tf_menu.setAttribute("indent-number", new Integer(4)); - TransformerHandler packOutDocument = tf_menu.newTransformerHandler(); - Transformer serializer_menu = packOutDocument.getTransformer(); - serializer_menu.setOutputProperty(OutputKeys.ENCODING,"ISO-8859-1"); - serializer_menu.setOutputProperty(OutputKeys.INDENT,"yes"); - packOutDocument.setResult(streamResult_menu); - packOutDocument.startDocument(); - atts.clear(); - atts.addAttribute("","","Name","CDATA",rs1.getString(X_AD_Package_Exp.COLUMNNAME_Name)); - atts.addAttribute("","","Version","CDATA",rs1.getString(X_AD_Package_Exp.COLUMNNAME_PK_Version)); - atts.addAttribute("","","CompVer","CDATA",rs1.getString(X_AD_Package_Exp.COLUMNNAME_ReleaseNo)); - atts.addAttribute("","","DataBase","CDATA",rs1.getString(X_AD_Package_Exp.COLUMNNAME_Version)); - atts.addAttribute("","","Description","CDATA",rs1.getString(X_AD_Package_Exp.COLUMNNAME_Description)); - atts.addAttribute("","","creator","CDATA",rs1.getString(X_AD_Package_Exp.COLUMNNAME_UserName)); - atts.addAttribute("","","creatorcontact","CDATA",rs1.getString(X_AD_Package_Exp.COLUMNNAME_EMail)); - atts.addAttribute("","","createddate","CDATA",rs1.getString("Created")); - atts.addAttribute("","","updateddate","CDATA",rs1.getString("Updated")); - atts.addAttribute("","","PackOutVer","CDATA",PackOutVer); - - packOutDocument.startElement("","","adempiereAD",atts); - atts.clear(); - - final String sql = "SELECT * FROM AD_Package_Exp_Detail WHERE AD_Package_Exp_ID = "+p_PackOut_ID+" AND IsActive='Y' ORDER BY Line ASC"; - PreparedStatement pstmt = null; - ResultSet rs = null; - try - { - pstmt = DB.prepareStatement (sql, get_TrxName()); - rs = pstmt.executeQuery(); - while (rs.next()) - { - final String Type = rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_Type); - final int AD_EntityType_ID = rs.getInt(X_AD_Package_Exp_Detail.COLUMNNAME_AD_EntityType_ID); - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_EntityType_ID, AD_EntityType_ID); - // - if (log.isLoggable(Level.INFO)) log.info(rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_Line)); - if (Type.compareTo("M") == 0){ - createMenu(rs.getInt(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Menu_ID), packOutDocument ); - } - else if (Type.compareTo("P") == 0) - createProcess ( rs.getInt(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Process_ID), packOutDocument ); - else if (Type.compareTo("R") == 0) - createReportview ( rs.getInt(X_AD_Package_Exp_Detail.COLUMNNAME_AD_ReportView_ID), packOutDocument ); - else if (Type.compareTo("D") == 0) - createData ( rs.getInt(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Table_ID), rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_SQLStatement), packOutDocument ); - else if (Type.compareTo("T") == 0) - createTable (rs.getInt(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Table_ID), packOutDocument); - else if (Type.compareTo("X") == 0) - createForm (rs.getInt(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Form_ID), packOutDocument); - else if (Type.compareTo("W") == 0) - createWindow (rs.getInt(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Window_ID), packOutDocument); - else if (Type.compareTo("S") == 0) - createRoles (rs.getInt(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Role_ID), packOutDocument); - else if (Type.compareTo("SQL") == 0) - createSQL (rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_SQLStatement), rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_DBType), packOutDocument); - else if (Type.compareTo("IMP") == 0) - createImpFormat (rs.getInt(X_AD_Package_Exp_Detail.COLUMNNAME_AD_ImpFormat_ID), packOutDocument); - else if (Type.compareTo("REF") == 0) - createReference (rs.getInt(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Reference_ID), packOutDocument); - else if (Type.compareTo("SNI") == 0) - createSnipit( - rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_Destination_Directory), - rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_Destination_FileName), - rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Package_Code_Old), - rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Package_Code_New), - rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_ReleaseNo), - packOutDocument); - else if (Type.compareTo("F") == 0) - createWorkflow (rs.getInt(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Workflow_ID), packOutDocument); - else if (Type.compareTo("V") == 0) - createDynamicRuleValidation(rs.getInt(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Val_Rule_ID), packOutDocument); - else if (Type.compareTo("MSG") == 0) - createMessage(rs.getInt(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Message_ID), packOutDocument); - else if (Type.compareTo("PFT") == 0) - createPrintFormat(rs.getInt(X_AD_Package_Exp_Detail.COLUMNNAME_AD_PrintFormat_ID), packOutDocument); - else if (Type.compareTo(X_AD_Package_Exp_Detail.TYPE_ModelValidator) == 0) - createModelValidator(rs.getInt(X_AD_Package_Exp_Detail.COLUMNNAME_AD_ModelValidator_ID), packOutDocument); - else if (Type.compareTo(X_AD_Package_Exp_Detail.TYPE_EntityType) == 0) - createEntityType(AD_EntityType_ID, packOutDocument); - else if (Type.compareTo("C") == 0){ - log.log(Level.INFO,"In PackOut.java handling Code or Other 2pack module creation"); - - String fullDirectory = rs1.getString(X_AD_Package_Exp.COLUMNNAME_File_Directory) + rs1.getString(X_AD_Package_Exp.COLUMNNAME_Name)+rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_Target_Directory); - log.log(Level.INFO,"fullDirectory" + fullDirectory); - String targetDirectoryModified=null; - char fileseperator1 = '/'; - char fileseperator2 = '\\'; - //Correct package for proper file separator - if (File.separator.equals("/")){ - targetDirectoryModified = fullDirectory.replace(fileseperator2,fileseperator1); - } - else - targetDirectoryModified = fullDirectory.replace(fileseperator1,fileseperator2); - - String target_File = (targetDirectoryModified); - success = (new File(target_File).mkdirs()); - fullDirectory = rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_File_Directory); - targetDirectoryModified=null; - //Correct package for proper file separator - if (File.separator.equals("/")){ - targetDirectoryModified = fullDirectory.replace(fileseperator2,fileseperator1); - } - else - targetDirectoryModified = fullDirectory.replace(fileseperator2,fileseperator1); - - copyCode( - targetDirectoryModified + rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_FileName), - target_File + rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_FileName)); - - atts.clear(); - - if(rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_Destination_Directory) != null){ - - fullDirectory = rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_Destination_Directory); - String destinationDirectoryModified=null; - - //Correct package for proper file separator - if (File.separator.equals("/")){ - destinationDirectoryModified = fullDirectory.replace(fileseperator2,fileseperator1); - } - else - destinationDirectoryModified = fullDirectory.replace(fileseperator2,fileseperator1); - - createDistributeFile( - rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_FileName), - rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_Target_Directory), - rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_ReleaseNo), - destinationDirectoryModified, - packOutDocument); - - } - - if(rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_FileName) != null){ - packageDocument.startElement("","","file",atts); - packageDocument.characters(("File: "+rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_FileName)).toCharArray(),0,("File: "+rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_FileName)).length()); - packageDocument.endElement("","","file"); - } - packageDocument.startElement("","","filedirectory",atts); - packageDocument.characters( - ("Directory: " + rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_Target_Directory)).toCharArray(), - 0, - ("Directory: " + rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_Target_Directory)).length()); - packageDocument.endElement("","","filedirectory"); - - packageDocument.startElement("","","filenotes",atts); - packageDocument.characters( - ("Notes: " + rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_Description)).toCharArray(), - 0, - (("Notes: " + rs.getString(X_AD_Package_Exp_Detail.COLUMNNAME_Description)).length())); - packageDocument.endElement("","","filenotes"); - } - } - // - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_EntityType_ID); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - atts.clear(); - //no longer use - //packOutDocument.startElement("","","menuset",atts); - //packOutDocument.endElement("","","menuset"); - packOutDocument.endElement("","","adempiereAD"); - packOutDocument.endDocument();packageDocument.endElement("","","adempiereDocument"); - packageDocument.endDocument(); - //m_Exp.setProcessed(true); - //m_Exp.saveEx(); - } - rs1.close(); - pstmt1.close(); - pstmt1 = null; - } - catch (Exception e) - { - log.log(Level.SEVERE,e.getLocalizedMessage(), e); - throw e; - } - finally - { - try - { - if (pstmt1 != null) - pstmt1.close (); - } - catch (Exception e) - {} - pstmt1 = null; - - // Close streams - teo_sarca [ 1704762 ] - if (packageDocStream != null) - try { - packageDocStream.close(); - } catch (Exception e) {} - if (packOutDocStream != null) - try { - packOutDocStream.close(); - } catch (Exception e) {} - } - - //create compressed packages - //set the files - File srcFolder = new File(packagedir); - File destZipFile = new File(packagename+".zip"); - File destTarFile = new File(packagename+".tar"); - File destGZipFile = new File(packagename+".tar.gz"); - - //delete the old packages if necessary - @SuppressWarnings("unused") - boolean success = destZipFile.delete(); - success = destTarFile.delete(); - success = destGZipFile.delete(); - - //create the compressed packages - CreateZipFile.zipFolder(srcFolder, destZipFile, includesdir); - CreateZipFile.tarFolder(srcFolder, destTarFile, includesdir); - CreateZipFile.gzipFile(destTarFile, destGZipFile); - - //Clean .tar file up - success = destTarFile.delete(); - - return "Finish Process"; - } // doIt - - private void initContext() { - Properties tmp = new Properties(); - if (getCtx() != null) - tmp.putAll(getCtx()); - tmp.put("TrxName", get_TrxName()); - tmp.put("PackOutProcess", this); - localContext = tmp; - } - - private void copyCode (String sourceName, String copyName) - { - copyFile (sourceName, copyName ); - } - - /** - * - * @param AD_Menu_ID - * @param packOutDocument - * @throws Exception - */ - public void createMenu(int AD_Menu_ID, TransformerHandler packOutDocument) throws SAXException { - Env.setContext(getCtx(), "AD_Menu_ID", AD_Menu_ID); - menuHandler.create(getCtx(), packOutDocument); - getCtx().remove("AD_Menu_ID"); - } - - /** - * - * @param AD_PrintFormat_ID - * @param packOutDocument - * @throws Exception - */ - public void createPrintFormat (int AD_PrintFormat_ID, TransformerHandler packOutDocument) throws Exception - { - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_PrintFormat_ID, AD_PrintFormat_ID); - printFormatHandler.create(getCtx(), packOutDocument); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_PrintFormat_ID); - } - - /** - * - * @param AD_Message_ID - * @param packOutDocument - * @throws Exception - */ - public void createMessage (int AD_Message_ID, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Message_ID, AD_Message_ID); - messageHandler.create(getCtx(), packOutDocument); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Message_ID); - } - - /** - * - * @param AD_Val_Rule_ID - * @param packOutDocument - * @throws Exception - */ - public void createDynamicRuleValidation (int AD_Val_Rule_ID, - TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Val_Rule_ID, AD_Val_Rule_ID); - dynValRuleHandler.create(getCtx(), packOutDocument); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Val_Rule_ID); - } - - /** - * - * @param AD_Workflow_ID - * @param packOutDocument - * @throws SAXException - */ - public void createWorkflow (int AD_Workflow_ID, TransformerHandler packOutDocument) - throws SAXException - { - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Workflow_ID, AD_Workflow_ID); - workflowHandler.create(getCtx(), packOutDocument); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Workflow_ID); - } - - /** - * - * @param FileName - * @param Source_Directory - * @param ReleaseNo - * @param Target_Directory - * @param atts - * @param packOutDocument - * @throws SAXException - */ - public void createDistributeFile (String FileName, String Source_Directory, String ReleaseNo,String Target_Directory, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_FileName, FileName); - Env.setContext(getCtx(), "Source_Directory", Source_Directory); - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_ReleaseNo, ReleaseNo); - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_Target_Directory, Target_Directory); - distFileHandler.create(getCtx(), packOutDocument); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_FileName); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_ReleaseNo); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_Target_Directory); - getCtx().remove("Source_Directory"); - } - - /** - * - * @param AD_Form_ID - * @param packOutDocument - * @throws SAXException - */ - public void createForm (int AD_Form_ID, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), "AD_Form_ID", AD_Form_ID); - formHandler.create(getCtx(), packOutDocument); - getCtx().remove("AD_Form_ID"); - } - - /** - * - * @param AD_Task_ID - * @param packOutDocument - * @throws SAXException - */ - public void createTask (int AD_Task_ID, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), "AD_Task_ID", AD_Task_ID); - taskHandler.create(getCtx(), packOutDocument); - getCtx().remove("AD_Task_ID"); - } - - /** - * - * @param AD_Process_ID - * @param packOutDocument - * @throws SAXException - */ - public void createProcess (int AD_Process_ID, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), "AD_Process_ID", AD_Process_ID); - processHandler.create(getCtx(), packOutDocument); - getCtx().remove("AD_Process_ID"); - } - - /** - * - * @param AD_Window_ID - * @param packOutDocument - * @throws SAXException - */ - public void createWindow (int AD_Window_ID, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), "AD_Window_ID", AD_Window_ID); - windowHandler.create(getCtx(), packOutDocument); - getCtx().remove("AD_Window_ID"); - } - - /** - * - * @param table_id - * @param sql - * @param packOutDocument - * @throws SAXException - */ - public void createData (int table_id, String sql, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Table_ID, table_id); - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_SQLStatement, sql); - dataHandler.create(getCtx(), packOutDocument); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Table_ID); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_SQLStatement); - } - - /** - * - * @param Reportview_id - * @param packOutDocument - * @throws SAXException - */ - public void createReportview (int Reportview_id, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_ReportView_ID, Reportview_id); - reportViewHandler.create(getCtx(), packOutDocument); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_ReportView_ID); - } - - /** - * - * @param SQLStatement - * @param DBType - * @param packOutDocument - * @throws SAXException - */ - public void createSQL (String SQLStatement, String DBType, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_SQLStatement, SQLStatement); - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_DBType, DBType); - sqlHandler.create(getCtx(), packOutDocument); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_SQLStatement); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_DBType); - } - - /** - * - * @param FileDir - * @param FileName - * @param OldCode - * @param NewCode - * @param ReleaseNo - * @param atts - * @param packOutDocument - * @throws SAXException - */ - public void createSnipit (String FileDir, String FileName, String OldCode, String NewCode, String ReleaseNo, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_File_Directory, FileDir); - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_FileName, FileName); - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Package_Code_Old, OldCode); - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Package_Code_New, NewCode); - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_ReleaseNo, ReleaseNo); - codeHandler.create(getCtx(), packOutDocument); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_File_Directory); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_FileName); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Package_Code_Old); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Package_Code_New); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_ReleaseNo); - } - - /** - * - * @param Role_id - * @param packOutDocument - * @throws SAXException - */ - public void createRoles (int Role_id, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Role_ID, Role_id); - roleHandler.create(getCtx(), packOutDocument); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Role_ID); - } - - /** - * - * @param Reference_id - * @param packOutDocument - * @throws SAXException - */ - public void createReference (int Reference_id, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), X_AD_Reference.COLUMNNAME_AD_Reference_ID, Reference_id); - referenceHandler.create(getCtx(), packOutDocument); - getCtx().remove(X_AD_Reference.COLUMNNAME_AD_Reference_ID); - } - - /** - * - * @param import_id - * @param packOutDocument - * @throws SAXException - */ - public void createImpFormat (int import_id, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_ImpFormat_ID, import_id); - impFormtHandler.create(getCtx(), packOutDocument); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_ImpFormat_ID); - - } - - /** - * - * @param table_id - * @param packOutDocument - * @throws SAXException - */ - public void createTable (int table_id, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Table_ID, table_id); - tableHandler.create(getCtx(), packOutDocument); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Table_ID); - } - - /** - * - * @param FieldGroup_id - * @param packOutDocument - * @throws SAXException - */ - public void createFieldGroupElement (int FieldGroup_id, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), X_AD_FieldGroup.COLUMNNAME_AD_FieldGroup_ID, FieldGroup_id); - fieldGroupHandler.create(getCtx(), packOutDocument); - getCtx().remove(X_AD_FieldGroup.COLUMNNAME_AD_FieldGroup_ID); - } - - /** - * - * @param Reference_id - * @param packOutDocument - * @throws SAXException - */ - public void createAdElement (int Ad_Element_id, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), X_AD_Element.COLUMNNAME_AD_Element_ID, Ad_Element_id); - adElementHandler.create(getCtx(), packOutDocument); - getCtx().remove(X_AD_Element.COLUMNNAME_AD_Element_ID); - } - - /** - * - * @param parentTableName - * @param parentID - * @param packOutDocument - * @throws SAXException - */ - public void createTranslations (String parentTableName, int parentID, TransformerHandler packOutDocument) throws SAXException - { - if (MSysConfig.getBooleanValue(MSysConfig.TWOPACK_HANDLE_TRANSLATIONS, false)) { - - Env.setContext(getCtx(), CommonTranslationHandler.CONTEXT_KEY__PARENT_TABLE, - parentTableName); - Env.setContext(getCtx(), CommonTranslationHandler.CONTEXT_KEY__PARENT_RECORD_ID, - parentID); - - translationHandler.create(getCtx(), packOutDocument); - - getCtx().remove(CommonTranslationHandler.CONTEXT_KEY__PARENT_TABLE); - getCtx().remove(CommonTranslationHandler.CONTEXT_KEY__PARENT_RECORD_ID); - } - } - - /** - * - * @param AD_ModelValidator_ID - * @param packOutDocument - * @throws Exception - */ - public void createModelValidator (int AD_ModelValidator_ID, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_ModelValidator_ID, AD_ModelValidator_ID); - modelValidatorHandler.create(getCtx(), packOutDocument); - getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_ModelValidator_ID); - } - - /** - * - * @param AD_EntityType_ID - * @param packOutDocument - * @throws Exception - */ - public void createEntityType (int AD_EntityType_ID, TransformerHandler packOutDocument) throws Exception - { - //Env.setContext(getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_EntityType_ID, AD_EntityType_ID); - entitytypeHandler.create(getCtx(), packOutDocument); - //getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_EntityType_ID); - } - - public void createPrintPaper (int AD_PrintPaper_ID, TransformerHandler packOutDocument) throws SAXException - { - Env.setContext(getCtx(), X_AD_PrintPaper.COLUMNNAME_AD_PrintPaper_ID, AD_PrintPaper_ID); - printPaperHandler.create(getCtx(), packOutDocument); - getCtx().remove(X_AD_PrintPaper.COLUMNNAME_AD_PrintPaper_ID); - } - - - - public void copyFile (String sourceName, String copyName ) { - InputStream source; // Stream for reading from the source file. - OutputStream copy; // Stream for writing the copy. - boolean force; // This is set to true if the "-f" option - // is specified on the command line. - int byteCount; // Number of bytes copied from the source file. - - force = true; - try { - source = new FileInputStream(sourceName); - } - catch (FileNotFoundException e) { - System.out.println("Can't find file \"" + sourceName + "\"."); - return; - } - File file = new File(copyName); - if (file.exists() && force == false) { - System.out.println( - "Output file exists. Use the -f option to replace it."); - return; - } - try { - copy = new FileOutputStream(copyName, false); - } - catch (IOException e) { - System.out.println("Can't open output file \"" - + copyName + "\"."); - return; - } - byteCount = 0; - try { - while (true) { - int data = source.read(); - if (data < 0) - break; - copy.write(data); - byteCount++; - } - source.close(); - copy.close(); - System.out.println("Successfully copied " + byteCount + " bytes."); - } - catch (Exception e) { - System.out.println("Error occurred while copying. "+ byteCount + " bytes copied."); - System.out.println(e.toString()); - } - } - - - @Override - public Properties getCtx() { - return localContext != null ? localContext : super.getCtx(); - } - -} // PackOut diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/PackRoll.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/PackRoll.java deleted file mode 100644 index 06a21d9fb0..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/PackRoll.java +++ /dev/null @@ -1,546 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Carlos Ruiz - globalqss - *****************************************************************************/ -package org.adempiere.pipo; - -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_ACCOUNT; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_AMOUNT; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_BUTTON; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_COLOR; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_DATE; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_DATETIME; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_INTEGER; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_LIST; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_LOCATION; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_LOCATOR; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_MEMO; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_NUMBER; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_PRODUCTATTRIBUTE; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_QUANTITY; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_SEARCH; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_TABLE; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_TABLEDIR; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_TEXT; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_YES_NO; - -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.InputStream; -import java.io.OutputStream; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.util.logging.Level; - -import org.compiere.model.SystemIDs; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; -import org.compiere.util.Env; - -/** - * Reverse Package Install. - * - * @author Robert Klein - * - */ -public class PackRoll extends SvrProcess { - /** Package from Record */ - private int m_AD_Package_Imp_ID = 0; - @SuppressWarnings("unused") - private String m_Processing = null; - StringBuffer sql = null; - StringBuffer sqlB = null; - String columnIDName = null; - StringBuffer sqlC = null; - StringBuffer sqlD = null; - - /** - * Prepare - e.g., get Parameters. - */ - protected void prepare() { - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) { - String name = para[i].getParameterName(); - if (para[i].getParameter() == null) - ; - else if (name.equals("Processing")) - m_Processing = (String) para[i].getParameter(); - else - log.log(Level.SEVERE, "prepare - Unknown Parameter: " + name); - } - m_AD_Package_Imp_ID = getRecord_ID(); - } // prepare - - /** - * Perform process. - * - * @return Message (translated text) - * @throws Exception - * if not successful - */ - protected String doIt() throws Exception { - - sqlB = new StringBuffer("UPDATE AD_Package_Imp " - + "SET PK_Status = 'Uninstalling' " - + "WHERE AD_Package_Imp_ID = " + m_AD_Package_Imp_ID); - @SuppressWarnings("unused") - int no = DB.executeUpdate(sqlB.toString(), get_TrxName()); - - log.info("Starting Package Reversal"); - // select all records that are new or have been updated by package - // install - sql = new StringBuffer("SELECT * " + "FROM AD_Package_Imp_Detail " - + "WHERE AD_Package_Imp_ID=" + m_AD_Package_Imp_ID - + " ORDER BY AD_Package_Imp_Detail_ID DESC"); - if (log.isLoggable(Level.INFO)) log.info(sql.toString()); - PreparedStatement pstmt = null; - try { - pstmt = DB.prepareStatement(sql.toString(), null); - - ResultSet rs = pstmt.executeQuery(); - - while (rs.next()) { - - if (rs.getString("Type").compareTo("file") == 0) { - - sqlB = new StringBuffer("SELECT * " - + "FROM AD_Package_Imp_Backup " - + "WHERE AD_Package_Imp_Detail_ID=" - + rs.getInt("AD_Package_Imp_Detail_ID") - + " AND AD_Package_Imp_ID=" - + rs.getInt("AD_Package_Imp_ID")); - PreparedStatement pstmt2 = null; - try { - pstmt2 = DB.prepareStatement(sqlB.toString(), - get_TrxName()); - - ResultSet rs2 = pstmt2.executeQuery(); - - while (rs2.next()) { - if (rs2.getString("AD_Package_Imp_Bck_Dir") != null - && rs2.getString("AD_Package_Imp_Org_Dir") != null) { - copyFile(rs2 - .getString("AD_Package_Imp_Bck_Dir"), - rs2.getString("AD_Package_Imp_Org_Dir")); - } - - // Update uninstall field for column - sqlD = new StringBuffer( - "UPDATE AD_Package_Imp_Backup" - + " SET Uninstall = 'Y'" - + " WHERE AD_Package_Imp_Backup_ID = " - + rs2 - .getInt("AD_Package_Imp_Backup_ID")); - no = DB.executeUpdate(sqlD.toString(), null); - - // Update uninstall field for record - sqlD = new StringBuffer( - "UPDATE AD_Package_Imp_Detail" - + " SET Uninstall = 'Y'" - + " WHERE AD_Package_Imp_Detail_ID = " - + rs - .getInt("AD_Package_Imp_Detail_ID")); - no = DB.executeUpdate(sqlD.toString(), null); - } - - rs2.close(); - pstmt2.close(); - pstmt2 = null; - } catch (Exception e) { - log.log(Level.SEVERE, "doIt", e); - } finally { - try { - if (pstmt2 != null) - pstmt2.close(); - } catch (Exception e) { - } - pstmt2 = null; - } - } else { - - String tableName = rs.getString("TableName"); - - int recordID = rs.getInt("AD_Original_ID"); - - // determine if record is an update to the original - // if record is an update then update record with backup - // settings - // else inactivate record - if (rs.getString("ACTION").compareTo("Update") == 0) { - // select all backed up columns for the record - sqlB = new StringBuffer("SELECT * " - + "FROM AD_Package_Imp_Backup " - + "WHERE AD_Package_Imp_Detail_ID=" - + rs.getInt("AD_Package_Imp_Detail_ID") - + " AND AD_Package_Imp_ID=" - + rs.getInt("AD_Package_Imp_ID")); - PreparedStatement pstmt2 = null; - try { - pstmt2 = DB.prepareStatement(sqlB.toString(), - get_TrxName()); - - ResultSet rs2 = pstmt2.executeQuery(); - - while (rs2.next()) { - - sql = new StringBuffer( - "SELECT IsKey FROM AD_Column WHERE AD_Column_ID = ?"); - String IsKey = DB.getSQLValueString( - get_TrxName(), sql.toString(), rs2 - .getInt("AD_Column_ID")); - - // Get Table value - sql = new StringBuffer( - "SELECT TableName FROM AD_Table WHERE AD_Table_ID = ?"); - tableName = DB.getSQLValueString(get_TrxName(), - sql.toString(), rs2 - .getInt("AD_Table_ID")); - - // Get Column Name - sql = new StringBuffer( - "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID = ?"); - String columnName = DB.getSQLValueString( - get_TrxName(), sql.toString(), rs2 - .getInt("AD_Column_ID")); - // log.info(columnName); - - // Adjust for Column reference table - if (tableName.equals("AD_Ref_Table")) { - columnIDName = "AD_Reference_ID"; - } else if (tableName.equals("AD_TreeNodeMM")) { - columnIDName = "Node_ID"; - } else { - columnIDName = tableName + "_ID"; - } - - // Update columns for record - // TODO make process more efficient! - if (IsKey.equals("Y") - || columnName.startsWith("Created")) - ; // ignore is a Key Column or if it - // references a Created(By) Column - // Update "Updated" field with current date - else if (columnName.equals("Updated")) { - // Format Date - sqlC = new StringBuffer("UPDATE " - + tableName + " SET " + columnName - + " = SYSDATE WHERE " - + columnIDName + " = " + recordID); - - no = DB.executeUpdate(sqlC.toString(), null); - // Update uninstall field - sqlD = new StringBuffer( - "UPDATE AD_Package_Imp_Backup" - + " SET Uninstall = 'Y'" - + " WHERE AD_Package_Imp_Backup_ID = " - + rs2.getInt("AD_Package_Imp_Backup_ID")); - no = DB.executeUpdate(sqlD.toString(), null); - } - // Update "UpdatedBy" field with current user - else if (columnName.equals("UpdatedBy")) { - sqlC = new StringBuffer("UPDATE " - + tableName + " SET " + columnName - + " = '" - + Env.getAD_User_ID(Env.getCtx()) - + "' WHERE " + columnIDName + " = " - + recordID); - no = DB - .executeUpdate(sqlC.toString(), - null); - - sqlD = new StringBuffer( - "UPDATE AD_Package_Imp_Backup" - + " SET Uninstall = 'Y'" - + " WHERE AD_Package_Imp_Backup_ID = " - + rs2 - .getInt("AD_Package_Imp_Backup_ID")); - no = DB - .executeUpdate(sqlD.toString(), - null); - } - // Update all other fields with backup - // information - else { - - int v_AD_Reference_ID = rs2 - .getInt("AD_Reference_ID"); - // Update columns that are Strings adjusting - // for single quotes - if (v_AD_Reference_ID == 10 - || v_AD_Reference_ID == REFERENCE_DATATYPE_TEXT - || v_AD_Reference_ID == REFERENCE_DATATYPE_MEMO - || v_AD_Reference_ID == REFERENCE_DATATYPE_LIST - // Carlos Ruiz globalqss, special - // treatment for EntityType - // it's a Table reference but must - // be treated as String - || (v_AD_Reference_ID == SystemIDs.REFERENCE_DATATYPE_TABLE && columnName - .equalsIgnoreCase("EntityType"))) - if (rs2.getObject("ColValue") - .toString().equals("null")) { - ;// Ignore null values - } else { - sqlC = new StringBuffer("UPDATE " - + tableName - + " SET " - + columnName - + " = " - + "'" - + rs2.getObject("ColValue") - .toString() - .replaceAll("'", - "''") + "'" - + " WHERE " + columnIDName - + " = " + recordID); - } - // Update true/false columns - else if (v_AD_Reference_ID == REFERENCE_DATATYPE_YES_NO - || v_AD_Reference_ID == REFERENCE_DATATYPE_BUTTON) { - sqlC = new StringBuffer("UPDATE " - + tableName - + " SET " - + columnName - + " = " - + (rs2.getObject("ColValue") - .toString().equals( - "true") ? "'Y'" - : "'N'") + " WHERE " - + columnIDName + " = " - + recordID); - } - // Update columns that are Strings adjusting - // for single quotes - else if (v_AD_Reference_ID == SystemIDs.REFERENCE_DATATYPE_ID - || v_AD_Reference_ID == REFERENCE_DATATYPE_TABLE - || v_AD_Reference_ID == REFERENCE_DATATYPE_TABLEDIR - || v_AD_Reference_ID == REFERENCE_DATATYPE_LOCATION - || v_AD_Reference_ID == REFERENCE_DATATYPE_ACCOUNT - || v_AD_Reference_ID == REFERENCE_DATATYPE_COLOR - || v_AD_Reference_ID == REFERENCE_DATATYPE_SEARCH - || v_AD_Reference_ID == REFERENCE_DATATYPE_LOCATOR - || v_AD_Reference_ID == REFERENCE_DATATYPE_PRODUCTATTRIBUTE) - sqlC = new StringBuffer("UPDATE " - + tableName - + " SET " - + columnName - + " = " - + rs2.getObject("ColValue") - .toString().replaceAll( - "'", "''") - + " WHERE " + columnIDName - + " = " + recordID); - // Update columns that are numbers - else if (v_AD_Reference_ID == REFERENCE_DATATYPE_INTEGER - || v_AD_Reference_ID == REFERENCE_DATATYPE_AMOUNT - || v_AD_Reference_ID == REFERENCE_DATATYPE_NUMBER - || v_AD_Reference_ID == REFERENCE_DATATYPE_QUANTITY) - sqlC = new StringBuffer("UPDATE " - + tableName - + " SET " - + columnName - + " = " - + rs2.getObject("ColValue") - .toString().replaceAll( - "'", "''") - + " WHERE " + columnIDName - + " = " + recordID); - // Update columns that are dates - else if (v_AD_Reference_ID == REFERENCE_DATATYPE_DATE - || v_AD_Reference_ID == REFERENCE_DATATYPE_DATETIME) - // TODO Develop portable code to update - // date columns - ;// ignore - else - // 23-Binary, 24-Radio, 26-RowID, - // 32-Image not supported - ;// ignore - // execute update - no = DB - .executeUpdate(sqlC.toString(), - null); - - // Update uninstall field for column - sqlD = new StringBuffer( - "UPDATE AD_Package_Imp_Backup" - + " SET Uninstall = 'Y'" - + " WHERE AD_Package_Imp_Backup_ID = " - + rs2 - .getInt("AD_Package_Imp_Backup_ID")); - no = DB - .executeUpdate(sqlD.toString(), - null); - - // Update uninstall field for record - sqlD = new StringBuffer( - "UPDATE AD_Package_Imp_Detail" - + " SET Uninstall = 'Y'" - + " WHERE AD_Package_Imp_Detail_ID = " - + rs - .getInt("AD_Package_Imp_Detail_ID")); - no = DB - .executeUpdate(sqlD.toString(), - null); - - } - } - rs2.close(); - pstmt2.close(); - pstmt2 = null; - } catch (Exception e) { - log.log(Level.SEVERE, "doIt", e); - } finally { - try { - if (pstmt2 != null) - pstmt2.close(); - } catch (Exception e) { - } - pstmt2 = null; - } - } // ********* Update Loop - // Inactivate new records - else if (rs.getString("ACTION").compareTo("New") == 0) { - if (tableName.equals("AD_Ref_Table")) - columnIDName = "AD_Reference_ID"; - else if (tableName.equals("AD_TreeNodeMM")) - columnIDName = "Node_ID"; - else - columnIDName = tableName + "_ID"; - sqlC = new StringBuffer("UPDATE " + tableName - + " SET IsActive = 'N'" + " WHERE " - + columnIDName + " = " + recordID); - - // execute update - no = DB.executeUpdate(sqlC.toString(), null); - - // Update uninstall field for record - sqlD = new StringBuffer("UPDATE AD_Package_Imp_Detail" - + " SET Uninstall = 'Y'" - + " WHERE AD_Package_Imp_Detail_ID = " - + rs.getInt("AD_Package_Imp_Detail_ID")); - no = DB.executeUpdate(sqlD.toString(), null); - } - } - - } - rs.close(); - pstmt.close(); - pstmt = null; - } catch (Exception e) { - log.log(Level.SEVERE, "doIt", e); - } finally { - try { - if (pstmt != null) - pstmt.close(); - } catch (Exception e) { - } - pstmt = null; - } - // Update uninstall field for package - sqlD = new StringBuffer("UPDATE AD_Package_Imp" - + " SET Uninstall = 'Y'" + " WHERE AD_Package_Imp_ID = " - + m_AD_Package_Imp_ID); - no = DB.executeUpdate(sqlD.toString(), get_TrxName()); - - sqlB = new StringBuffer("UPDATE AD_Package_Imp " - + " SET PK_Status = 'Uninstalled'" - + " WHERE AD_Package_Imp_ID = " + m_AD_Package_Imp_ID); - no = DB.executeUpdate(sqlB.toString(), get_TrxName()); - - log.info("Package Reversal Completed"); - - return ""; - } // doIt - - /** - * Open input file for processing - * - * @param String - * file with path - * - */ - public FileInputStream OpenInputfile(String filePath) { - - FileInputStream fileTarget = null; - - try { - fileTarget = new FileInputStream(filePath); - } catch (FileNotFoundException e) { - System.out.println("Can't find file "); - - return null; - } - return fileTarget; - } - - /** - * Open output file for processing - * - * @param String - * file with path - * - */ - public OutputStream OpenOutputfile(String filePath) { - - OutputStream fileTarget = null; - - try { - fileTarget = new FileOutputStream(filePath); - } catch (FileNotFoundException e) { - System.out.println("Can't find file "); - - return null; - } - return fileTarget; - } - - /** - * Copyfile - * - * @param String - * file with path - * - */ - public int copyFile(String sourceFile, String targetFile) { - - OutputStream target = OpenOutputfile(targetFile); - InputStream source = OpenInputfile(sourceFile); - - int byteCount = 0; - int success = 0; - try { - while (true) { - int data = source.read(); - if (data < 0) - break; - target.write(data); - byteCount++; - } - source.close(); - target.close(); - - System.out.println("Successfully copied " + byteCount + " bytes."); - } catch (Exception e) { - System.out.println("Error occurred while copying. " + byteCount - + " bytes copied."); - System.out.println(e.toString()); - - success = -1; - } - return success; - } - -} // PackRoll diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/PoFiller.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/PoFiller.java deleted file mode 100644 index 5d9b786ad1..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/PoFiller.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.adempiere.pipo; - -import org.compiere.model.PO; -import org.xml.sax.Attributes; - - -public class PoFiller{ - - PO po = null; - Attributes atts = null; - - public PoFiller(PO po, Attributes atts){ - - this.po = po; - - this.atts = atts; - } - - public void setString(String columnName){ - - String value = atts.getValue(columnName); - - value = "".equals(value) ? null : value; - - po.set_ValueOfColumn(columnName, value); - } - - public void setBoolean(String columnName){ - - String value = atts.getValue(columnName); - - boolean bool = "true".equals(value) ? true : false; - - po.set_ValueOfColumn(columnName, bool); - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/exception/DatabaseAccessException.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/exception/DatabaseAccessException.java deleted file mode 100644 index e68ff65b25..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/exception/DatabaseAccessException.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.adempiere.pipo.exception; - -public class DatabaseAccessException extends RuntimeException { - - /** - * - */ - private static final long serialVersionUID = -8834711100842625706L; - - public DatabaseAccessException() { - super(); - } - - public DatabaseAccessException(String message, Throwable cause) { - super(message, cause); - } - - public DatabaseAccessException(String message) { - super(message); - } - - public DatabaseAccessException(Throwable cause) { - super(cause); - } - -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/exception/NonUniqueIDLookupException.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/exception/NonUniqueIDLookupException.java deleted file mode 100644 index 0164046534..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/exception/NonUniqueIDLookupException.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * - */ -package org.adempiere.pipo.exception; - -import org.adempiere.exceptions.AdempiereException; - -/** - * Throws when IDFinder methods have found more then one id (result) for search criteria - * @author Teo Sarca, teo.sarca@gmail.com - * - */ -public class NonUniqueIDLookupException extends AdempiereException -{ - /** - * - */ - private static final long serialVersionUID = 3523717056935105698L; - - public NonUniqueIDLookupException(String what) - { - super("Non Unique ID Lookup found for "+what); - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/exception/POSaveFailedException.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/exception/POSaveFailedException.java deleted file mode 100644 index e76e194565..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/exception/POSaveFailedException.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.adempiere.pipo.exception; - -public class POSaveFailedException extends RuntimeException { - - /** - * - */ - private static final long serialVersionUID = 8325708851137221459L; - - public POSaveFailedException() { - super(); - } - - public POSaveFailedException(String message, Throwable cause) { - super(message, cause); - } - - public POSaveFailedException(String message) { - super(message); - } - - public POSaveFailedException(Throwable cause) { - super(cause); - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/AdElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/AdElementHandler.java deleted file mode 100644 index c275d01b6e..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/AdElementHandler.java +++ /dev/null @@ -1,170 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.AttributeFiller; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.PoFiller; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.X_AD_Element; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class AdElementHandler extends AbstractElementHandler { - - private List processedElements = new ArrayList(); - - private final String AD_ELEMENT = "AD_Element"; - - - public void startElement(Properties ctx, Element element) - throws SAXException { - String elementValue = element.getElementValue(); - int AD_Backup_ID = -1; - String Object_Status = null; - - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("ColumnName")); - - String entitytype = atts.getValue("EntityType"); - String ColumnName = atts.getValue("ColumnName"); - - if (isProcessElement(ctx, entitytype)) { - - int id = get_IDWithColumn(ctx, X_AD_Element.Table_Name, X_AD_Element.COLUMNNAME_ColumnName, ColumnName); - - X_AD_Element m_AdElement = new X_AD_Element(ctx, id, - getTrxName(ctx)); - if (id <= 0 && atts.getValue("AD_Element_ID") != null && Integer.parseInt(atts.getValue("AD_Element_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_AdElement.setAD_Element_ID(Integer.parseInt(atts.getValue("AD_Element_ID"))); - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, AD_ELEMENT, m_AdElement); - Object_Status = "Update"; - if (processedElements.contains(id)) { - element.skip = true; - return; - } - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - - PoFiller pf = new PoFiller(m_AdElement, atts); - - pf.setBoolean("IsActive"); - - pf.setString(X_AD_Element.COLUMNNAME_ColumnName); - pf.setString(X_AD_Element.COLUMNNAME_Description); - pf.setString(X_AD_Element.COLUMNNAME_EntityType); - pf.setString(X_AD_Element.COLUMNNAME_Help); - pf.setString(X_AD_Element.COLUMNNAME_Name); - pf.setString(X_AD_Element.COLUMNNAME_PrintName); - - pf.setString(X_AD_Element.COLUMNNAME_PO_Description); - pf.setString(X_AD_Element.COLUMNNAME_PO_Name); - pf.setString(X_AD_Element.COLUMNNAME_PO_Help); - pf.setString(X_AD_Element.COLUMNNAME_PO_PrintName); - - - if (m_AdElement.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_AdElement.getName(), "Element", - m_AdElement.get_ID(), AD_Backup_ID, Object_Status, - AD_ELEMENT, get_IDWithColumn(ctx, "AD_Table", - "TableName", AD_ELEMENT)); - - element.recordId = m_AdElement.getAD_Element_ID(); - - processedElements.add(m_AdElement.getAD_Element_ID()); - - } else { - record_log(ctx, 0, m_AdElement.getName(), "Element", - m_AdElement.get_ID(), AD_Backup_ID, Object_Status, - AD_ELEMENT, get_IDWithColumn(ctx, "AD_Table", - "TableName", AD_ELEMENT)); - throw new POSaveFailedException("Reference"); - } - } else { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - - - int adElement_id = Env.getContextAsInt(ctx, - X_AD_Element.COLUMNNAME_AD_Element_ID); - - if (processedElements.contains(adElement_id)) - return; - - processedElements.add(adElement_id); - - X_AD_Element m_AdElement = new X_AD_Element(ctx, adElement_id, null); - - AttributesImpl atts = new AttributesImpl(); - createAdElementBinding(atts, m_AdElement); - - document.startElement("", "", "element", atts); - - PackOut packOut = (PackOut)ctx.get("PackOutProcess"); - - packOut.createTranslations(X_AD_Element.Table_Name, - m_AdElement.get_ID(), document); - - document.endElement("", "", "element"); - } - - - private AttributesImpl createAdElementBinding(AttributesImpl atts, - X_AD_Element m_AdElement) { - - AttributeFiller filler = new AttributeFiller(atts, m_AdElement); - if (m_AdElement.getAD_Element_ID() <= PackOut.MAX_OFFICIAL_ID) - filler.add(X_AD_Element.COLUMNNAME_AD_Element_ID); - - filler.add("IsActive"); - - filler.add(X_AD_Element.COLUMNNAME_ColumnName); - filler.add(X_AD_Element.COLUMNNAME_Description); - filler.add(X_AD_Element.COLUMNNAME_EntityType); - filler.add(X_AD_Element.COLUMNNAME_Help); - filler.add(X_AD_Element.COLUMNNAME_Name); - filler.add(X_AD_Element.COLUMNNAME_PrintName); - - filler.add(X_AD_Element.COLUMNNAME_PO_Description); - filler.add(X_AD_Element.COLUMNNAME_PO_Name); - filler.add(X_AD_Element.COLUMNNAME_PO_Help); - filler.add(X_AD_Element.COLUMNNAME_PO_PrintName); - - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/CodeSnipitElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/CodeSnipitElementHandler.java deleted file mode 100644 index b193450f8c..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/CodeSnipitElementHandler.java +++ /dev/null @@ -1,244 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileWriter; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.compiere.Adempiere; -import org.compiere.model.X_AD_Package_Exp_Detail; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class CodeSnipitElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - @SuppressWarnings("unused") - int AD_Backup_ID = -1; - String Object_Status = null; - log.info(elementValue); - Object_Status = "Update"; - Attributes atts = element.attributes; - String releaseNumber = atts.getValue("ReleaseNo"); - //Check Release Number - if(Adempiere.MAIN_VERSION.equals(releaseNumber)||releaseNumber.equals("all")){ - String sourceName = atts.getValue("filename"); - String targetDirectory = atts.getValue("filedir"); - String oldCode = atts.getValue("oldcode"); - String newCode = atts.getValue("newcode"); - - int idDetail=0; - InputStream source; // Stream for reading from the source file. - OutputStream copy; // Stream for writing the copy. - @SuppressWarnings("unused") - File currentDirectory = new File("."); - - String packagePath=null; - String sourcePath=null; - - //get adempiere-all directory - try { - packagePath = getPackageDirectory(ctx); - File parentDirectory = new File(packagePath); - while (!parentDirectory.getName().equals("packages")){ - parentDirectory = parentDirectory.getParentFile(); - } - parentDirectory = parentDirectory.getParentFile(); - sourcePath = parentDirectory.getCanonicalPath(); - } catch (IOException e1) { - System.out.println("Can't find adempiere-all directory."); - } - - // Create backup directory if required - File backupDir = new File(packagePath+File.separator+"backup"+File.separator); - if (!backupDir.exists()){ - boolean success = (new File(packagePath+File.separator+"backup"+File.separator)).mkdirs(); - if (!success) { - log.info("Backup directory creation failed"); - } - } - - //Correct target directory for proper file separator - String fullDirectory = sourcePath+targetDirectory; - String targetDirectoryModified=null; - String fileDate = null; - char slash1 = '\\'; - char slash2 = '/'; - if (File.separator.equals("/")) - targetDirectoryModified = fullDirectory.replace(slash1,slash2); - else - targetDirectoryModified = fullDirectory.replace(slash2,slash1); - - File file = new File(targetDirectoryModified+sourceName); - if (log.isLoggable(Level.INFO)) log.info(targetDirectoryModified+sourceName); - //TODO: derived force from user parameter - boolean force = true; - // check to see if overwrites are allowed - if (file.exists() && force == false) { - System.out.println( - "Output file exists. Use the -f option to replace it."); - return; - } - //backup file to package directory - else if (file.exists() && force == true) { - Object_Status = "Update"; - if (log.isLoggable(Level.INFO)) log.info("Target Backup:"+targetDirectoryModified+sourceName); - source = OpenInputfile(targetDirectoryModified+sourceName); - SimpleDateFormat formatter_file = new SimpleDateFormat("yyMMddHHmmssSSSSZ"); - Date today = new Date(); - fileDate = formatter_file.format(today); - copy = OpenOutputfile(packagePath+File.separator+"backup"+File.separator+fileDate+"_"+sourceName); - if (log.isLoggable(Level.INFO)) log.info("Source Backup:"+packagePath+File.separator+"backup"+File.separator+fileDate+"_"+sourceName); - copyFile (source,copy); - if (log.isLoggable(Level.INFO)) log.info("Backup Complete"); - } - - int success = readReplace(targetDirectoryModified+sourceName, oldCode, newCode); - -// Record in log - int idBackup = DB.getNextID (getClientId(ctx), "AD_Package_Imp_Backup", getTrxName(ctx)); - if (success != -1){ - try { - idDetail = record_log (ctx, 1, sourceName,"codesnipit", 0,0, Object_Status,sourceName,0); - } catch (SAXException e) { - if (log.isLoggable(Level.INFO)) log.info ("setfile:"+e); - } - } - else{ - try { - idDetail = record_log (ctx, 0, sourceName,"codesnipit", 0,0, Object_Status,sourceName,0); - } catch (SAXException e) { - if (log.isLoggable(Level.INFO)) log.info ("setfile:"+e); - } - } - //Record in transaction file - StringBuffer sqlB = new StringBuffer ("INSERT INTO AD_Package_Imp_Backup") - .append( "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, " ) - .append( "AD_PACKAGE_IMP_BACKUP_ID, AD_PACKAGE_IMP_DETAIL_ID, AD_PACKAGE_IMP_ID," ) - .append( " AD_PACKAGE_IMP_ORG_DIR, AD_PACKAGE_IMP_BCK_DIR)" ) - .append( "VALUES(" ) - .append( " "+ Env.getAD_Client_ID(ctx) ) - .append( ", "+ Env.getAD_Org_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", " + idBackup ) - .append( ", " + idDetail ) - .append( ", " + getPackageImpId(ctx) ) - .append( ", '" + targetDirectoryModified+sourceName ) - .append( "', '" + packagePath+File.separator+"backup"+File.separator+fileDate+"_"+sourceName ) - .append( "')"); - - int no = DB.executeUpdate (sqlB.toString(), getTrxName(ctx)); - if (no == -1) - log.info("Insert to import backup failed"); - - } - } - - - /** - * Find and replace code - * - * @param file name - * @param old string - * @param new string - * - */ - public static int readReplace(String fname, String oldPattern, String replPattern){ - String line; - StringBuffer sb = new StringBuffer(); - - try { - - FileInputStream fis = new FileInputStream(fname); - BufferedReader reader=new BufferedReader ( new InputStreamReader(fis)); - while((line = reader.readLine()) != null) { - line = line.replaceAll(oldPattern, replPattern); - System.err.println(line); - sb.append(line+"\n"); - } - reader.close(); - BufferedWriter out=new BufferedWriter ( new FileWriter(fname)); - out.write(sb.toString()); - out.close(); - } - catch (Throwable e) { - System.err.println("error replacing codesnipit "+e); - return -1; - } - return 0; - } - - - public void endElement(Properties ctx, Element element) - throws SAXException { - } - - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - String FileDir = Env.getContext(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_File_Directory); - String FileName = Env.getContext(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_FileName); - String OldCode = Env.getContext(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Package_Code_Old); - String NewCode = Env.getContext(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Package_Code_New); - String ReleaseNo = Env.getContext(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_ReleaseNo); - AttributesImpl atts = new AttributesImpl(); - createSnipitBinding(atts, FileDir, FileName, OldCode, NewCode, ReleaseNo); - document.startElement("","","codesnipit",atts); - document.endElement("","","codesnipit"); - } - - private AttributesImpl createSnipitBinding( AttributesImpl atts, String FileDir, String FileName, String OldCode, String NewCode, String ReleaseNo) - { - atts.clear(); - atts.addAttribute("","","filedir","CDATA",FileDir); - atts.addAttribute("","","filename","CDATA",FileName); - String preOldCode = OldCode.toString(); - String preNewCode = NewCode.toString(); - String modOldCode = preOldCode.replaceAll("\\$","\\\\\\$").replaceAll("\\.","\\\\.") - .replaceAll("\\^","\\\\^").replaceAll("\\(","\\\\(").replaceAll("\\)","\\\\)") - .replaceAll("\\[","\\\\[").replaceAll("\\/","\\\\/").replaceAll("\\+","\\\\+") - .replaceAll("\\*","\\\\*").replaceAll("\\|","\\\\|"); - String modNewCode = preNewCode.replaceAll("\\$","\\\\\\$").replaceAll("\\.","\\\\.") - .replaceAll("\\^","\\\\^").replaceAll("\\(","\\\\(").replaceAll("\\)","\\\\)") - .replaceAll("\\[","\\\\[").replaceAll("\\/","\\\\/").replaceAll("\\+","\\\\+") - .replaceAll("\\*","\\\\*").replaceAll("\\|","\\\\|"); - atts.addAttribute("","","oldcode","CDATA",modOldCode); - atts.addAttribute("","","newcode","CDATA",modNewCode); - atts.addAttribute("","","ReleaseNo","CDATA",ReleaseNo); - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ColumnElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ColumnElementHandler.java deleted file mode 100644 index 9ae111db17..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ColumnElementHandler.java +++ /dev/null @@ -1,527 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - * Teo Sarca, teo.sarca@gmail.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.math.BigDecimal; -import java.sql.Connection; -import java.sql.DatabaseMetaData; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackIn; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.DatabaseAccessException; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.MColumn; -import org.compiere.model.MTable; -import org.compiere.model.X_AD_Column; -import org.compiere.model.X_AD_Element; -import org.compiere.util.DB; -import org.compiere.util.DisplayType; -import org.compiere.util.Env; -import org.compiere.util.Trx; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class ColumnElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) - throws SAXException { - PackIn packIn = (PackIn)ctx.get("PackInProcess"); - String elementValue = element.getElementValue(); - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("ColumnName")); - int success = 0; - String entitytype = atts.getValue("EntityType"); - if (isProcessElement(ctx, entitytype)) { - if (element.parent != null && element.parent.getElementValue().equals("table") && - element.parent.defer) { - element.defer = true; - return; - } - String columnName = atts.getValue("ColumnName"); - String tableName = atts.getValue("ADTableNameID"); - int tableid = 0; - if (element.parent != null && element.parent.getElementValue().equals("table") && - element.parent.recordId > 0) { - tableid = element.parent.recordId; - } else { - tableid = packIn.getTableId(tableName); - } - if (tableid <= 0) { - tableid = get_IDWithColumn(ctx, "AD_Table", "TableName", tableName); - if (tableid > 0) - packIn.addTable(tableName, tableid); - } - int id = packIn.getColumnId(tableName, columnName); - if (id <= 0) { - id = get_IDWithMasterAndColumn(ctx, "AD_Column", "ColumnName", - columnName, "AD_Table", tableid); - if (id > 0) { - packIn.addColumn(tableName, columnName, id); - } - } - MColumn m_Column = new MColumn(ctx, id, getTrxName(ctx)); - if (id <= 0 && atts.getValue("AD_Column_ID") != null && Integer.parseInt(atts.getValue("AD_Column_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Column.setAD_Column_ID(Integer.parseInt(atts.getValue("AD_Column_ID"))); - int AD_Backup_ID = -1; - String Object_Status = null; - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_Column", m_Column); - Object_Status = "Update"; - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - m_Column.setColumnName(columnName); - - // Process - String processName = atts.getValue("ADProcessNameID"); - int AD_Process_ID = get_IDWithColumn(ctx, "AD_Process", "Value", processName); - if (AD_Process_ID <= 0 /** TODO PackOut version check 005 */) - { - AD_Process_ID = get_IDWithColumn(ctx, "AD_Process", "Name", processName); - } - m_Column.setAD_Process_ID(AD_Process_ID); - // - String Name = atts.getValue("ADReferenceNameID"); - id = get_IDWithColumn(ctx, "AD_Reference", "Name", Name); - m_Column.setAD_Reference_ID(id); - // log.info("Column ID ->"+id); - Name = atts.getValue("ADTableNameID"); - id = get_IDWithColumn(ctx, "AD_Table", "TableName", Name); - m_Column.setAD_Table_ID(id); - - Name = atts.getValue("ADValRuleNameID"); - id = get_IDWithColumn(ctx, "AD_Val_Rule", "Name", Name); - m_Column.setAD_Val_Rule_ID(id); - Name = atts.getValue("ADReferenceNameValueID"); - id = get_IDWithColumn(ctx, "AD_Reference", "Name", Name); - m_Column.setAD_Reference_Value_ID(id); - m_Column.setCallout(getStringValue(atts, "Callout")); - m_Column.setColumnSQL(getStringValue(atts, "ColumnSQL")); - - m_Column.setColumnName(atts.getValue("ColumnName")); - m_Column.setDefaultValue(getStringValue(atts, "DefaultValue")); - m_Column.setDescription(getStringValue(atts, "Description")); - m_Column.setEntityType(atts.getValue("EntityType")); - - if (Integer.parseInt(atts.getValue("FieldLength")) > 0) - m_Column.setFieldLength(Integer.parseInt(atts - .getValue("FieldLength"))); - m_Column.setHelp(getStringValue(atts, "Help")); - m_Column.setIsActive(atts.getValue("isActive") != null ? Boolean - .valueOf(atts.getValue("isActive")).booleanValue() : true); - m_Column.setIsAlwaysUpdateable((Boolean.valueOf(atts - .getValue("isAlwaysUpdateable")).booleanValue())); - // m_Column.setIsEncrypted(atts.getValue("isEncrypted")); - m_Column.setIsIdentifier((Boolean.valueOf(atts - .getValue("isIdentifier")).booleanValue())); - m_Column.setIsKey((Boolean.valueOf(atts.getValue("isKey")) - .booleanValue())); - m_Column.setIsMandatory((Boolean.valueOf(atts - .getValue("isMandatory")).booleanValue())); - - m_Column.setIsParent((Boolean.valueOf(atts.getValue("isParent")) - .booleanValue())); - m_Column.setIsSelectionColumn((Boolean.valueOf(atts - .getValue("isSelectionColumn")).booleanValue())); - m_Column.setIsSyncDatabase(atts.getValue("getIsSyncDatabase")); - - m_Column.setIsTranslated((Boolean.valueOf(atts - .getValue("isTranslated")).booleanValue())); - m_Column.setIsUpdateable((Boolean.valueOf(atts - .getValue("isUpdateable")).booleanValue())); - m_Column.setName(atts.getValue("Name")); - m_Column.setReadOnlyLogic(getStringValue(atts, "ReadOnlyLogic")); - - if (Integer.parseInt(atts.getValue("SeqNo")) > 0) - m_Column.setSeqNo(Integer.parseInt(atts.getValue("SeqNo"))); - m_Column.setVFormat(getStringValue(atts, "VFormat")); - if (getStringValue(atts, "ValueMax") != null) - m_Column.setValueMax(atts.getValue("ValueMax")); - if (getStringValue(atts, "ValueMin") != null) - m_Column.setValueMin(atts.getValue("ValueMin")); - if (getStringValue(atts, "Version") != null) - m_Column.setVersion(new BigDecimal(atts.getValue("Version"))); - - //m_Column.setInfoFactoryClass(getStringValue(atts, "InfoFactoryClass")); - - // Setup Element. - id = get_IDWithColumn(ctx, "AD_Element", "ColumnName", m_Column - .getColumnName()); - X_AD_Element adElement = new X_AD_Element(ctx, id, getTrxName(ctx)); - - String Object_Status_col = Object_Status; - if (adElement.getAD_Element_ID() == 0) { - // Object_Status = "New"; - adElement.setColumnName(m_Column.getColumnName()); - adElement.setEntityType(m_Column.getEntityType()); - adElement.setPrintName(m_Column.getColumnName()); - - adElement.setName(m_Column.getColumnName()); - if (adElement.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_Column.getName(), "Element", adElement - .getAD_Element_ID(), AD_Backup_ID, "New", - "AD_Element", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_Element")); - } else { - record_log(ctx, 0, m_Column.getName(), "Element", adElement - .getAD_Element_ID(), AD_Backup_ID, "New", - "AD_Element", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_Element")); - } - } - - Object_Status = Object_Status_col; - m_Column.setAD_Element_ID(adElement.getAD_Element_ID()); - - boolean recreateColumn = (m_Column.is_new() - || m_Column.is_ValueChanged("AD_Reference_ID") - || m_Column.is_ValueChanged("FieldLength") - || m_Column.is_ValueChanged("ColumnName") || m_Column - .is_ValueChanged("IsMandatory")); - - //ignore fieldlength change for clob and lob - if (!m_Column.is_ValueChanged("AD_Reference_ID") && m_Column.is_ValueChanged("FieldLength")) { - if (DisplayType.isLOB(m_Column.getAD_Reference_ID())) { - recreateColumn = false; - } - } - - // changed default ?? - // m_Column.is_ValueChanged("DefaultValue") doesn't work well with - // nulls - if (!recreateColumn) { - String oldDefault = (String) m_Column - .get_ValueOld("DefaultValue"); - String newDefault = m_Column.getDefaultValue(); - if (oldDefault != null && oldDefault.length() == 0) - oldDefault = null; - if (newDefault != null && newDefault.length() == 0) - newDefault = null; - if ((oldDefault == null && newDefault != null) - || (oldDefault != null && newDefault == null)) { - recreateColumn = true; - } else if (oldDefault != null && newDefault != null) { - if (!oldDefault.equals(newDefault)) - recreateColumn = true; - } - } - - // Don't create database column for virtual columns - boolean syncDatabase = "Y".equalsIgnoreCase(atts.getValue("getIsSyncDatabase")); - if (recreateColumn) { - if (m_Column.isVirtualColumn() || !syncDatabase) - recreateColumn = false; - } - - if (m_Column.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_Column.getName(), "Column", m_Column - .get_ID(), AD_Backup_ID, Object_Status, "AD_Column", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Column")); - element.recordId = m_Column.getAD_Column_ID(); - } else { - record_log(ctx, 0, m_Column.getName(), "Column", m_Column - .get_ID(), AD_Backup_ID, Object_Status, "AD_Column", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Column")); - throw new POSaveFailedException("Failed to import column."); - } - - if (recreateColumn || syncDatabase) { - MTable table = new MTable(ctx, m_Column.getAD_Table_ID(), getTrxName(ctx)); - if (!table.isView() && !m_Column.isVirtualColumn()) { - success = createColumn(ctx, table, m_Column, recreateColumn); - - if (success == 1) { - record_log(ctx, 1, m_Column.getColumnName(), "dbColumn", - m_Column.get_ID(), 0, Object_Status, atts.getValue( - "ADTableNameID").toUpperCase(), - get_IDWithColumn(ctx, "AD_Table", "TableName", atts - .getValue("ADTableNameID").toUpperCase())); - } else { - record_log(ctx, 0, m_Column.getColumnName(), "dbColumn", - m_Column.get_ID(), 0, Object_Status, atts.getValue( - "ADTableNameID").toUpperCase(), - get_IDWithColumn(ctx, "AD_Table", "TableName", atts - .getValue("ADTableNameID").toUpperCase())); - throw new DatabaseAccessException("Failed to create column or related constraint for " + m_Column.getColumnName()); - } - } - } - } else { - element.skip = true; - } - } - - /** - * Check if column exists in database and modify. If not create column. - * - * @param tablename - * @param columnname - * @param v_AD_Reference_ID - * @param v_FieldLength - * @param v_DefaultValue - * @param v_IsMandatory - * - */ - private int createColumn(Properties ctx, MTable table, MColumn column, boolean doAlter) { - - int no = 0; - - String sql = null; - ResultSet rst = null; - ResultSet rsc = null; - Connection conn = null; - Trx trx = Trx.get(getTrxName(ctx), true); - if (!trx.commit()) - return 0; - - try { - // Find Column in Database - conn = trx.getConnection(); - DatabaseMetaData md = conn.getMetaData(); - String catalog = DB.getDatabase().getCatalog(); - String schema = DB.getDatabase().getSchema(); - String tableName = table.getTableName(); - String columnName = column.getColumnName(); - if (md.storesUpperCaseIdentifiers()) { - tableName = tableName.toUpperCase(); - columnName = columnName.toUpperCase(); - } else if (md.storesLowerCaseIdentifiers()) { - tableName = tableName.toLowerCase(); - columnName = columnName.toLowerCase(); - } - - rst = md.getTables(catalog, schema, tableName, - new String[] { "TABLE" }); - if (!rst.next()) { - // table doesn't exist - sql = table.getSQLCreate(); - } else { - // - rsc = md.getColumns(catalog, schema, tableName, columnName); - if (rsc.next()) { - if (doAlter) { - // update existing column - boolean notNull = DatabaseMetaData.columnNoNulls == rsc - .getInt("NULLABLE"); - sql = column.getSQLModify(table, - column.isMandatory() != notNull); - } - } else { - // No existing column - sql = column.getSQLAdd(table); - } - rsc.close(); - rsc = null; - } - - rst.close(); - rst = null; - //execute modify or add if needed - if (sql != null && sql.trim().length() > 0) { - log.info(sql); - - if (sql.indexOf(DB.SQLSTATEMENT_SEPARATOR) == -1) { - no = DB.executeUpdate(sql, false, trx.getTrxName()); - if (no == -1) - return 0; - } else { - String statements[] = sql.split(DB.SQLSTATEMENT_SEPARATOR); - for (int i = 0; i < statements.length; i++) { - int count = DB.executeUpdate(statements[i], false, - trx.getTrxName()); - if (count == -1) { - return 0; - } - no += count; - } - } - } - trx.commit(true); - } catch (SQLException e) { - log.log(Level.SEVERE, e.getLocalizedMessage(), e); - if (rsc != null) { - try { - rsc.close(); - } catch (SQLException e1) { - } - rsc = null; - } - if (rst != null) { - try { - rst.close(); - } catch (SQLException e1) { - } - rst = null; - } - trx.rollback(); - return 0; - } - - return 1; - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Column_ID = Env.getContextAsInt(ctx, - X_AD_Column.COLUMNNAME_AD_Column_ID); - AttributesImpl atts = new AttributesImpl(); - X_AD_Column m_Column = new X_AD_Column(ctx, AD_Column_ID, - getTrxName(ctx)); - createColumnBinding(atts, m_Column); - document.startElement("", "", "column", atts); - document.endElement("", "", "column"); - } - - private AttributesImpl createColumnBinding(AttributesImpl atts, - X_AD_Column m_Column) { - String sql = null; - String name = null; - atts.clear(); - if (m_Column.getAD_Column_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("", "", "AD_Column_ID", "CDATA", Integer.toString(m_Column.getAD_Column_ID())); - if (m_Column.getAD_Column_ID() > 0) { - sql = "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID=?"; - name = DB.getSQLValueString(null, sql, m_Column.getAD_Column_ID()); - atts.addAttribute("", "", "ADColumnNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADColumnNameID", "CDATA", ""); - // - if (m_Column.getAD_Process_ID() > 0) - { - sql = "SELECT Value FROM AD_Process WHERE AD_Process_ID=?"; - name = DB.getSQLValueStringEx(null, sql, m_Column.getAD_Process_ID()); - atts.addAttribute("", "", "ADProcessNameID", "CDATA", name); - } - else - { - atts.addAttribute("", "", "ADProcessNameID", "CDATA", ""); - } - // Element - this info is not needed since we search for element based on ColumnName - if (m_Column.getAD_Element_ID() > 0) - { - sql = "SELECT ColumnName FROM AD_Element WHERE AD_Element_ID=?"; - name = DB.getSQLValueStringEx(null, sql, m_Column.getAD_Element_ID()); - atts.addAttribute("", "", "ADElementNameID", "CDATA", name); - } - else - { - atts.addAttribute("", "", "ADElementNameID", "CDATA", ""); - } - // - if (m_Column.getAD_Reference_ID() > 0) { - sql = "SELECT Name FROM AD_Reference WHERE AD_Reference_ID=?"; - name = DB.getSQLValueString(null, sql, m_Column - .getAD_Reference_ID()); - atts.addAttribute("", "", "ADReferenceNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADReferenceNameID", "CDATA", ""); - if (m_Column.getAD_Reference_Value_ID() > 0) { - sql = "SELECT Name FROM AD_Reference WHERE AD_Reference_ID=?"; - name = DB.getSQLValueString(null, sql, m_Column - .getAD_Reference_Value_ID()); - atts.addAttribute("", "", "ADReferenceNameValueID", "CDATA", name); - } else - atts.addAttribute("", "", "ADReferenceNameValueID", "CDATA", ""); - if (m_Column.getAD_Table_ID() > 0) { - sql = "SELECT TableName FROM AD_Table WHERE AD_Table_ID=?"; - name = DB.getSQLValueString(null, sql, m_Column.getAD_Table_ID()); - atts.addAttribute("", "", "ADTableNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADTableNameID", "CDATA", ""); - if (m_Column.getAD_Val_Rule_ID() > 0) { - sql = "SELECT Name FROM AD_Val_Rule WHERE AD_Val_Rule_ID=?"; - name = DB - .getSQLValueString(null, sql, m_Column.getAD_Val_Rule_ID()); - atts.addAttribute("", "", "ADValRuleNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADValRuleNameID", "CDATA", ""); - atts.addAttribute("", "", "Callout", "CDATA", - (m_Column.getCallout() != null ? m_Column.getCallout() : "")); - atts.addAttribute("", "", "ColumnSQL", "CDATA", (m_Column - .getColumnSQL() != null ? m_Column.getColumnSQL() : "")); - atts.addAttribute("", "", "ColumnName", "CDATA", (m_Column - .getColumnName() != null ? m_Column.getColumnName() : "")); - atts.addAttribute("", "", "DefaultValue", "CDATA", (m_Column - .getDefaultValue() != null ? m_Column.getDefaultValue() : "")); - atts.addAttribute("", "", "Description", "CDATA", (m_Column - .getDescription() != null ? m_Column.getDescription() : "")); - atts.addAttribute("", "", "EntityType", "CDATA", (m_Column - .getEntityType() != null ? m_Column.getEntityType() : "")); - atts.addAttribute("", "", "FieldLength", "CDATA", (m_Column - .getFieldLength() > 0 ? "" + m_Column.getFieldLength() : "0")); - atts.addAttribute("", "", "Help", "CDATA", - (m_Column.getHelp() != null ? m_Column.getHelp() : "")); - atts.addAttribute("", "", "isAlwaysUpdateable", "CDATA", (m_Column - .isAlwaysUpdateable() == true ? "true" : "false")); - // atts.addAttribute("","","isEncrypted","CDATA",(m_Column.getIsEncrypted()== - // true ? "true":"false")); - atts.addAttribute("", "", "isIdentifier", "CDATA", (m_Column - .isIdentifier() == true ? "true" : "false")); - atts.addAttribute("", "", "isKey", "CDATA", - (m_Column.isKey() == true ? "true" : "false")); - atts.addAttribute("", "", "isMandatory", "CDATA", (m_Column - .isMandatory() == true ? "true" : "false")); - atts.addAttribute("", "", "isParent", "CDATA", - (m_Column.isParent() == true ? "true" : "false")); - atts.addAttribute("", "", "isSelectionColumn", "CDATA", (m_Column - .isSelectionColumn() == true ? "true" : "false")); - atts.addAttribute("", "", "isActive", "CDATA", - (m_Column.isActive() == true ? "true" : "false")); - atts.addAttribute("", "", "isTranslated", "CDATA", (m_Column - .isTranslated() == true ? "true" : "false")); - atts.addAttribute("", "", "isUpdateable", "CDATA", (m_Column - .isUpdateable() == true ? "true" : "false")); - atts.addAttribute("", "", "Name", "CDATA", - (m_Column.getName() != null ? m_Column.getName() : "")); - atts.addAttribute("", "", "getIsSyncDatabase", "CDATA", "Y"); - atts - .addAttribute("", "", "ReadOnlyLogic", "CDATA", (m_Column - .getReadOnlyLogic() != null ? m_Column - .getReadOnlyLogic() : "")); - atts.addAttribute("", "", "SeqNo", "CDATA", - (m_Column.getSeqNo() > 0 ? "" + m_Column.getSeqNo() : "0")); - atts.addAttribute("", "", "VFormat", "CDATA", - (m_Column.getVFormat() != null ? m_Column.getVFormat() : "")); - atts.addAttribute("", "", "ValueMax", "CDATA", - (m_Column.getValueMax() != null ? m_Column.getValueMax() : "")); - atts.addAttribute("", "", "ValueMin", "CDATA", - (m_Column.getValueMin() != null ? m_Column.getValueMin() : "")); - atts.addAttribute("", "", "Version", "CDATA", - (m_Column.getVersion() != null ? "" + m_Column.getVersion() - : "0.0")); - //atts.addAttribute("", "", "InfoFactoryClass", "CDATA", (m_Column.getInfoFactoryClass() != null - // ? m_Column.getInfoFactoryClass() : "")); - - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/CommonTranslationHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/CommonTranslationHandler.java deleted file mode 100644 index 372ce9c076..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/CommonTranslationHandler.java +++ /dev/null @@ -1,319 +0,0 @@ -package org.adempiere.pipo.handler; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.AttributeFiller; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.ElementHandler; -import org.compiere.model.MSysConfig; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class CommonTranslationHandler extends AbstractElementHandler implements ElementHandler{ - - public static final String CONTEXT_KEY__PARENT_TABLE = "currentParentTableForTranslation"; - public static final String CONTEXT_KEY__PARENT_RECORD_ID = "currentParentTableRecordID_ForTranslation"; - - public static final String SPECIAL_ATRRIBUTE__TABLE_NAME = "ParentTable"; - - - private HashMap> cached_PIPO_ColumnsByTable = new HashMap>();//Key: table name. Value: set of PIPO columns - - - public void startElement(Properties ctx, Element element) throws SAXException { - - if(! MSysConfig.getBooleanValue(MSysConfig.TWOPACK_HANDLE_TRANSLATIONS, false)){ - return;//translation import option is disabled - } - - if(element.parent.skip){ - return; - } - - if(element.parent.defer){ - element.defer = true; - return; - } - - String elementValue = element.getElementValue(); - Attributes atts = element.attributes; - int parentID = element.parent.recordId; - - if(parentID ==0) - throw new SAXException(); - - String parentTable = atts.getValue(SPECIAL_ATRRIBUTE__TABLE_NAME); - String language = atts.getValue("AD_Language"); - - if (log.isLoggable(Level.INFO)) log.info(elementValue+" "+parentTable+" "+atts.getValue("Name")); - - if(isRecordExists(parentTable, parentID, language, ctx)){ - - updateTranslation(parentTable, parentID, ctx, atts); - }else{ - insertTranslation(parentTable, parentID, ctx, atts); - } - } - - - private boolean isRecordExists(String parentTable, int parentID, - String language, Properties ctx) { - - String sql = - "select ad_client_id from "+parentTable +"_trl where "+ - parentTable+"_ID="+parentID+" and ad_language = '"+language+"'"; - - if(DB.getSQLValue(getTrxName(ctx), sql) == -1){ - return false; - }else{ - return true; - } - } - - - private void insertTranslation(String parentTable, int parentID, - Properties ctx, Attributes atts) throws SAXException{ - - ArrayList pipoColumns = getExportableColumns(parentTable); - - - StringBuffer sql = new StringBuffer( - "INSERT INTO "+parentTable+"_trl ("+parentTable+"_ID, "+ - " ad_client_ID, ad_org_id, CreatedBy, UpdatedBy, "+cast(pipoColumns)+ - ") VALUES ( ?, ?, ?, ?, ? "); - - - for (int i = 0; i pipoColumns = getExportableColumns(parentTable); - - StringBuffer sqlBuf = new StringBuffer("UPDATE "+parentTable+"_trl SET "); - - - for (String columnName : pipoColumns) { - - sqlBuf.append(columnName).append("=?,"); - } - - String sql = sqlBuf.substring(0, sqlBuf.length()-1); - - sql += " WHERE ad_language = '"+atts.getValue("AD_Language")+ - "' AND "+parentTable+"_ID="+parentID; - - try { - PreparedStatement pstm = DB.prepareStatement(sql, - getTrxName(ctx)); - - int i=0; - for (String columnName : pipoColumns) { - - String value = atts.getValue(columnName); - i++; - - if(columnName.equalsIgnoreCase("IsActive") || - columnName.equalsIgnoreCase("IsTranslated")){ - - value = "true".equals(value) ? "Y" : "N"; - } - - pstm.setString(i, value); - } - - if(pstm.executeUpdate()<0){ - throw new SAXException(); - } - pstm.close(); - - } catch (Exception e) { - e.printStackTrace(); - throw new SAXException(); - } - } - - - public void endElement(Properties ctx, Element element) throws SAXException { - - } - - - public void create(Properties ctx, TransformerHandler document) throws SAXException { - - String parenTableName = Env.getContext(ctx, CONTEXT_KEY__PARENT_TABLE); - - int parentRecordID = Env.getContextAsInt(ctx, CONTEXT_KEY__PARENT_RECORD_ID); - - createTranslationTags(parenTableName, parentRecordID, document); - } - - - private void createTranslationTags(String parentTable, - int parentRecordID, TransformerHandler document) throws SAXException { - - ArrayList exportableColumns = getExportableColumns(parentTable); - - String sql = - "select "+cast(exportableColumns)+" from "+parentTable+"_trl where "+ - parentTable+"_ID="+parentRecordID; - - PreparedStatement pstm = DB.prepareStatement(sql, null); - try { - - ResultSet rs = pstm.executeQuery(); - - while(rs.next()){ - - AttributesImpl atts = getAttsForOneTrlRow(exportableColumns, rs); - - atts.addAttribute("", "", SPECIAL_ATRRIBUTE__TABLE_NAME, "CDATA", parentTable); - - document.startElement("", "", "trl", atts); - document.endElement("", "", "trl"); - } - - rs.close(); - pstm.close(); - - } catch (Exception e) { - e.printStackTrace(); - throw new SAXException(); - } - } - - private AttributesImpl getAttsForOneTrlRow(ArrayList exportableColumns, - ResultSet rs) throws Exception { - - AttributesImpl atts = new AttributesImpl(); - AttributeFiller af = new AttributeFiller(atts); - - for (String columnName : exportableColumns) { - - if(columnName.equalsIgnoreCase("IsActive")|| - columnName.equalsIgnoreCase("IsTranslated")){ - - af.addBoolean(columnName, rs.getString(columnName).equalsIgnoreCase("Y")); - - }else{ - - af.addString(columnName, rs.getString(columnName)); - } - } - - return atts; - } - - /** - * - * @param parentTable - * @return - * @throws SAXException - */ - @SuppressWarnings("unchecked") - private ArrayList getExportableColumns(String parentTable) throws SAXException { - - - Object pipolColumns = cached_PIPO_ColumnsByTable.get(parentTable); - if(pipolColumns != null){ - return (ArrayList)pipolColumns; - } - - ArrayList new_PIPO_Columns = new ArrayList(); - String sql = "select * from ad_column where ad_table_id = " + - "(select ad_table_id from ad_table where tableName = ?)" + - "and isTranslated='Y'" - +" ORDER BY AD_Column_ID"; - - PreparedStatement pstm = DB.prepareStatement(sql, null); - try { - - pstm.setString(1, parentTable); - - ResultSet rs = pstm.executeQuery(); - while(rs.next()){ - - new_PIPO_Columns.add(rs.getString("columnName")); - } - - pstm.close(); - rs.close(); - - } catch (SQLException e) { - e.printStackTrace(); - throw new SAXException(); - } - - new_PIPO_Columns.add("AD_Language"); - new_PIPO_Columns.add("IsActive"); - new_PIPO_Columns.add("IsTranslated"); - - //Putting in cache - cached_PIPO_ColumnsByTable.put(parentTable, new_PIPO_Columns); - - return (ArrayList)new_PIPO_Columns; - } - - private String cast(ArrayList arg){ - - return arg.toString().substring(1, arg.toString().length()-1); - } - -} \ No newline at end of file diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/DataElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/DataElementHandler.java deleted file mode 100644 index 150cbffff3..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/DataElementHandler.java +++ /dev/null @@ -1,415 +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) 2005 Robert Klein. robeklein@hotmail.com * - * Contributor(s): Low Heng Sin hengsin@avantz.com * - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.ResultSetMetaData; -import java.sql.Statement; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.IDFinder; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.MTable; -import org.compiere.model.PO; -import org.compiere.model.X_AD_Package_Exp_Detail; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -/** - * - * @author Robert Klein. - * @author Low Heng Sin - * - */ -public class DataElementHandler extends AbstractElementHandler { - - private PO genericPO = null; - int AD_Backup_ID = -1; - String objectStatus = null; - String d_tablename = null; - - private DataRowElementHandler rowHandler = new DataRowElementHandler(); - private DataColumnElementHandler columnHandler = new DataColumnElementHandler(); - - public DataElementHandler() { - } - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - Attributes atts = element.attributes; - if (elementValue.equals("adempieredata") || elementValue.equals("data")) { - log.info(elementValue); - if (atts.getValue("clientname") != null) { - int AD_Client_ID = IDFinder.get_ID("AD_Client", atts.getValue("clientname"), getClientId(ctx), getTrxName(ctx)); - Env.setContext(ctx, "AD_Client_ID", AD_Client_ID); - if (log.isLoggable(Level.INFO)) log.info("adempieredata: client set to "+AD_Client_ID+" "+atts.getValue("clientname")); - } - } - else if (elementValue.equals("dtable")) { - if (log.isLoggable(Level.INFO)) log.info(elementValue+" "+atts.getValue("name")); - d_tablename = atts.getValue("name"); - } - // row element, adempieredata - else if (elementValue.equals("drow")) { - rowHandler.startElement(ctx, element); - } - // column element, adempieredata - else if (elementValue.equals("dcolumn")) { - columnHandler.startElement(ctx, element); - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - if (elementValue.equals("drow")) { - rowHandler.endElement(ctx, element); - } - } - - class DataRowElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue+" "+atts.getValue("name")); - MTable table = MTable.get(ctx, d_tablename); - - String d_rowname = atts.getValue("name"); - - // name can be null if there are keyXname attributes. - if (d_rowname != null && !d_rowname.equals("")){ - int id = get_ID(ctx, d_tablename, d_rowname); - genericPO = table.getPO(id, getTrxName(ctx)); - if (id > 0){ - if (genericPO == null || genericPO.get_ID() != id) - throw new SAXException("id not found"); - AD_Backup_ID = copyRecord(ctx,d_tablename,genericPO); - objectStatus = "Update"; - } - else{ - objectStatus = "New"; - AD_Backup_ID =0; - } - } - // keyXname and lookupkeyXname. - else { - String sql = "select * from "+d_tablename; - String whereand = " where"; - String CURRENT_KEY = "key1name"; - if (atts.getValue(CURRENT_KEY) != null && !atts.getValue(CURRENT_KEY).equals("")) { - sql = sql+whereand+" "+atts.getValue(CURRENT_KEY)+"="+atts.getValue("lookup"+CURRENT_KEY); - whereand = " and"; - } - CURRENT_KEY = "key2name"; - if (atts.getValue(CURRENT_KEY) != null && !atts.getValue(CURRENT_KEY).equals("")) { - sql = sql+whereand+" "+atts.getValue(CURRENT_KEY)+"="+atts.getValue("lookup"+CURRENT_KEY); - whereand = " and"; - } - if (whereand.equals(" where")) - log.warning("no name or keyXname attribute defined."); - sql = sql+whereand+" AD_Client_ID="+getClientId(ctx); - // Load GenericPO from rs, in fact ID could not exist e.g. Attribute Value - try { - PreparedStatement pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - - ResultSet rs = pstmt.executeQuery(); - if (rs.next()) { - objectStatus = "Update"; - genericPO = table.getPO(rs, getTrxName(ctx)); - rs.close(); - pstmt.close(); - pstmt = null; - } - else { - rs.close(); - rs = null; - pstmt.close(); - pstmt = null; - objectStatus = "New"; - genericPO = table.getPO(0, getTrxName(ctx)); - // set keyXname. - CURRENT_KEY = "key1name"; - if (atts.getValue(CURRENT_KEY) != null && !atts.getValue(CURRENT_KEY).equals("")) { - String colName = atts.getValue(CURRENT_KEY); - String valueObject = atts.getValue("lookup"+CURRENT_KEY); - if (colName.endsWith("_ID") && valueObject.contains("SELECT")) - valueObject = DB.getSQLValueString(getTrxName(ctx), valueObject); - genericPO.set_ValueOfColumn(colName, valueObject); - } - CURRENT_KEY = "key2name"; - if (atts.getValue(CURRENT_KEY) != null && !atts.getValue(CURRENT_KEY).equals("")) { - String colName = atts.getValue(CURRENT_KEY); - String valueObject = atts.getValue("lookup"+CURRENT_KEY); - if (colName.endsWith("_ID") && valueObject.contains("SELECT")) - valueObject = DB.getSQLValueString(getTrxName(ctx), valueObject); - genericPO.set_ValueOfColumn(colName, valueObject); - } - } - - } - catch (Exception e) { - log.warning ("keyXname attribute. init from rs error."+e); - throw new SAXException(e.getMessage()); - } - } - - // for debug GenericPO. - /*if (false) { - POInfo poInfo = POInfo.getPOInfo(ctx, get_ID(ctx, "AD_Table", d_tablename), getTrxName(ctx)); - if (poInfo == null) - log.info("poInfo is null."); - for (int i = 0; i < poInfo.getColumnCount(); i++) { - log.info(d_tablename+" column: "+poInfo.getColumnName(i)); - } - }*/ - // globalqss: set AD_Client_ID to the client setted in adempieredata - if (getClientId(ctx) > 0 && genericPO.getAD_Client_ID() != getClientId(ctx)) - genericPO.set_ValueOfColumn("AD_Client_ID", getClientId(ctx)); - // if new. TODO: no defaults for keyXname. - if (d_rowname != null && !d_rowname.equals("") && ((Integer)(genericPO.get_Value(d_tablename+"_ID"))).intValue() == 0) { - if (log.isLoggable(Level.INFO)) log.info("new genericPO, table: "+d_tablename+" name:"+d_rowname); - genericPO.set_ValueOfColumn("Name", d_rowname); - // Set defaults. - //TODO: get defaults from configuration - HashMap defaults = new HashMap(); - HashMap thisDefault = (HashMap)defaults.get(d_tablename); - if (thisDefault != null) { - Iterator iter = thisDefault.values().iterator(); - ArrayList thisValue = null; - while (iter.hasNext()) { - thisValue = (ArrayList)iter.next(); - if (((String)(thisValue.get(2))).equals("String")) - genericPO.set_ValueOfColumn((String)thisValue.get(0), (String)thisValue.get(1)); - else if (((String)(thisValue.get(2))).equals("Integer")) - genericPO.set_ValueOfColumn((String)thisValue.get(0), Integer.valueOf((String)thisValue.get(1))); - else if (((String)(thisValue.get(2))).equals("Boolean")) - genericPO.set_ValueOfColumn((String)thisValue.get(0), new Boolean(((String)thisValue.get(1)).equals("true") ? true : false)); - } - } - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - if (genericPO != null) { - if (genericPO.save(getTrxName(ctx))== true) - record_log (ctx, 1, genericPO.get_TableName(),"Data", genericPO.get_ID(),AD_Backup_ID, objectStatus,d_tablename,get_IDWithColumn(ctx, "AD_Table", "TableName", d_tablename)); - else { - record_log (ctx, 0, genericPO.get_TableName(),"Data", genericPO.get_ID(),AD_Backup_ID, objectStatus,d_tablename,get_IDWithColumn(ctx, "AD_Table", "TableName", d_tablename)); - throw new POSaveFailedException("GenericPO"); - } - - genericPO = null; - } - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - } - - } - - class DataColumnElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue+" "+atts.getValue("name")); - String columnName = atts.getValue("name"); - int tableid = get_IDWithColumn(ctx, "AD_Table", "TableName", d_tablename); - int id =get_IDWithMasterAndColumn (ctx,"AD_Column", "ColumnName", columnName, "AD_Table", tableid); - StringBuffer sql = new StringBuffer ("SELECT IsUpdateable FROM AD_column WHERE AD_Column_ID = ?"); - String isUpdateable = DB.getSQLValueString(getTrxName(ctx), sql.toString(),id); - sql = new StringBuffer ("SELECT IsKey FROM AD_column WHERE AD_Column_ID = ?"); - String isKey = DB.getSQLValueString(getTrxName(ctx), sql.toString(),id); - if (("New".equals(objectStatus)) || (isKey.equals("N") && - isUpdateable.equals("Y") && - (!atts.getValue("name").equals("CreatedBy")||!atts.getValue("name").equals("UpdatedBy")))) { - if (atts.getValue("value") != null && !atts.getValue("value").equals("null")) { - if (atts.getValue("class").equals("String") || atts.getValue("class").equals("Text") - || atts.getValue("class").equals("List")|| atts.getValue("class").equals("Yes-No") - || atts.getValue("class").equals("Button") - || atts.getValue("class").equals("Memo")|| atts.getValue("class").equals("Text Long") - || atts.getValue("name").equals("AD_Language") || atts.getValue("name").equals("EntityType")) { - genericPO.set_ValueOfColumn(atts.getValue("name").toString(), atts.getValue("value").toString()); - } - else if (atts.getValue("class").equals("Number") || atts.getValue("class").equals("Amount") - || atts.getValue("class").equals("Quantity")|| atts.getValue("class").equals("Costs+Prices")){ - genericPO.set_ValueOfColumn(atts.getValue("name").toString(), new BigDecimal(atts.getValue("value"))); - } - 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("Location (Address)")|| atts.getValue("class").equals("Account") - || atts.getValue("class").equals("Color)")|| atts.getValue("class").equals("Search") - || atts.getValue("class").equals("Locator (WH)")|| atts.getValue("class").equals("Product Attribute")) { - genericPO.set_ValueOfColumn(atts.getValue("name").toString(), Integer.valueOf(atts.getValue("value"))); - } - else if (atts.getValue("class").equals("Boolean")) { - 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") - || atts.getValue("class").equals("Time")) { - genericPO.set_ValueOfColumn(atts.getValue("name").toString(), Timestamp.valueOf(atts.getValue("value"))); - }//Binary, Radio, RowID, Image not supported - } else { // value is null - if (atts.getValue("lookupname") != null && !"".equals(atts.getValue("lookupname"))) { - // globalqss - bring support from XML2AD to lookupname - String m_tablename = atts.getValue("name").substring(0, atts.getValue("name").length()-3); - genericPO.set_ValueOfColumn(atts.getValue("name"), new Integer(getIDbyName(ctx, m_tablename, atts.getValue("lookupname")))); - } else if (atts.getValue("lookupvalue") != null && !"".equals(atts.getValue("lookupvalue"))) { - // globalqss - bring support from XML2AD to lookupvalue - String m_tablename = atts.getValue("name").substring(0, atts.getValue("name").length()-3); - genericPO.set_ValueOfColumn(atts.getValue("name"), new Integer(getIDbyValue(ctx, m_tablename, atts.getValue("lookupvalue")))); - } - - } - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - } - - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - String sql = Env.getContext(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_SQLStatement); - int table_id = Env.getContextAsInt(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Table_ID); - Statement stmt = DB.createStatement(); - AttributesImpl atts = new AttributesImpl(); - document.startElement("","","data",atts); - try { - ResultSet rs = stmt.executeQuery(sql); - ResultSetMetaData meta = rs.getMetaData(); - int columns = meta.getColumnCount(); - int i = 1; - String col_Name = null; - String sql1 = "SELECT TableName FROM AD_Table WHERE AD_Table_ID=?"; - String table_Name = DB.getSQLValueString(null,sql1,table_id); - atts.clear(); - atts.addAttribute("","","name","CDATA",table_Name); - document.startElement("","","dtable",atts); - while (rs.next()){ - atts.clear(); - int key1 = 0; - String nameatts = ""; - for (i=1 ;i <= columns;i++){ - col_Name = meta.getColumnName(i).toUpperCase(); - if (col_Name.equals("NAME") && rs.getObject("name") != null) - nameatts = ""+rs.getObject("name"); - String sql2 = "SELECT ColumnName FROM AD_Column " - + "WHERE isKey = 'Y' AND " - + "AD_Table_ID = ? AND " - + "Upper(ColumnName)= '"+col_Name+"'"; - String cName = DB.getSQLValueString(null,sql2,table_id); - if (cName != null){ - if (cName.toUpperCase().equals(col_Name) && key1 == 0 ){ - atts.addAttribute("","","key1name","CDATA",cName); - atts.addAttribute("","","lookupkey1name","CDATA",""+rs.getObject(col_Name)); - key1 = 1; - } - else if (cName.toUpperCase().equals(col_Name) && key1 == 1 ){ - atts.addAttribute("","","key2name","CDATA",cName); - atts.addAttribute("","","lookupkey2name","CDATA",""+rs.getObject(col_Name)); - key1 = 2; - } - } - } - atts.addAttribute("","","name","CDATA",nameatts); - if ( key1 == 0 ){ - atts.addAttribute("","","key1name","CDATA",""); - atts.addAttribute("","","lookupkey1name","CDATA",""); - key1 = 1; - } - if ( key1 == 1 ){ - atts.addAttribute("","","key2name","CDATA",""); - atts.addAttribute("","","lookupkey2name","CDATA",""); - } - document.startElement("","","drow",atts); - for (i=1 ;i <= columns;i++){ - atts.clear(); - col_Name = meta.getColumnName(i).toUpperCase(); - String sql2 = "Select A.ColumnName, B.Name " - + "From AD_Column A, AD_Reference B " - + "Where Upper(A.columnname) = ? and " - + "A.AD_TABLE_ID = ? and " - + "A.AD_Reference_ID = B.AD_Reference_ID"; - PreparedStatement pstmt = null; - try - { - pstmt = DB.prepareStatement(sql2, getTrxName(ctx)); - pstmt.setString(1, col_Name); - pstmt.setInt(2, table_id); - ResultSet rs1 = pstmt.executeQuery(); - while (rs1.next()){ - //added 9/3/05 - atts.clear(); - atts.addAttribute("","","name","CDATA", rs1.getString("ColumnName")); - atts.addAttribute("","","class","CDATA", rs1.getString("Name")); - if (rs1.getString("Name").equals("Date")||rs1.getString("Name").equals("Date+Time")||rs1.getString("Name").equals("Time")) - atts.addAttribute("","","value","CDATA", "" + rs.getTimestamp(i)); - else - atts.addAttribute("","","value","CDATA", "" + rs.getObject(i)); - - if (!rs1.getString("ColumnName").equals("Created")&&!rs1.getString("ColumnName").equals("CreatedBy")&& - !rs1.getString("ColumnName").equals("Updated")&&!rs1.getString("ColumnName").equals("UpdatedBy")){ - document.startElement("","","dcolumn",atts); - document.endElement("","","dcolumn"); - } - } - rs1.close(); - pstmt.close(); - pstmt = null; - } - catch (Exception e) { - log.log(Level.SEVERE,"getData", e); - } - } - document.endElement("","","drow"); - } - rs.close(); - stmt.close(); - stmt = null; - document.endElement("","","dtable"); - } - - catch (Exception e) { - log.log(Level.SEVERE,"getData", e); - } - - document.endElement("","","data"); - - } - -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/DistFileElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/DistFileElementHandler.java deleted file mode 100644 index e988db3817..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/DistFileElementHandler.java +++ /dev/null @@ -1,200 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.compiere.Adempiere; -import org.compiere.model.X_AD_Package_Exp_Detail; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class DistFileElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - @SuppressWarnings("unused") - int AD_Backup_ID = -1; - String Object_Status = null; - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue+" "+atts.getValue("name")); - - String releaseNumber = atts.getValue("ReleaseNo"); - //log.info(atts.getValue("ReleaseNo")); - //log.info(Compiere.MAIN_VERSION); - //Check Release Number - if(releaseNumber==null||Adempiere.MAIN_VERSION.equals(releaseNumber)||releaseNumber.equals("all")){ - String fileName = atts.getValue("name"); - String sourceDirectory = atts.getValue("sourceDirectory"); - String targetDirectory = atts.getValue("targetDirectory"); - - Object_Status = "New"; - int idDetail=0; - InputStream inputStream; // Stream for reading from the source file. - OutputStream outputStream; // Stream for writing the copy. - - String packagePath=null; - String adempiereSourcePath=null; - - //get adempiere-all directory - try { - packagePath = getPackageDirectory(ctx); - File parentDirectory = new File(packagePath); - while (!parentDirectory.getName().equals("packages")){ - parentDirectory = parentDirectory.getParentFile(); - } - parentDirectory = parentDirectory.getParentFile(); - adempiereSourcePath = parentDirectory.getCanonicalPath(); - } catch (IOException e1) { - System.out.println("Can't find adempiere-all directory."); - } - - - // Create backup directory if required - File backupDir = new File(packagePath+File.separator+"backup"+File.separator); - if (!backupDir.exists()){ - boolean success = (new File(packagePath+File.separator+"backup"+File.separator)).mkdirs(); - if (!success) { - log.info("Backup directory creation failed"); - } - } - - //Correct target directory for proper file separator - String fullTargetPath = adempiereSourcePath+targetDirectory; - char slash1 = '\\'; - char slash2 = '/'; - if (File.separator.equals("/")) - fullTargetPath = fullTargetPath.replace(slash1,slash2); - else - fullTargetPath = fullTargetPath.replace(slash2,slash1); - - File file = new File(fullTargetPath+fileName); - //TODO: derive force from user parameter - boolean force = true; - String fileDate = null; - //check to see if overwrites are allowed - if (file.exists() && force == false) { - System.out.println( - "Output file exists. Use the -f option to replace it."); - return; - } - //backup file to package directory - else if (file.exists() && force == true) { - Object_Status = "Update"; - if (log.isLoggable(Level.INFO)) log.info("Target Backup:"+fullTargetPath+fileName); - inputStream = OpenInputfile(fullTargetPath+fileName); - SimpleDateFormat formatter_file = new SimpleDateFormat("yyMMddHHmmssSSSSZ"); - Date today = new Date(); - fileDate = formatter_file.format(today); - outputStream = OpenOutputfile(packagePath+File.separator+"backup"+File.separator+fileDate+"_"+fileName); - if (log.isLoggable(Level.INFO)) log.info("Source Backup:"+packagePath+File.separator+"backup"+File.separator+fileDate+"_"+fileName); - copyFile (inputStream, outputStream); - log.info("Backup Complete"); - } - -// Correct dist directory for proper file separator - String fullSourcePath=null; - if (File.separator.equals("/")) - fullSourcePath = sourceDirectory.replace(slash1,slash2); - else - fullSourcePath = sourceDirectory.replace(slash2,slash1); - inputStream = OpenInputfile(packagePath+fullSourcePath+fileName); - -// Create Target directory if required - File targetDir = new File(fullTargetPath); - if (!targetDir.exists()){ - boolean success = (new File(fullTargetPath)).mkdirs(); - if (!success) { - log.info("Target directory creation failed"); - } - } - outputStream = OpenOutputfile(fullTargetPath+fileName); - //Copy File - int success = copyFile (inputStream,outputStream); - //Record in log - int idBackup = DB.getNextID (getClientId(ctx), "AD_Package_Imp_Backup", getTrxName(ctx)); - if (success != -1){ - try { - idDetail = record_log (ctx, 1, fileName,"file", 0,0, Object_Status,fileName,0); - } catch (SAXException e) { - if (log.isLoggable(Level.INFO)) log.info ("setfile:"+e); - } - } - else{ - try { - idDetail = record_log (ctx, 0, fileName,"file", 0,0, Object_Status,fileName,0); - } catch (SAXException e) { - if (log.isLoggable(Level.INFO)) log.info ("setfile:"+e); - } - } - //Record in transaction file - StringBuffer sqlB = new StringBuffer ("INSERT INTO AD_Package_Imp_Backup" ) - .append( "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, " ) - .append( "AD_PACKAGE_IMP_BACKUP_ID, AD_PACKAGE_IMP_DETAIL_ID, AD_PACKAGE_IMP_ID," ) - .append( " AD_PACKAGE_IMP_ORG_DIR, AD_PACKAGE_IMP_BCK_DIR)" ) - .append( "VALUES(" ) - .append( " "+ Env.getAD_Client_ID(ctx) ) - .append( ", "+ Env.getAD_Org_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", " + idBackup ) - .append( ", " + idDetail ) - .append( ", " + getPackageImpId(ctx) ) - .append( ", '" + fullTargetPath+fileName ) - .append( "', '" + packagePath+File.separator+"backup"+File.separator+fileDate+"_"+fileName ) - .append( "')"); - - int no = DB.executeUpdate (sqlB.toString(), getTrxName(ctx)); - if (no == -1) - log.info("Insert to import backup failed"); - - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - String FileName = Env.getContext(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_FileName); - String Source_Directory = Env.getContext(ctx, "Source_Directory"); - String Target_Directory = Env.getContext(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_Target_Directory); - String ReleaseNo = Env.getContext(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_ReleaseNo); - AttributesImpl atts = new AttributesImpl(); - atts.addAttribute("","","name","CDATA",FileName); - atts.addAttribute("","","sourceDirectory","CDATA",Source_Directory); - atts.addAttribute("","","targetDirectory","CDATA",Target_Directory); - atts.addAttribute("","","ReleaseNo","CDATA",ReleaseNo); - document.startElement("","","distfile",atts); - document.endElement("","","distfile"); - } - -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/DynValRuleElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/DynValRuleElementHandler.java deleted file mode 100644 index 7d3bcef1e4..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/DynValRuleElementHandler.java +++ /dev/null @@ -1,139 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.X_AD_Package_Exp_Detail; -import org.compiere.model.X_AD_Val_Rule; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class DynValRuleElementHandler extends AbstractElementHandler { - - private List rules = new ArrayList(); - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue+" "+atts.getValue("Name")); - String entitytype = atts.getValue("EntityType"); - if (isProcessElement(ctx, entitytype)) { - String name = atts.getValue("Name"); - int id = get_IDWithColumn(ctx, "AD_Val_Rule", "name", name); - - X_AD_Val_Rule m_ValRule = new X_AD_Val_Rule(ctx, id, getTrxName(ctx)); - if (id <= 0 && atts.getValue("AD_Val_Rule_ID") != null && Integer.parseInt(atts.getValue("AD_Val_Rule_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_ValRule.setAD_Val_Rule_ID(Integer.parseInt(atts.getValue("AD_Val_Rule_ID"))); - int AD_Backup_ID = -1; - String Object_Status = null; - if (id > 0){ - AD_Backup_ID = copyRecord(ctx, "AD_Val_Rule",m_ValRule); - Object_Status = "Update"; - } - else{ - Object_Status = "New"; - AD_Backup_ID =0; - } - m_ValRule.setDescription(getStringValue(atts, "Description")); - m_ValRule.setEntityType(atts.getValue("EntityType")); - m_ValRule.setIsActive(atts.getValue("isActive") != null ? Boolean.valueOf(atts.getValue("isActive")).booleanValue():true); - m_ValRule.setName(name); - m_ValRule.setType(atts.getValue("Type")); - m_ValRule.setCode(atts.getValue("Code")); - if (m_ValRule.save(getTrxName(ctx)) == true){ - record_log (ctx, 1, m_ValRule.getName(),"ValRule", m_ValRule.get_ID(),AD_Backup_ID, Object_Status,"AD_Val_Rule",get_IDWithColumn(ctx, "AD_Table", "TableName", "AD_Val_Rule")); - } - else{ - record_log (ctx, 0, m_ValRule.getName(),"ValRule", m_ValRule.get_ID(),AD_Backup_ID, Object_Status,"AD_Val_Rule",get_IDWithColumn(ctx, "AD_Table", "TableName", "AD_Val_Rule")); - throw new POSaveFailedException("Failed to save dynamic validation rule."); - } - } else { - element.skip = true; - } - - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Val_Rule_ID = Env.getContextAsInt(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Val_Rule_ID); - if (rules.contains(AD_Val_Rule_ID)) - return; - rules.add(AD_Val_Rule_ID); - String sql = "SELECT Name FROM AD_Val_Rule WHERE AD_Val_Rule_ID= " + AD_Val_Rule_ID; - AttributesImpl atts = new AttributesImpl(); - PreparedStatement pstmt = null; - ResultSet rs = null; - pstmt = DB.prepareStatement (sql, getTrxName(ctx)); - - try { - - rs = pstmt.executeQuery(); - - while (rs.next()) - { - X_AD_Val_Rule m_ValRule = new X_AD_Val_Rule (ctx, AD_Val_Rule_ID, null); - createDynamicValidationRuleBinding(atts,m_ValRule); - document.startElement("","","dynvalrule",atts); - document.endElement("","","dynvalrule"); - } - } - - catch (Exception e){ - log.log(Level.SEVERE,"getProcess", e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - - } - - private AttributesImpl createDynamicValidationRuleBinding( AttributesImpl atts, X_AD_Val_Rule m_ValRule) - { - atts.clear(); - if (m_ValRule.getAD_Val_Rule_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_Val_Rule_ID","CDATA",Integer.toString(m_ValRule.getAD_Val_Rule_ID())); - atts.addAttribute("","","Name","CDATA",(m_ValRule.getName () != null ? m_ValRule.getName ():"")); - //FIXME: may not need this I guess - //atts.addAttribute("","","AccessLevel","CDATA",(m_ValRule.getAccessLevel () != null ? m_ValRule.getAccessLevel ():"")); - atts.addAttribute("","","Code","CDATA",(m_ValRule.getCode() != null ? m_ValRule.getCode ():"")); - atts.addAttribute("","","Description","CDATA",(m_ValRule.getDescription () != null ? m_ValRule.getDescription ():"")); - atts.addAttribute("","","EntityType","CDATA",(m_ValRule.getEntityType () != null ? m_ValRule.getEntityType ():"")); - atts.addAttribute("","","Type","CDATA",(m_ValRule.getType () != null ? m_ValRule.getType ():"")); - atts.addAttribute("","","isActive","CDATA",(m_ValRule.isActive()== true ? "true":"false")); - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/EntityTypeElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/EntityTypeElementHandler.java deleted file mode 100644 index e23808dae7..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/EntityTypeElementHandler.java +++ /dev/null @@ -1,162 +0,0 @@ -/** - * - */ -package org.adempiere.pipo.handler; - -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.I_AD_EntityType; -import org.compiere.model.MEntityType; -import org.compiere.model.PO; -import org.compiere.model.X_AD_Package_Exp_Detail; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -/** - * @author Teo Sarca - *
  • FR [ 2847694 ] 2pack import/export AD_EntityType functionality - * https://sourceforge.net/tracker/?func=detail&atid=879335&aid=2847694&group_id=176962 - */ -public class EntityTypeElementHandler extends AbstractElementHandler -{ - public static final String TAG_Name = "entitytype"; - - private final List entityTypes = new ArrayList(); - - public void startElement(Properties ctx, Element element) throws SAXException - { - final String elementValue = element.getElementValue(); - final Attributes atts = element.attributes; - final String entitytype = atts.getValue(I_AD_EntityType.COLUMNNAME_EntityType); - if (log.isLoggable(Level.INFO)) log.info(elementValue+" "+entitytype); - if (isProcessElement(ctx, entitytype)) - { - int id = get_IDWithColumn(ctx, I_AD_EntityType.Table_Name, I_AD_EntityType.COLUMNNAME_EntityType, entitytype); - final MEntityType entity = new MEntityType(ctx, id, getTrxName(ctx)); - final int AD_Backup_ID; - final String Object_Status; - if (id <= 0 && getIntValue(atts, I_AD_EntityType.COLUMNNAME_AD_EntityType_ID, 0) <= PackOut.MAX_OFFICIAL_ID) - { - entity.setAD_EntityType_ID(getIntValue(atts, I_AD_EntityType.COLUMNNAME_AD_EntityType_ID, 0)); - } - if (id > 0) - { - AD_Backup_ID = copyRecord(ctx, I_AD_EntityType.Table_Name, entity); - Object_Status = "Update"; - } - else - { - Object_Status = "New"; - AD_Backup_ID = 0; - } - - entity.setName(getStringValue(atts, I_AD_EntityType.COLUMNNAME_Name)); - entity.setDescription(getStringValue(atts, I_AD_EntityType.COLUMNNAME_Description)); - entity.setHelp(getStringValue(atts, I_AD_EntityType.COLUMNNAME_Help)); - entity.setEntityType(getStringValue(atts, I_AD_EntityType.COLUMNNAME_EntityType)); - entity.setVersion(atts.getValue(I_AD_EntityType.COLUMNNAME_Version)); - entity.setIsActive(getBooleanValue(atts, I_AD_EntityType.COLUMNNAME_IsActive, true)); - entity.setModelPackage(getStringValue(atts, I_AD_EntityType.COLUMNNAME_ModelPackage)); - entity.setClasspath(getStringValue(atts, I_AD_EntityType.COLUMNNAME_Classpath)); - if (entity.save(getTrxName(ctx)) == true) - { - record_log (ctx, 1, entity.getEntityType(), TAG_Name, entity.get_ID(), - AD_Backup_ID, Object_Status, - I_AD_EntityType.Table_Name, I_AD_EntityType.Table_ID); - } - else - { - record_log (ctx, 0, entity.getEntityType(), TAG_Name, entity.get_ID(), - AD_Backup_ID, Object_Status, - I_AD_EntityType.Table_Name, I_AD_EntityType.Table_ID); - throw new POSaveFailedException("Failed to save message."); - } - } - else - { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException - { - } - - public void create(Properties ctx, TransformerHandler document) throws SAXException - { - // TODO - final int AD_EntityType_ID = Env.getContextAsInt(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_EntityType_ID); - if (entityTypes.contains(AD_EntityType_ID)) - return; - entityTypes.add(AD_EntityType_ID); - - - final MEntityType entity = new MEntityType(ctx, AD_EntityType_ID, null); - AttributesImpl atts = new AttributesImpl(); - createMessageBinding(atts, entity); - document.startElement("", "", TAG_Name, atts); - document.endElement("", "", TAG_Name); - } - - private AttributesImpl createMessageBinding(AttributesImpl atts, MEntityType entity) - { - atts.clear(); - if (entity.getAD_EntityType_ID() <= PackOut.MAX_OFFICIAL_ID) - { - addAttribute(atts, I_AD_EntityType.COLUMNNAME_AD_EntityType_ID, entity); - } - - addAttribute(atts, I_AD_EntityType.COLUMNNAME_Name, entity); - addAttribute(atts, I_AD_EntityType.COLUMNNAME_Description, entity); - addAttribute(atts, I_AD_EntityType.COLUMNNAME_Help, entity); - addAttribute(atts, I_AD_EntityType.COLUMNNAME_EntityType, entity); - addAttribute(atts, I_AD_EntityType.COLUMNNAME_Version, entity); - addAttribute(atts, I_AD_EntityType.COLUMNNAME_IsActive, entity); - addAttribute(atts, I_AD_EntityType.COLUMNNAME_ModelPackage, entity); - addAttribute(atts, I_AD_EntityType.COLUMNNAME_Classpath, entity); - - return atts; - } - - protected boolean getBooleanValue(Attributes atts, String qName, boolean defaultValue) - { - String s = atts.getValue(qName); - return s != null ? Boolean.valueOf(s) : defaultValue; - } - - protected int getIntValue(Attributes atts, String qName, int defaultValue) - { - Object o = atts.getValue(qName); - if (o == null) - return defaultValue; - if (o instanceof Number) - return ((Number)o).intValue(); - return Integer.parseInt(o.toString()); - } - - private final void addAttribute(AttributesImpl atts, String name, PO po) - { - Object value = po.get_Value(name); - atts.addAttribute("", "", name, "CDATA", toStringAttribute(value)); - } - - private final String toStringAttribute(Object value) - { - if (value == null) - return ""; - if (value instanceof Boolean) - return ((Boolean)value).booleanValue() == true ? "true" : "false"; - return value.toString(); - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/FieldElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/FieldElementHandler.java deleted file mode 100644 index 2658cdd4c8..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/FieldElementHandler.java +++ /dev/null @@ -1,386 +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) 2005 Robert Klein. robeklein@hotmail.com * - * Contributor(s): Low Heng Sin hengsin@avantz.com * - * Teo Sarca teo.sarca@gmail.com * - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.math.BigDecimal; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackIn; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.MField; -import org.compiere.model.X_AD_Field; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class FieldElementHandler extends AbstractElementHandler -{ - public void startElement(Properties ctx, Element element) throws SAXException - { - final String include_tabname = element.attributes.getValue("ADIncludeTabNameID"); - - // Set Included Tab ID if this task was previously postponed - if (element.defer && element.recordId > 0 && include_tabname != null) - { - MField field = new MField(ctx, element.recordId, getTrxName(ctx)); - setIncluded_Tab_ID(ctx, field, include_tabname); - field.saveEx(); - return; - } - - PackIn packIn = (PackIn)ctx.get("PackInProcess"); - String elementValue = element.getElementValue(); - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("Name")); - String entitytype = atts.getValue("EntityType"); - if (isProcessElement(ctx, entitytype)) { - if (element.parent != null && element.parent.getElementValue().equals("tab") && - element.parent.defer) { - element.defer = true; - return; - } - String name = atts.getValue("Name"); - String tabname = atts.getValue("ADTabNameID"); - String colname = atts.getValue("ADColumnNameID"); - String tableName = atts.getValue("ADTableNameID"); - int tableid = packIn.getTableId(tableName); - if (tableid <= 0) { - tableid = get_IDWithColumn(ctx, "AD_Table", "TableName", tableName); - if (tableid > 0) - packIn.addTable(tableName, tableid); - } - if (tableid <= 0) { - element.defer = true; - return; - } - int windowid = get_ID(ctx, "AD_Window", atts - .getValue("ADWindowNameID")); - if (windowid <= 0) { - element.defer = true; - return; - } - int columnid = packIn.getColumnId(tableName, colname); - if (columnid <= 0) { - columnid = get_IDWithMasterAndColumn(ctx, "AD_Column", - "ColumnName", colname, "AD_Table", tableid); - if (columnid > 0) - packIn.addColumn(tableName, colname, columnid); - } - if (columnid <= 0) { - element.defer = true; - return; - } - int tabid = 0; - if (element.parent != null && element.parent.getElementValue().equals("tab") && - element.parent.recordId > 0) { - tabid = element.parent.recordId; - } else { - StringBuffer sqlB = new StringBuffer( - "select AD_Tab_ID from AD_Tab where AD_Window_ID = " - + windowid).append(" and Name = '" + tabname + "'") - .append(" and AD_Table_ID = ?"); - tabid = DB.getSQLValue(getTrxName(ctx), sqlB.toString(), - tableid); - if (element.parent != null && element.parent.getElementValue().equals("tab") && tabid > 0) { - element.parent.recordId = tabid; - } - } - if (tabid > 0) { - StringBuffer sqlB = new StringBuffer( - "select AD_Field_ID from AD_Field where AD_Column_ID = ") - .append(columnid) - .append(" and AD_Tab_ID = ?"); - int id = DB.getSQLValue(getTrxName(ctx), sqlB.toString(), tabid); - final MField m_Field = new MField(ctx, id, getTrxName(ctx)); - if (id <= 0 && atts.getValue("AD_Field_ID") != null && Integer.parseInt(atts.getValue("AD_Field_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Field.setAD_Field_ID(Integer.parseInt(atts.getValue("AD_Field_ID"))); - int AD_Backup_ID = -1; - String Object_Status = null; - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_Field", m_Field); - Object_Status = "Update"; - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - - m_Field.setName(atts.getValue("Name")); - m_Field.setAD_Column_ID(columnid); - name = atts.getValue("ADFieldGroupNameID"); - id = get_IDWithColumn(ctx, "AD_FieldGroup", "Name", name); - m_Field.setAD_FieldGroup_ID(id); - m_Field.setAD_Tab_ID(tabid); - m_Field.setEntityType(atts.getValue("EntityType")); - m_Field.setIsSameLine(Boolean - .valueOf(atts.getValue("SameLine")).booleanValue()); - m_Field.setIsCentrallyMaintained(Boolean.valueOf( - atts.getValue("isCentrallyMaintained")).booleanValue()); - m_Field.setIsDisplayed(Boolean.valueOf( - atts.getValue("Displayed")).booleanValue()); - // m_Field.setIsEncrypted(Boolean.valueOf(atts.getValue("isEncrypted")).booleanValue()); - m_Field.setIsFieldOnly(Boolean.valueOf( - atts.getValue("isFieldOnly")).booleanValue()); - m_Field.setIsHeading(Boolean - .valueOf(atts.getValue("isHeading")).booleanValue()); - m_Field.setIsReadOnly(Boolean.valueOf( - atts.getValue("isReadOnly")).booleanValue()); - m_Field.setSeqNo(Integer.parseInt(atts.getValue("SeqNo"))); - m_Field.setDisplayLength(Integer.parseInt(atts - .getValue("DisplayLength"))); - m_Field.setDescription(getStringValue(atts, "Description")); - m_Field.setHelp(getStringValue(atts, "Help")); - m_Field.setIsActive(atts.getValue("isActive") != null ? Boolean - .valueOf(atts.getValue("isActive")).booleanValue() - : true); - String sortNo = getStringValue(atts, "SortNo"); - if (sortNo != null) - m_Field.setSortNo(new BigDecimal(sortNo)); - m_Field.setDisplayLogic(getStringValue(atts, "DisplayLogic")); - - String Name = atts.getValue("ADReferenceNameID"); - id = get_IDWithColumn(ctx, "AD_Reference", "Name", Name); - m_Field.setAD_Reference_ID(id); - - Name = atts.getValue("ADValRuleNameID"); - id = get_IDWithColumn(ctx, "AD_Val_Rule", "Name", Name); - m_Field.setAD_Val_Rule_ID(id); - Name = atts.getValue("ADReferenceNameValueID"); - id = get_IDWithColumn(ctx, "AD_Reference", "Name", Name); - m_Field.setAD_Reference_Value_ID(id); - //m_Field.setInfoFactoryClass(getStringValue(atts, "InfoFactoryClass")); - setIncluded_Tab_ID(ctx, m_Field, include_tabname); - - if (m_Field.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_Field.getName(), "Field", m_Field - .get_ID(), AD_Backup_ID, Object_Status, "AD_Field", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Field")); - element.recordId = m_Field.getAD_Field_ID(); - } else { - record_log(ctx, 0, m_Field.getName(), "Field", m_Field - .get_ID(), AD_Backup_ID, Object_Status, "AD_Field", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Field")); - throw new POSaveFailedException("Failed to save field definition."); - } - - // If Included Tab not found, then postpone this task for later processing - if (m_Field.getAD_Field_ID() > 0 && include_tabname != null && m_Field.getIncluded_Tab_ID() <= 0) - { - element.defer = true; - } - } else { - element.defer = true; - return; - } - } else { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Field_ID = Env.getContextAsInt(ctx, - X_AD_Field.COLUMNNAME_AD_Field_ID); - X_AD_Field m_Field = new X_AD_Field(ctx, AD_Field_ID, null); - AttributesImpl atts = new AttributesImpl(); - createFieldBinding(atts, m_Field); - - PackOut packOut = (PackOut)ctx.get("PackOutProcess"); - - if(m_Field.getAD_FieldGroup_ID() > 0){ - packOut.createFieldGroupElement(m_Field.getAD_FieldGroup_ID(), document); - } - - if(m_Field.getAD_Reference_ID() > 0) { - packOut.createReference(m_Field.getAD_Reference_ID(), document); - } - - if (m_Field.getAD_Reference_Value_ID() > 0) { - packOut.createReference(m_Field.getAD_Reference_Value_ID(), document); - } - - if (m_Field.getAD_Val_Rule_ID() > 0) { - packOut.createDynamicRuleValidation(m_Field.getAD_Val_Rule_ID(), document); - } - - document.startElement("", "", "field", atts); - document.endElement("", "", "field"); - } - - private AttributesImpl createFieldBinding(AttributesImpl atts, - X_AD_Field m_Field) { - String sql = null; - String name = null; - atts.clear(); - if (m_Field.getAD_Field_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("", "", "AD_Field_ID", "CDATA", Integer.toString(m_Field.getAD_Field_ID())); - if (m_Field.getAD_Column_ID() > 0) { - sql = "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID=?"; - name = DB.getSQLValueString(null, sql, m_Field.getAD_Column_ID()); - atts.addAttribute("", "", "ADColumnNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADColumnNameID", "CDATA", ""); - - if (m_Field.getAD_Column_ID() > 0) { - sql = "SELECT AD_Table_ID FROM AD_Column WHERE AD_Column_ID=?"; - int idTable = DB.getSQLValue(null, sql, m_Field.getAD_Column_ID()); - sql = "SELECT TableName FROM AD_Table WHERE AD_Table_ID=?"; - name = DB.getSQLValueString(null, sql, idTable); - atts.addAttribute("", "", "ADTableNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADTableNameID", "CDATA", ""); - if (m_Field.getAD_FieldGroup_ID() > 0) { - sql = "SELECT Name FROM AD_FieldGroup WHERE AD_FieldGroup_ID=?"; - name = DB.getSQLValueString(null, sql, m_Field - .getAD_FieldGroup_ID()); - atts.addAttribute("", "", "ADFieldGroupNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADFieldGroupNameID", "CDATA", ""); - - if (m_Field.getAD_Field_ID() > 0) { - sql = "SELECT Name FROM AD_Field WHERE AD_Field_ID=?"; - name = DB.getSQLValueString(null, sql, m_Field.getAD_Field_ID()); - atts.addAttribute("", "", "ADFieldNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADFieldNameID", "CDATA", ""); - - if (m_Field.getAD_Tab_ID() > 0) { - sql = "SELECT Name FROM AD_Tab WHERE AD_Tab_ID=?"; - name = DB.getSQLValueString(null, sql, m_Field.getAD_Tab_ID()); - atts.addAttribute("", "", "ADTabNameID", "CDATA", name); - sql = "SELECT AD_Window_ID FROM AD_Tab WHERE AD_Tab_ID=?"; - int windowid = DB.getSQLValue(null, sql, m_Field.getAD_Tab_ID()); - sql = "SELECT Name FROM AD_Window WHERE AD_Window_ID=?"; - name = DB.getSQLValueString(null, sql, windowid); - atts.addAttribute("", "", "ADWindowNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADTabNameID", "CDATA", ""); - - if (m_Field.getIncluded_Tab_ID() > 0) { - sql = "SELECT Name FROM AD_Tab WHERE AD_Tab_ID=?"; - name = DB.getSQLValueString(null, sql, m_Field.getIncluded_Tab_ID()); - atts.addAttribute("", "", "ADIncludeTabNameID", "CDATA", name); - } - - atts.addAttribute("", "", "EntityType", "CDATA", (m_Field - .getEntityType() != null ? m_Field.getEntityType() : "")); - atts.addAttribute("", "", "Name", "CDATA", - (m_Field.getName() != null ? m_Field.getName() : "")); - atts.addAttribute("", "", "SameLine", "CDATA", - (m_Field.isSameLine() == true ? "true" : "false")); - atts.addAttribute("", "", "isCentrallyMaintained", "CDATA", (m_Field - .isCentrallyMaintained() == true ? "true" : "false")); - atts.addAttribute("", "", "Displayed", "CDATA", - (m_Field.isDisplayed() == true ? "true" : "false")); - atts.addAttribute("", "", "isActive", "CDATA", - (m_Field.isActive() == true ? "true" : "false")); - atts.addAttribute("", "", "isEncrypted", "CDATA", (m_Field - .isEncrypted() == true ? "true" : "false")); - atts.addAttribute("", "", "isFieldOnly", "CDATA", (m_Field - .isFieldOnly() == true ? "true" : "false")); - atts.addAttribute("", "", "isHeading", "CDATA", - (m_Field.isHeading() == true ? "true" : "false")); - atts.addAttribute("", "", "isReadOnly", "CDATA", - (m_Field.isReadOnly() == true ? "true" : "false")); - atts.addAttribute("", "", "SeqNo", "CDATA", "" + (m_Field.getSeqNo())); - atts.addAttribute("", "", "DisplayLength", "CDATA", - (m_Field.getDisplayLength() > 0 ? "" - + m_Field.getDisplayLength() : "0")); - atts.addAttribute("", "", "Description", "CDATA", (m_Field - .getDescription() != null ? m_Field.getDescription() : "")); - atts.addAttribute("", "", "Help", "CDATA", - (m_Field.getHelp() != null ? m_Field.getHelp() : "")); - atts.addAttribute("", "", "SortNo", "CDATA", - (m_Field.getSortNo() != null ? m_Field.getSortNo().toString() - : "")); - atts.addAttribute("", "", "DisplayLogic", "CDATA", (m_Field - .getDisplayLogic() != null ? m_Field.getDisplayLogic() : "")); - atts.addAttribute("", "", "ObscureType", "CDATA", (m_Field - .getObscureType() != null ? m_Field.getObscureType() : "")); - - //atts.addAttribute("", "", "InfoFactoryClass", "CDATA", (m_Field.getInfoFactoryClass() != null - // ? m_Field.getInfoFactoryClass() : "")); - - if (m_Field.getAD_Reference_ID() > 0) { - sql = "SELECT Name FROM AD_Reference WHERE AD_Reference_ID=?"; - name = DB.getSQLValueString(null, sql, m_Field - .getAD_Reference_ID()); - atts.addAttribute("", "", "ADReferenceNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADReferenceNameID", "CDATA", ""); - if (m_Field.getAD_Reference_Value_ID() > 0) { - sql = "SELECT Name FROM AD_Reference WHERE AD_Reference_ID=?"; - name = DB.getSQLValueString(null, sql, m_Field - .getAD_Reference_Value_ID()); - atts.addAttribute("", "", "ADReferenceNameValueID", "CDATA", name); - } else - atts.addAttribute("", "", "ADReferenceNameValueID", "CDATA", ""); - if (m_Field.getAD_Val_Rule_ID() > 0) { - sql = "SELECT Name FROM AD_Val_Rule WHERE AD_Val_Rule_ID=?"; - name = DB - .getSQLValueString(null, sql, m_Field.getAD_Val_Rule_ID()); - atts.addAttribute("", "", "ADValRuleNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADValRuleNameID", "CDATA", ""); - - return atts; - } - - /** - * Set Included_Tab_ID (if needed) - * @param ctx - * @param field - * @param includedTabName - */ - private void setIncluded_Tab_ID(Properties ctx, MField field, String includedTabName) - { - if (includedTabName == null) - return; - // - final String trxName = getTrxName(ctx); - final int AD_Tab_ID = field.getAD_Tab_ID(); - if (AD_Tab_ID <= 0) - { - log.warning("AD_Tab_ID=0 ("+field+")"); - return; - } - final int AD_Window_ID = DB.getSQLValueEx(trxName, - "SELECT AD_Window_ID FROM AD_Tab WHERE AD_Tab_ID=?", - AD_Tab_ID); - final int included_Tab_ID = DB.getSQLValueEx(trxName, - "SELECT AD_Tab_ID FROM AD_Tab WHERE Name=? AND AD_Window_ID=? AND AD_Tab_ID<>?", - includedTabName, AD_Window_ID, AD_Tab_ID); - if(included_Tab_ID > 0) - { - field.setIncluded_Tab_ID(included_Tab_ID); - } - - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/FieldGroupElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/FieldGroupElementHandler.java deleted file mode 100644 index bf1852891a..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/FieldGroupElementHandler.java +++ /dev/null @@ -1,155 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Igor G. - progerpro@gmail.com - * Teo Sarca, teo.sarca@gmail.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.AttributeFiller; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.PoFiller; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.X_AD_FieldGroup; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class FieldGroupElementHandler extends AbstractElementHandler { - - private List processedFieldGroups = new ArrayList(); - - - public void startElement(Properties ctx, Element element) - throws SAXException { - String elementValue = element.getElementValue(); - int AD_Backup_ID = -1; - String Object_Status = null; - - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("Name")); - - String entitytype = atts.getValue("EntityType"); - String name = atts.getValue("Name"); - - if (isProcessElement(ctx, entitytype)) { - - int id = get_IDWithColumn(ctx, X_AD_FieldGroup.Table_Name, X_AD_FieldGroup.COLUMNNAME_Name, name); - - X_AD_FieldGroup fieldGroup = new X_AD_FieldGroup(ctx, id, - getTrxName(ctx)); - if (id <= 0 && atts.getValue("AD_FieldGroup_ID") != null && Integer.parseInt(atts.getValue("AD_FieldGroup_ID")) <= PackOut.MAX_OFFICIAL_ID) - fieldGroup.setAD_FieldGroup_ID(Integer.parseInt(atts.getValue("AD_FieldGroup_ID"))); - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, X_AD_FieldGroup.Table_Name, fieldGroup); - Object_Status = "Update"; - if (processedFieldGroups.contains(id)) { - element.skip = true; - return; - } - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - - PoFiller pf = new PoFiller(fieldGroup, atts); - - pf.setBoolean(X_AD_FieldGroup.COLUMNNAME_IsActive); - - pf.setString(X_AD_FieldGroup.COLUMNNAME_Name); - pf.setString(X_AD_FieldGroup.COLUMNNAME_EntityType); - pf.setString(X_AD_FieldGroup.COLUMNNAME_FieldGroupType); - pf.setBoolean(X_AD_FieldGroup.COLUMNNAME_IsCollapsedByDefault); - - - if (fieldGroup.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, fieldGroup.getName(), "FieldGroup", - fieldGroup.get_ID(), AD_Backup_ID, Object_Status, - X_AD_FieldGroup.Table_Name, get_IDWithColumn(ctx, "AD_Table", - "TableName", X_AD_FieldGroup.Table_Name)); - - element.recordId = fieldGroup.getAD_FieldGroup_ID(); - - processedFieldGroups.add(fieldGroup.getAD_FieldGroup_ID()); - - } else { - record_log(ctx, 0, fieldGroup.getName(), "FieldGroup", - fieldGroup.get_ID(), AD_Backup_ID, Object_Status, - X_AD_FieldGroup.Table_Name, get_IDWithColumn(ctx, "AD_Table", - "TableName", X_AD_FieldGroup.Table_Name)); - throw new POSaveFailedException("Reference"); - } - } else { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - - - int fieldGroup_id = Env.getContextAsInt(ctx, - X_AD_FieldGroup.COLUMNNAME_AD_FieldGroup_ID); - - if (processedFieldGroups.contains(fieldGroup_id)) - return; - - processedFieldGroups.add(fieldGroup_id); - - X_AD_FieldGroup fieldGroup = new X_AD_FieldGroup(ctx, fieldGroup_id, null); - - AttributesImpl atts = new AttributesImpl(); - createFieldGroupBinding(atts, fieldGroup); - - document.startElement("", "", "fieldgroup", atts); - - PackOut packOut = (PackOut)ctx.get("PackOutProcess"); - - packOut.createTranslations(X_AD_FieldGroup.Table_Name, - fieldGroup.get_ID(), document); - - document.endElement("", "", "fieldgroup"); - } - - - private AttributesImpl createFieldGroupBinding(AttributesImpl atts, X_AD_FieldGroup fieldGroup) - { - - AttributeFiller filler = new AttributeFiller(atts, fieldGroup); - if (fieldGroup.getAD_FieldGroup_ID() <= PackOut.MAX_OFFICIAL_ID) - filler.add(X_AD_FieldGroup.COLUMNNAME_AD_FieldGroup_ID); - - filler.add(X_AD_FieldGroup.COLUMNNAME_IsActive); - - filler.add(X_AD_FieldGroup.COLUMNNAME_Name); - filler.add(X_AD_FieldGroup.COLUMNNAME_EntityType); - filler.add(X_AD_FieldGroup.COLUMNNAME_FieldGroupType); - filler.add(X_AD_FieldGroup.COLUMNNAME_IsCollapsedByDefault); - - return atts; - } -} \ No newline at end of file diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/FormAccessElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/FormAccessElementHandler.java deleted file mode 100644 index 13689f274a..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/FormAccessElementHandler.java +++ /dev/null @@ -1,139 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.Properties; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.exception.DatabaseAccessException; -import org.compiere.model.X_AD_Form; -import org.compiere.model.X_AD_Role; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class FormAccessElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - log.info(elementValue); - int roleid =0; - int formid =0; - StringBuffer sqlB = null; - Attributes atts = element.attributes; - if (atts.getValue("rolename")!=null){ - String name = atts.getValue("rolename"); - sqlB = new StringBuffer ("SELECT AD_Role_ID FROM AD_Role WHERE Name= ?"); - roleid = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),name); - } - - if (atts.getValue("formname")!=null){ - String name = atts.getValue("formname"); - sqlB = new StringBuffer ("SELECT AD_Form_ID FROM AD_Form WHERE Name= ?"); - formid = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),name); - } - - sqlB = new StringBuffer ("SELECT count(*) FROM AD_Form_Access WHERE AD_Role_ID=? and AD_Form_ID=?"); - int count = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),roleid,formid); - @SuppressWarnings("unused") - String Object_Status = null; - @SuppressWarnings("unused") - int AD_Backup_ID = -1; - if (count>0){ - Object_Status = "Update"; - sqlB = new StringBuffer ("UPDATE AD_Form_Access ") - .append( "SET isActive = '" + atts.getValue("isActive") ) - .append( "', isReadWrite = '" + atts.getValue("isReadWrite") ) - .append( "' WHERE AD_Role_ID = " + roleid ) - .append( " and AD_Form_ID = " + formid ); - - int no = DB.executeUpdate (sqlB.toString(), getTrxName(ctx)); - if (no == -1) { - log.info("Update to form access failed"); - throw new DatabaseAccessException("Update to form access failed"); - } - } - else{ - Object_Status = "New"; - AD_Backup_ID =0; - sqlB = new StringBuffer ("INSERT INTO AD_Form_Access" - + "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, " - + "AD_Role_ID, AD_Form_ID, isActive, isReadWrite) " - + "VALUES(" - + " "+ Env.getAD_Client_ID(ctx) - + ", "+ Env.getAD_Org_ID(ctx) - + ", "+ Env.getAD_User_ID(ctx) - + ", "+ Env.getAD_User_ID(ctx) - + ", " + roleid - + ", " + formid - + ", '" + atts.getValue("isActive") - + "', '" + atts.getValue("isReadWrite")+"')"); - - int no = DB.executeUpdate (sqlB.toString(), getTrxName(ctx)); - if (no == -1) { - log.info("Insert to form access failed"); - throw new DatabaseAccessException("Insert to form access failed"); - } - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Form_ID = Env.getContextAsInt(ctx, X_AD_Form.COLUMNNAME_AD_Form_ID); - int AD_Role_ID = Env.getContextAsInt(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); - AttributesImpl atts = new AttributesImpl(); - createFormAccessBinding(atts, AD_Form_ID, AD_Role_ID); - document.startElement("", "", "formaccess", atts); - document.endElement("", "", "formaccess"); - } - - private AttributesImpl createFormAccessBinding(AttributesImpl atts, - int form_id, int role_id) { - String sql = null; - String name = null; - atts.clear(); - - sql = "SELECT Name FROM AD_Form WHERE AD_Form_ID=?"; - name = DB.getSQLValueString(null, sql, form_id); - atts.addAttribute("", "", "formname", "CDATA", name); - - sql = "SELECT Name FROM AD_Role WHERE AD_Role_ID=?"; - name = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "rolename", "CDATA", name); - - sql = "SELECT isActive FROM AD_Form_Access WHERE AD_Form_ID=" + form_id - + " and AD_Role_ID=?"; - String TrueFalse = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "isActive", "CDATA", TrueFalse); - - sql = "SELECT isReadWrite FROM AD_Form_Access WHERE AD_Form_ID=" - + form_id + " and AD_Role_ID=?"; - String isReadWrite = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "isReadWrite", "CDATA", isReadWrite); - - return atts; - } - -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/FormElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/FormElementHandler.java deleted file mode 100644 index 4ed5ac30b6..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/FormElementHandler.java +++ /dev/null @@ -1,130 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.MForm; -import org.compiere.model.X_AD_Form; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class FormElementHandler extends AbstractElementHandler { - - private List forms = new ArrayList(); - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue+" "+atts.getValue("ADFormNameID")); - - String entitytype = atts.getValue("EntityType"); - if (isProcessElement(ctx, entitytype)) { - String name = atts.getValue("ADFormNameID"); - int id = get_ID(ctx, "AD_Form", name); - MForm m_Form = new MForm(ctx, id, getTrxName(ctx)); - int AD_Backup_ID = -1; - String Object_Status = null; - if (id <= 0 && atts.getValue("AD_Form_ID") != null && Integer.parseInt(atts.getValue("AD_Form_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Form.setAD_Form_ID(Integer.parseInt(atts.getValue("AD_Form_ID"))); - if (id > 0){ - AD_Backup_ID = copyRecord(ctx, "AD_Form",m_Form); - Object_Status = "Update"; - } - else{ - Object_Status = "New"; - AD_Backup_ID =0; - } - m_Form.setClassname (atts.getValue("Classname")); - m_Form.setIsBetaFunctionality (Boolean.valueOf(atts.getValue("isBetaFunctionality")).booleanValue()); - m_Form.setAccessLevel(atts.getValue("AccessLevel")); - m_Form.setDescription(getStringValue(atts, "Description")); - m_Form.setEntityType(atts.getValue("EntityType")); - m_Form.setHelp(getStringValue(atts, "Help")); - m_Form.setIsActive(atts.getValue("isActive") != null ? Boolean.valueOf(atts.getValue("isActive")).booleanValue():true); - m_Form.setName(atts.getValue("Name")); - - if (m_Form.save(getTrxName(ctx)) == true){ - record_log (ctx, 1, m_Form.getName(),"Form", m_Form.get_ID(),AD_Backup_ID, Object_Status,"AD_Form",get_IDWithColumn(ctx, "AD_Table", "TableName", "AD_Form")); - } - else{ - record_log (ctx, 0, m_Form.getName(),"Form", m_Form.get_ID(),AD_Backup_ID, Object_Status,"AD_Form",get_IDWithColumn(ctx, "AD_Table", "TableName", "AD_Form")); - throw new POSaveFailedException("Failed to save form definition"); - } - } else { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Form_ID = Env.getContextAsInt(ctx, "AD_Form_ID"); - if (forms.contains(AD_Form_ID)) return; - - forms.add(AD_Form_ID); - X_AD_Form m_Form = new X_AD_Form (ctx, AD_Form_ID, null); - AttributesImpl atts = new AttributesImpl(); - createFormBinding(atts,m_Form); - document.startElement("","","form",atts); - document.endElement("","","form"); - } - - private AttributesImpl createFormBinding( AttributesImpl atts, X_AD_Form m_Form) - { - String sql = null; - String name = null; - atts.clear(); - if (m_Form.getAD_Form_ID()> 0 ){ - sql = "SELECT Name FROM AD_Form WHERE AD_Form_ID=?"; - name = DB.getSQLValueString(null,sql,m_Form.getAD_Form_ID()); - if (name != null ) - atts.addAttribute("","","ADFormNameID","CDATA",name); - else - atts.addAttribute("","","ADFormNameID","CDATA",""); - } else { - atts.addAttribute("","","ADFormNameID","CDATA",""); - } - if (m_Form.getAD_Form_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_Form_ID","CDATA",Integer.toString(m_Form.getAD_Form_ID())); - - atts.addAttribute("","","Classname","CDATA",(m_Form.getClassname () != null ? m_Form.getClassname ():"")); - atts.addAttribute("","","isBetaFunctionality","CDATA",(m_Form.isBetaFunctionality()== true ? "true":"false")); - atts.addAttribute("","","AccessLevel","CDATA",(m_Form.getAccessLevel () != null ? m_Form.getAccessLevel ():"")); - atts.addAttribute("","","Description","CDATA",(m_Form.getDescription () != null ? m_Form.getDescription ():"")); - atts.addAttribute("","","isActive","CDATA",(m_Form.isActive()== true ? "true":"false")); - atts.addAttribute("","","EntityType","CDATA",(m_Form.getEntityType () != null ? m_Form.getEntityType ():"")); - atts.addAttribute("","","Help","CDATA",(m_Form.getHelp() != null ? m_Form.getHelp():"")); - atts.addAttribute("","","Name","CDATA",(m_Form.getName() != null ? m_Form.getName():"")); - return atts; - } - -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ImpFormatElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ImpFormatElementHandler.java deleted file mode 100644 index cef3cabf32..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ImpFormatElementHandler.java +++ /dev/null @@ -1,183 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - * Teo Sarca, teo.sarca@gmail.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.DatabaseAccessException; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.X_AD_ImpFormat; -import org.compiere.model.X_AD_ImpFormat_Row; -import org.compiere.model.X_AD_Package_Exp_Detail; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class ImpFormatElementHandler extends AbstractElementHandler { - - private ImpFormatRowElementHandler rowHandler = new ImpFormatRowElementHandler(); - - private List formats = new ArrayList(); - - public void startElement(Properties ctx, Element element) - throws SAXException { - String elementValue = element.getElementValue(); - int AD_Backup_ID = -1; - String Object_Status = null; - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("Name")); - - int id = get_ID(ctx, "AD_ImpFormat", atts.getValue("Name")); - X_AD_ImpFormat m_ImpFormat = new X_AD_ImpFormat(ctx, id, - getTrxName(ctx)); - if (id <= 0 && atts.getValue("AD_ImpFormat_ID") != null && Integer.parseInt(atts.getValue("AD_ImpFormat_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_ImpFormat.setAD_ImpFormat_ID(Integer.parseInt(atts.getValue("AD_ImpFormat_ID"))); - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_ImpFormat", m_ImpFormat); - Object_Status = "Update"; - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - m_ImpFormat.setName(atts.getValue("Name")); - String name = atts.getValue("ADTableNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_Table", "TableName", name); - if (id <= 0) { - element.defer = true; - return; - } - m_ImpFormat.setAD_Table_ID(id); - } - - m_ImpFormat.setIsActive(atts.getValue("isActive") != null ? Boolean - .valueOf(atts.getValue("isActive")).booleanValue() : true); - m_ImpFormat - .setProcessing(atts.getValue("isProcessing") != null ? Boolean - .valueOf(atts.getValue("isProcessing")).booleanValue() - : true); - m_ImpFormat.setName(atts.getValue("Name")); - m_ImpFormat.setDescription(getStringValue(atts,"Description")); - m_ImpFormat.setFormatType(atts.getValue("FormatType")); - if (m_ImpFormat.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_ImpFormat.getName(), "ImpFormat", m_ImpFormat - .get_ID(), AD_Backup_ID, Object_Status, "AD_ImpFormat", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_ImpFormat")); - } else { - record_log(ctx, 0, m_ImpFormat.getName(), "ImpFormat", m_ImpFormat - .get_ID(), AD_Backup_ID, Object_Status, "AD_ImpFormat", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_ImpFormat")); - throw new POSaveFailedException("Failed to save Import Format."); - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int import_id = Env.getContextAsInt(ctx, - X_AD_Package_Exp_Detail.COLUMNNAME_AD_ImpFormat_ID); - - if (formats.contains(import_id)) - return; - formats.add(import_id); - AttributesImpl atts = new AttributesImpl(); - X_AD_ImpFormat m_ImpFormat = new X_AD_ImpFormat(ctx, import_id, null); - atts = createImpFormatBinding(atts, m_ImpFormat); - - document.startElement("", "", "impformat", atts); - String sql = "SELECT * FROM AD_ImpFormat_Row WHERE AD_ImpFormat_ID= " + import_id - +" ORDER BY "+X_AD_ImpFormat_Row.COLUMNNAME_AD_ImpFormat_Row_ID; - - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()) { - createImpFormatRow(ctx, document, rs - .getInt("AD_ImpFormat_Row_ID")); - } - rs.close(); - pstmt.close(); - pstmt = null; - } catch (Exception e) { - log.log(Level.SEVERE, "ImpFormat", e); - throw new DatabaseAccessException("Failed to export Import Format.", e); - } finally { - try { - if (pstmt != null) - pstmt.close(); - } catch (Exception e) { - } - pstmt = null; - } - document.endElement("", "", "impformat"); - - } - - private void createImpFormatRow(Properties ctx, - TransformerHandler document, int AD_ImpFormat_Row_ID) - throws SAXException { - Env.setContext(ctx, X_AD_ImpFormat_Row.COLUMNNAME_AD_ImpFormat_Row_ID, - AD_ImpFormat_Row_ID); - rowHandler.create(ctx, document); - ctx.remove(X_AD_ImpFormat_Row.COLUMNNAME_AD_ImpFormat_Row_ID); - } - - private AttributesImpl createImpFormatBinding(AttributesImpl atts, - X_AD_ImpFormat m_ImpFormat) { - atts.clear(); - if (m_ImpFormat.getAD_ImpFormat_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_ImpFormat_ID","CDATA",Integer.toString(m_ImpFormat.getAD_ImpFormat_ID())); - if (m_ImpFormat.getAD_Table_ID() > 0) { - String sql = "SELECT TableName FROM AD_Table WHERE AD_Table_ID=?"; - String name = DB.getSQLValueString(null, sql, m_ImpFormat - .getAD_Table_ID()); - atts.addAttribute("", "", "ADTableNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADTableNameID", "CDATA", ""); - - atts.addAttribute("", "", "Name", "CDATA", - (m_ImpFormat.getName() != null ? m_ImpFormat.getName() : "")); - atts.addAttribute("", "", "isActive", "CDATA", - (m_ImpFormat.isActive() == true ? "true" : "false")); - atts.addAttribute("", "", "isProcessing", "CDATA", (m_ImpFormat - .isProcessing() == true ? "true" : "false")); - atts.addAttribute("", "", "Description", "CDATA", (m_ImpFormat - .getDescription() != null ? m_ImpFormat.getDescription() : "")); - atts.addAttribute("", "", "FormatType", "CDATA", (m_ImpFormat - .getFormatType() != null ? m_ImpFormat.getFormatType() : "")); - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ImpFormatRowElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ImpFormatRowElementHandler.java deleted file mode 100644 index 76a79cf73e..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ImpFormatRowElementHandler.java +++ /dev/null @@ -1,169 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.X_AD_ImpFormat_Row; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class ImpFormatRowElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - int AD_Backup_ID = -1; - String Object_Status = null; - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue+" "+atts.getValue("Name")); - - int impformid = get_ID(ctx, "AD_ImpFormat", atts.getValue("ADImpFormatNameID")); - if (impformid <= 0) { - element.defer = true; - return; - } - - String name = atts.getValue("ADTableNameID"); - int tableid = 0; - if (name != null && name.trim().length() > 0) { - tableid = get_IDWithColumn(ctx, "AD_Table", "TableName", name); - if (tableid <= 0) { - element.defer = true; - return; - } - - } - - name = atts.getValue("ADColumnNameID"); - int columnid = 0; - if (name != null && name.trim().length() > 0) { - columnid = get_IDWithMasterAndColumn (ctx, "AD_Column","ColumnName", name, "AD_Table", tableid); - if (columnid <= 0) { - element.defer = true; - return; - } - } - - StringBuffer sqlB = new StringBuffer ("SELECT AD_ImpFormat_Row_ID FROM AD_ImpFormat_Row WHERE AD_Column_ID=? and AD_ImpFormat_ID=?"); - int id = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),columnid,impformid); - X_AD_ImpFormat_Row m_ImpFormat_row = new X_AD_ImpFormat_Row(ctx, id, getTrxName(ctx)); - if (id <= 0 && atts.getValue("AD_ImpFormat_Row_ID") != null && Integer.parseInt(atts.getValue("AD_ImpFormat_Row_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_ImpFormat_row.setAD_ImpFormat_Row_ID(Integer.parseInt(atts.getValue("AD_ImpFormat_Row_ID"))); - if (id > 0){ - AD_Backup_ID = copyRecord(ctx, "AD_ImpFormat",m_ImpFormat_row); - Object_Status = "Update"; - } - else{ - Object_Status = "New"; - AD_Backup_ID =0; - } - m_ImpFormat_row.setName(atts.getValue("Name")); - m_ImpFormat_row.setIsActive(atts.getValue("isActive") != null ? Boolean.valueOf(atts.getValue("isActive")).booleanValue():true); - if (columnid > 0) - m_ImpFormat_row.setAD_Column_ID(columnid); - m_ImpFormat_row.setAD_ImpFormat_ID(impformid); - m_ImpFormat_row.setDataFormat(atts.getValue("DataFormat")); - m_ImpFormat_row.setDataType(atts.getValue("DataType")); - m_ImpFormat_row.setDecimalPoint(atts.getValue("DecimalPoint")); - m_ImpFormat_row.setDivideBy100(atts.getValue("isDivideBy100") != null ? Boolean.valueOf(atts.getValue("isDivideBy100")).booleanValue():true); - m_ImpFormat_row.setConstantValue(atts.getValue("ConstantValue")); - m_ImpFormat_row.setCallout(atts.getValue("Callout")); - m_ImpFormat_row.setEndNo(Integer.parseInt(atts.getValue("EndNo"))); - m_ImpFormat_row.setScript(atts.getValue("Script")); - m_ImpFormat_row.setSeqNo(Integer.parseInt(atts.getValue("SeqNo"))); - m_ImpFormat_row.setStartNo(Integer.parseInt(atts.getValue("StartNo"))); - if (m_ImpFormat_row.save(getTrxName(ctx)) == true){ - record_log (ctx, 1, m_ImpFormat_row.getName(),"ImpFormatRow", m_ImpFormat_row.get_ID(),AD_Backup_ID, Object_Status,"AD_ImpFormat",get_IDWithColumn(ctx, "AD_Table", "TableName", "m_ImpFormat_row")); - } - else{ - record_log (ctx, 0, m_ImpFormat_row.getName(),"ImpFormatRow", m_ImpFormat_row.get_ID(),AD_Backup_ID, Object_Status,"AD_ImpFormat",get_IDWithColumn(ctx, "AD_Table", "TableName", "m_ImpFormat_row")); - throw new POSaveFailedException("Failed to import Import Format Row."); - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_ImpFormat_Row_ID = Env.getContextAsInt(ctx, X_AD_ImpFormat_Row.COLUMNNAME_AD_ImpFormat_Row_ID); - X_AD_ImpFormat_Row m_ImpFormat_Row = new X_AD_ImpFormat_Row (ctx, AD_ImpFormat_Row_ID, getTrxName(ctx)); - AttributesImpl atts = new AttributesImpl(); - createImpFormatRowBinding(atts,m_ImpFormat_Row); - document.startElement("","","impformatrow",atts); - document.endElement("","","impformatrow"); - } - - private AttributesImpl createImpFormatRowBinding( AttributesImpl atts, X_AD_ImpFormat_Row m_ImpFormat_Row) - { - String sql = null; - String name = null; - atts.clear(); - if (m_ImpFormat_Row.getAD_ImpFormat_ID()> 0 ){ - sql = "SELECT Name FROM AD_ImpFormat WHERE AD_ImpFormat_ID=?"; - name = DB.getSQLValueString(null,sql,m_ImpFormat_Row.getAD_ImpFormat_ID()); - atts.addAttribute("","","ADImpFormatNameID","CDATA",name); - } - else - atts.addAttribute("","","ADImpFormatNameID","CDATA",""); - - if (m_ImpFormat_Row.getAD_Column_ID()> 0 ){ - sql = "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID=?"; - name = DB.getSQLValueString(null,sql,m_ImpFormat_Row.getAD_Column_ID()); - atts.addAttribute("","","ADColumnNameID","CDATA",name); - } - else - atts.addAttribute("","","ADColumnNameID","CDATA",""); - - if (m_ImpFormat_Row.getAD_Column_ID()> 0 ){ - sql = "SELECT AD_Table_ID FROM AD_Column WHERE AD_Column_ID=?"; - int idTable = DB.getSQLValue(null, sql,m_ImpFormat_Row.getAD_Column_ID()); - sql = "SELECT TableName FROM AD_Table WHERE AD_Table_ID=?"; - name = DB.getSQLValueString(null,sql,idTable); - atts.addAttribute("","","ADTableNameID","CDATA",name); - } - else - atts.addAttribute("","","ADTableNameID","CDATA",""); - if (m_ImpFormat_Row.getAD_ImpFormat_Row_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_ImpFormat_Row_ID","CDATA",Integer.toString(m_ImpFormat_Row.getAD_ImpFormat_Row_ID())); - - atts.addAttribute("","","Name","CDATA",(m_ImpFormat_Row.getName () != null ? m_ImpFormat_Row.getName ():"")); - atts.addAttribute("","","SeqNo","CDATA",""+m_ImpFormat_Row.getSeqNo()); - atts.addAttribute("","","StartNo","CDATA",""+m_ImpFormat_Row.getStartNo()); - atts.addAttribute("","","EndNo","CDATA",""+m_ImpFormat_Row.getEndNo()); - atts.addAttribute("","","DataType","CDATA",(m_ImpFormat_Row.getDataType () != null ? m_ImpFormat_Row.getDataType():"")); - atts.addAttribute("","","DataFormat","CDATA",(m_ImpFormat_Row.getDataFormat () != null ? m_ImpFormat_Row.getDataFormat():"")); - atts.addAttribute("","","DecimalPoint","CDATA",(m_ImpFormat_Row.getDecimalPoint () != null ? m_ImpFormat_Row.getDecimalPoint():"")); - atts.addAttribute("","","isDivideBy100","CDATA",(m_ImpFormat_Row.isDivideBy100 ()== true ? "true":"false")); - atts.addAttribute("","","ConstantValue","CDATA",(m_ImpFormat_Row.getConstantValue() != null ? m_ImpFormat_Row.getConstantValue():"")); - atts.addAttribute("","","Callout","CDATA",(m_ImpFormat_Row.getCallout() != null ? m_ImpFormat_Row.getCallout():"")); - atts.addAttribute("","","Script","CDATA",(m_ImpFormat_Row.getScript() != null ? m_ImpFormat_Row.getScript():"")); - atts.addAttribute("","","isActive","CDATA",(m_ImpFormat_Row.isActive()== true ? "true":"false")); - - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/MenuElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/MenuElementHandler.java deleted file mode 100644 index a3e7ec4feb..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/MenuElementHandler.java +++ /dev/null @@ -1,503 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_BUTTON; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_YES_NO; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.ResultSetMetaData; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.compiere.model.X_AD_Menu; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class MenuElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) - throws SAXException { - String elementValue = element.getElementValue(); - int AD_Backup_ID = -1; - String Object_Status = null; - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("ADMenuNameID")); - // String entitytype = atts.getValue("EntityType"); - // if (entitytype.compareTo("U") == 0 || entitytype.compareTo("D") == 0 - // && m_UpdateMode == true ) { - - String name = null; - int idDetail = 0; - StringBuffer sqlB = null; - - name = atts.getValue("ADMenuNameID"); - int menuid = get_IDWithColumn(ctx, "AD_Menu", "Name", name); - X_AD_Menu m_Menu = new X_AD_Menu(ctx, menuid, getTrxName(ctx)); - if (menuid <= 0 && atts.getValue("AD_Menu_ID") != null && Integer.parseInt(atts.getValue("AD_Menu_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Menu.setAD_Menu_ID(Integer.parseInt(atts.getValue("AD_Menu_ID"))); - if (menuid > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_Menu", m_Menu); - Object_Status = "Update"; - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - - m_Menu.setName(name); - name = atts.getValue("ADWindowNameID"); - if (name != null && name.trim().length() > 0) { - int id = get_IDWithColumn(ctx, "AD_Window", "Name", name); - if (id <= 0) { - element.defer = true; - return; - } - m_Menu.setAD_Window_ID(id); - } - - name = atts.getValue("ADProcessNameID"); - if (name != null && name.trim().length() > 0) { - int id = get_IDWithColumn(ctx, "AD_Process", "Name", name); - if (id <= 0) { - element.defer = true; - return; - } - m_Menu.setAD_Process_ID(id); - } - - name = atts.getValue("ADFormNameID"); - if (name != null && name.trim().length() > 0) { - int id = get_IDWithColumn(ctx, "AD_Form", "Name", name); - if (id <= 0) { - element.defer = true; - return; - } - m_Menu.setAD_Form_ID(id); - } - - name = atts.getValue("ADTaskNameID"); - if (name != null && name.trim().length() > 0) { - int id = get_IDWithColumn(ctx, "AD_Task", "Name", name); - if (id <= 0) { - element.defer = true; - return; - } - m_Menu.setAD_Task_ID(id); - } - - /*name = atts.getValue("ADWorkbenchNameID"); - if (name != null && name.trim().length() > 0) { - int id = get_IDWithColumn(ctx, "AD_Workbench", "Name", name); - if (id <= 0) { - element.defer = true; - return; - } - m_Menu.setAD_Workbench_ID(id); - }*/ - - name = atts.getValue("ADWorkflowNameID"); - if (name != null && name.trim().length() > 0) { - int id = get_IDWithColumn(ctx, "AD_Workflow", "Name", name); - if (id <= 0) { - element.defer = true; - return; - } - m_Menu.setAD_Workflow_ID(id); - } - - String action = (atts.getValue("Action") != null ? atts - .getValue("Action") : " "); - if (action.compareTo(" ") > -1) - m_Menu.setAction(action); - m_Menu.setDescription(getStringValue(atts, "Description")); - m_Menu.setEntityType(atts.getValue("EntityType")); - m_Menu.setIsReadOnly(Boolean.valueOf(atts.getValue("isReadOnly")) - .booleanValue()); - m_Menu.setIsSOTrx(Boolean.valueOf(atts.getValue("isSOTrx")) - .booleanValue()); - m_Menu.setIsSummary(Boolean.valueOf(atts.getValue("isSummary")) - .booleanValue()); - m_Menu.setIsActive(Boolean.valueOf(atts.getValue("isActive")) - .booleanValue()); - if (m_Menu.save(getTrxName(ctx)) == true) { - try { - idDetail = record_log(ctx, 1, m_Menu.getName(), "Menu", m_Menu - .get_ID(), AD_Backup_ID, Object_Status, "AD_Menu", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Menu")); - } catch (SAXException e) { - if (log.isLoggable(Level.INFO)) log.info("setmenu:" + e); - } - } else { - try { - idDetail = record_log(ctx, 0, m_Menu.getName(), "Menu", m_Menu - .get_ID(), AD_Backup_ID, Object_Status, "AD_Menu", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Menu")); - } catch (SAXException e) { - if (log.isLoggable(Level.INFO)) log.info("setmenu:" + e); - } - } - name = atts.getValue("ADParentMenuNameID"); - int id = get_ID(ctx, "AD_Menu", name); - - String sql2 = "SELECT count(Parent_ID) FROM AD_TREENODEMM WHERE AD_Tree_ID = 10" - + " AND Node_ID = " + menuid; - int countRecords = DB.getSQLValue(getTrxName(ctx), sql2); - if (countRecords > 0) { - StringBuffer sqlC = new StringBuffer( - "select * from AD_TREENODEMM where AD_Tree_ID = 10 and " - + " Node_ID =?"); - try { - PreparedStatement pstmt1 = DB.prepareStatement(sqlC.toString(), - getTrxName(ctx)); - pstmt1.setInt(1, menuid); - ResultSet rs1 = pstmt1.executeQuery(); - if (rs1.next()) { - - String colValue = null; - ResultSetMetaData meta = rs1.getMetaData(); - int columns = meta.getColumnCount(); - int tableID = get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_TreeNodeMM"); - - for (int q = 1; q <= columns; q++) { - - String col_Name = meta.getColumnName(q); - StringBuffer sql = new StringBuffer( - "SELECT AD_Column_ID FROM AD_column WHERE Upper(ColumnName) = '" - + col_Name + "' AND AD_Table_ID = ?"); - int columnID = DB.getSQLValue(getTrxName(ctx), sql - .toString(), tableID); - sql = new StringBuffer( - "SELECT AD_Reference_ID FROM AD_COLUMN WHERE AD_Column_ID = " - + (columnID == -1 ? "null" : columnID)); - int referenceID = DB.getSQLValue(getTrxName(ctx), sql - .toString()); - int idBackup = DB.getNextID(Env - .getAD_Client_ID(ctx), "AD_Package_Imp_Backup", - getTrxName(ctx)); - if (referenceID == REFERENCE_DATATYPE_YES_NO || referenceID == REFERENCE_DATATYPE_BUTTON) - if (rs1.getObject(q).equals("Y")) - colValue = "true"; - else - colValue = "false"; - else - colValue = rs1.getObject(q).toString(); - - StringBuffer sqlD = new StringBuffer( - "INSERT INTO AD_Package_Imp_Backup" - + "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, " - + "AD_PACKAGE_IMP_BACKUP_ID, AD_PACKAGE_IMP_DETAIL_ID, AD_PACKAGE_IMP_ID," - + " AD_TABLE_ID, AD_COLUMN_ID, AD_REFERENCE_ID, COLVALUE)" - + "VALUES(" + " " - + Env.getAD_Client_ID(ctx) - + ", " - + Env.getAD_Org_ID(ctx) - + ", " - + Env.getAD_User_ID(ctx) - + ", " - + Env.getAD_User_ID(ctx) - + ", " - + idBackup - + ", " - + idDetail - + ", " - + getPackageImpId(ctx) - + ", " - + tableID - + ", " - + (columnID == -1 ? "null" : columnID) - + ", " - + (referenceID == -1 ? "null" : referenceID) - + ", '" + colValue + "')"); - int no = DB.executeUpdate(sqlD.toString(), - getTrxName(ctx)); - if (no == -1) - log.info("Insert to import backup failed"); - } - - } - rs1.close(); - pstmt1.close(); - pstmt1 = null; - - } catch (Exception e) { - if (log.isLoggable(Level.INFO)) log.info("get_IDWithMasterID:" + e); - } - - sqlB = new StringBuffer("UPDATE AD_TREENODEMM ").append( - "SET Parent_ID = " + id).append( - " , SeqNo = " + atts.getValue("ADParentSeqno")).append( - " WHERE AD_Tree_ID = 10").append( - " AND Node_ID = " + m_Menu.getAD_Menu_ID()); - } else { - sqlB = new StringBuffer("INSERT INTO AD_TREENODEMM").append( - "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, ").append( - "Parent_ID, SeqNo, AD_Tree_ID, Node_ID)").append( - "VALUES(0, 0, 0, 0, ").append( - id + "," + atts.getValue("ADParentSeqno") + ", 10, " - + m_Menu.getAD_Menu_ID() + ")"); - } - DB.executeUpdate(sqlB.toString(), getTrxName(ctx)); - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Menu_ID = Env.getContextAsInt(ctx, "AD_Menu_ID"); - X_AD_Menu m_Menu = new X_AD_Menu(ctx, AD_Menu_ID, null); - if (m_Menu.isSummary() == false) { - createApplication(ctx, document, AD_Menu_ID); - } else { - AttributesImpl atts = new AttributesImpl(); - createMenuBinding(atts, m_Menu); - document.startElement("", "", "menu", atts); - createModule(ctx, document, AD_Menu_ID); - document.endElement("", "", "menu"); - } - } - - private AttributesImpl createMenuBinding(AttributesImpl atts, - X_AD_Menu m_Menu) { - String sql = null; - String name = null; - atts.clear(); - if (m_Menu.getAD_Menu_ID() > 0) { - - sql = "SELECT Name FROM AD_Menu WHERE AD_Menu_ID=?"; - name = DB.getSQLValueString(null, sql, m_Menu.getAD_Menu_ID()); - atts.addAttribute("", "", "ADMenuNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADMenuNameID", "CDATA", ""); - if (m_Menu.getAD_Window_ID() > 0) { - sql = "SELECT Name FROM AD_Window WHERE AD_Window_ID=?"; - name = DB.getSQLValueString(null, sql, m_Menu.getAD_Window_ID()); - atts.addAttribute("", "", "ADWindowNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADWindowNameID", "CDATA", ""); - if (m_Menu.getAD_Process_ID() > 0) { - sql = "SELECT Name FROM AD_Process WHERE AD_Process_ID=?"; - name = DB.getSQLValueString(null, sql, m_Menu.getAD_Process_ID()); - atts.addAttribute("", "", "ADProcessNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADProcessNameID", "CDATA", ""); - if (m_Menu.getAD_Form_ID() > 0) { - sql = "SELECT Name FROM AD_Form WHERE AD_Form_ID=?"; - name = DB.getSQLValueString(null, sql, m_Menu.getAD_Form_ID()); - atts.addAttribute("", "", "ADFormNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADFormNameID", "CDATA", ""); - if (m_Menu.getAD_Task_ID() > 0) { - sql = "SELECT Name FROM AD_Task WHERE AD_Task_ID=?"; - name = DB.getSQLValueString(null, sql, m_Menu.getAD_Task_ID()); - atts.addAttribute("", "", "ADTaskNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADTaskNameID", "CDATA", ""); - /*if (m_Menu.getAD_Workbench_ID() > 0) { - sql = "SELECT Name FROM AD_Workbench WHERE AD_Workbench_ID=?"; - name = DB.getSQLValueString(null, sql, m_Menu.getAD_Workbench_ID()); - atts.addAttribute("", "", "ADWorkbenchNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADWorkbenchNameID", "CDATA", "");*/ - if (m_Menu.getAD_Workflow_ID() > 0) { - sql = "SELECT Name FROM AD_Workflow WHERE AD_Workflow_ID=?"; - name = DB.getSQLValueString(null, sql, m_Menu.getAD_Workflow_ID()); - atts.addAttribute("", "", "ADWorkflowNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADWorkflowNameID", "CDATA", ""); - sql = "SELECT Parent_ID FROM AD_TreeNoDemm WHERE AD_Tree_ID = 10 and Node_ID=?"; - int id = DB.getSQLValue(null, sql, m_Menu.getAD_Menu_ID()); - if (id > 0) { - sql = "SELECT Name FROM AD_Menu WHERE AD_Menu_ID=?"; - name = DB.getSQLValueString(null, sql, id); - atts.addAttribute("", "", "ADParentMenuNameID", "CDATA", name); - } - sql = "SELECT SeqNo FROM AD_TreeNoDemm WHERE AD_Tree_ID = 10 and Node_ID=?"; - id = DB.getSQLValue(null, sql, m_Menu.getAD_Menu_ID()); - if (m_Menu.getAD_Menu_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_Menu_ID","CDATA",Integer.toString(m_Menu.getAD_Menu_ID())); - atts.addAttribute("", "", "ADParentSeqno", "CDATA", "" + id); - atts.addAttribute("", "", "Action", "CDATA", - (m_Menu.getAction() != null ? m_Menu.getAction() : "")); - atts.addAttribute("", "", "Description", "CDATA", (m_Menu - .getDescription() != null ? m_Menu.getDescription() : "")); - atts.addAttribute("", "", "EntityType", "CDATA", (m_Menu - .getEntityType() != null ? m_Menu.getEntityType() : "")); - atts.addAttribute("", "", "isActive", "CDATA", - (m_Menu.isActive() == true ? "true" : "false")); - atts.addAttribute("", "", "isReadOnly", "CDATA", - (m_Menu.isReadOnly() == true ? "true" : "false")); - atts.addAttribute("", "", "isSOTrx", "CDATA", - (m_Menu.isSOTrx() == true ? "true" : "false")); - atts.addAttribute("", "", "isSummary", "CDATA", - (m_Menu.isSummary() == true ? "true" : "false")); - return atts; - } - - private void createApplication(Properties ctx, TransformerHandler document, - int AD_Menu_ID) throws SAXException { - PackOut packOut = (PackOut)ctx.get("PackOutProcess"); - String sql = null; - // int x = 0; - sql = "SELECT A.Node_ID, B.AD_Menu_ID, B.Name, B.AD_WINDOW_ID, B.AD_WORKFLOW_ID, B.AD_TASK_ID, " - + "B.AD_PROCESS_ID, B.AD_FORM_ID, B.AD_WORKBENCH_ID " - + "FROM AD_TreeNoDemm A, AD_Menu B " - + "WHERE A.Node_ID = " - + AD_Menu_ID + " AND A.Node_ID = B.AD_Menu_ID"; - - AttributesImpl atts = new AttributesImpl(); - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()) { - - X_AD_Menu m_Menu = new X_AD_Menu(ctx, rs.getInt("AD_Menu_ID"), - null); - atts = createMenuBinding(atts, m_Menu); - document.startElement("", "", "menu", atts); - if (rs.getInt("AD_WINDOW_ID") > 0 - || rs.getInt("AD_WORKFLOW_ID") > 0 - || rs.getInt("AD_TASK_ID") > 0 - || rs.getInt("AD_PROCESS_ID") > 0 - || rs.getInt("AD_FORM_ID") > 0 - || rs.getInt("AD_WORKBENCH_ID") > 0) { - // Call CreateWindow. - if (rs.getInt("AD_WINDOW_ID") > 0) { - packOut.createWindow(rs.getInt("AD_WINDOW_ID"), document); - } - // Call CreateProcess. - else if (rs.getInt("AD_PROCESS_ID") > 0) { - packOut.createProcess(rs.getInt("AD_PROCESS_ID"), document); - } - // Call CreateTask. - else if (rs.getInt("AD_TASK_ID") > 0) { - packOut.createTask(rs.getInt("AD_TASK_ID"), document); - } - // Call CreateForm. - else if (rs.getInt("AD_FORM_ID") > 0) { - packOut.createForm(rs.getInt("AD_FORM_ID"), document); - } - // Call CreateWorkflow - else if (rs.getInt("AD_Workflow_ID") > 0) { - packOut.createWorkflow(rs.getInt("AD_Workflow_ID"), - document); - } - // Call CreateModule because entry is a summary menu - } else { - createModule(ctx, document, rs.getInt("Node_ID")); - } - document.endElement("", "", "menu"); - } - rs.close(); - pstmt.close(); - pstmt = null; - } catch (Exception e) { - log.log(Level.SEVERE, "getWindows", e); - } finally { - try { - if (pstmt != null) - pstmt.close(); - } catch (Exception e) { - } - pstmt = null; - } - } - - public void createModule(Properties ctx, TransformerHandler document, - int menu_id) throws SAXException { - PackOut packOut = (PackOut)ctx.get("PackOutProcess"); - String sql = null; - sql = "SELECT A.Node_ID, B.AD_Menu_ID, B.Name, B.AD_WINDOW_ID, B.AD_WORKFLOW_ID, B.AD_TASK_ID, " - + "B.AD_PROCESS_ID, B.AD_FORM_ID, B.AD_WORKBENCH_ID " - + "FROM AD_TreeNoDemm A, AD_Menu B " - + "WHERE A.Parent_ID = " - + menu_id + " AND A.Node_ID = B.AD_Menu_ID"; - - AttributesImpl atts = new AttributesImpl(); - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()) { - // Menu tag Start. - X_AD_Menu m_Menu = new X_AD_Menu(ctx, rs.getInt("AD_Menu_ID"), - null); - atts = createMenuBinding(atts, m_Menu); - document.startElement("", "", "menu", atts); - if (rs.getInt("AD_WINDOW_ID") > 0 - || rs.getInt("AD_WORKFLOW_ID") > 0 - || rs.getInt("AD_TASK_ID") > 0 - || rs.getInt("AD_PROCESS_ID") > 0 - || rs.getInt("AD_FORM_ID") > 0 - || rs.getInt("AD_WORKBENCH_ID") > 0) { - // Call CreateWindow. - if (rs.getInt("AD_WINDOW_ID") > 0) { - packOut.createWindow(rs.getInt("AD_WINDOW_ID"), document); - } - // Call CreateProcess. - else if (rs.getInt("AD_PROCESS_ID") > 0) { - packOut.createProcess(rs.getInt("AD_PROCESS_ID"), - document); - } - // Call CreateTask. - else if (rs.getInt("AD_TASK_ID") > 0) { - packOut.createTask(rs.getInt("AD_TASK_ID"), document); - } - // Call CreateForm. - else if (rs.getInt("AD_FORM_ID") > 0) { - packOut.createForm(rs.getInt("AD_FORM_ID"), document); - } - // Call CreateWorkflow - else if (rs.getInt("AD_Workflow_ID") > 0) { - packOut.createWorkflow(rs.getInt("AD_Workflow_ID"), - document); - } - // Call CreateModule because entry is a summary menu - } else { - createModule(ctx, document, rs.getInt("Node_ID")); - } - document.endElement("", "", "menu"); - } - rs.close(); - pstmt.close(); - pstmt = null; - } catch (Exception e) { - log.log(Level.SEVERE, "getWindows", e); - } finally { - try { - if (pstmt != null) - pstmt.close(); - } catch (Exception e) { - } - pstmt = null; - } - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/MessageElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/MessageElementHandler.java deleted file mode 100644 index cca795777a..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/MessageElementHandler.java +++ /dev/null @@ -1,147 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - * Teo Sarca, teo.sarca@gmail.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.MMessage; -import org.compiere.model.Query; -import org.compiere.model.X_AD_Message; -import org.compiere.model.X_AD_Package_Exp_Detail; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class MessageElementHandler extends AbstractElementHandler { - - private List messages = new ArrayList(); - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue+" "+atts.getValue("Value")); - String entitytype = atts.getValue("EntityType"); - if (isProcessElement(ctx, entitytype)) { - String value = atts.getValue("Value"); - int id = get_IDWithColumn(ctx, "AD_Message", "value", value); - - MMessage m_Message = new MMessage(ctx, id, getTrxName(ctx)); - int AD_Backup_ID = -1; - String Object_Status = null; - if (id <= 0 && atts.getValue("AD_Message_ID") != null && Integer.parseInt(atts.getValue("AD_Message_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Message.setAD_Message_ID(Integer.parseInt(atts.getValue("AD_Message_ID"))); - if (id > 0){ - AD_Backup_ID = copyRecord(ctx, "AD_Message",m_Message); - Object_Status = "Update"; - } - else{ - Object_Status = "New"; - AD_Backup_ID =0; - } - m_Message.setMsgText(getStringValue(atts, "MsgText")); - m_Message.setMsgTip(getStringValue(atts, "MsgTip")); - m_Message.setEntityType(atts.getValue("EntityType")); - m_Message.setIsActive(atts.getValue("isActive") != null ? Boolean.valueOf(atts.getValue("isActive")).booleanValue():true); - m_Message.setValue(value); - m_Message.setMsgType(atts.getValue("MsgType")); - if (m_Message.save(getTrxName(ctx)) == true){ - record_log (ctx, 1, m_Message.getValue(),"Message", m_Message.get_ID(),AD_Backup_ID, Object_Status,"AD_Message",get_IDWithColumn(ctx, "AD_Table", "TableName", "AD_Message")); - } - else{ - record_log (ctx, 0, m_Message.getValue(),"Message", m_Message.get_ID(),AD_Backup_ID, Object_Status,"AD_Message",get_IDWithColumn(ctx, "AD_Table", "TableName", "AD_Message")); - throw new POSaveFailedException("Failed to save message."); - } - } else { - element.skip = true; - } - - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) throws SAXException - { - for (X_AD_Message message : getMessages(ctx)) - { - if (messages.contains(message.getAD_Message_ID())) - continue; - messages.add(message.getAD_Message_ID()); - // - AttributesImpl atts = new AttributesImpl(); - createMessageBinding(atts, message); - document.startElement("","","message",atts); - document.endElement("","","message"); - } - } - - private List getMessages(Properties ctx) - { - int AD_Message_ID = Env.getContextAsInt(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Message_ID); - int AD_EntityType_ID = Env.getContextAsInt(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_EntityType_ID); - String whereClause; - Object[] params; - if (AD_Message_ID > 0) - { - whereClause = X_AD_Message.COLUMNNAME_AD_Message_ID+"=?"; - params = new Object[]{AD_Message_ID}; - } - else if (AD_EntityType_ID > 0) - { - whereClause = " EXISTS (SELECT 1 FROM AD_EntityType et" - +" WHERE et.AD_EntityType_ID=? AND et.EntityType=AD_Message.EntityType)"; - params = new Object[]{AD_EntityType_ID}; - } - else - { - throw new IllegalArgumentException("AD_Message_ID and AD_EntityType_ID not found"); - } - - List list = new Query(ctx, X_AD_Message.Table_Name, whereClause, null) - .setParameters(params) - .setOrderBy(X_AD_Message.COLUMNNAME_AD_Message_ID) - .list(); - return list; - } - - private AttributesImpl createMessageBinding( AttributesImpl atts, X_AD_Message m_Message) - { - atts.clear(); - if (m_Message.getAD_Message_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_Message_ID","CDATA",Integer.toString(m_Message.getAD_Message_ID())); - //FIXME: may not need this I guess - //atts.addAttribute("","","AccessLevel","CDATA",(m_Message.getAccessLevel () != null ? m_Message.getAccessLevel ():"")); - atts.addAttribute("","","MsgText","CDATA",(m_Message.getMsgText() != null ? m_Message.getMsgText():"")); - atts.addAttribute("","","MsgType","CDATA",(m_Message.getMsgType() != null ? m_Message.getMsgType ():"")); - atts.addAttribute("","","MsgTip","CDATA",(m_Message.getMsgTip() != null ? m_Message.getMsgTip ():"")); - atts.addAttribute("","","Value","CDATA",(m_Message.getValue() != null ? m_Message.getValue ():"")); - atts.addAttribute("","","EntityType","CDATA",(m_Message.getEntityType () != null ? m_Message.getEntityType ():"")); - atts.addAttribute("","","isActive","CDATA",(m_Message.isActive()== true ? "true":"false")); - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ModelValidatorElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ModelValidatorElementHandler.java deleted file mode 100644 index befe54a646..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ModelValidatorElementHandler.java +++ /dev/null @@ -1,172 +0,0 @@ -/****************************************************************************** - * Product: Adempiere ERP & CRM Smart Business Solution * - * Copyright (C) 1999-2009 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) 2009 Teo Sarca, teo.sarca@gmail.com * - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.I_AD_ModelValidator; -import org.compiere.model.PO; -import org.compiere.model.X_AD_ModelValidator; -import org.compiere.model.X_AD_Package_Exp_Detail; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -/** - * @author Teo Sarca, teo.sarca@gmail.com - *
  • FR [ 2847669 ] 2pack export model validator functionality - * https://sourceforge.net/tracker/?func=detail&aid=2847669&group_id=176962&atid=879335 - */ -public class ModelValidatorElementHandler extends AbstractElementHandler -{ - public static final String TAG_Name = "modelvalidator"; - - private final List validators = new ArrayList(); - - public void startElement(Properties ctx, Element element) throws SAXException - { - String elementValue = element.getElementValue(); - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue+" "+atts.getValue(I_AD_ModelValidator.COLUMNNAME_Name)); - String entitytype = atts.getValue(I_AD_ModelValidator.COLUMNNAME_EntityType); - if (isProcessElement(ctx, entitytype)) - { - String name = atts.getValue(I_AD_ModelValidator.COLUMNNAME_Name); - int id = get_IDWithColumn(ctx, I_AD_ModelValidator.Table_Name, I_AD_ModelValidator.COLUMNNAME_Name, name); - - final X_AD_ModelValidator validator = new X_AD_ModelValidator(ctx, id, getTrxName(ctx)); - final int AD_Backup_ID; - final String Object_Status; - if (id <= 0 && getIntValue(atts, I_AD_ModelValidator.COLUMNNAME_AD_ModelValidator_ID, 0) <= PackOut.MAX_OFFICIAL_ID) - { - validator.setAD_ModelValidator_ID(getIntValue(atts, I_AD_ModelValidator.COLUMNNAME_AD_ModelValidator_ID, 0)); - } - if (id > 0) - { - AD_Backup_ID = copyRecord(ctx, I_AD_ModelValidator.Table_Name, validator); - Object_Status = "Update"; - } - else - { - Object_Status = "New"; - AD_Backup_ID = 0; - } - - validator.setName(name); - validator.setDescription(getStringValue(atts, I_AD_ModelValidator.COLUMNNAME_Description)); - validator.setHelp(getStringValue(atts, I_AD_ModelValidator.COLUMNNAME_Help)); - validator.setEntityType(atts.getValue(I_AD_ModelValidator.COLUMNNAME_EntityType)); - validator.setModelValidationClass(atts.getValue(I_AD_ModelValidator.COLUMNNAME_ModelValidationClass)); - validator.setIsActive(getBooleanValue(atts, I_AD_ModelValidator.COLUMNNAME_IsActive, true)); - validator.setSeqNo(getIntValue(atts, I_AD_ModelValidator.COLUMNNAME_SeqNo, 0)); - - if (validator.save(getTrxName(ctx)) == true) - { - record_log (ctx, 1, validator.getName(),TAG_Name, validator.get_ID(), - AD_Backup_ID, Object_Status, - I_AD_ModelValidator.Table_Name, I_AD_ModelValidator.Table_ID); - } - else - { - record_log (ctx, 0, validator.getName(),TAG_Name, validator.get_ID(), - AD_Backup_ID, Object_Status, - I_AD_ModelValidator.Table_Name, I_AD_ModelValidator.Table_ID); - throw new POSaveFailedException("Failed to save message."); - } - } - else - { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException - { - } - - public void create(Properties ctx, TransformerHandler document) throws SAXException - { - final int AD_ModelValidator_ID = Env.getContextAsInt(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_ModelValidator_ID); - if (validators.contains(AD_ModelValidator_ID)) - return; - validators.add(AD_ModelValidator_ID); - - - final X_AD_ModelValidator validator = new X_AD_ModelValidator(ctx, AD_ModelValidator_ID, null); - AttributesImpl atts = new AttributesImpl(); - createMessageBinding(atts, validator); - document.startElement("", "", TAG_Name, atts); - document.endElement("", "", TAG_Name); - } - - private AttributesImpl createMessageBinding(AttributesImpl atts, X_AD_ModelValidator validator) - { - atts.clear(); - if (validator.getAD_ModelValidator_ID() <= PackOut.MAX_OFFICIAL_ID) - { - addAttribute(atts, X_AD_ModelValidator.COLUMNNAME_AD_ModelValidator_ID, validator); - } - addAttribute(atts, X_AD_ModelValidator.COLUMNNAME_Name, validator); - addAttribute(atts, X_AD_ModelValidator.COLUMNNAME_Description, validator); - addAttribute(atts, X_AD_ModelValidator.COLUMNNAME_Help, validator); - addAttribute(atts, X_AD_ModelValidator.COLUMNNAME_ModelValidationClass, validator); - addAttribute(atts, X_AD_ModelValidator.COLUMNNAME_EntityType, validator); - addAttribute(atts, X_AD_ModelValidator.COLUMNNAME_IsActive, validator); - addAttribute(atts, X_AD_ModelValidator.COLUMNNAME_SeqNo, validator); - return atts; - } - - protected boolean getBooleanValue(Attributes atts, String qName, boolean defaultValue) - { - String s = atts.getValue(qName); - return s != null ? Boolean.valueOf(s) : defaultValue; - } - - protected int getIntValue(Attributes atts, String qName, int defaultValue) - { - Object o = atts.getValue(qName); - if (o == null) - return defaultValue; - if (o instanceof Number) - return ((Number)o).intValue(); - return Integer.parseInt(o.toString()); - } - - private final void addAttribute(AttributesImpl atts, String name, PO po) - { - Object value = po.get_Value(name); - atts.addAttribute("", "", name, "CDATA", toStringAttribute(value)); - } - - private final String toStringAttribute(Object value) - { - if (value == null) - return ""; - if (value instanceof Boolean) - return ((Boolean)value).booleanValue() == true ? "true" : "false"; - return value.toString(); - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/OrgRoleElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/OrgRoleElementHandler.java deleted file mode 100644 index b837b24e66..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/OrgRoleElementHandler.java +++ /dev/null @@ -1,132 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.Properties; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.compiere.model.X_AD_Role; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class OrgRoleElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - log.info(elementValue); - int roleid =0; - int orgid =0; - StringBuffer sqlB = null; - Attributes atts = element.attributes; - if (atts.getValue("rolename")!=null){ - String name = atts.getValue("rolename"); - sqlB = new StringBuffer ("SELECT AD_Role_ID FROM AD_Role WHERE Name= ?"); - roleid = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),name); - } - - if (atts.getValue("orgname")!=null){ - String name = atts.getValue("orgname"); - sqlB = new StringBuffer ("SELECT AD_Org_ID FROM AD_Org WHERE Name= ?"); - orgid = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),name); - } - - sqlB = new StringBuffer ("SELECT count(*) FROM AD_Role_OrgAccess WHERE AD_Role_ID=? and AD_Org_ID=?"); - int count = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),roleid,orgid); - @SuppressWarnings("unused") - int AD_Backup_ID = -1; - @SuppressWarnings("unused") - String Object_Status = null; - if (count>0){ - Object_Status = "Update"; - sqlB = new StringBuffer ("UPDATE AD_Role_OrgAccess ") - .append( "SET isActive = '" + atts.getValue("isActive") ) - .append( "', isReadOnly = '" + atts.getValue("isReadOnly") ) - .append( "' WHERE AD_Role_ID = " + roleid ) - .append( " and AD_Org_ID = " + orgid ); - - int no = DB.executeUpdate (sqlB.toString(), getTrxName(ctx)); - if (no == -1) - log.info("Update to org access failed"); - } - else{ - Object_Status = "New"; - AD_Backup_ID =0; - sqlB = new StringBuffer ("INSERT INTO AD_Role_OrgAccess") - .append( "(AD_Client_ID, CreatedBy, UpdatedBy, " ) - .append( "AD_Role_ID, AD_Org_ID, isActive, isReadOnly) " ) - .append( "VALUES(" ) - .append( " "+ Env.getAD_Client_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", " + roleid ) - .append( ", " + orgid ) - .append( ", '" + atts.getValue("isActive") ) - .append( "', '" + atts.getValue("isReadOnly")+"')"); - - int no = DB.executeUpdate (sqlB.toString(), getTrxName(ctx)); - if (no == -1) - log.info("Insert to org access failed"); - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Org_ID = Env.getContextAsInt(ctx, "AD_Org_ID"); - int AD_Role_ID = Env.getContextAsInt(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); - AttributesImpl atts = new AttributesImpl(); - createOrgAccessBinding(atts, AD_Org_ID, AD_Role_ID); - document.startElement("", "", "OrgAccess", atts); - document.endElement("", "", "OrgAccess"); - - } - - private AttributesImpl createOrgAccessBinding(AttributesImpl atts, - int org_id, int role_id) { - String sql = null; - String name = null; - atts.clear(); - - sql = "SELECT Name FROM AD_Org WHERE AD_Org_ID=?"; - name = DB.getSQLValueString(null, sql, org_id); - atts.addAttribute("", "", "orgname", "CDATA", name); - - sql = "SELECT Name FROM AD_Role WHERE AD_Role_ID=?"; - name = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "rolename", "CDATA", name); - - sql = "SELECT isActive FROM AD_Role_OrgAccess WHERE AD_Org_ID=" - + org_id + " and AD_Role_ID=?"; - String TrueFalse = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "isActive", "CDATA", TrueFalse); - - sql = "SELECT isReadOnly FROM AD_Role_OrgAccess WHERE AD_Org_ID=" - + org_id + " and AD_Role_ID=?"; - String isReadOnly = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "isReadOnly", "CDATA", isReadOnly); - - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/PreferenceElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/PreferenceElementHandler.java deleted file mode 100644 index 63e54dcba2..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/PreferenceElementHandler.java +++ /dev/null @@ -1,118 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.Properties; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.MPreference; -import org.compiere.model.X_AD_Preference; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class PreferenceElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) - throws SAXException { - String elementValue = element.getElementValue(); - log.info(elementValue); - - // TODO Add User_ID - Attributes atts = element.attributes; - int windowid = get_ID(ctx, "AD_Window", atts.getValue("ADWindowNameID")); - if (windowid <= 0) { - element.defer = true; - return; - } - - StringBuffer sqlB = new StringBuffer( - "select AD_Preference_ID from AD_Preference where ").append( - " Attribute = '" + atts.getValue("Attribute") + "'").append( - " and AD_Window_ID = ?"); - int id = DB.getSQLValue(getTrxName(ctx), sqlB.toString(), windowid); - MPreference m_Preference = new MPreference(ctx, id, getTrxName(ctx)); - int AD_Backup_ID = -1; - String Object_Status = null; - if (id <= 0 && atts.getValue("AD_Preference_ID") != null && Integer.parseInt(atts.getValue("AD_Preference_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Preference.setAD_Preference_ID(Integer.parseInt(atts.getValue("AD_Preference_ID"))); - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_Preference", m_Preference); - Object_Status = "Update"; - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - sqlB = null; - m_Preference.setAD_Window_ID(windowid); - m_Preference.setAttribute(atts.getValue("Attribute")); - m_Preference.setValue(atts.getValue("Value")); - if (m_Preference.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_Preference.getAttribute(), "Preference", - m_Preference.get_ID(), AD_Backup_ID, Object_Status, - "AD_Preference", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_Preference")); - } else { - record_log(ctx, 0, m_Preference.getAttribute(), "Preference", - m_Preference.get_ID(), AD_Backup_ID, Object_Status, - "AD_Preference", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_Preference")); - throw new POSaveFailedException("Failed to save Preference"); - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Preference_ID = Env.getContextAsInt(ctx, - X_AD_Preference.COLUMNNAME_AD_Preference_ID); - X_AD_Preference m_Preference = new X_AD_Preference(ctx, - AD_Preference_ID, getTrxName(ctx)); - AttributesImpl atts = new AttributesImpl(); - createPreferenceBinding(atts, m_Preference); - document.startElement("", "", "preference", atts); - document.endElement("", "", "preference"); - } - - private AttributesImpl createPreferenceBinding(AttributesImpl atts, - X_AD_Preference m_Preference) { - String sql = null; - String name = null; - atts.clear(); - if (m_Preference.getAD_Preference_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_Preference_ID","CDATA",Integer.toString(m_Preference.getAD_Preference_ID())); - sql = "SELECT Name FROM AD_Window WHERE AD_Window_ID=?"; - name = DB.getSQLValueString(null, sql, m_Preference.getAD_Window_ID()); - atts.addAttribute("", "", "ADWindowNameID", "CDATA", name); - sql = "SELECT Name FROM AD_User WHERE AD_User_ID=?"; - name = DB.getSQLValueString(null, sql, m_Preference.getAD_User_ID()); - atts.addAttribute("", "", "ADUserNameID", "CDATA", name); - atts.addAttribute("", "", "Attribute", "CDATA", m_Preference - .getAttribute()); - atts.addAttribute("", "", "Value", "CDATA", m_Preference.getValue()); - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/PrintFormatElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/PrintFormatElementHandler.java deleted file mode 100644 index 8a3a87a167..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/PrintFormatElementHandler.java +++ /dev/null @@ -1,355 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - * Teo Sarca, SC ARHIPAC SERVICE SRL - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.DatabaseAccessException; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.MTable; -import org.compiere.model.X_AD_Package_Exp_Detail; -import org.compiere.model.X_AD_PrintFormat; -import org.compiere.model.X_AD_PrintFormatItem; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class PrintFormatElementHandler extends AbstractElementHandler { - - private PrintFormatItemElementHandler itemHandler = new PrintFormatItemElementHandler(); - - private List formats = new ArrayList(); - - public void startElement(Properties ctx, Element element) - throws SAXException { - String elementValue = element.getElementValue(); - int AD_Backup_ID = -1; - String Object_Status = null; - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("Name")); - - String name = atts.getValue("Name"); - int id = get_IDWithColumn(ctx, "AD_PrintFormat", "Name", name); - X_AD_PrintFormat m_PrintFormat = new X_AD_PrintFormat(ctx, id, - getTrxName(ctx)); - if (id <= 0 && atts.getValue("AD_PrintFormat_ID") != null && Integer.parseInt(atts.getValue("AD_PrintFormat_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_PrintFormat.setAD_PrintFormat_ID(Integer.parseInt(atts.getValue("AD_PrintFormat_ID"))); - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_PrintFormat", m_PrintFormat); - Object_Status = "Update"; - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - - name = atts.getValue("ADReportviewnameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_ReportView", "Name", name); - if (id <= 0) { - element.defer = true; - return; - } - m_PrintFormat.setAD_ReportView_ID(id); - } - - name = atts.getValue("ADTableNameID"); - id = get_IDWithColumn(ctx, "AD_Table", "TableName", name); - if (id == 0) { - MTable m_Table = new MTable(ctx, 0, getTrxName(ctx)); - m_Table.setAccessLevel("3"); - m_Table.setName(name); - m_Table.setTableName(name); - if (m_Table.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_Table.getName(), "Table", - m_Table.get_ID(), 0, "New", "AD_Table", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Table")); - } else { - record_log(ctx, 0, m_Table.getName(), "Table", - m_Table.get_ID(), 0, "New", "AD_Table", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Table")); - } - id = get_IDWithColumn(ctx, "AD_Table", "TableName", name); - } - m_PrintFormat.setAD_Table_ID(id); - - name = atts.getValue("ADPrintTableFormatID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_PrintTableFormat", "Name", name); - if (id <= 0) { - element.defer = true; - return; - } - m_PrintFormat.setAD_PrintTableFormat_ID(id); - } - - name = atts.getValue("ADPrintColorID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_PrintColor", "Name", name); - if (id <= 0) { - element.defer = true; - return; - } - m_PrintFormat.setAD_PrintColor_ID(id); - } - - name = atts.getValue("ADPrintFontID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_PrintFont", "Name", name); - if (id <= 0) { - element.defer = true; - return; - } - m_PrintFormat.setAD_PrintFont_ID(id); - } - - name = atts.getValue("ADPrintPaperID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_PrintPaper", "Name", name); - if (id <= 0) { - element.defer = true; - return; - } - m_PrintFormat.setAD_PrintPaper_ID(id); - } - - m_PrintFormat.setDescription(getStringValue(atts, "Description")); - m_PrintFormat.setName(atts.getValue("Name")); - m_PrintFormat.setPrinterName(getStringValue(atts, "PrinterName")); - m_PrintFormat.setFooterMargin(Integer.parseInt(atts - .getValue("FooterMargin"))); - - m_PrintFormat.setHeaderMargin(Integer.parseInt(atts - .getValue("HeaderMargin"))); - m_PrintFormat.setCreateCopy(atts.getValue("CreateCopy")); - m_PrintFormat.setIsActive(atts.getValue("isActive") != null ? Boolean - .valueOf(atts.getValue("isActive")).booleanValue() : true); - - m_PrintFormat.setIsTableBased(Boolean.valueOf( - atts.getValue("isTableBased")).booleanValue()); - m_PrintFormat.setIsForm(Boolean.valueOf(atts.getValue("isForm")) - .booleanValue()); - m_PrintFormat.setIsStandardHeaderFooter(Boolean.valueOf( - atts.getValue("isStandardHeader")).booleanValue()); - - m_PrintFormat.setIsDefault(Boolean.valueOf(atts.getValue("isDefault")) - .booleanValue()); - if (m_PrintFormat.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_PrintFormat.getName(), "PrintFormat", - m_PrintFormat.get_ID(), AD_Backup_ID, Object_Status, - "AD_PrintFormat", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_PrintFormat")); - element.recordId = m_PrintFormat.getAD_PrintFormat_ID(); - } else { - record_log(ctx, 0, m_PrintFormat.getName(), "PrintFormat", - m_PrintFormat.get_ID(), AD_Backup_ID, Object_Status, - "AD_PrintFormat", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_PrintFormat")); - throw new POSaveFailedException("Failed to save Print Format"); - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_PrintFormat_ID = Env.getContextAsInt(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_PrintFormat_ID); - PackOut packOut = (PackOut) ctx.get("PackOutProcess"); - - if (formats.contains(AD_PrintFormat_ID)) - return; - formats.add(AD_PrintFormat_ID); - AttributesImpl atts = new AttributesImpl(); - String sql = null; - sql = "SELECT AD_PrintFormat_ID " - + "FROM AD_PrintFormat " - + "WHERE (AD_PrintFormat_ID IN " - + "(SELECT AD_PrintFormatChild_ID FROM AD_PrintFormatItem WHERE AD_PrintFormat_ID = " - + AD_PrintFormat_ID + " AND PrintFormatType = 'P' GROUP BY AD_PrintFormatChild_ID) OR AD_PrintFormat_ID = " - + AD_PrintFormat_ID + ")"; - - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()) { - - X_AD_PrintFormat m_Printformat = new X_AD_PrintFormat(ctx, rs.getInt("AD_PrintFormat_ID"), null); - - if (m_Printformat.getAD_PrintPaper_ID() > 0) - packOut.createPrintPaper(m_Printformat.getAD_PrintPaper_ID(), document); - - createPrintFormatBinding(atts, m_Printformat); - document.startElement("", "", "printformat", atts); - - String sql2 = "SELECT * FROM AD_PrintFormatItem WHERE AD_PrintFormat_ID= " - + m_Printformat.getAD_PrintFormat_ID() - + " ORDER BY "+X_AD_PrintFormatItem.COLUMNNAME_SeqNo+","+X_AD_PrintFormatItem.COLUMNNAME_AD_PrintFormatItem_ID; - PreparedStatement pstmt2 = null; - pstmt2 = DB.prepareStatement(sql2, getTrxName(ctx)); - try { - ResultSet rs2 = pstmt2.executeQuery(); - while (rs2.next()) { - createItem(ctx, document, rs2 - .getInt("AD_PrintFormatItem_ID")); - } - rs2.close(); - pstmt2.close(); - pstmt2 = null; - } finally { - try { - if (pstmt2 != null) - pstmt2.close(); - } catch (Exception e) { - } - pstmt2 = null; - } - document.endElement("", "", "printformat"); - } - rs.close(); - pstmt.close(); - pstmt = null; - } catch (Exception e) { - log.log(Level.SEVERE, e.getLocalizedMessage(), e); - if (e instanceof SAXException) - throw (SAXException) e; - else if (e instanceof SQLException) - throw new DatabaseAccessException("Failed to export print format.", e); - else if (e instanceof RuntimeException) - throw (RuntimeException) e; - else - throw new RuntimeException("Failed to export print format.", e); - } finally { - try { - if (pstmt != null) - pstmt.close(); - } catch (Exception e) { - } - pstmt = null; - } - - } - - private void createItem(Properties ctx, TransformerHandler document, - int AD_PrintFormatItem_ID) throws SAXException { - Env.setContext(ctx, - X_AD_PrintFormatItem.COLUMNNAME_AD_PrintFormatItem_ID, - AD_PrintFormatItem_ID); - itemHandler.create(ctx, document); - ctx.remove(X_AD_PrintFormatItem.COLUMNNAME_AD_PrintFormatItem_ID); - } - - private AttributesImpl createPrintFormatBinding(AttributesImpl atts, - X_AD_PrintFormat m_Printformat) { - String sql = null; - String name = null; - atts.clear(); - if (m_Printformat.getAD_PrintFormat_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_PrintFormat_ID","CDATA",Integer.toString(m_Printformat.getAD_PrintFormat_ID())); - if (m_Printformat.getAD_ReportView_ID() > 0) { - sql = "SELECT Name FROM AD_ReportView WHERE AD_ReportView_ID=?"; - name = DB.getSQLValueString(null, sql, m_Printformat - .getAD_ReportView_ID()); - atts.addAttribute("", "", "ADReportviewnameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADReportviewnameID", "CDATA", ""); - - if (m_Printformat.getAD_Table_ID() > 0) { - sql = "SELECT TableName FROM AD_Table WHERE AD_Table_ID=?"; - name = DB.getSQLValueString(null, sql, m_Printformat - .getAD_Table_ID()); - atts.addAttribute("", "", "ADTableNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADTableNameID", "CDATA", ""); - - if (m_Printformat.getAD_PrintTableFormat_ID() > 0) { - sql = "SELECT Name FROM AD_PrintTableFormat WHERE AD_PrintTableFormat_ID=?"; - name = DB.getSQLValueString(null, sql, m_Printformat - .getAD_PrintTableFormat_ID()); - atts.addAttribute("", "", "ADPrintTableFormatID", "CDATA", name); - } else - atts.addAttribute("", "", "ADPrintTableFormatID", "CDATA", ""); - - if (m_Printformat.getAD_PrintColor_ID() > 0) { - sql = "SELECT Name FROM AD_PrintColor WHERE AD_PrintColor_ID=?"; - name = DB.getSQLValueString(null, sql, m_Printformat - .getAD_PrintColor_ID()); - atts.addAttribute("", "", "ADPrintColorID", "CDATA", name); - } else - atts.addAttribute("", "", "ADPrintColorID", "CDATA", ""); - - if (m_Printformat.getAD_PrintFont_ID() > 0) { - sql = "SELECT Name FROM AD_PrintFont WHERE AD_PrintFont_ID=?"; - name = DB.getSQLValueString(null, sql, m_Printformat - .getAD_PrintFont_ID()); - atts.addAttribute("", "", "ADPrintFontID", "CDATA", name); - } else - atts.addAttribute("", "", "ADPrintFontID", "CDATA", ""); - - if (m_Printformat.getAD_PrintPaper_ID() > 0) { - sql = "SELECT Name FROM AD_PrintPaper WHERE AD_PrintPaper_ID=?"; - name = DB.getSQLValueString(null, sql, m_Printformat - .getAD_PrintPaper_ID()); - atts.addAttribute("", "", "ADPrintPaperID", "CDATA", name); - } else - atts.addAttribute("", "", "ADPrintPaperID", "CDATA", ""); - - atts.addAttribute("", "", "Description", "CDATA", - (m_Printformat.getDescription() != null ? m_Printformat - .getDescription() : "")); - atts - .addAttribute("", "", "Name", "CDATA", - (m_Printformat.getName() != null ? m_Printformat - .getName() : "")); - atts.addAttribute("", "", "PrinterName", "CDATA", - (m_Printformat.getPrinterName() != null ? m_Printformat - .getPrinterName() : "")); - atts.addAttribute("", "", "FooterMargin", "CDATA", "" - + m_Printformat.getFooterMargin()); - atts.addAttribute("", "", "HeaderMargin", "CDATA", "" - + m_Printformat.getHeaderMargin()); - atts.addAttribute("", "", "CreateCopy", "CDATA", (m_Printformat - .getCreateCopy() != null ? m_Printformat.getCreateCopy() : "")); - atts.addAttribute("", "", "isActive", "CDATA", (m_Printformat - .isActive() == true ? "true" : "false")); - atts.addAttribute("", "", "isTableBased", "CDATA", (m_Printformat - .isTableBased() == true ? "true" : "false")); - atts.addAttribute("", "", "isForm", "CDATA", - (m_Printformat.isForm() == true ? "true" : "false")); - atts.addAttribute("", "", "isStandardHeader", "CDATA", (m_Printformat - .isStandardHeaderFooter() == true ? "true" : "false")); - atts.addAttribute("", "", "isDefault", "CDATA", (m_Printformat - .isDefault() == true ? "true" : "false")); - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/PrintFormatItemElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/PrintFormatItemElementHandler.java deleted file mode 100644 index 25d6cf7c60..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/PrintFormatItemElementHandler.java +++ /dev/null @@ -1,455 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - * Teo Sarca, SC ARHIPAC SERVICE SRL - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.X_AD_PrintFormatItem; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class PrintFormatItemElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) - throws SAXException { - String elementValue = element.getElementValue(); - int AD_Backup_ID = -1; - String Object_Status = null; - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("Name")); - if (element.parent != null && element.parent.getElementValue().equals("printformat") && - element.parent.defer) { - element.defer = true; - return; - } - - String name = atts.getValue("Name"); - int id = get_IDWithMaster(ctx, "AD_PrintFormatItem", name, - "AD_PrintFormat", atts.getValue("ADPrintFormatNameID")); - - X_AD_PrintFormatItem m_PrintFormatItem = new X_AD_PrintFormatItem(ctx, - id, getTrxName(ctx)); - if (id <= 0 && atts.getValue("AD_PrintFormatItem_ID") != null && Integer.parseInt(atts.getValue("AD_PrintFormatItem_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_PrintFormatItem.setAD_PrintFormatItem_ID(Integer.parseInt(atts.getValue("AD_PrintFormatItem_ID"))); - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_PrintFormatItem", - m_PrintFormatItem); - Object_Status = "Update"; - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - m_PrintFormatItem.setName(name); - name = atts.getValue("ADPrintFormatNameID"); - if (element.parent != null && element.parent.getElementValue().equals("printformat") && - element.parent.recordId != 0) { - id = element.parent.recordId; - } else { - id = get_IDWithColumn(ctx, "AD_PrintFormat", "Name", name); - if (element.parent != null && element.parent.getElementValue().equals("printformat") && - id > 0) { - element.parent.recordId = id; - } - } - if (id <= 0) { - element.defer = true; - return; - } - m_PrintFormatItem.setAD_PrintFormat_ID(id); - - name = atts.getValue("ADTableNameID"); - int tableid = get_IDWithColumn(ctx, "AD_Table", "TableName", name); - name = atts.getValue("ADColumnNameID"); - id = get_IDWithMasterAndColumn(ctx, "AD_Column", "ColumnName", name, - "AD_Table", tableid); - if (id > 0) - m_PrintFormatItem.setAD_Column_ID(id); - - name = atts.getValue("ADPrintFormatChildNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_PrintFormat", "Name", name); - if (id <= 0) { - element.defer = true; - element.unresolved = "AD_PrintFormat: " + name; - return; - } - m_PrintFormatItem.setAD_PrintFormatChild_ID(id); - } - - name = atts.getValue("ADPrintGraphID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_PrintGraph", "Name", name); - //TODO: export and import of ad_printgraph - /* - if (id <= 0) { - element.defer = true; - return; - }*/ - if (id > 0) - m_PrintFormatItem.setAD_PrintGraph_ID(id); - } - - name = atts.getValue("ADPrintColorID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_PrintColor", "Name", name); - //TODO: export and import of ad_printcolor - /* - if (id <= 0) { - element.defer = true; - return; - }*/ - if (id > 0) - m_PrintFormatItem.setAD_PrintColor_ID(id); - } - - name = atts.getValue("ADPrintFontID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_PrintFont", "Name", name); - //TODO: export and import of print font - /* - if (id <= 0) { - element.defer = true; - return; - }*/ - if (id > 0) - m_PrintFormatItem.setAD_PrintFont_ID(id); - } - - m_PrintFormatItem.setPrintName(getStringValue(atts, "PrintName")); - m_PrintFormatItem.setName(atts.getValue("Name")); - m_PrintFormatItem.setPrintAreaType(getStringValue(atts,"PrintAreaType")); - - m_PrintFormatItem.setSeqNo(Integer.parseInt(atts.getValue("SeqNo"))); - m_PrintFormatItem.setPrintFormatType(getStringValue(atts,"PrintFormatType")); - m_PrintFormatItem.setXSpace(Integer.parseInt(atts.getValue("XSpace"))); - - m_PrintFormatItem.setYSpace(Integer.parseInt(atts.getValue("YSpace"))); - m_PrintFormatItem.setXPosition(Integer.parseInt(atts - .getValue("Xposition"))); - m_PrintFormatItem.setYPosition(Integer.parseInt(atts - .getValue("Yposition"))); - - m_PrintFormatItem.setMaxWidth(Integer.parseInt(atts - .getValue("MaxWidth"))); - m_PrintFormatItem.setMaxHeight(Integer.parseInt(atts - .getValue("MaxHieght"))); - m_PrintFormatItem.setSortNo(Integer.parseInt(atts.getValue("SortNo"))); - - m_PrintFormatItem.setFieldAlignmentType(getStringValue(atts - ,"FieldAlignmentType")); - m_PrintFormatItem.setLineAlignmentType(getStringValue(atts - ,"LineAlignmentType")); - m_PrintFormatItem.setImageURL(getStringValue(atts,"ImageURL")); - m_PrintFormatItem.setArcDiameter(Integer.parseInt(atts - .getValue("ArcDiameter"))); - m_PrintFormatItem.setLineWidth(Integer.parseInt(atts - .getValue("LineWidth"))); - m_PrintFormatItem.setShapeType(getStringValue(atts,"ShapeType")); - - m_PrintFormatItem.setBelowColumn(Integer.parseInt(atts - .getValue("BelowColumn"))); - m_PrintFormatItem.setPrintNameSuffix(getStringValue(atts,"PrintNameSuffix")); - m_PrintFormatItem.setRunningTotalLines(Integer.parseInt(atts - .getValue("RunningTotalLines"))); - - m_PrintFormatItem - .setIsActive(atts.getValue("isActive") != null ? Boolean - .valueOf(atts.getValue("isActive")).booleanValue() - : true); - m_PrintFormatItem.setIsPrinted(Boolean.valueOf( - atts.getValue("isPrinted")).booleanValue()); - m_PrintFormatItem.setIsRelativePosition(Boolean.valueOf( - atts.getValue("isRelativePosition")).booleanValue()); - m_PrintFormatItem.setIsNextLine(Boolean.valueOf( - atts.getValue("isNextLine")).booleanValue()); - - m_PrintFormatItem.setIsHeightOneLine(Boolean.valueOf( - atts.getValue("isHeightOneLine")).booleanValue()); - m_PrintFormatItem.setIsOrderBy(Boolean.valueOf( - atts.getValue("isOrderBy")).booleanValue()); - m_PrintFormatItem.setIsGroupBy(Boolean.valueOf( - atts.getValue("isGroupBy")).booleanValue()); - - m_PrintFormatItem.setIsPageBreak(Boolean.valueOf( - atts.getValue("isPageBreak")).booleanValue()); - m_PrintFormatItem.setIsSummarized(Boolean.valueOf( - atts.getValue("isSummarized")).booleanValue()); - m_PrintFormatItem.setImageIsAttached(Boolean.valueOf( - atts.getValue("isImageIsAttached")).booleanValue()); - - m_PrintFormatItem.setIsAveraged(Boolean.valueOf( - atts.getValue("isAveraged")).booleanValue()); - m_PrintFormatItem.setIsCounted(Boolean.valueOf( - atts.getValue("isCounted")).booleanValue()); - m_PrintFormatItem.setIsSetNLPosition(Boolean.valueOf( - atts.getValue("isSetNLPosition")).booleanValue()); - m_PrintFormatItem.setIsSuppressNull(Boolean.valueOf( - atts.getValue("isSuppressNull")).booleanValue()); - - m_PrintFormatItem.setIsFixedWidth(Boolean.valueOf( - atts.getValue("isFixedWidth")).booleanValue()); - m_PrintFormatItem.setIsNextPage(Boolean.valueOf( - atts.getValue("isNextPage")).booleanValue()); - m_PrintFormatItem.setIsMaxCalc(Boolean.valueOf( - atts.getValue("isMaxCalc")).booleanValue()); - m_PrintFormatItem.setIsMinCalc(Boolean.valueOf( - atts.getValue("isMinCalc")).booleanValue()); - - m_PrintFormatItem.setIsRunningTotal(Boolean.valueOf( - atts.getValue("isRunningTotal")).booleanValue()); - m_PrintFormatItem.setIsVarianceCalc(Boolean.valueOf( - atts.getValue("isVarianceCalc")).booleanValue()); - m_PrintFormatItem.setIsDeviationCalc(Boolean.valueOf( - atts.getValue("isDeviationCalc")).booleanValue()); - - // BarCode Type - String barCodeType = atts.getValue(X_AD_PrintFormatItem.COLUMNNAME_BarcodeType); - m_PrintFormatItem.setBarcodeType(barCodeType); - - if (m_PrintFormatItem.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_PrintFormatItem.getName(), "PrintFormatItem", - m_PrintFormatItem.get_ID(), AD_Backup_ID, Object_Status, - "AD_PrintFormatItem", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_PrintFormatItem")); - } else { - record_log(ctx, 0, m_PrintFormatItem.getName(), "PrintFormatItem", - m_PrintFormatItem.get_ID(), AD_Backup_ID, Object_Status, - "AD_PrintFormatItem", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_PrintFormatItem")); - throw new POSaveFailedException("PrintFormatItem"); - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_PrintFormatItem_ID = Env.getContextAsInt(ctx, - X_AD_PrintFormatItem.COLUMNNAME_AD_PrintFormatItem_ID); - X_AD_PrintFormatItem m_PrintFormatItem = new X_AD_PrintFormatItem(ctx, - AD_PrintFormatItem_ID, null); - AttributesImpl atts = new AttributesImpl(); - createPrintFormatItemBinding(atts, m_PrintFormatItem); - document.startElement("", "", "printformatitem", atts); - document.endElement("", "", "printformatitem"); - } - - private AttributesImpl createPrintFormatItemBinding(AttributesImpl atts, - X_AD_PrintFormatItem m_PrintformatItem) { - String sql = null; - String name = null; - atts.clear(); - if (m_PrintformatItem.getAD_PrintFormatItem_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_PrintFormatItem_ID","CDATA",Integer.toString(m_PrintformatItem.getAD_PrintFormatItem_ID())); - if (m_PrintformatItem.getAD_PrintFormat_ID() > 0) { - sql = "SELECT Name FROM AD_PrintFormat WHERE AD_PrintFormat_ID=?"; - name = DB.getSQLValueString(null, sql, m_PrintformatItem - .getAD_PrintFormat_ID()); - atts.addAttribute("", "", "ADPrintFormatNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADPrintFormatNameID", "CDATA", ""); - - if (m_PrintformatItem.getAD_PrintFormatChild_ID() > 0) { - sql = "SELECT Name FROM AD_PrintFormat WHERE AD_PrintFormat_ID=?"; - name = DB.getSQLValueString(null, sql, m_PrintformatItem - .getAD_PrintFormatChild_ID()); - atts - .addAttribute("", "", "ADPrintFormatChildNameID", "CDATA", - name); - } else - atts.addAttribute("", "", "ADPrintFormatChildNameID", "CDATA", ""); - - if (m_PrintformatItem.getAD_Column_ID() > 0) { - sql = "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID=?"; - name = DB.getSQLValueString(null, sql, m_PrintformatItem - .getAD_Column_ID()); - atts.addAttribute("", "", "ADColumnNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADColumnNameID", "CDATA", ""); - - if (m_PrintformatItem.getAD_Column_ID() > 0) { - sql = "SELECT AD_Table_ID FROM AD_Column WHERE AD_Column_ID=?"; - int tableID = DB.getSQLValue(null, sql, m_PrintformatItem - .getAD_Column_ID()); - sql = "SELECT TableName FROM AD_Table WHERE AD_Table_ID=?"; - name = DB.getSQLValueString(null, sql, tableID); - atts.addAttribute("", "", "ADTableNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADTableNameID", "CDATA", ""); - - if (m_PrintformatItem.getAD_PrintGraph_ID() > 0) { - sql = "SELECT Name FROM AD_PrintGraph WHERE AD_PrintGraph_ID=?"; - name = DB.getSQLValueString(null, sql, m_PrintformatItem - .getAD_PrintGraph_ID()); - atts.addAttribute("", "", "ADPrintGraphID", "CDATA", name); - } else - atts.addAttribute("", "", "ADPrintGraphID", "CDATA", ""); - - if (m_PrintformatItem.getAD_PrintColor_ID() > 0) { - sql = "SELECT Name FROM AD_PrintColor WHERE AD_PrintColor_ID=?"; - name = DB.getSQLValueString(null, sql, m_PrintformatItem - .getAD_PrintColor_ID()); - atts.addAttribute("", "", "ADPrintColorID", "CDATA", name); - } else - atts.addAttribute("", "", "ADPrintColorID", "CDATA", ""); - - if (m_PrintformatItem.getAD_PrintFont_ID() > 0) { - sql = "SELECT Name FROM AD_PrintFont WHERE AD_PrintFont_ID=?"; - name = DB.getSQLValueString(null, sql, m_PrintformatItem - .getAD_PrintFont_ID()); - atts.addAttribute("", "", "ADPrintFontID", "CDATA", name); - } else - atts.addAttribute("", "", "ADPrintFontID", "CDATA", ""); - - atts.addAttribute("", "", "PrintName", "CDATA", - (m_PrintformatItem.getPrintName() != null ? m_PrintformatItem - .getPrintName() : "")); - atts.addAttribute("", "", "Name", "CDATA", - (m_PrintformatItem.getName() != null ? m_PrintformatItem - .getName() : "")); - atts.addAttribute("", "", "PrintAreaType", "CDATA", (m_PrintformatItem - .getPrintAreaType() != null ? m_PrintformatItem - .getPrintAreaType() : "")); - atts.addAttribute("", "", "SeqNo", "CDATA", "" - + m_PrintformatItem.getSeqNo()); - atts.addAttribute("", "", "PrintFormatType", "CDATA", m_PrintformatItem - .getPrintFormatType()); - atts.addAttribute("", "", "XSpace", "CDATA", ("" + m_PrintformatItem - .getXSpace())); - atts.addAttribute("", "", "YSpace", "CDATA", ("" + m_PrintformatItem - .getYSpace())); - atts.addAttribute("", "", "Xposition", "CDATA", ("" + m_PrintformatItem - .getXPosition())); - atts.addAttribute("", "", "Yposition", "CDATA", ("" + m_PrintformatItem - .getYPosition())); - atts.addAttribute("", "", "MaxWidth", "CDATA", ("" + m_PrintformatItem - .getMaxWidth())); - atts.addAttribute("", "", "MaxHieght", "CDATA", ("" + m_PrintformatItem - .getMaxHeight())); - atts.addAttribute("", "", "SortNo", "CDATA", ("" + m_PrintformatItem - .getSortNo())); - atts - .addAttribute( - "", - "", - "FieldAlignmentType", - "CDATA", - (m_PrintformatItem.getFieldAlignmentType() != null ? m_PrintformatItem - .getFieldAlignmentType() - : "")); - atts - .addAttribute( - "", - "", - "LineAlignmentType", - "CDATA", - (m_PrintformatItem.getLineAlignmentType() != null ? m_PrintformatItem - .getLineAlignmentType() - : "")); - atts.addAttribute("", "", "ImageURL", "CDATA", (m_PrintformatItem - .getImageURL() != null ? m_PrintformatItem.getImageURL() : "")); - atts.addAttribute("", "", "BelowColumn", "CDATA", - ("" + m_PrintformatItem.getBelowColumn())); - atts.addAttribute("", "", "RunningTotalLines", "CDATA", - ("" + m_PrintformatItem.getRunningTotalLines())); - atts - .addAttribute( - "", - "", - "PrintNameSuffix", - "CDATA", - (m_PrintformatItem.getPrintNameSuffix() != null ? m_PrintformatItem - .getPrintNameSuffix() - : "")); - atts.addAttribute("", "", "ArcDiameter", "CDATA", "" - + m_PrintformatItem.getArcDiameter()); - atts.addAttribute("", "", "LineWidth", "CDATA", "" - + m_PrintformatItem.getLineWidth()); - atts - .addAttribute("", "", "ShapeType", "CDATA", m_PrintformatItem - .getShapeType() != null ? m_PrintformatItem - .getShapeType() : ""); - atts.addAttribute("", "", "isActive", "CDATA", (m_PrintformatItem - .isActive() == true ? "true" : "false")); - atts.addAttribute("", "", "isPrinted", "CDATA", (m_PrintformatItem - .isPrinted() == true ? "true" : "false")); - atts.addAttribute("", "", "isRelativePosition", "CDATA", - (m_PrintformatItem.isRelativePosition() == true ? "true" - : "false")); - atts.addAttribute("", "", "isNextLine", "CDATA", (m_PrintformatItem - .isNextLine() == true ? "true" : "false")); - atts - .addAttribute("", "", "isHeightOneLine", "CDATA", - (m_PrintformatItem.isHeightOneLine() == true ? "true" - : "false")); - atts.addAttribute("", "", "isOrderBy", "CDATA", (m_PrintformatItem - .isOrderBy() == true ? "true" : "false")); - atts.addAttribute("", "", "isGroupBy", "CDATA", (m_PrintformatItem - .isGroupBy() == true ? "true" : "false")); - atts.addAttribute("", "", "isPageBreak", "CDATA", (m_PrintformatItem - .isPageBreak() == true ? "true" : "false")); - atts.addAttribute("", "", "isSummarized", "CDATA", (m_PrintformatItem - .isSummarized() == true ? "true" : "false")); - atts.addAttribute("", "", "isImageIsAttached", "CDATA", - (m_PrintformatItem.isImageIsAttached() == true ? "true" - : "false")); - atts.addAttribute("", "", "isAveraged", "CDATA", (m_PrintformatItem - .isAveraged() == true ? "true" : "false")); - atts.addAttribute("", "", "isCounted", "CDATA", (m_PrintformatItem - .isCounted() == true ? "true" : "false")); - atts - .addAttribute("", "", "isSetNLPosition", "CDATA", - (m_PrintformatItem.isSetNLPosition() == true ? "true" - : "false")); - atts.addAttribute("", "", "isSuppressNull", "CDATA", (m_PrintformatItem - .isSuppressNull() == true ? "true" : "false")); - atts.addAttribute("", "", "isFixedWidth", "CDATA", (m_PrintformatItem - .isFixedWidth() == true ? "true" : "false")); - atts.addAttribute("", "", "isNextPage", "CDATA", (m_PrintformatItem - .isNextPage() == true ? "true" : "false")); - atts.addAttribute("", "", "isMaxCalc", "CDATA", (m_PrintformatItem - .isMaxCalc() == true ? "true" : "false")); - atts.addAttribute("", "", "isMinCalc", "CDATA", (m_PrintformatItem - .isMinCalc() == true ? "true" : "false")); - atts.addAttribute("", "", "isRunningTotal", "CDATA", (m_PrintformatItem - .isRunningTotal() == true ? "true" : "false")); - atts.addAttribute("", "", "isVarianceCalc", "CDATA", (m_PrintformatItem - .isVarianceCalc() == true ? "true" : "false")); - atts - .addAttribute("", "", "isDeviationCalc", "CDATA", - (m_PrintformatItem.isDeviationCalc() == true ? "true" - : "false")); - // BarCode Type - if (m_PrintformatItem.getBarcodeType() != null) - atts.addAttribute("", "", X_AD_PrintFormatItem.COLUMNNAME_BarcodeType, "CDATA", - m_PrintformatItem.getBarcodeType()); - - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/PrintPaperElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/PrintPaperElementHandler.java deleted file mode 100644 index 290817798f..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/PrintPaperElementHandler.java +++ /dev/null @@ -1,256 +0,0 @@ -/** - * - */ -package org.adempiere.pipo.handler; - -import java.math.BigDecimal; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.exceptions.AdempiereException; -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.I_AD_PrintPaper; -import org.compiere.model.MTable; -import org.compiere.model.PO; -import org.compiere.model.POInfo; -import org.compiere.util.Env; -import org.compiere.util.Util; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -/** - * @author teo.sarca@gmail.com - *
  • FR [ 2867966 ] Export PrintPaper - * https://sourceforge.net/tracker/?func=detail&aid=2867966&group_id=176962&atid=879335 - */ -public class PrintPaperElementHandler extends AbstractElementHandler -{ - public static final String TAG_Name = "printpaper"; - - private final List list = new ArrayList(); - - protected String getTagName() - { - return TAG_Name; - } - - protected String getTableName() - { - return I_AD_PrintPaper.Table_Name; - } - - protected final int getTable_ID() - { - return MTable.getTable_ID(getTableName()); - } - - protected String getKeyColumnName() - { - return I_AD_PrintPaper.COLUMNNAME_AD_PrintPaper_ID; - } - - protected String getIdentifierColumnName() - { - return I_AD_PrintPaper.COLUMNNAME_Name; - } - - protected String[] getAttributeNames() - { - final String[] attributeNames = new String[]{ - I_AD_PrintPaper.COLUMNNAME_Name, - I_AD_PrintPaper.COLUMNNAME_Description, - I_AD_PrintPaper.COLUMNNAME_IsActive, - I_AD_PrintPaper.COLUMNNAME_IsDefault, - I_AD_PrintPaper.COLUMNNAME_IsLandscape, - I_AD_PrintPaper.COLUMNNAME_Code, - I_AD_PrintPaper.COLUMNNAME_MarginTop, - I_AD_PrintPaper.COLUMNNAME_MarginLeft, - I_AD_PrintPaper.COLUMNNAME_MarginRight, - I_AD_PrintPaper.COLUMNNAME_MarginBottom, - I_AD_PrintPaper.COLUMNNAME_SizeX, - I_AD_PrintPaper.COLUMNNAME_SizeY, - I_AD_PrintPaper.COLUMNNAME_DimensionUnits, - }; - return attributeNames; - } - - protected int getExportItem_ID(Properties ctx) - { - final int id = Env.getContextAsInt(ctx, getKeyColumnName()); - return id; - } - - protected PO getCreatePO(Properties ctx, int id, String trxName) - { - return MTable.get(ctx, getTableName()).getPO(id, trxName); - } - - public void startElement(Properties ctx, Element element) throws SAXException - { - final String elementValue = element.getElementValue(); - final Attributes atts = element.attributes; - - final String strIdentifier = atts.getValue(getIdentifierColumnName()); - final int id = get_IDWithColumn(ctx, getTableName(), getIdentifierColumnName(), strIdentifier); - final PO po = getCreatePO(ctx, id, getTrxName(ctx)); - final String keyColumnName = getKeyColumnName(); - if (log.isLoggable(Level.INFO)) log.info(elementValue+" "+strIdentifier+"["+id+"]"); - - if (id <= 0 && keyColumnName != null && getIntValue(atts, keyColumnName, 0) <= PackOut.MAX_OFFICIAL_ID) - { - po.set_ValueOfColumn(keyColumnName, getIntValue(atts, keyColumnName, 0)); - } - - final int AD_Backup_ID; - final String Object_Status; - if (id > 0) - { - AD_Backup_ID = copyRecord(ctx, getTableName(), po); - Object_Status = "Update"; - } - else - { - Object_Status = "New"; - AD_Backup_ID = 0; - } - - for (String attributeName : getAttributeNames()) - { - loadAttribute(atts, attributeName, po); - } - - if (po.save(getTrxName(ctx)) == true) - { - record_log (ctx, 1, strIdentifier, getTagName(), po.get_ID(), - AD_Backup_ID, Object_Status, - getTableName(), getTable_ID()); - } - else - { - record_log (ctx, 0, strIdentifier, getTagName(), po.get_ID(), - AD_Backup_ID, Object_Status, - getTableName(), getTable_ID()); - throw new POSaveFailedException("Failed to save message."); - } - } - - public void endElement(Properties ctx, Element element) throws SAXException - { - } - - public void create(Properties ctx, TransformerHandler document) throws SAXException - { - final int id = getExportItem_ID(ctx); - if (list.contains(id)) - return; - list.add(id); - - final PO po = getCreatePO(ctx, id, null); - final AttributesImpl atts = new AttributesImpl(); - createMessageBinding(atts, po); - document.startElement("", "", getTagName(), atts); - document.endElement("", "", getTagName()); - } - - private AttributesImpl createMessageBinding(AttributesImpl atts, PO po) - { - atts.clear(); - // Add ID if it's official - String keyColumnName = getKeyColumnName(); - if (keyColumnName != null && po.get_ID() <= PackOut.MAX_OFFICIAL_ID) - { - addAttribute(atts, keyColumnName, po); - } - for (String name : getAttributeNames()) - { - addAttribute(atts, name, po); - } - return atts; - } - - protected void loadAttribute(Attributes atts, String name, PO po) - { - final String strValueExact = atts.getValue(name); - String strValue = strValueExact; - if (Util.isEmpty(strValue, true)) - { - strValue = null; - } - else - { - strValue = strValue.trim(); - } - - final POInfo poInfo = POInfo.getPOInfo(po.getCtx(), getTable_ID()); - final Class clazz = poInfo.getColumnClass(poInfo.getColumnIndex(name)); - if (strValue == null) - { - po.set_ValueOfColumn(name, null); - } - else if (clazz == BigDecimal.class) - { - po.set_ValueOfColumn(name, new BigDecimal(strValue)); - } - else if (clazz == Integer.class) - { - po.set_ValueOfColumn(name, new BigDecimal(strValue).intValueExact()); - } - else if (clazz == String.class) - { - po.set_ValueOfColumn(name, strValueExact); - } - else if (clazz == Boolean.class) - { - po.set_ValueOfColumn(name, Boolean.valueOf(strValue)); - } - else if (clazz == Timestamp.class) - { - Timestamp ts = Timestamp.valueOf(strValue); - po.set_ValueOfColumn(name, ts); - } - else - { - throw new AdempiereException("Class not supported - "+clazz); - } - } - - protected boolean getBooleanValue(Attributes atts, String qName, boolean defaultValue) - { - String s = atts.getValue(qName); - return s != null ? Boolean.valueOf(s) : defaultValue; - } - - protected int getIntValue(Attributes atts, String qName, int defaultValue) - { - Object o = atts.getValue(qName); - if (o == null) - return defaultValue; - if (o instanceof Number) - return ((Number)o).intValue(); - return Integer.parseInt(o.toString()); - } - - private final void addAttribute(AttributesImpl atts, String name, PO po) - { - Object value = po.get_Value(name); - atts.addAttribute("", "", name, "CDATA", toStringAttribute(value)); - } - - private final String toStringAttribute(Object value) - { - if (value == null) - return ""; - if (value instanceof Boolean) - return ((Boolean)value).booleanValue() == true ? "true" : "false"; - return value.toString(); - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ProcessAccessElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ProcessAccessElementHandler.java deleted file mode 100644 index fe550200f3..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ProcessAccessElementHandler.java +++ /dev/null @@ -1,140 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.Properties; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.exception.DatabaseAccessException; -import org.compiere.model.X_AD_Process; -import org.compiere.model.X_AD_Role; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class ProcessAccessElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - log.info(elementValue); - int roleid =0; - int processid =0; - StringBuffer sqlB = null; - Attributes atts = element.attributes; - if (atts.getValue("rolename")!=null){ - String name = atts.getValue("rolename"); - sqlB = new StringBuffer ("SELECT AD_Role_ID FROM AD_Role WHERE Name= ?"); - roleid = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),name); - } - - if (atts.getValue("processname")!=null){ - String name = atts.getValue("processname"); - sqlB = new StringBuffer ("SELECT AD_Process_ID FROM AD_Process WHERE Name= ?"); - processid = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),name); - } - - sqlB = new StringBuffer ("SELECT count(*) FROM AD_Process_Access WHERE AD_Role_ID=? and AD_Process_ID=?"); - int count = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),roleid,processid); - @SuppressWarnings("unused") - int AD_Backup_ID = -1; - @SuppressWarnings("unused") - String Object_Status = null; - - if (count>0){ - Object_Status = "Update"; - sqlB = new StringBuffer ("UPDATE AD_Process_Access ") - .append( "SET isActive = '" + atts.getValue("isActive") ) - .append( "', isReadWrite = '" + atts.getValue("isReadWrite") ) - .append( "' WHERE AD_Role_ID = " + roleid ) - .append( " and AD_Process_ID = " + processid ); - - int no = DB.executeUpdate (sqlB.toString(), getTrxName(ctx)); - if (no == -1) { - log.info("Update to process access failed"); - throw new DatabaseAccessException("Update to process access failed"); - } - } - else{ - Object_Status = "New"; - AD_Backup_ID =0; - sqlB = new StringBuffer ("INSERT INTO AD_Process_Access") - .append( "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, " ) - .append( "AD_Role_ID, AD_Process_ID, isActive, isReadWrite) " ) - .append( "VALUES(" ) - .append( " "+ Env.getAD_Client_ID(ctx) ) - .append( ", "+ Env.getAD_Org_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", " + roleid ) - .append( ", " + processid ) - .append( ", '" + atts.getValue("isActive") ) - .append( "', '" + atts.getValue("isReadWrite")+"')" ); - - int no = DB.executeUpdate (sqlB.toString(), getTrxName(ctx)); - if (no == -1) { - log.info("Insert to process access failed"); - throw new DatabaseAccessException("Insert to process access failed"); - } - } - - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Process_ID = Env.getContextAsInt(ctx, X_AD_Process.COLUMNNAME_AD_Process_ID); - int AD_Role_ID = Env.getContextAsInt(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); - AttributesImpl atts = new AttributesImpl(); - createProcessAccessBinding(atts, AD_Process_ID, AD_Role_ID); - document.startElement("", "", "processaccess", atts); - document.endElement("", "", "processaccess"); - } - - private AttributesImpl createProcessAccessBinding(AttributesImpl atts, - int process_id, int role_id) { - String sql = null; - String name = null; - atts.clear(); - - sql = "SELECT Name FROM AD_Process WHERE AD_Process_ID=?"; - name = DB.getSQLValueString(null, sql, process_id); - atts.addAttribute("", "", "processname", "CDATA", name); - - sql = "SELECT Name FROM AD_Role WHERE AD_Role_ID=?"; - name = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "rolename", "CDATA", name); - - sql = "SELECT isActive FROM AD_Process_Access WHERE AD_Process_ID=" - + process_id + " and AD_Role_ID=?"; - String TrueFalse = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "isActive", "CDATA", TrueFalse); - - sql = "SELECT isReadWrite FROM AD_Process_Access WHERE AD_Process_ID=" - + process_id + " and AD_Role_ID=?"; - String isReadWrite = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "isReadWrite", "CDATA", isReadWrite); - - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ProcessElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ProcessElementHandler.java deleted file mode 100644 index 6469aaca77..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ProcessElementHandler.java +++ /dev/null @@ -1,344 +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) 2005 Robert Klein. robeklein@hotmail.com * - * Contributor(s): Low Heng Sin hengsin@avantz.com * - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.DatabaseAccessException; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.X_AD_Process; -import org.compiere.model.X_AD_Process_Para; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class ProcessElementHandler extends AbstractElementHandler { - - private ProcessParaElementHandler paraHandler = new ProcessParaElementHandler(); - - private List processes = new ArrayList(); - - public void startElement(Properties ctx, Element element) - throws SAXException { - String elementValue = element.getElementValue(); - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("Name")); - int id = 0; - String entitytype = atts.getValue("EntityType"); - if (isProcessElement(ctx, entitytype)) { - String value = atts.getValue("Value"); - - // Get New process. - id = get_IDWithColumn(ctx, "AD_Process", "Value", value); - - X_AD_Process m_Process = null; - int AD_Backup_ID = -1; - String Object_Status = null; - if (id > 0) { - m_Process = new X_AD_Process(ctx, id, getTrxName(ctx)); - AD_Backup_ID = copyRecord(ctx, "AD_Process", m_Process); - Object_Status = "Update"; - } else { - m_Process = new X_AD_Process(ctx, id, getTrxName(ctx)); - if (id <= 0 && atts.getValue("AD_Process_ID") != null && Integer.parseInt(atts.getValue("AD_Process_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Process.setAD_Process_ID(Integer.parseInt(atts.getValue("AD_Process_ID"))); - Object_Status = "New"; - AD_Backup_ID = 0; - } - - String name = atts.getValue("Name"); - m_Process.setName(name); - - name = atts.getValue("ADWorkflowNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_Workflow", "Name", name); - if (id <= 0) { - element.defer = true; - element.unresolved = "AD_Workflow: " + name; - return; - } - m_Process.setAD_Workflow_ID(id); - } - - name = atts.getValue("ADPrintFormatNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_PrintFormat", "Name", name); - if (id <= 0) { - if (element.pass == 1) { - element.defer = true; - element.unresolved = "AD_PrintFormat: " + name; - return; - } else { - log.warning("AD_PrintFormat: " + name + " not found for Process: " + m_Process.getName()); - } - } - if (id > 0) - m_Process.setAD_PrintFormat_ID(id); - } - - name = atts.getValue("ADReportViewNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_ReportView", "Name", name); - if (id <= 0) { - if (element.pass == 1) { - element.defer = true; - element.unresolved = "AD_ReportView: " + name; - return; - } else { - log.warning("AD_ReportView: " + name + " not found for Process: " + m_Process.getName()); - } - } - if (id > 0) - m_Process.setAD_ReportView_ID(id); - } - - m_Process.setAccessLevel(atts.getValue("AccessLevel")); - m_Process.setClassname(getStringValue(atts, "Classname")); - m_Process.setDescription(getStringValue(atts, "Description")); - m_Process.setEntityType(atts.getValue("EntityType")); - m_Process.setHelp(getStringValue(atts, "Help")); - m_Process.setIsBetaFunctionality(Boolean.valueOf( - atts.getValue("isBetaFunctionality")).booleanValue()); - m_Process.setIsDirectPrint(Boolean.valueOf( - atts.getValue("isDirectPrint")).booleanValue()); - m_Process.setIsReport(Boolean.valueOf(atts.getValue("isReport")) - .booleanValue()); - m_Process.setName(atts.getValue("Name")); - - m_Process.setProcedureName(getStringValue(atts, "ProcedureName")); - m_Process.setStatistic_Count(0); - m_Process.setIsActive(atts.getValue("isActive") != null ? Boolean - .valueOf(atts.getValue("isActive")).booleanValue() : true); - m_Process.setStatistic_Seconds(0); - m_Process.setValue(atts.getValue("Value")); - m_Process.setWorkflowValue(atts.getValue("WorkflowValue")); - m_Process.setShowHelp((getStringValue(atts, "ShowHelp"))); - m_Process.setJasperReport(getStringValue(atts, "JasperReport")); - if (m_Process.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_Process.getName(), "Process", m_Process - .get_ID(), AD_Backup_ID, Object_Status, "AD_Process", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Process")); - element.recordId = m_Process.getAD_Process_ID(); - } else { - record_log(ctx, 0, m_Process.getName(), "Process", m_Process - .get_ID(), AD_Backup_ID, Object_Status, "AD_Process", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Process")); - throw new POSaveFailedException("Process"); - } - } else { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Process_ID = Env.getContextAsInt(ctx, "AD_Process_ID"); - if (processes.contains(AD_Process_ID)) - return; - processes.add(AD_Process_ID); - PackOut packOut = (PackOut) ctx.get("PackOutProcess"); - String sqlW = "SELECT AD_Process_ID FROM AD_PROCESS WHERE AD_PROCESS_ID = " - + AD_Process_ID; - - AttributesImpl atts = new AttributesImpl(); - PreparedStatement pstmt1 = null; - pstmt1 = DB.prepareStatement(sqlW, getTrxName(ctx)); - try { - ResultSet rs1 = pstmt1.executeQuery(); - while (rs1.next()) { - X_AD_Process m_Process = new X_AD_Process(ctx, rs1 - .getInt("AD_Process_ID"), null); - log.log(Level.INFO, "AD_ReportView_ID: " - + m_Process.getAD_Process_ID()); - - if (m_Process.isReport() && m_Process.getAD_ReportView_ID() > 0) { - packOut.createReportview(m_Process.getAD_ReportView_ID(), - document); - } - if (m_Process.isReport() && m_Process.getAD_PrintFormat_ID() > 0) { - - packOut.createPrintFormat(m_Process.getAD_PrintFormat_ID(), - document); - } - if (m_Process.getAD_Workflow_ID() > 0) { - - packOut.createWorkflow(m_Process.getAD_Workflow_ID(), - document); - } - createProcessBinding(atts, m_Process); - document.startElement("", "", "process", atts); - // processpara tags - String sqlP = "SELECT * FROM AD_PROCESS_PARA WHERE AD_PROCESS_ID = "+ AD_Process_ID - +" ORDER BY "+X_AD_Process_Para.COLUMNNAME_SeqNo+","+X_AD_Process_Para.COLUMNNAME_AD_Process_Para_ID; - PreparedStatement pstmtP = null; - pstmtP = DB.prepareStatement(sqlP, getTrxName(ctx)); - try { - ResultSet rsP = pstmtP.executeQuery(); - while (rsP.next()) { - if (rsP.getInt("AD_Reference_ID") > 0) - packOut.createReference(rsP - .getInt("AD_Reference_ID"), document); - if (rsP.getInt("AD_Reference_Value_ID") > 0) - packOut.createReference(rsP - .getInt("AD_Reference_Value_ID"), - document); - if (rsP.getInt("AD_Val_Rule_ID") > 0) - packOut.createDynamicRuleValidation (rsP.getInt("AD_Val_Rule_ID"), document); - - createProcessPara(ctx, document, rsP - .getInt("AD_Process_Para_ID")); - } - rsP.close(); - pstmtP.close(); - pstmtP = null; - } catch (Exception e) { - log.log(Level.SEVERE, "getProcess_Para", e); - if (e instanceof SAXException) - throw (SAXException) e; - else if (e instanceof SQLException) - throw new DatabaseAccessException("Failed to export process.", e); - else if (e instanceof RuntimeException) - throw (RuntimeException) e; - else - throw new RuntimeException("Failed to export process.", e); - } finally { - try { - if (pstmtP != null) - pstmtP.close(); - } catch (Exception e) { - } - pstmtP = null; - } - document.endElement("", "", "process"); - } - rs1.close(); - pstmt1.close(); - pstmt1 = null; - } catch (Exception e) { - log.log(Level.SEVERE, "getProcess", e); - } finally { - try { - if (pstmt1 != null) - pstmt1.close(); - } catch (Exception e) { - } - pstmt1 = null; - } - - } - - private void createProcessPara(Properties ctx, TransformerHandler document, - int AD_Process_Para_ID) throws SAXException { - Env.setContext(ctx, X_AD_Process_Para.COLUMNNAME_AD_Process_Para_ID, - AD_Process_Para_ID); - paraHandler.create(ctx, document); - ctx.remove(X_AD_Process_Para.COLUMNNAME_AD_Process_Para_ID); - } - - private AttributesImpl createProcessBinding(AttributesImpl atts, - X_AD_Process m_Process) { - String sql = null; - String name = null; - atts.clear(); - - if (m_Process.getAD_Process_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_Process_ID","CDATA",Integer.toString(m_Process.getAD_Process_ID())); - - atts.addAttribute("", "", "Name", "CDATA", - (m_Process.getName() != null ? m_Process.getName() : "")); - - if (m_Process.getAD_Workflow_ID() > 0) { - sql = "SELECT Name FROM AD_Workflow WHERE AD_Workflow_ID=?"; - name = DB.getSQLValueString(null, sql, m_Process - .getAD_Workflow_ID()); - atts.addAttribute("", "", "ADWorkflowNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADWorkflowNameID", "CDATA", ""); - if (m_Process.getAD_Process_ID() > 0) { - sql = "SELECT Name FROM AD_Process WHERE AD_Process_ID=?"; - name = DB - .getSQLValueString(null, sql, m_Process.getAD_Process_ID()); - atts.addAttribute("", "", "ADProcessNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADProcessNameID", "CDATA", ""); - if (m_Process.getAD_PrintFormat_ID() > 0) { - sql = "SELECT Name FROM AD_PrintFormat WHERE AD_PrintFormat_ID=?"; - name = DB.getSQLValueString(null, sql, m_Process - .getAD_PrintFormat_ID()); - atts.addAttribute("", "", "ADPrintFormatNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADPrintFormatNameID", "CDATA", ""); - if (m_Process.getAD_ReportView_ID() > 0) { - sql = "SELECT Name FROM AD_ReportView WHERE AD_ReportView_ID=?"; - name = DB.getSQLValueString(null, sql, m_Process - .getAD_ReportView_ID()); - atts.addAttribute("", "", "ADReportViewNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADReportViewNameID", "CDATA", ""); - atts.addAttribute("", "", "AccessLevel", "CDATA", (m_Process - .getAccessLevel() != null ? m_Process.getAccessLevel() : "")); - atts.addAttribute("", "", "Classname", "CDATA", (m_Process - .getClassname() != null ? m_Process.getClassname() : "")); - atts.addAttribute("", "", "Description", "CDATA", (m_Process - .getDescription() != null ? m_Process.getDescription() : "")); - atts.addAttribute("", "", "EntityType", "CDATA", (m_Process - .getEntityType() != null ? m_Process.getEntityType() : "")); - atts.addAttribute("", "", "Help", "CDATA", - (m_Process.getHelp() != null ? m_Process.getHelp() : "")); - atts.addAttribute("", "", "isBetaFunctionality", "CDATA", (m_Process - .isBetaFunctionality() == true ? "true" : "false")); - atts.addAttribute("", "", "isDirectPrint", "CDATA", (m_Process - .isDirectPrint() == true ? "true" : "false")); - atts.addAttribute("", "", "isReport", "CDATA", - (m_Process.isReport() == true ? "true" : "false")); - atts.addAttribute("", "", "isActive", "CDATA", - (m_Process.isActive() == true ? "true" : "false")); - atts.addAttribute("", "", "ProcedureName", "CDATA", - (m_Process.getProcedureName() != null ? m_Process - .getProcedureName() : "")); - atts.addAttribute("", "", "StatisticCount", "CDATA", "0"); - atts.addAttribute("", "", "StatisticSeconds", "CDATA", "0"); - atts.addAttribute("", "", "Value", "CDATA", - (m_Process.getValue() != null ? m_Process.getValue() : "")); - atts.addAttribute("", "", "WorkflowValue", "CDATA", - (m_Process.getWorkflowValue() != null ? m_Process - .getWorkflowValue() : "")); - atts.addAttribute("", "", "ShowHelp", "CDATA", - (m_Process.getShowHelp() != null ? m_Process.getShowHelp() : "")); - atts.addAttribute("", "", "JasperReport", "CDATA", - (m_Process.getJasperReport() != null ? m_Process.getJasperReport() : "")); - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ProcessParaElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ProcessParaElementHandler.java deleted file mode 100644 index 16e08aa24e..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ProcessParaElementHandler.java +++ /dev/null @@ -1,314 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - * Teo Sarca, teo.sarca@gmail.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.Properties; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.X_AD_Element; -import org.compiere.model.X_AD_Process_Para; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class ProcessParaElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) - throws SAXException { - String elementValue = element.getElementValue(); - Attributes atts = element.attributes; - log.info(elementValue + " " + atts.getValue("Name")); - - String entitytype = atts.getValue("EntityType"); - if (isProcessElement(ctx, entitytype)) { - if (element.parent != null && element.parent.getElementValue().equals("process") && - element.parent.defer) { - element.defer = true; - return; - } - - String name = atts.getValue("Name"); - - int id = 0; - int masterId = 0; - String processValue = ""; - if (element.parent != null && element.parent.getElementValue().equals("process") && - element.parent.recordId > 0) { - masterId = element.parent.recordId; - } else { - processValue = atts.getValue("ADProcessValueID"); - if (processValue != null && processValue.trim().length() > 0) { - masterId = get_IDWithColumn(ctx, "AD_Process", "Value", processValue); - } else { - //for backward compatibility - processValue = atts.getValue("ADProcessNameID"); - masterId = get_IDWithColumn(ctx, "AD_Process", "Name", processValue); - } - } - if (masterId <= 0) { - element.defer = true; - element.unresolved = "AD_Process: " + processValue; - return; - } - id = get_IDWithMasterAndColumn(ctx, "AD_Process_Para", "Name", - name, "AD_Process", masterId); - - X_AD_Process_Para m_Process_para = new X_AD_Process_Para(ctx, id, - getTrxName(ctx)); - int AD_Backup_ID = -1; - String Object_Status = null; - if (id <= 0 && atts.getValue("AD_Process_Para_ID") != null && Integer.parseInt(atts.getValue("AD_Process_Para_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Process_para.setAD_Process_Para_ID(Integer.parseInt(atts.getValue("AD_Process_Para_ID"))); - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_Process_Para", - m_Process_para); - Object_Status = "Update"; - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - m_Process_para.setName(atts.getValue("Name")); - - m_Process_para.setAD_Process_ID(masterId); - - m_Process_para.setColumnName(atts.getValue("ColumnName")); - m_Process_para.setEntityType(atts.getValue("EntityType")); - - name = atts.getValue("ADElementNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_Element", "ColumnName", name); - if (id <= 0 /** Check Packout version - 005 */) - { - id = get_IDWithColumn(ctx, "AD_Element", "Name", name); - } - // Setup Element - X_AD_Element adElement = new X_AD_Element(ctx, id, getTrxName(ctx)); - if (adElement.getAD_Element_ID() == 0) { - String columnName = m_Process_para.getColumnName(); - id = get_IDWithColumn(ctx, "AD_Element", "ColumnName", columnName); - if ( id > 0 ) { - adElement = new X_AD_Element(ctx, id, getTrxName(ctx)); - } else { - adElement.setColumnName(columnName); - adElement.setEntityType(m_Process_para.getEntityType()); - adElement.setPrintName(name); - - adElement.setName(m_Process_para.getName()); - if (adElement.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_Process_para.getName(), "Element", adElement - .getAD_Element_ID(), AD_Backup_ID, "New", - "AD_Element", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_Element")); - } else { - record_log(ctx, 0, m_Process_para.getName(), "Element", adElement - .getAD_Element_ID(), AD_Backup_ID, "New", - "AD_Element", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_Element")); - } - } - } - m_Process_para.setAD_Element_ID(adElement.getAD_Element_ID()); - } - - name = atts.getValue("ADReferenceNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_Reference", "Name", name); - if (id <= 0) { - element.defer = true; - element.unresolved = "AD_Reference: " + name; - return; - } - m_Process_para.setAD_Reference_ID(id); - } - - name = atts.getValue("ADReferenceValueNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_Reference", "Name", name); - if (id <= 0) { - element.defer = true; - element.unresolved = "AD_Reference: " + name; - return; - } - m_Process_para.setAD_Reference_Value_ID(id); - } - - name = atts.getValue("ADValRuleNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_Val_Rule", "Name", name); - if (id <= 0) { - element.defer = true; - element.unresolved = "AD_Val_Rule: " +name; - return; - } - m_Process_para.setAD_Val_Rule_ID(id); - } - - m_Process_para.setDefaultValue(getStringValue(atts, "DefaultValue")); - m_Process_para.setDefaultValue2(getStringValue(atts, "DefaultValue2")); - m_Process_para.setDescription(getStringValue(atts,"Description")); - - m_Process_para.setHelp(getStringValue(atts,"Help")); - m_Process_para - .setIsActive(atts.getValue("isActive") != null ? Boolean - .valueOf(atts.getValue("isActive")).booleanValue() - : true); - - m_Process_para.setVFormat(getStringValue(atts,"VFormat")); - m_Process_para.setValueMax(getStringValue(atts,"ValueMax")); - m_Process_para.setValueMin(getStringValue(atts,"ValueMin")); - m_Process_para.setSeqNo(Integer.parseInt(atts.getValue("SeqNo"))); - m_Process_para.setFieldLength(Integer.parseInt(atts - .getValue("FieldLength"))); - m_Process_para.setIsCentrallyMaintained(Boolean.valueOf( - atts.getValue("isCentrallyMaintained")).booleanValue()); - m_Process_para.setIsMandatory(Boolean.valueOf( - atts.getValue("isMandatory")).booleanValue()); - m_Process_para.setIsRange(Boolean.valueOf(atts.getValue("isRange")) - .booleanValue()); - if (m_Process_para.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_Process_para.getName(), "Process_para", - m_Process_para.get_ID(), AD_Backup_ID, Object_Status, - "AD_Process_para", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_Process_para")); - } else { - record_log(ctx, 0, m_Process_para.getName(), "Process_para", - m_Process_para.get_ID(), AD_Backup_ID, Object_Status, - "AD_Process_para", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_Process_para")); - throw new POSaveFailedException("ProcessPara"); - } - } else { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Process_Para_ID = Env.getContextAsInt(ctx, - X_AD_Process_Para.COLUMNNAME_AD_Process_Para_ID); - X_AD_Process_Para m_Processpara = new X_AD_Process_Para(ctx, - AD_Process_Para_ID, getTrxName(ctx)); - AttributesImpl atts = new AttributesImpl(); - createProcessParaBinding(atts, m_Processpara); - document.startElement("", "", "processpara", atts); - document.endElement("", "", "processpara"); - } - - private AttributesImpl createProcessParaBinding(AttributesImpl atts, - X_AD_Process_Para m_Processpara) { - String sql = null; - String name = null; - atts.clear(); - if (m_Processpara.getAD_Process_Para_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_Process_Para_ID","CDATA",Integer.toString(m_Processpara.getAD_Process_Para_ID())); - atts - .addAttribute("", "", "Name", "CDATA", - (m_Processpara.getName() != null ? m_Processpara - .getName() : "")); - if (m_Processpara.getAD_Process_ID() > 0) { - sql = "SELECT Value FROM AD_Process WHERE AD_Process_ID=?"; - name = DB.getSQLValueString(null, sql, m_Processpara - .getAD_Process_ID()); - atts.addAttribute("", "", "ADProcessValueID", "CDATA", name); - } else - atts.addAttribute("", "", "ADProcessValueID", "CDATA", ""); - if (m_Processpara.getAD_Process_Para_ID() > 0) { - sql = "SELECT Name FROM AD_Process_Para WHERE AD_Process_Para_ID=?"; - name = DB.getSQLValueString(null, sql, m_Processpara - .getAD_Process_Para_ID()); - atts.addAttribute("", "", "ADProcessParaNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADProcessParaNameID", "CDATA", ""); - if (m_Processpara.getAD_Element_ID() > 0) { - sql = "SELECT ColumnName FROM AD_Element WHERE AD_Element_ID=?"; - name = DB.getSQLValueStringEx(null, sql, m_Processpara.getAD_Element_ID()); - atts.addAttribute("", "", "ADElementNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADElementNameID", "CDATA", ""); - if (m_Processpara.getAD_Reference_ID() > 0) { - sql = "SELECT Name FROM AD_Reference WHERE AD_Reference_ID=?"; - name = DB.getSQLValueString(null, sql, m_Processpara - .getAD_Reference_ID()); - atts.addAttribute("", "", "ADReferenceNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADReferenceNameID", "CDATA", ""); - if (m_Processpara.getAD_Reference_Value_ID() > 0) { - sql = "SELECT Name FROM AD_Reference WHERE AD_Reference_ID=?"; - name = DB.getSQLValueString(null, sql, m_Processpara - .getAD_Reference_Value_ID()); - atts.addAttribute("", "", "ADReferenceValueNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADReferenceValueNameID", "CDATA", ""); - if (m_Processpara.getAD_Val_Rule_ID() > 0) { - sql = "SELECT Name FROM AD_Val_Rule WHERE AD_Val_Rule_ID=?"; - name = DB.getSQLValueString(null, sql, m_Processpara - .getAD_Val_Rule_ID()); - atts.addAttribute("", "", "ADValRuleNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADValRuleNameID", "CDATA", ""); - atts.addAttribute("", "", "ColumnName", "CDATA", (m_Processpara - .getColumnName() != null ? m_Processpara.getColumnName() : "")); - atts.addAttribute("", "", "DefaultValue", "CDATA", (m_Processpara - .getDefaultValue() != null ? m_Processpara.getDefaultValue() - : "")); - atts.addAttribute("", "", "DefaultValue2", "CDATA", (m_Processpara - .getDefaultValue2() != null ? m_Processpara.getDefaultValue2() - : "")); - atts.addAttribute("", "", "Description", "CDATA", - (m_Processpara.getDescription() != null ? m_Processpara - .getDescription() : "")); - atts.addAttribute("", "", "EntityType", "CDATA", (m_Processpara - .getEntityType() != null ? m_Processpara.getEntityType() : "")); - atts - .addAttribute("", "", "Help", "CDATA", - (m_Processpara.getHelp() != null ? m_Processpara - .getHelp() : "")); - atts.addAttribute("", "", "isActive", "CDATA", (m_Processpara - .isActive() == true ? "true" : "false")); - atts.addAttribute("", "", "VFormat", "CDATA", (m_Processpara - .getVFormat() != null ? m_Processpara.getVFormat() : "")); - atts.addAttribute("", "", "ValueMax", "CDATA", (m_Processpara - .getValueMax() != null ? m_Processpara.getValueMax() : "")); - atts.addAttribute("", "", "ValueMin", "CDATA", (m_Processpara - .getValueMin() != null ? m_Processpara.getValueMin() : "")); - atts.addAttribute("", "", "SeqNo", "CDATA", - (m_Processpara.getSeqNo() > 0 ? "" + m_Processpara.getSeqNo() - : "0")); - atts.addAttribute("", "", "FieldLength", "CDATA", (m_Processpara - .getFieldLength() > 0 ? "" + m_Processpara.getFieldLength() - : "0")); - atts.addAttribute("", "", "isCentrallyMaintained", "CDATA", - (m_Processpara.isCentrallyMaintained() == true ? "true" - : "false")); - atts.addAttribute("", "", "isMandatory", "CDATA", (m_Processpara - .isMandatory() == true ? "true" : "false")); - atts.addAttribute("", "", "isRange", "CDATA", - (m_Processpara.isRange() == true ? "true" : "false")); - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReferenceElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReferenceElementHandler.java deleted file mode 100644 index d26ee25670..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReferenceElementHandler.java +++ /dev/null @@ -1,279 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.DatabaseAccessException; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.X_AD_Ref_List; -import org.compiere.model.X_AD_Ref_Table; -import org.compiere.model.X_AD_Reference; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class ReferenceElementHandler extends AbstractElementHandler { - - private ReferenceListElementHandler listHandler = new ReferenceListElementHandler(); - private ReferenceTableElementHandler tableHandler = new ReferenceTableElementHandler(); - - private List references = new ArrayList(); - - public void startElement(Properties ctx, Element element) - throws SAXException { - String elementValue = element.getElementValue(); - int AD_Backup_ID = -1; - String Object_Status = null; - - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("name")); - - String entitytype = atts.getValue("EntityType"); - String name = atts.getValue("name"); - - if (isProcessElement(ctx, entitytype)) { - int id = get_ID(ctx, "AD_Reference", name); - - X_AD_Reference m_Reference = new X_AD_Reference(ctx, id, - getTrxName(ctx)); - if (id <= 0 && atts.getValue("AD_Reference_ID") != null && Integer.parseInt(atts.getValue("AD_Reference_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Reference.setAD_Reference_ID(Integer.parseInt(atts.getValue("AD_Reference_ID"))); - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_Reference", m_Reference); - Object_Status = "Update"; - if (references.contains(id)) { - element.skip = true; - return; - } - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - - m_Reference.setDescription(getStringValue(atts,"Description")); - m_Reference.setEntityType(atts.getValue("EntityType")); - m_Reference.setHelp(getStringValue(atts,"Help")); - m_Reference.setIsActive(atts.getValue("isActive") != null ? Boolean - .valueOf(atts.getValue("isActive")).booleanValue() : true); - m_Reference.setName(atts.getValue("name")); - - // m_Reference.setVFormat(atts.getValue("VFormat")); - m_Reference.setValidationType(atts.getValue("ValidationType")); - if (m_Reference.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_Reference.getName(), "Reference", - m_Reference.get_ID(), AD_Backup_ID, Object_Status, - "AD_Reference", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_Reference")); - references.add(m_Reference.getAD_Reference_ID()); - element.recordId = m_Reference.getAD_Reference_ID(); - } else { - record_log(ctx, 0, m_Reference.getName(), "Reference", - m_Reference.get_ID(), AD_Backup_ID, Object_Status, - "AD_Reference", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_Reference")); - throw new POSaveFailedException("Reference"); - } - } else { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int Reference_id = Env.getContextAsInt(ctx, - X_AD_Reference.COLUMNNAME_AD_Reference_ID); - - if (references.contains(Reference_id)) - return; - - references.add(Reference_id); - AttributesImpl atts = new AttributesImpl(); - String sql = "SELECT * FROM AD_Reference WHERE AD_Reference_ID= " - + Reference_id; - - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - - try { - - ResultSet rs = pstmt.executeQuery(); - - while (rs.next()) { - - X_AD_Reference m_Reference = new X_AD_Reference(ctx, rs - .getInt("AD_Reference_ID"), null); - createReferenceBinding(atts, m_Reference); - document.startElement("", "", "reference", atts); - - if (m_Reference.getValidationType().compareTo("L") == 0) { - String sql1 = "SELECT * FROM AD_Ref_List WHERE AD_Reference_ID= " + Reference_id - + " ORDER BY Value, AD_Ref_List_ID"; - - PreparedStatement pstmt1 = null; - pstmt1 = DB.prepareStatement(sql1, getTrxName(ctx)); - - try { - - ResultSet rs1 = pstmt1.executeQuery(); - - while (rs1.next()) { - createReferenceList(ctx, document, rs1 - .getInt("AD_REF_LIST_ID")); - } - rs1.close(); - pstmt1.close(); - pstmt1 = null; - } - - catch (Exception e) { - log.log(Level.SEVERE, e.getLocalizedMessage(), e); - if (e instanceof SAXException) - throw (SAXException) e; - else if (e instanceof SQLException) - throw new DatabaseAccessException("Failed to export Reference.", e); - else if (e instanceof RuntimeException) - throw (RuntimeException) e; - else - throw new RuntimeException("Failed to export Reference.", e); - } finally { - try { - if (pstmt1 != null) - pstmt1.close(); - } catch (Exception e) { - } - pstmt1 = null; - } - - } else if (m_Reference.getValidationType().compareTo("T") == 0) { - String sql1 = "SELECT AD_Reference_ID FROM AD_Ref_Table WHERE AD_Reference_ID = " - + Reference_id; - PreparedStatement pstmt1 = null; - pstmt1 = DB.prepareStatement(sql1, getTrxName(ctx)); - - try { - - ResultSet rs1 = pstmt1.executeQuery(); - - while (rs1.next()) { - createReferenceTable(ctx, document, Reference_id); - } - rs1.close(); - pstmt1.close(); - pstmt1 = null; - } - - catch (Exception e) { - log.log(Level.SEVERE, "getRef_Table", e); - } - - finally { - try { - if (pstmt1 != null) - pstmt1.close(); - } catch (Exception e) { - } - pstmt1 = null; - } - } - document.endElement("", "", "reference"); - } - rs.close(); - pstmt.close(); - pstmt = null; - } - - catch (Exception e) { - log.log(Level.SEVERE, "getRefence", e); - } - - finally { - try { - if (pstmt != null) - pstmt.close(); - } catch (Exception e) { - } - pstmt = null; - } - - } - - private void createReferenceTable(Properties ctx, TransformerHandler document, - int reference_id) throws SAXException { - Env.setContext(ctx, X_AD_Ref_Table.COLUMNNAME_AD_Reference_ID, reference_id); - tableHandler.create(ctx, document); - ctx.remove(X_AD_Ref_Table.COLUMNNAME_AD_Reference_ID); - } - - private void createReferenceList(Properties ctx, - TransformerHandler document, int AD_Ref_List_ID) - throws SAXException { - Env.setContext(ctx, X_AD_Ref_List.COLUMNNAME_AD_Ref_List_ID, - AD_Ref_List_ID); - listHandler.create(ctx, document); - ctx.remove(X_AD_Ref_List.COLUMNNAME_AD_Ref_List_ID); - } - - private AttributesImpl createReferenceBinding(AttributesImpl atts, - X_AD_Reference m_Reference) { - String sql = null; - String name = null; - atts.clear(); - if (m_Reference.getAD_Reference_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("", "", "AD_Reference_ID", "CDATA", Integer.toString(m_Reference.getAD_Reference_ID())); - if (m_Reference.getAD_Reference_ID() > 0) { - sql = "SELECT Name FROM AD_Reference WHERE AD_Reference_ID=?"; - name = DB.getSQLValueString(null, sql, m_Reference - .getAD_Reference_ID()); - atts.addAttribute("", "", "name", "CDATA", name); - } else - atts.addAttribute("", "", "name", "CDATA", ""); - atts.addAttribute("", "", "Description", "CDATA", (m_Reference - .getDescription() != null ? m_Reference.getDescription() : "")); - atts.addAttribute("", "", "EntityType", "CDATA", (m_Reference - .getEntityType() != null ? m_Reference.getEntityType() : "")); - atts.addAttribute("", "", "Help", "CDATA", - (m_Reference.getHelp() != null ? m_Reference.getHelp() : "")); - atts.addAttribute("", "", "Name", "CDATA", - (m_Reference.getName() != null ? m_Reference.getName() : "")); - atts.addAttribute("", "", "isActive", "CDATA", - (m_Reference.isActive() == true ? "true" : "false")); - atts.addAttribute("", "", "VFormat", "CDATA", - (m_Reference.getVFormat() != null ? m_Reference.getVFormat() - : "")); - atts.addAttribute("", "", "ValidationType", "CDATA", (m_Reference - .getValidationType() != null ? m_Reference.getValidationType() - : "")); - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReferenceListElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReferenceListElementHandler.java deleted file mode 100644 index 40fc114b04..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReferenceListElementHandler.java +++ /dev/null @@ -1,165 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.X_AD_Ref_List; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class ReferenceListElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) - throws SAXException { - String elementValue = element.getElementValue(); - int AD_Backup_ID = -1; - String Object_Status = null; - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("Name")); - // TODO: Solve for date issues with valuefrom valueto - String entitytype = atts.getValue("EntityType"); - if (isProcessElement(ctx, entitytype)) { - if (element.parent != null && element.parent.skip) { - element.skip = true; - return; - } - @SuppressWarnings("unused") - String name = atts.getValue("Name"); - String value = atts.getValue("Value"); - int AD_Reference_ID = 0; - if (element.parent != null && element.parent.getElementValue().equals("reference") && - element.parent.recordId > 0) { - AD_Reference_ID = element.parent.recordId; - } else { - AD_Reference_ID = get_IDWithColumn(ctx, "AD_Reference", "Name", - atts.getValue("ADRefenceNameID")); - } - - int AD_Ref_List_ID = get_IDWithMasterAndColumn(ctx, "AD_Ref_List", "Value", value, "AD_Reference", AD_Reference_ID); - X_AD_Ref_List m_Ref_List = new X_AD_Ref_List(ctx, AD_Ref_List_ID, - getTrxName(ctx)); - if (AD_Ref_List_ID <= 0 && atts.getValue("AD_Ref_List_ID") != null && Integer.parseInt(atts.getValue("AD_Ref_List_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Ref_List.setAD_Ref_List_ID(Integer.parseInt(atts.getValue("AD_Ref_List_ID"))); - if (AD_Ref_List_ID > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_Ref_List", m_Ref_List); - Object_Status = "Update"; - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - - m_Ref_List.setAD_Reference_ID(AD_Reference_ID); - m_Ref_List.setDescription(getStringValue(atts,"Description")); - m_Ref_List.setEntityType(atts.getValue("EntityType")); - m_Ref_List.setName(atts.getValue("Name")); - m_Ref_List.setValue(value); - m_Ref_List.setIsActive(atts.getValue("isActive") != null ? Boolean - .valueOf(atts.getValue("isActive")).booleanValue() : true); - - if (m_Ref_List.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_Ref_List.getName(), "Reference List", - m_Ref_List.get_ID(), AD_Backup_ID, Object_Status, - "AD_Ref_List", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_Ref_List")); - } else { - record_log(ctx, 0, m_Ref_List.getName(), "Reference List", - m_Ref_List.get_ID(), AD_Backup_ID, Object_Status, - "AD_Ref_List", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_Ref_List")); - throw new POSaveFailedException("ReferenceList"); - } - } else { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Ref_List_ID = Env.getContextAsInt(ctx, - X_AD_Ref_List.COLUMNNAME_AD_Ref_List_ID); - X_AD_Ref_List m_Ref_List = new X_AD_Ref_List(ctx, AD_Ref_List_ID, - getTrxName(ctx)); - AttributesImpl atts = new AttributesImpl(); - createRefListBinding(atts, m_Ref_List); - document.startElement("", "", "referencelist", atts); - document.endElement("", "", "referencelist"); - } - - private AttributesImpl createRefListBinding(AttributesImpl atts, - X_AD_Ref_List m_Ref_List) { - String sql = null; - String name = null; - atts.clear(); - if (m_Ref_List.getAD_Ref_List_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("", "", "AD_Ref_List_ID", "CDATA", Integer.toString(m_Ref_List.getAD_Ref_List_ID())); - if (m_Ref_List.getAD_Ref_List_ID() > 0) { - sql = "SELECT Name FROM AD_Ref_List WHERE AD_Ref_List_ID=?"; - name = DB.getSQLValueString(null, sql, m_Ref_List - .getAD_Ref_List_ID()); - if (name != null) - atts.addAttribute("", "", "ADReflistNameID", "CDATA", name); - else - atts.addAttribute("", "", "ADReflistNameID", "CDATA", ""); - } else { - atts.addAttribute("", "", "ADReflistNameID", "CDATA", ""); - } - - if (m_Ref_List.getAD_Reference_ID() > 0) { - sql = "SELECT Name FROM AD_Reference WHERE AD_Reference_ID=?"; - name = DB.getSQLValueString(null, sql, m_Ref_List - .getAD_Reference_ID()); - if (name != null) - atts.addAttribute("", "", "ADRefenceNameID", "CDATA", name); - else - atts.addAttribute("", "", "ADRefenceNameID", "CDATA", ""); - } else { - atts.addAttribute("", "", "ADRefenceNameID", "CDATA", ""); - } - - atts.addAttribute("", "", "Description", "CDATA", (m_Ref_List - .getDescription() != null ? m_Ref_List.getDescription() : "")); - atts.addAttribute("", "", "EntityType", "CDATA", (m_Ref_List - .getEntityType() != null ? m_Ref_List.getEntityType() : "")); - atts.addAttribute("", "", "Name", "CDATA", - (m_Ref_List.getName() != null ? m_Ref_List.getName() : "")); - atts.addAttribute("", "", "isActive", "CDATA", - (m_Ref_List.isActive() == true ? "true" : "false")); - // atts.addAttribute("","","ValidFrom","CDATA",(m_Ref_List.getValidFrom - // ().toGMTString() != null ? - // m_Ref_List.getValidFrom().toGMTString():"")); - // atts.addAttribute("","","ValidTo","CDATA",(m_Ref_List.getValidTo - // ().toGMTString() != null ? - // m_Ref_List.getValidTo().toGMTString():"")); - atts.addAttribute("", "", "Value", "CDATA", - (m_Ref_List.getValue() != null ? m_Ref_List.getValue() : "")); - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReferenceTableElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReferenceTableElementHandler.java deleted file mode 100644 index 981957ea1e..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReferenceTableElementHandler.java +++ /dev/null @@ -1,293 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.DatabaseAccessException; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.MColumn; -import org.compiere.model.MTable; -import org.compiere.model.X_AD_Ref_Table; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class ReferenceTableElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) - throws SAXException { - String elementValue = element.getElementValue(); - @SuppressWarnings("unused") - int AD_Backup_ID = -1; - @SuppressWarnings("unused") - String Object_Status = null; - - log.info(elementValue); - Attributes atts = element.attributes; - String entitytype = atts.getValue("EntityType"); - String name = atts.getValue("ADRefenceNameID"); - if (isProcessElement(ctx, entitytype)) { - if (element.parent != null && element.parent.skip) { - element.skip = true; - return; - } - - int AD_Reference_ID = 0; - if (element.parent != null && element.parent.getElementValue().equals("reference") && - element.parent.recordId > 0) { - AD_Reference_ID = element.parent.recordId; - } else { - StringBuffer sqlB = new StringBuffer( - "SELECT AD_Reference_ID FROM AD_Reference WHERE Name= ?"); - AD_Reference_ID = DB.getSQLValue(getTrxName(ctx), sqlB.toString(), name); - } - if (AD_Reference_ID <= 0 && atts.getValue("AD_Reference_ID") != null && Integer.parseInt(atts.getValue("AD_Reference_ID")) <= PackOut.MAX_OFFICIAL_ID) - AD_Reference_ID = Integer.parseInt(atts.getValue("AD_Reference_ID")); - - StringBuffer sqlB = new StringBuffer( - "SELECT Count(*) FROM AD_Ref_Table WHERE AD_Reference_ID= ?"); - int count = DB.getSQLValue(getTrxName(ctx), sqlB.toString(), AD_Reference_ID); - int tableId = get_IDWithColumn(ctx, "AD_Table", "TableName", atts - .getValue("ADTableNameID")); - if (tableId == 0) { - MTable m_Table = new MTable(ctx, 0, getTrxName(ctx)); - m_Table.setAccessLevel("3"); - m_Table.setName(atts.getValue("ADTableNameID")); - m_Table.setTableName(atts.getValue("ADTableNameID")); - if (m_Table.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_Table.getName(), "Table", m_Table - .get_ID(), 0, "New", "AD_Table", get_IDWithColumn( - ctx, "AD_Table", "TableName", "AD_Table")); - } else { - record_log(ctx, 0, m_Table.getName(), "Table", m_Table - .get_ID(), 0, "New", "AD_Table", get_IDWithColumn( - ctx, "AD_Table", "TableName", "AD_Table")); - } - tableId = get_IDWithColumn(ctx, "AD_Table", "TableName", atts - .getValue("ADTableNameID")); - } - name = atts.getValue("ADDisplay"); - int DisplayId = get_IDWithMasterAndColumn(ctx, "AD_Column", - "ColumnName", name, "AD_Table", tableId); - if (DisplayId == 0) { - MColumn m_Column = new MColumn(ctx, 0, getTrxName(ctx)); - m_Column.setAD_Table_ID(tableId); - // m_Column.setVersion(new BigDecimal("1")); // use constructor - // value - m_Column.setColumnName(name); - m_Column.setName(name); - m_Column.setAD_Reference_ID(30); - if (m_Column.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_Column.getName(), "Column", m_Column - .get_ID(), 0, "New", "AD_Column", get_IDWithColumn( - ctx, "AD_Table", "TableName", "AD_Column")); - } else { - record_log(ctx, 0, m_Column.getName(), "Column", m_Column - .get_ID(), 0, "New", "AD_Column", get_IDWithColumn( - ctx, "AD_Table", "TableName", "AD_Column")); - } - } - name = atts.getValue("Key"); - int keyId = get_IDWithMasterAndColumn(ctx, "AD_Column", - "ColumnName", name, "AD_Table", tableId); - if (keyId == 0) { - MColumn m_Column = new MColumn(ctx, 0, getTrxName(ctx)); - m_Column.setAD_Table_ID(tableId); - // m_Column.setVersion(new BigDecimal("1")); // use constructor - // value - m_Column.setColumnName(name); - m_Column.setName(name); - m_Column.setAD_Reference_ID(30); - if (m_Column.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_Column.getName(), "Column", m_Column - .get_ID(), 0, "New", "AD_Column", get_IDWithColumn( - ctx, "AD_Table", "TableName", "AD_Column")); - } else { - record_log(ctx, 0, m_Column.getName(), "Column", m_Column - .get_ID(), 0, "New", "AD_Column", get_IDWithColumn( - ctx, "AD_Table", "TableName", "AD_Column")); - } - } - - name = atts.getValue("ADDisplay"); - DisplayId = get_IDWithMasterAndColumn(ctx, "AD_Column", - "ColumnName", name, "AD_Table", tableId); - name = atts.getValue("Key"); - keyId = get_IDWithMasterAndColumn(ctx, "AD_Column", "ColumnName", - name, "AD_Table", tableId); - String entityType = atts.getValue("EntityType"); - String isValueDisplayed = atts.getValue("IsValueDisplayed"); - String OrderByClause = atts.getValue("OrderByClause").replaceAll("'", "''"); - String WhereClause = atts.getValue("WhereClause").replaceAll("'","''"); - if (count > 0) { - sqlB = new StringBuffer("UPDATE AD_Ref_Table ").append( - "SET AD_Table_ID = " + tableId).append( - ", AD_Display = " + DisplayId).append( - ", AD_Key = " + keyId).append( - ", isValueDisplayed = '" + isValueDisplayed).append( - "', OrderByClause = '" + OrderByClause).append( - "', EntityType ='" + entityType).append( - "', WhereClause = '" + WhereClause).append( - "' WHERE AD_Reference_ID = " + AD_Reference_ID); - - int no = DB.executeUpdate(sqlB.toString(), getTrxName(ctx)); - if (no > 0) { - record_log(ctx, 1, atts.getValue("ADRefenceNameID"), - "Reference Table", AD_Reference_ID, 0, "Update", "AD_Ref_Table", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Ref_Table")); - } else { - record_log(ctx, 0, atts.getValue("ADRefenceNameID"), - "Reference Table", AD_Reference_ID, 0, "Update", "AD_Ref_Table", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Ref_Table")); - throw new POSaveFailedException("ReferenceTable"); - } - } else { - sqlB = new StringBuffer("INSERT INTO AD_Ref_Table") - .append( - "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, ") - .append( - "AD_Reference_ID, AD_Table_ID, AD_Display, AD_Key ") - .append( - ",entityType, isValueDisplayed, OrderByClause, ") - .append(" WhereClause )").append( - "VALUES(0, 0, 0, 0, " + AD_Reference_ID).append( - ", " + tableId).append(", " + DisplayId) - .append(", " + keyId).append(", '" + entityType) - .append("', '" + isValueDisplayed).append( - "', '" + OrderByClause).append( - "', '" + WhereClause + "')"); - - int no = DB.executeUpdate(sqlB.toString(), getTrxName(ctx)); - if (no > 0) { - record_log(ctx, 1, atts.getValue("ADRefenceNameID"), - "Reference Table", AD_Reference_ID, 0, "New", "AD_Ref_Table", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Ref_Table")); - } else { - record_log(ctx, 0, atts.getValue("ADRefenceNameID"), - "Reference Table", AD_Reference_ID, 0, "New", "AD_Ref_Table", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Ref_Table")); - throw new POSaveFailedException("ReferenceTable"); - } - } - } else { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int Reference_id = Env.getContextAsInt(ctx, - X_AD_Ref_Table.COLUMNNAME_AD_Reference_ID); - AttributesImpl atts = new AttributesImpl(); - createReferenceTableBinding(ctx, atts, Reference_id); - document.startElement("", "", "referencetable", atts); - document.endElement("", "", "referencetable"); - } - - private AttributesImpl createReferenceTableBinding(Properties ctx, - AttributesImpl atts, int reference_ID) { - atts.clear(); - if (reference_ID <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("", "", "AD_Reference_ID", "CDATA", Integer.toString(reference_ID)); - String name = null; - String sql = null; - String sql1 = "SELECT * FROM AD_Ref_Table WHERE AD_Reference_ID= " - + reference_ID; - - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement(sql1, getTrxName(ctx)); - try { - ResultSet rs = pstmt.executeQuery(); - if (rs.next()) { - sql = "SELECT Name FROM AD_Reference WHERE AD_Reference_ID=?"; - name = DB.getSQLValueString(null, sql, reference_ID); - atts.addAttribute("", "", "ADRefenceNameID", "CDATA", name); - - if (rs.getInt("AD_Table_ID") > 0) { - sql = "SELECT TableName FROM AD_Table WHERE AD_Table_ID=?"; - name = DB.getSQLValueString(null, sql, rs - .getInt("AD_Table_ID")); - atts.addAttribute("", "", "ADTableNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADTableNameID", "CDATA", ""); - - if (rs.getInt("AD_Display") > 0) { - sql = "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID=?"; - name = DB.getSQLValueString(null, sql, rs - .getInt("AD_Display")); - atts.addAttribute("", "", "ADDisplay", "CDATA", name); - } else - atts.addAttribute("", "", "ADDisplay", "CDATA", ""); - - if (rs.getInt("AD_Key") > 0) { - sql = "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID=?"; - name = DB.getSQLValueString(null, sql, rs.getInt("AD_Key")); - atts.addAttribute("", "", "Key", "CDATA", name); - } else - atts.addAttribute("", "", "Key", "CDATA", ""); - atts.addAttribute("", "", "EntityType", "CDATA", (rs - .getString("EntityType") != null ? rs - .getString("EntityType") : "")); - atts - .addAttribute("", "", "IsValueDisplayed", "CDATA", - (rs.getString("IsValueDisplayed") - .compareTo("Y") == 0 ? "Y" : "N")); - atts.addAttribute("", "", "OrderByClause", "CDATA", (rs - .getString("OrderByClause") != null ? rs - .getString("OrderByClause") : "")); - atts.addAttribute("", "", "isActive", "CDATA", (rs.getString( - "isActive").compareTo("Y") == 0 ? "Y" : "N")); - atts.addAttribute("", "", "WhereClause", "CDATA", (rs - .getString("WhereClause") != null ? rs - .getString("WhereClause") : "")); - - } - rs.close(); - pstmt.close(); - pstmt = null; - } catch (Exception e) { - log.log(Level.SEVERE, e.getLocalizedMessage(), e); - throw new DatabaseAccessException("Failed to export Reference Table", e); - } finally { - try { - if (pstmt != null) - pstmt.close(); - } catch (Exception e) { - } - pstmt = null; - } - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReportViewColElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReportViewColElementHandler.java deleted file mode 100644 index 3e2436b77d..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReportViewColElementHandler.java +++ /dev/null @@ -1,177 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.X_AD_ReportView_Col; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class ReportViewColElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) - throws SAXException { - String elementValue = element.getElementValue(); - int AD_Backup_ID = -1; - String Object_Status = null; - - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("ADReportViewColID")); - - String entitytype = atts.getValue("EntityType"); - - if (isProcessElement(ctx, entitytype)) { - String name = atts.getValue("ADReportviewNameID"); - int AD_ReportView_ID = 0; - if (element.parent != null && element.parent.getElementValue().equals("reportview") && - element.parent.recordId > 0) { - AD_ReportView_ID = element.parent.recordId; - } else { - AD_ReportView_ID = get_IDWithColumn(ctx, "AD_ReportView", "Name", name); - } - if (AD_ReportView_ID <= 0) { - element.defer = true; - return; - } - - name = atts.getValue("ADColumnNameID"); - int AD_Column_ID = 0; - if (name != null && name.trim().length() > 0) { - AD_Column_ID = get_IDWithColumn(ctx, "AD_Column", "Name", name); - if (AD_Column_ID <= 0) { - element.defer = true; - return; - } - } - - String functionColumn = getStringValue(atts, "FunctionColumn"); - StringBuffer sql = new StringBuffer("SELECT AD_Reportview_Col_ID FROM AD_Reportview_Col ") - .append(" WHERE AD_Column_ID "); - if (AD_Column_ID > 0) - sql.append(" = " + AD_Column_ID); - else - sql.append(" IS NULL "); - sql.append(" AND FunctionColumn = ?"); - - int id = DB.getSQLValue(getTrxName(ctx), sql.toString(), functionColumn); - if (id < 0) id = 0; - X_AD_ReportView_Col m_Reportview_Col = new X_AD_ReportView_Col(ctx, - id, getTrxName(ctx)); - if (id <= 0 && atts.getValue("AD_ReportView_Col_ID") != null && Integer.parseInt(atts.getValue("AD_ReportView_Col_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Reportview_Col.setAD_ReportView_Col_ID(Integer.parseInt(atts.getValue("AD_ReportView_Col_ID"))); - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_Reportview_Col", - m_Reportview_Col); - Object_Status = "Update"; - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - - boolean isGroupFunction = Boolean.valueOf( - atts.getValue("isGroupFunction")).booleanValue(); - - m_Reportview_Col.setAD_ReportView_ID(AD_ReportView_ID); - - if (AD_Column_ID > 0) { - m_Reportview_Col.setAD_Column_ID(id); - } - - m_Reportview_Col.setFunctionColumn(functionColumn); - m_Reportview_Col - .setIsActive(atts.getValue("isActive") != null ? Boolean - .valueOf(atts.getValue("isActive")).booleanValue() - : true); - m_Reportview_Col.setIsGroupFunction(isGroupFunction); - if (m_Reportview_Col.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, "" + m_Reportview_Col.getAD_ReportView_ID(), - "Reportview_Col", m_Reportview_Col.get_ID(), - AD_Backup_ID, Object_Status, "AD_Reportview_Col", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Reportview_Col")); - } else { - record_log(ctx, 0, "" + m_Reportview_Col.getAD_ReportView_ID(), - "Reportview_Col", m_Reportview_Col.get_ID(), - AD_Backup_ID, Object_Status, "AD_Reportview_Col", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Reportview_Col")); - throw new POSaveFailedException("ReportViewCol"); - } - } else { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_ReportView_Col_ID = Env.getContextAsInt(ctx, - X_AD_ReportView_Col.COLUMNNAME_AD_ReportView_Col_ID); - X_AD_ReportView_Col m_Reportview_Col = new X_AD_ReportView_Col(ctx, - AD_ReportView_Col_ID, getTrxName(ctx)); - AttributesImpl atts = new AttributesImpl(); - createReportViewColBinding(atts, m_Reportview_Col); - document.startElement("", "", "reportviewcol", atts); - document.endElement("", "", "reportviewcol"); - } - - private AttributesImpl createReportViewColBinding(AttributesImpl atts, - X_AD_ReportView_Col m_Reportview_Col) { - String sql = null; - String name = null; - atts.clear(); - if (m_Reportview_Col.getAD_ReportView_Col_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_ReportView_Col_ID","CDATA",Integer.toString(m_Reportview_Col.getAD_ReportView_Col_ID())); - if (m_Reportview_Col.getAD_Column_ID() > 0) { - sql = "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID=?"; - name = DB.getSQLValueString(null, sql, m_Reportview_Col - .getAD_Column_ID()); - atts.addAttribute("", "", "ADColumnNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADColumnNameID", "CDATA", ""); - - if (m_Reportview_Col.getAD_ReportView_ID() > 0) { - sql = "SELECT Name FROM AD_Reportview WHERE AD_Reportview_ID=?"; - name = DB.getSQLValueString(null, sql, m_Reportview_Col - .getAD_ReportView_ID()); - atts.addAttribute("", "", "ADReportviewNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADReportviewNameID", "CDATA", ""); - - atts.addAttribute("", "", "FunctionColumn", "CDATA", (m_Reportview_Col - .getFunctionColumn() != null ? m_Reportview_Col - .getFunctionColumn() : "")); - atts.addAttribute("", "", "isActive", "CDATA", (m_Reportview_Col - .isActive() == true ? "true" : "false")); - atts.addAttribute("", "", "isGroupFunction", "CDATA", (m_Reportview_Col - .isGroupFunction() == true ? "true" : "false")); - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReportViewElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReportViewElementHandler.java deleted file mode 100644 index d586c99a8b..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/ReportViewElementHandler.java +++ /dev/null @@ -1,269 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.DatabaseAccessException; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.MTable; -import org.compiere.model.X_AD_PrintFormat; -import org.compiere.model.X_AD_ReportView; -import org.compiere.model.X_AD_ReportView_Col; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class ReportViewElementHandler extends AbstractElementHandler { - - private ReportViewColElementHandler columnHandler = new ReportViewColElementHandler(); - - private List views = new ArrayList(); - - public void startElement(Properties ctx, Element element) - throws SAXException { - String elementValue = element.getElementValue(); - int AD_Backup_ID = -1; - String Object_Status = null; - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("ADReportviewnameID")); - //String entitytype = atts.getValue("EntityType"); - String name = atts.getValue("ADReportviewnameID"); - - int id = get_ID(ctx, "AD_ReportView", name); - X_AD_ReportView m_Reportview = new X_AD_ReportView(ctx, id, - getTrxName(ctx)); - if (id <= 0 && atts.getValue("AD_ReportView_ID") != null && Integer.parseInt(atts.getValue("AD_ReportView_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Reportview.setAD_ReportView_ID(Integer.parseInt(atts.getValue("AD_ReportView_ID"))); - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_Reportview", m_Reportview); - Object_Status = "Update"; - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - String Name = atts.getValue("ADTableNameID"); - id = get_IDWithColumn(ctx, "AD_Table", "TableName", Name); - MTable m_Table = null; - if (id == 0) { - m_Table = new MTable(ctx, 0, getTrxName(ctx)); - m_Table.setAccessLevel("3"); - m_Table.setName(Name); - m_Table.setTableName(Name); - if (m_Table.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_Table.getName(), "Table", - m_Table.get_ID(), 0, "New", "AD_Table", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Table")); - } else { - record_log(ctx, 0, m_Table.getName(), "Table", - m_Table.get_ID(), 0, "New", "AD_Table", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Table")); - } - id = get_IDWithColumn(ctx, "AD_Table", "TableName", Name); - } - - m_Reportview.setAD_Table_ID(id); - m_Reportview.setDescription(getStringValue(atts,"Description")); - m_Reportview.setEntityType(atts.getValue("EntityType")); - m_Reportview.setName(atts.getValue("Name")); - m_Reportview.setIsActive(atts.getValue("isActive") != null ? Boolean - .valueOf(atts.getValue("isActive")).booleanValue() : true); - m_Reportview.setOrderByClause(getStringValue(atts,"OrderByClause")); - m_Reportview.setWhereClause(getStringValue(atts,"WhereClause")); - if (m_Reportview.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_Reportview.getName(), "Reportview", - m_Reportview.get_ID(), AD_Backup_ID, Object_Status, - "AD_Reportview", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_Reportview")); - element.recordId = m_Reportview.getAD_ReportView_ID(); - } else { - record_log(ctx, 0, m_Reportview.getName(), "Reportview", - m_Reportview.get_ID(), AD_Backup_ID, Object_Status, - "AD_Reportview", get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_Reportview")); - throw new POSaveFailedException("ReportView"); - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - PackOut packOut = (PackOut) ctx.get("PackOutProcess"); - int AD_ReportView_ID = Env.getContextAsInt(ctx, "AD_ReportView_ID"); - if (views.contains(AD_ReportView_ID)) - return; - - views.add(AD_ReportView_ID); - String sql = "SELECT * FROM AD_ReportView WHERE AD_ReportView_ID= " + AD_ReportView_ID; - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - AttributesImpl atts = new AttributesImpl(); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()) { - X_AD_ReportView m_Reportview = new X_AD_ReportView(ctx, rs - .getInt("AD_Reportview_ID"), null); - atts = createReportViewBinding(atts, m_Reportview); - document.startElement("", "", "reportview", atts); - document.endElement("", "", "reportview"); - - String sql1 = "SELECT * FROM AD_Printformat WHERE AD_Reportview_ID="+AD_ReportView_ID - +" AND AD_Client_ID="+Env.getAD_Client_ID(ctx) - +" ORDER BY "+X_AD_PrintFormat.COLUMNNAME_AD_PrintFormat_ID - ; - PreparedStatement pstmt1 = null; - pstmt1 = DB.prepareStatement(sql1, getTrxName(ctx)); - try { - ResultSet rs1 = pstmt1.executeQuery(); - while (rs1.next()) { - // Export Table if neccessary - packOut.createTable(rs1.getInt("AD_Table_ID"), - document); - packOut.createPrintFormat(rs1 - .getInt("AD_Printformat_ID"), document); - } - rs1.close(); - pstmt1.close(); - pstmt1 = null; - } finally { - try { - if (pstmt1 != null) - pstmt1.close(); - } catch (Exception e) { - } - pstmt1 = null; - } - atts.clear(); - sql1 = "SELECT * FROM AD_ReportView_Col WHERE AD_Reportview_ID= " - + AD_ReportView_ID; - pstmt1 = null; - pstmt1 = DB.prepareStatement(sql1, getTrxName(ctx)); - try { - ResultSet rs1 = pstmt1.executeQuery(); - while (rs1.next()) { - createReportViewCol(ctx, document, rs1 - .getInt("AD_ReportView_Col_ID")); - } - rs1.close(); - pstmt1.close(); - pstmt1 = null; - } finally { - try { - if (pstmt1 != null) - pstmt1.close(); - } catch (Exception e) { - } - pstmt1 = null; - } - } - - rs.close(); - pstmt.close(); - pstmt = null; - } - - catch (Exception e) { - log.log(Level.SEVERE, "reportview", e); - if (e instanceof SAXException) - throw (SAXException) e; - else if (e instanceof SQLException) - throw new DatabaseAccessException("Failed to export report view.", e); - else if (e instanceof RuntimeException) - throw (RuntimeException) e; - else - throw new RuntimeException("Failed to export report view.", e); - } finally { - try { - if (pstmt != null) - pstmt.close(); - } catch (Exception e) { - } - pstmt = null; - } - } - - private void createReportViewCol(Properties ctx, - TransformerHandler document, int AD_ReportView_Col_ID) - throws SAXException { - Env.setContext(ctx, - X_AD_ReportView_Col.COLUMNNAME_AD_ReportView_Col_ID, - AD_ReportView_Col_ID); - columnHandler.create(ctx, document); - ctx.remove(X_AD_ReportView_Col.COLUMNNAME_AD_ReportView_Col_ID); - } - - private AttributesImpl createReportViewBinding(AttributesImpl atts, - X_AD_ReportView m_Reportview) { - String sql = null; - String name = null; - atts.clear(); - if (m_Reportview.getAD_ReportView_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_ReportView_ID","CDATA",Integer.toString(m_Reportview.getAD_ReportView_ID())); - - if (m_Reportview.getAD_ReportView_ID() > 0) { - sql = "SELECT Name FROM AD_ReportView WHERE AD_ReportView_ID=?"; - name = DB.getSQLValueString(null, sql, m_Reportview - .getAD_ReportView_ID()); - atts.addAttribute("", "", "ADReportviewnameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADReportviewnameID", "CDATA", ""); - - if (m_Reportview.getAD_Table_ID() > 0) { - sql = "SELECT TableName FROM AD_Table WHERE AD_Table_ID=?"; - name = DB.getSQLValueString(null, sql, m_Reportview - .getAD_Table_ID()); - atts.addAttribute("", "", "ADTableNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADTableNameID", "CDATA", ""); - - atts - .addAttribute("", "", "Description", "CDATA", (m_Reportview - .getDescription() != null ? m_Reportview - .getDescription() : "")); - atts.addAttribute("", "", "EntityType", "CDATA", (m_Reportview - .getEntityType() != null ? m_Reportview.getEntityType() : "")); - atts.addAttribute("", "", "Name", "CDATA", - (m_Reportview.getName() != null ? m_Reportview.getName() : "")); - atts.addAttribute("", "", "isActive", "CDATA", - (m_Reportview.isActive() == true ? "true" : "false")); - atts.addAttribute("", "", "OrderByClause", "CDATA", (m_Reportview - .getOrderByClause() != null ? m_Reportview.getOrderByClause() - : "")); - atts - .addAttribute("", "", "WhereClause", "CDATA", (m_Reportview - .getWhereClause() != null ? m_Reportview - .getWhereClause() : "")); - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/RoleElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/RoleElementHandler.java deleted file mode 100644 index b49382b7c3..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/RoleElementHandler.java +++ /dev/null @@ -1,520 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.DatabaseAccessException; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.MRole; -import org.compiere.model.X_AD_Form; -import org.compiere.model.X_AD_Package_Exp_Detail; -import org.compiere.model.X_AD_Process; -import org.compiere.model.X_AD_Role; -import org.compiere.model.X_AD_Task; -import org.compiere.model.X_AD_User; -import org.compiere.model.X_AD_Window; -import org.compiere.model.X_AD_Workflow; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class RoleElementHandler extends AbstractElementHandler { - - private List roles = new ArrayList(); - - private OrgRoleElementHandler orgHandler = new OrgRoleElementHandler(); - private ProcessAccessElementHandler processHandler = new ProcessAccessElementHandler(); - private UserRoleElementHandler userHandler = new UserRoleElementHandler(); - private WindowAccessElementHandler windowHandler = new WindowAccessElementHandler(); - private FormAccessElementHandler formHandler = new FormAccessElementHandler(); - private TaskAccessElementHandler taskHandler = new TaskAccessElementHandler(); - private WorkflowAccessElementHandler workflowHandler = new WorkflowAccessElementHandler(); - - public void startElement(Properties ctx, Element element) - throws SAXException { - String elementValue = element.getElementValue(); - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("Name")); - - String name = atts.getValue("Name"); - - int id = get_ID(ctx, "AD_Role", name); - MRole m_Role = new MRole(ctx, id, getTrxName(ctx)); - - int AD_Backup_ID = -1; - String Object_Status = null; - if (id <= 0 && atts.getValue("AD_Role_ID") != null && Integer.parseInt(atts.getValue("AD_Role_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Role.setAD_Role_ID(Integer.parseInt(atts.getValue("AD_Role_ID"))); - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_Role", m_Role); - Object_Status = "Update"; - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - - m_Role.setName(name); - name = atts.getValue("treemenuname"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_Tree", "Name", name); - if (id <= 0) { - element.defer = true; - return; - } - m_Role.setAD_Tree_Menu_ID(id); - } - - name = atts.getValue("treeorgname"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_Tree", "Name", name); - if (id <= 0) { - element.defer = true; - return; - } - m_Role.setAD_Tree_Org_ID(id); - } - - name = atts.getValue("currencycode"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "C_Currency", "ISO_Code", name); - if (id <= 0) { - element.defer = true; - return; - } - m_Role.setC_Currency_ID(id); - } - - name = atts.getValue("supervisorid"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_User", "Name", name); - if (id <= 0) { - element.defer = true; - return; - } - m_Role.setC_Currency_ID(id); - } - - m_Role.setDescription(getStringValue(atts,"Description")); - String amtApproval = getStringValue(atts,"AmtApproval"); - if (amtApproval != null) - m_Role.setAmtApproval(new BigDecimal(amtApproval)); - m_Role.setIsActive(atts.getValue("isActive") != null ? Boolean.valueOf( - atts.getValue("isActive")).booleanValue() : true); - m_Role - .setIsAccessAllOrgs(atts.getValue("isAccessAllOrgs") != null ? Boolean - .valueOf(atts.getValue("isAccessAllOrgs")) - .booleanValue() - : true); - m_Role - .setIsCanApproveOwnDoc(atts.getValue("isCanApproveOwnDoc") != null ? Boolean - .valueOf(atts.getValue("isCanApproveOwnDoc")) - .booleanValue() - : true); - m_Role.setIsCanExport(atts.getValue("isCanExport") != null ? Boolean - .valueOf(atts.getValue("isCanExport")).booleanValue() : true); - m_Role.setIsCanReport(atts.getValue("isCanReport") != null ? Boolean - .valueOf(atts.getValue("isCanReport")).booleanValue() : true); - m_Role.setIsChangeLog(atts.getValue("isChangeLog") != null ? Boolean - .valueOf(atts.getValue("isChangeLog")).booleanValue() : true); - m_Role.setIsManual(atts.getValue("isManual") != null ? Boolean.valueOf( - atts.getValue("isManual")).booleanValue() : true); - m_Role - .setIsPersonalAccess(atts.getValue("isPersonalAccess") != null ? Boolean - .valueOf(atts.getValue("isPersonalAccess")) - .booleanValue() - : true); - m_Role - .setIsPersonalLock(atts.getValue("isPersonalLock") != null ? Boolean - .valueOf(atts.getValue("isPersonalLock")) - .booleanValue() - : true); - m_Role.setIsShowAcct(atts.getValue("isShowAcct") != null ? Boolean - .valueOf(atts.getValue("isShowAcct")).booleanValue() : true); - m_Role - .setIsUseUserOrgAccess(atts.getValue("isUseUserOrgAccess") != null ? Boolean - .valueOf(atts.getValue("isUseUserOrgAccess")) - .booleanValue() - : true); - m_Role - .setOverwritePriceLimit(atts.getValue("isOverwritePriceLimit") != null ? Boolean - .valueOf(atts.getValue("isOverwritePriceLimit")) - .booleanValue() - : true); - m_Role.setPreferenceType(atts.getValue("PreferenceType")); - m_Role.setUserLevel(atts.getValue("UserLevel")); - m_Role.setAllow_Info_Account(Boolean.valueOf(atts.getValue("AllowInfoAccount"))); - m_Role.setAllow_Info_Asset(Boolean.valueOf(atts.getValue("AllowInfoAsset"))); - m_Role.setAllow_Info_BPartner(Boolean.valueOf(atts.getValue("AllowInfoBPartner"))); - // m_Role.setAllow_Info_CashJournal(Boolean.valueOf(atts.getValue("AllowInfoCashJournal"))); - m_Role.setAllow_Info_InOut(Boolean.valueOf(atts.getValue("AllowInfoInOut"))); - m_Role.setAllow_Info_Invoice(Boolean.valueOf(atts.getValue("AllowInfoInvoice"))); - m_Role.setAllow_Info_Order(Boolean.valueOf(atts.getValue("AllowInfoOrder"))); - m_Role.setAllow_Info_Payment(Boolean.valueOf(atts.getValue("AllowInfoPayment"))); - m_Role.setAllow_Info_Product(Boolean.valueOf(atts.getValue("AllowInfoProduct"))); - m_Role.setAllow_Info_Resource(Boolean.valueOf(atts.getValue("AllowInfoResource"))); - m_Role.setAllow_Info_Schedule(Boolean.valueOf(atts.getValue("AllowInfoSchedule"))); - //m_Role.setAllow_Info_CRP(Boolean.valueOf(atts.getValue("AllowInfoCRP"))); - //m_Role.setAllow_Info_MRP(Boolean.valueOf(atts.getValue("AllowInfoMRP"))); - - - if (m_Role.save(getTrxName(ctx)) == true) { - - record_log(ctx, 1, m_Role.getName(), "Role", m_Role.get_ID(), - AD_Backup_ID, Object_Status, "AD_Role", get_IDWithColumn( - ctx, "AD_Table", "TableName", "AD_Role")); - } else { - - record_log(ctx, 0, m_Role.getName(), "Role", m_Role.get_ID(), - AD_Backup_ID, Object_Status, "AD_Role", get_IDWithColumn( - ctx, "AD_Table", "TableName", "AD_Role")); - throw new POSaveFailedException("Role"); - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int Role_id = Env.getContextAsInt(ctx, - X_AD_Package_Exp_Detail.COLUMNNAME_AD_Role_ID); - if (roles.contains(Role_id)) - return; - roles.add(Role_id); - X_AD_Role m_Role = new X_AD_Role(ctx, Role_id, null); - AttributesImpl atts = new AttributesImpl(); - createRoleBinding(atts, m_Role); - document.startElement("", "", "role", atts); - - // Process org access - String sql = "SELECT * FROM AD_Role_OrgAccess WHERE AD_Role_ID= " - + Role_id; - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()) { - createOrgAccess(ctx, document, rs.getInt("AD_Org_ID"), rs - .getInt("AD_Role_ID")); - } - rs.close(); - pstmt.close(); - pstmt = null; - } - - catch (Exception e) { - log.log(Level.SEVERE, "AD_Role_OrgAccess", e); - throw new DatabaseAccessException("Failed to export organization role access."); - } - // Process user assignment access - sql = "SELECT * FROM AD_User_Roles WHERE AD_Role_ID= " + Role_id; - pstmt = null; - pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()) { - createUserRole(ctx, document, rs.getInt("AD_User_ID"), - rs.getInt("AD_Role_ID"), rs.getInt("AD_Org_ID")); - } - rs.close(); - pstmt.close(); - pstmt = null; - } - - catch (Exception e) { - log.log(Level.SEVERE, "AD_User_Roles", e); - throw new DatabaseAccessException("Failed to export user role assignment."); - } - - // Process AD_Window_Access Values - sql = "SELECT * FROM AD_Window_Access WHERE AD_Role_ID= " + Role_id; - pstmt = null; - pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()) { - createWindowAccess(ctx, document, rs - .getInt("AD_Window_ID"), rs.getInt("AD_Role_ID")); - } - rs.close(); - pstmt.close(); - pstmt = null; - } - - catch (Exception e) { - log.log(Level.SEVERE, "AD_Window_Access", e); - throw new DatabaseAccessException("Failed to export window access."); - } - - // Process AD_Process_Access Values - sql = "SELECT * FROM AD_Process_Access WHERE AD_Role_ID= " + Role_id; - pstmt = null; - pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()) { - createProcessAccess(ctx, document, rs - .getInt("AD_Process_ID"), rs.getInt("AD_Role_ID")); - } - rs.close(); - pstmt.close(); - pstmt = null; - } - - catch (Exception e) { - log.log(Level.SEVERE, "AD_Process_Access", e); - throw new DatabaseAccessException("Failed to export process access."); - } - - // Process AD_Form_Access Values - sql = "SELECT * FROM AD_Form_Access WHERE AD_Role_ID= " + Role_id; - pstmt = null; - pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()) { - createFormAccess(ctx, document, rs.getInt("AD_Form_ID"), - rs.getInt("AD_Role_ID")); - } - rs.close(); - pstmt.close(); - pstmt = null; - } - - catch (Exception e) { - log.log(Level.SEVERE, "AD_Form_Access", e); - throw new DatabaseAccessException("Failed to export form access."); - } - - // Process AD_Workflow_Access Values - sql = "SELECT * FROM AD_Workflow_Access WHERE AD_Role_ID= " + Role_id; - pstmt = null; - pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()) { - createWorkflowAccess(ctx, document, rs - .getInt("AD_Workflow_ID"), rs.getInt("AD_Role_ID")); - } - rs.close(); - pstmt.close(); - pstmt = null; - } - - catch (Exception e) { - log.log(Level.SEVERE, "AD_Workflow_Access", e); - throw new DatabaseAccessException("Failed to export workflow access."); - } - - // Process AD_Task_Access Values - sql = "SELECT * FROM AD_Task_Access WHERE AD_Role_ID= " + Role_id; - pstmt = null; - pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()) { - createTaskAccess(ctx, document, rs.getInt("AD_Task_ID"), rs - .getInt("AD_Role_ID")); - } - rs.close(); - pstmt.close(); - pstmt = null; - } - - catch (Exception e) { - log.log(Level.SEVERE, "AD_Task_Access", e); - throw new DatabaseAccessException("Failed to export task access."); - } finally { - try { - if (pstmt != null) - pstmt.close(); - } catch (Exception e) { - } - pstmt = null; - } - document.endElement("", "", "role"); - } - - private void createTaskAccess(Properties ctx, TransformerHandler document, - int AD_Task_ID, int AD_Role_ID) throws SAXException { - Env.setContext(ctx, X_AD_Task.COLUMNNAME_AD_Task_ID, AD_Task_ID); - Env.setContext(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); - taskHandler.create(ctx, document); - ctx.remove(X_AD_Task.COLUMNNAME_AD_Task_ID); - ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); - } - - private void createWorkflowAccess(Properties ctx, - TransformerHandler document, int AD_Workflow_ID, int AD_Role_ID) throws SAXException { - Env.setContext(ctx, X_AD_Workflow.COLUMNNAME_AD_Workflow_ID, AD_Workflow_ID); - Env.setContext(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); - workflowHandler.create(ctx, document); - ctx.remove(X_AD_Workflow.COLUMNNAME_AD_Workflow_ID); - ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); - } - - private void createFormAccess(Properties ctx, TransformerHandler document, - int AD_Form_ID, int AD_Role_ID) throws SAXException { - Env.setContext(ctx, X_AD_Form.COLUMNNAME_AD_Form_ID, AD_Form_ID); - Env.setContext(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); - formHandler.create(ctx, document); - ctx.remove(X_AD_Form.COLUMNNAME_AD_Form_ID); - ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); - } - - private void createProcessAccess(Properties ctx, - TransformerHandler document, int AD_Process_ID, int AD_Role_ID) throws SAXException { - Env.setContext(ctx, X_AD_Process.COLUMNNAME_AD_Process_ID, AD_Process_ID); - Env.setContext(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); - processHandler.create(ctx, document); - ctx.remove(X_AD_Process.COLUMNNAME_AD_Process_ID); - ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); - } - - private void createWindowAccess(Properties ctx, - TransformerHandler document, int AD_Window_ID, int AD_Role_ID) throws SAXException { - Env.setContext(ctx, X_AD_Window.COLUMNNAME_AD_Window_ID, AD_Window_ID); - Env.setContext(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); - windowHandler.create(ctx, document); - ctx.remove(X_AD_Window.COLUMNNAME_AD_Window_ID); - ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); - } - - private void createUserRole(Properties ctx, TransformerHandler document, - int AD_User_ID, int AD_Role_ID, int AD_Org_ID) throws SAXException { - Env.setContext(ctx, X_AD_User.COLUMNNAME_AD_User_ID, AD_User_ID); - Env.setContext(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); - Env.setContext(ctx, "AD_Org_ID", AD_Org_ID); - userHandler.create(ctx, document); - ctx.remove(X_AD_User.COLUMNNAME_AD_User_ID); - ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); - ctx.remove("AD_Org_ID"); - } - - private void createOrgAccess(Properties ctx, TransformerHandler document, - int AD_Org_ID, int AD_Role_ID) throws SAXException { - Env.setContext(ctx, "AD_Org_ID", AD_Org_ID); - Env.setContext(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); - orgHandler.create(ctx, document); - ctx.remove("AD_Org_ID"); - ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); - } - - private AttributesImpl createRoleBinding(AttributesImpl atts, - X_AD_Role m_Role) { - String sql = null; - String name = null; - atts.clear(); - if (m_Role.getAD_Role_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_Role_ID","CDATA",Integer.toString(m_Role.getAD_Role_ID())); - - if (m_Role.getAD_Tree_Menu_ID() > 0) { - sql = "SELECT Name FROM AD_Tree WHERE AD_Tree_ID=? AND AD_Tree.TreeType='MM'"; - name = DB.getSQLValueString(null, sql, m_Role.getAD_Tree_Menu_ID()); - atts.addAttribute("", "", "treemenuname", "CDATA", name); - } else - atts.addAttribute("", "", "treemenuname", "CDATA", ""); - - if (m_Role.getAD_Tree_Org_ID() > 0) { - sql = "SELECT Name FROM AD_Tree WHERE AD_Tree_ID=? AND AD_Tree.TreeType='OO'"; - name = DB.getSQLValueString(null, sql, m_Role.getAD_Tree_Org_ID()); - atts.addAttribute("", "", "treeorgname", "CDATA", name); - } else - atts.addAttribute("", "", "treeorgname", "CDATA", ""); - - if (m_Role.getC_Currency_ID() > 0) { - sql = "SELECT ISO_Code FROM C_Currency WHERE C_Currency_ID=?"; - name = DB.getSQLValueString(null, sql, m_Role.getC_Currency_ID()); - atts.addAttribute("", "", "currencycode", "CDATA", name); - } else - atts.addAttribute("", "", "currencycode", "CDATA", ""); - - if (m_Role.getSupervisor_ID() > 0) { - sql = "SELECT Name FROM AD_User WHERE AD_User_ID=?"; - name = DB.getSQLValueString(null, sql, m_Role.getC_Currency_ID()); - atts.addAttribute("", "", "supervisorid", "CDATA", name); - } else - atts.addAttribute("", "", "supervisorid", "CDATA", ""); - - atts.addAttribute("", "", "Description", "CDATA", (m_Role - .getDescription() != null ? m_Role.getDescription() : "")); - atts.addAttribute("", "", "Name", "CDATA", - (m_Role.getName() != null ? m_Role.getName() : "")); - atts.addAttribute("", "", "AmtApproval", "CDATA", ("" + m_Role - .getAmtApproval())); - atts.addAttribute("", "", "isAccessAllOrgs", "CDATA", (m_Role - .isAccessAllOrgs() == true ? "true" : "false")); - atts.addAttribute("", "", "isActive", "CDATA", - (m_Role.isActive() == true ? "true" : "false")); - atts.addAttribute("", "", "isCanApproveOwnDoc", "CDATA", (m_Role - .isCanApproveOwnDoc() == true ? "true" : "false")); - atts.addAttribute("", "", "isCanExport", "CDATA", - (m_Role.isCanExport() == true ? "true" : "false")); - atts.addAttribute("", "", "isCanReport", "CDATA", - (m_Role.isCanReport() == true ? "true" : "false")); - atts.addAttribute("", "", "isChangeLog", "CDATA", - (m_Role.isChangeLog() == true ? "true" : "false")); - atts.addAttribute("", "", "isManual", "CDATA", - (m_Role.isManual() == true ? "true" : "false")); - atts.addAttribute("", "", "isPersonalAccess", "CDATA", (m_Role - .isPersonalAccess() == true ? "true" : "false")); - atts.addAttribute("", "", "isPersonalLock", "CDATA", (m_Role - .isPersonalLock() == true ? "true" : "false")); - atts.addAttribute("", "", "isShowAcct", "CDATA", - (m_Role.isShowAcct() == true ? "true" : "false")); - atts.addAttribute("", "", "isUseUserOrgAccess", "CDATA", (m_Role - .isUseUserOrgAccess() == true ? "true" : "false")); - atts.addAttribute("", "", "isOverwritePriceLimit", "CDATA", (m_Role - .isOverwritePriceLimit() == true ? "true" : "false")); - atts - .addAttribute("", "", "PreferenceType", "CDATA", (m_Role - .getPreferenceType() != null ? m_Role - .getPreferenceType() : "")); - atts.addAttribute("", "", "UserLevel", "CDATA", - (m_Role.getUserLevel() != null ? m_Role.getUserLevel() : "")); - - atts.addAttribute("", "", "AllowInfoAccount", "CDATA", Boolean.toString(m_Role.isAllow_Info_Account())); - atts.addAttribute("", "", "AllowInfoAsset", "CDATA", Boolean.toString(m_Role.isAllow_Info_Asset())); - atts.addAttribute("", "", "AllowInfoBPartner", "CDATA", Boolean.toString(m_Role.isAllow_Info_BPartner())); - // atts.addAttribute("", "", "AllowInfoCashJournal", "CDATA", Boolean.toString(m_Role.isAllow_Info_CashJournal())); - atts.addAttribute("", "", "AllowInfoInOut", "CDATA", Boolean.toString(m_Role.isAllow_Info_InOut())); - atts.addAttribute("", "", "AllowInfoInvoice", "CDATA", Boolean.toString(m_Role.isAllow_Info_Invoice())); - atts.addAttribute("", "", "AllowInfoOrder", "CDATA", Boolean.toString(m_Role.isAllow_Info_Order())); - atts.addAttribute("", "", "AllowInfoPayment", "CDATA", Boolean.toString(m_Role.isAllow_Info_Payment())); - atts.addAttribute("", "", "AllowInfoProduct", "CDATA", Boolean.toString(m_Role.isAllow_Info_Product())); - atts.addAttribute("", "", "AllowInfoResource", "CDATA", Boolean.toString(m_Role.isAllow_Info_Resource())); - atts.addAttribute("", "", "AllowInfoSchedule", "CDATA", Boolean.toString(m_Role.isAllow_Info_Schedule())); - // atts.addAttribute("", "", "AllowInfoCRP", "CDATA", Boolean.toString(m_Role.isAllow_Info_CRP())); - // atts.addAttribute("", "", "AllowInfoMRP", "CDATA", Boolean.toString(m_Role.isAllow_Info_MRP())); - - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/SQLStatementElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/SQLStatementElementHandler.java deleted file mode 100644 index f9e8688113..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/SQLStatementElementHandler.java +++ /dev/null @@ -1,113 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.Statement; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.compiere.model.X_AD_Package_Exp_Detail; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class SQLStatementElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - @SuppressWarnings("unused") - int AD_Backup_ID = -1; - @SuppressWarnings("unused") - String Object_Status = null; - - log.info(elementValue); - Attributes atts = element.attributes; - String DBType = atts.getValue("DBType"); - String sql = atts.getValue("statement").trim(); - if (sql.endsWith(";")) - sql = sql.substring(0, sql.length() - 1); - PreparedStatement pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - try { - if(DBType.equals("ALL")) { - @SuppressWarnings("unused") - int n = pstmt.executeUpdate(); - if (log.isLoggable(Level.INFO)) log.info("Executed SQL Statement: "+ atts.getValue("statement")); - } - else if(DB.isOracle() == true && DBType.equals("Oracle")) { - pstmt.executeUpdate(); - if (log.isLoggable(Level.INFO)) log.info("Executed SQL Statement for Oracle: "+ atts.getValue("statement")); - } - else if ( DB.isPostgreSQL() - && ( DBType.equals("Postgres") - || DBType.equals("PostgreSQL") // backward compatibility with old packages developed by hand - ) - ) { - // Avoid convert layer - command specific for postgresql - // - // pstmt = DB.prepareStatement(sql, null); - // pstmt.executeUpdate(); - // - Connection m_con = DB.getConnectionRW(true); - try { - Statement stmt = m_con.createStatement(); - @SuppressWarnings("unused") - int n = stmt.executeUpdate (atts.getValue("statement")); - if (log.isLoggable(Level.INFO)) log.info("Executed SQL Statement for PostgreSQL: "+ atts.getValue("statement")); - // Postgres needs to commit DDL statements - if (m_con != null && !m_con.getAutoCommit()) - m_con.commit(); - stmt.close(); - } finally { - m_con.close(); - } - } - pstmt.close(); - } catch (Exception e) { - log.log(Level.SEVERE,"SQLSatement", e); - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - String SQLStatement = Env.getContext(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_SQLStatement); - String DBType = Env.getContext(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_DBType); - AttributesImpl atts = new AttributesImpl(); - createSQLStatmentBinding(atts, SQLStatement, DBType); - document.startElement("","","SQLStatement",atts); - document.endElement("","","SQLStatement"); - } - - private AttributesImpl createSQLStatmentBinding( AttributesImpl atts, String SqlStatement, String DBType) - { - atts.clear(); - atts.addAttribute("","","DBType","CDATA",DBType); - atts.addAttribute("","","statement","CDATA",SqlStatement); - return atts; - - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/TabElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/TabElementHandler.java deleted file mode 100644 index 6e008c4be8..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/TabElementHandler.java +++ /dev/null @@ -1,333 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - * Teo Sarca, teo.sarca@gmail.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.DatabaseAccessException; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.MTab; -import org.compiere.model.MTable; -import org.compiere.model.X_AD_Field; -import org.compiere.model.X_AD_Tab; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class TabElementHandler extends AbstractElementHandler -{ - private FieldElementHandler fieldHandler = new FieldElementHandler(); - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue+" "+atts.getValue("ADTabNameID")); - String entitytype = atts.getValue("EntityType"); - if (isProcessElement(ctx, entitytype)) { - if (element.parent != null && element.parent.getElementValue().equals("window") - && element.parent.defer) { - element.defer = true; - return; - } - String name = atts.getValue("ADTabNameID"); - int tableid = get_IDWithColumn(ctx, "AD_Table", "TableName", atts.getValue("ADTableNameID")); - if (tableid <= 0) { - element.defer = true; - return; - } - int windowid = 0; - if (element.parent != null && element.parent.getElementValue().equals("window") - && element.parent.recordId > 0) { - windowid = element.parent.recordId; - } else { - windowid = get_ID(ctx, "AD_Window", atts.getValue("ADWindowNameID")); - if (element.parent != null && element.parent.getElementValue().equals("window") - && windowid > 0) { - element.parent.recordId = windowid; - } - } - if (windowid <= 0) { - element.defer = true; - return; - } - StringBuffer sqlB = new StringBuffer ("select AD_Tab_ID from AD_Tab where AD_Window_ID = " + windowid - + " and Name = '"+name +"'" - + " and AD_Table_ID = ?"); - - int id = DB.getSQLValue(getTrxName(ctx), sqlB.toString (), tableid); - MTab m_Tab = new MTab(ctx, id, getTrxName(ctx)); - if (id <= 0 && atts.getValue("AD_Tab_ID") != null && Integer.parseInt(atts.getValue("AD_Tab_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Tab.setAD_Tab_ID(Integer.parseInt(atts.getValue("AD_Tab_ID"))); - int AD_Backup_ID = -1; - String Object_Status = null; - if (id > 0){ - AD_Backup_ID = copyRecord(ctx, "AD_Tab",m_Tab); - Object_Status = "Update"; - } - else{ - Object_Status = "New"; - AD_Backup_ID =0; - } - sqlB = null; - m_Tab.setName(name); - id = 0; - if (getStringValue(atts,"ADColumnSortYesNoNameID")!= null){ - name = atts.getValue("ADColumnSortYesNoNameID"); - id = get_IDWithMasterAndColumn (ctx, "AD_Column","Name", name, MTable.Table_Name, get_IDWithColumn(ctx,MTable.Table_Name, MTable.COLUMNNAME_TableName, atts.getValue("ADTableNameID"))); - m_Tab.setAD_ColumnSortYesNo_ID(id); - } - if (getStringValue(atts,"ADColumnSortOrderNameID")!= null){ - name = atts.getValue("ADColumnSortOrderNameID"); - id = get_IDWithMasterAndColumn (ctx, "AD_Column","Name", name, MTable.Table_Name, get_IDWithColumn(ctx,MTable.Table_Name, MTable.COLUMNNAME_TableName, atts.getValue("ADTableNameID"))); - m_Tab.setAD_ColumnSortOrder_ID(id); - } - if (getStringValue(atts,"ADImageNameID")!= null){ - name = atts.getValue("ADImageNameID"); - id = get_IDWithColumn(ctx, "AD_Image", "Name", name); - m_Tab.setAD_Image_ID(id); - } - if (getStringValue(atts,"ADProcessNameID")!= null){ - - name = atts.getValue("ADProcessNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_Process", "Name", name); - if (id <= 0) { - element.defer = true; - element.unresolved = "AD_Process: " + name; - return; - } - m_Tab.setAD_Process_ID(id); - } - } - if (getStringValue(atts,"ADTableNameID")!= null){ - name = atts.getValue("ADTableNameID"); - id = get_IDWithColumn(ctx, "AD_Table", "TableName", name); - m_Tab.setAD_Table_ID(id); - } - if (getStringValue(atts,"ADColumnNameID")!= null) { - name = atts.getValue("ADColumnNameID"); - id = get_IDWithMasterAndColumn(ctx, "AD_Column","ColumnName", atts.getValue("ADColumnNameID"), "AD_Table", m_Tab.getAD_Table_ID()); - if (id <= 0 /** TODO Check PackOut Version -- 005 */) - { - id = get_IDWithMasterAndColumn(ctx, "AD_Column","Name", atts.getValue("ADColumnNameID"), "AD_Table", m_Tab.getAD_Table_ID()); - } - m_Tab.setAD_Column_ID(id); - if (id <= 0) - { - log.warning("@NotFound@ @AD_Column_ID@ - @Name@:"+name+", @AD_Table_ID@:"+atts.getValue("ADTableNameID")); - } - } - m_Tab.setAD_Window_ID(windowid); - - if (getStringValue(atts,"IncludedTabNameID")!= null){ - name = atts.getValue("IncludedTabNameID"); - id = get_IDWithColumn(ctx, "AD_Tab", "Name", name); - m_Tab.setIncluded_Tab_ID(id); - } - m_Tab.setCommitWarning(atts.getValue("CommitWarning")); - m_Tab.setDescription(getStringValue(atts,"Description")); - m_Tab.setEntityType (atts.getValue("EntityType")); - m_Tab.setHasTree(Boolean.valueOf(atts.getValue("isHasTree")).booleanValue()); - m_Tab.setHelp (getStringValue(atts,"Help")); - m_Tab.setIsActive(atts.getValue("isActive") != null ? Boolean.valueOf(atts.getValue("isActive")).booleanValue():true); - m_Tab.setImportFields (atts.getValue("ImportFields")); - m_Tab.setIsInfoTab (Boolean.valueOf(atts.getValue("isInfoTab")).booleanValue()); - m_Tab.setIsReadOnly (Boolean.valueOf(atts.getValue("isReadOnly")).booleanValue()); - m_Tab.setIsSingleRow (Boolean.valueOf(atts.getValue("isSingleRow")).booleanValue()); - m_Tab.setIsSortTab (Boolean.valueOf(atts.getValue("isSortTab")).booleanValue()); - m_Tab.setIsTranslationTab (Boolean.valueOf(atts.getValue("IsTranslationTab")).booleanValue()); - m_Tab.setName (atts.getValue("Name")); - m_Tab.setOrderByClause (getStringValue(atts,"OrderByClause")); - m_Tab.setProcessing(false); - m_Tab.setSeqNo (Integer.parseInt(atts.getValue("SeqNo"))); - m_Tab.setTabLevel (Integer.parseInt(atts.getValue("TabLevel"))); - m_Tab.setWhereClause (getStringValue(atts,"WhereClause")); - if (getStringValue(atts,"ReadOnlyLogic") != null) { - m_Tab.setReadOnlyLogic(atts.getValue("ReadOnlyLogic")); - } - if (getStringValue(atts,"DisplayLogic") != null) { - m_Tab.setDisplayLogic(atts.getValue("DisplayLogic")); - } - if (getStringValue(atts,"isInsertRecord") != null) { - m_Tab.setIsInsertRecord(Boolean.valueOf(atts.getValue("isInsertRecord")).booleanValue()); - } - if (getStringValue(atts,"isAdvancedTab") != null) { - m_Tab.setIsAdvancedTab(Boolean.valueOf(atts.getValue("isAdvancedTab")).booleanValue()); - } - if (m_Tab.save(getTrxName(ctx)) == true){ - record_log (ctx, 1, m_Tab.getName(),"Tab", m_Tab.get_ID(),AD_Backup_ID, Object_Status,"AD_Tab",get_IDWithColumn(ctx, "AD_Table", "TableName", "AD_Tab")); - element.recordId = m_Tab.getAD_Tab_ID(); - } else { - record_log (ctx, 0, m_Tab.getName(),"Tab", m_Tab.get_ID(),AD_Backup_ID, Object_Status,"AD_Tab",get_IDWithColumn(ctx, "AD_Table", "TableName", "AD_Tab")); - throw new POSaveFailedException("Tab"); - } - } else { - element.skip = true; - } - - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) throws SAXException - { - PackOut packOut = (PackOut)ctx.get("PackOutProcess"); - int AD_Tab_ID = Env.getContextAsInt(ctx, X_AD_Tab.COLUMNNAME_AD_Tab_ID); - X_AD_Tab m_Tab = new X_AD_Tab (ctx, AD_Tab_ID, getTrxName(ctx)); - AttributesImpl atts = new AttributesImpl(); - createTabBinding(atts,m_Tab); - document.startElement("","","tab",atts); - //Fields tags. - String sql = "SELECT * FROM AD_FIELD WHERE AD_TAB_ID = " + AD_Tab_ID - + "ORDER BY SEQNO asc, "+X_AD_Field.COLUMNNAME_AD_Field_ID; - PreparedStatement pstmt = null; - ResultSet rs = null; - try { - pstmt = DB.prepareStatement (sql, getTrxName(ctx)); - rs = pstmt.executeQuery(); - while (rs.next()) - { - createField(ctx, document, rs.getInt("AD_Field_ID")); - } - } - catch (Exception e) - { - log.log(Level.SEVERE,e.getLocalizedMessage(), e); - throw new DatabaseAccessException("Failed to export window tab", e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - document.endElement("","","tab"); - - if(m_Tab.getAD_Process_ID() > 0 ) - { - packOut.createProcess(m_Tab.getAD_Process_ID(), document); - } - - } - - private void createField(Properties ctx, TransformerHandler document, - int AD_Field_ID) throws SAXException { - Env.setContext(ctx, X_AD_Field.COLUMNNAME_AD_Field_ID, AD_Field_ID); - fieldHandler.create(ctx, document); - ctx.remove(X_AD_Field.COLUMNNAME_AD_Field_ID); - } - - private AttributesImpl createTabBinding( AttributesImpl atts, X_AD_Tab m_Tab) - { - String sql = null; - String name = null; - atts.clear(); - if (m_Tab.getAD_Tab_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("", "", "AD_Tab_ID", "CDATA", Integer.toString(m_Tab.getAD_Tab_ID())); - atts.addAttribute("","","Name","CDATA",(m_Tab.getName () != null ? m_Tab.getName ():"")); - if (m_Tab.getAD_ColumnSortOrder_ID()>0){ - sql = "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID=?"; - name = DB.getSQLValueString(null,sql,m_Tab.getAD_ColumnSortOrder_ID()); - atts.addAttribute("","","ADColumnSortOrderNameID","CDATA",name); - } - else - atts.addAttribute("","","ADColumnSortOrderNameID","CDATA",""); - if (m_Tab.getAD_ColumnSortYesNo_ID()>0 ){ - sql = "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID=?"; - name = DB.getSQLValueString(null,sql,m_Tab.getAD_ColumnSortYesNo_ID()); - atts.addAttribute("","","ADColumnSortYesNoNameID","CDATA",name); - } - else - atts.addAttribute("","","ADColumnSortYesNoNameID","CDATA",""); - if (m_Tab.getAD_Column_ID()>0 ){ - sql = "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID=?"; - name = DB.getSQLValueString(null,sql,m_Tab.getAD_Column_ID()); - atts.addAttribute("","","ADColumnNameID","CDATA",name); - } - else - atts.addAttribute("","","ADColumnNameID","CDATA",""); - if (m_Tab.getAD_Image_ID() >0 ){ - sql = "SELECT Name FROM AD_Image WHERE AD_Image_ID=?"; - name = DB.getSQLValueString(null,sql,m_Tab.getAD_Image_ID()); - atts.addAttribute("","","ADImageNameID","CDATA",name); - } - else - atts.addAttribute("","","ADImageNameID","CDATA",""); - if (m_Tab.getAD_Process_ID() >0 ){ - sql = "SELECT Name FROM AD_Process WHERE AD_Process_ID=?"; - name = DB.getSQLValueString(null,sql,m_Tab.getAD_Process_ID()); - atts.addAttribute("","","ADProcessNameID","CDATA",name); - } - else - atts.addAttribute("","","ADProcessNameID","CDATA",""); - if (m_Tab.getAD_Tab_ID() >0 ){ - sql = "SELECT Name FROM AD_Tab WHERE AD_Tab_ID=?"; - name = DB.getSQLValueString(null,sql,m_Tab.getAD_Tab_ID()); - atts.addAttribute("","","ADTabNameID","CDATA",name); - } - else - atts.addAttribute("","","ADTabNameID","CDATA",""); - - sql = "SELECT TableName FROM AD_Table WHERE AD_Table_ID=?"; - name = DB.getSQLValueString(null,sql,m_Tab.getAD_Table_ID()); - atts.addAttribute("","","ADTableNameID","CDATA",name); - sql = "SELECT Name FROM AD_Window WHERE AD_Window_ID=?"; - name = DB.getSQLValueString(null,sql,m_Tab.getAD_Window_ID()); - atts.addAttribute("","","ADWindowNameID","CDATA",name); - if (m_Tab.getIncluded_Tab_ID() > 0 ){ - sql = "SELECT Name FROM AD_Tab WHERE AD_Tab_ID=?"; - name = DB.getSQLValueString(null,sql,m_Tab.getIncluded_Tab_ID()); - atts.addAttribute("","","IncludedTabNameID","CDATA",name); - } - else - atts.addAttribute("","","IncludedTabNameID","CDATA",""); - atts.addAttribute("","","CommitWarning","CDATA",(m_Tab.getCommitWarning () != null ? m_Tab.getCommitWarning ():"")); - atts.addAttribute("","","Description","CDATA",(m_Tab.getDescription () != null ? m_Tab.getDescription ():"")); - atts.addAttribute("","","EntityType","CDATA",(m_Tab.getEntityType () != null ? m_Tab.getEntityType ():"")); - atts.addAttribute("","","isHasTree","CDATA",(m_Tab.isHasTree()== true ? "true":"false")); - atts.addAttribute("","","Help","CDATA",(m_Tab.getHelp () != null ? m_Tab.getHelp ():"")); - atts.addAttribute("","","isInfoTab","CDATA",(m_Tab.isInfoTab()== true ? "true":"false")); - atts.addAttribute("","","isReadOnly","CDATA",(m_Tab.isReadOnly()== true ? "true":"false")); - atts.addAttribute("","","isSingleRow","CDATA",(m_Tab.isSingleRow()== true ? "true":"false")); - atts.addAttribute("","","isSortTab","CDATA",(m_Tab.isSortTab()== true ? "true":"false")); - atts.addAttribute("","","isActive","CDATA",(m_Tab.isActive()== true ? "true":"false")); - atts.addAttribute("","","IsTranslationTab","CDATA",(m_Tab.isTranslationTab()== true ? "true":"false")); - atts.addAttribute("","","OrderByClause","CDATA",(m_Tab.getOrderByClause () != null ? m_Tab.getOrderByClause ():"")); - atts.addAttribute("","","isProcessing","CDATA",(m_Tab.isProcessing()== true ? "true":"false")); - atts.addAttribute("","","SeqNo","CDATA",(m_Tab.getSeqNo () >= 0 ? "" + m_Tab.getSeqNo ():"0")); - atts.addAttribute("","","TabLevel","CDATA",(m_Tab.getTabLevel () >= 0 ? "" + m_Tab.getTabLevel ():"")); - atts.addAttribute("","","WhereClause","CDATA",(m_Tab.getWhereClause () != null ? m_Tab.getWhereClause ():"")); - atts.addAttribute("","","ReadOnlyLogic","CDATA",(m_Tab.getReadOnlyLogic() != null ? m_Tab.getReadOnlyLogic ():"")); - atts.addAttribute("","","DisplayLogic","CDATA",(m_Tab.getDisplayLogic() != null ? m_Tab.getDisplayLogic ():"")); - atts.addAttribute("","","isInsertRecord","CDATA",(m_Tab.isInsertRecord()== true ? "true":"false")); - atts.addAttribute("","","isAdvancedTab","CDATA",(m_Tab.isAdvancedTab()== true ? "true":"false")); - atts.addAttribute("","","Syncfields","CDATA","false"); - return atts; - } - -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/TableElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/TableElementHandler.java deleted file mode 100644 index d2b92bda5f..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/TableElementHandler.java +++ /dev/null @@ -1,342 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - * Teo Sarca, teo.sarca@gmail.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackIn; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.MTable; -import org.compiere.model.X_AD_Column; -import org.compiere.model.X_AD_Package_Exp_Detail; -import org.compiere.model.X_AD_Table; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.compiere.util.Util; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class TableElementHandler extends AbstractElementHandler { - private ColumnElementHandler columnHandler = new ColumnElementHandler(); - - private Listtables = new ArrayList(); - - public void startElement(Properties ctx, Element element) throws SAXException - { - final PackIn packIn = (PackIn)ctx.get("PackInProcess"); - final String elementValue = element.getElementValue(); - final Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue+" "+atts.getValue("ADTableNameID")); - final String entitytype = atts.getValue("EntityType"); - - if (isProcessElement(ctx, entitytype)) - { - final String tableName = atts.getValue("ADTableNameID"); - int id = packIn.getTableId(tableName); - if (id <= 0) - { - id = get_IDWithColumn(ctx, "AD_Table", "TableName", tableName); - if (id > 0) - packIn.addTable(tableName, id); - } - if (id > 0 && isTableProcess(ctx, id) && element.pass == 1) - { - return; - } - - MTable m_Table = new MTable(ctx, id, getTrxName(ctx)); - if (id <= 0 && atts.getValue("AD_Table_ID") != null && Integer.parseInt(atts.getValue("AD_Table_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Table.setAD_Table_ID(Integer.parseInt(atts.getValue("AD_Table_ID"))); - int AD_Backup_ID = -1; - String Object_Status = null; - if (id > 0) - { - AD_Backup_ID = copyRecord(ctx, "AD_Table",m_Table); - Object_Status = "Update"; - } - else - { - Object_Status = "New"; - AD_Backup_ID =0; - } - m_Table.setTableName(tableName); - // - // Window - final String windowName = atts.getValue("ADWindowNameID"); - if (!Util.isEmpty(windowName, true)) - { - id = get_IDWithColumn(ctx, "AD_Window", "Name", windowName); - if (id > 0) - { - m_Table.setAD_Window_ID(id); - } - else if (!element.defer) - { - element.defer = true; - element.unresolved = "Window:"+windowName; - } - else - { - log.warning("@NotFound@ @AD_Window_ID@:"+windowName); - } - } - // - // PO Window - final String poWindowName = getStringValue(atts,"POWindowNameID"); - if (!Util.isEmpty(poWindowName, true)) - { - id = get_IDWithColumn(ctx, "AD_Window", "Name", poWindowName); - if (id > 0) - { - m_Table.setPO_Window_ID(id); - } - else if (!element.defer) - { - element.defer = true; - element.unresolved = "POWindow:"+poWindowName; - } - else - { - log.warning("@NotFound@ @PO_Window_ID@:"+poWindowName); - } - } - // - // Validation Rule - final String valRuleName = getStringValue(atts,"ADValRuleNameID"); - if (!Util.isEmpty(valRuleName, true)) - { - id = get_IDWithColumn(ctx, "AD_Val_Rule", "Name", valRuleName); - if (id > 0) - { - m_Table.setAD_Val_Rule_ID(id); - } - else - { - element.defer = true; - element.unresolved = "ValRule:"+valRuleName; - } - } - // - m_Table.setAccessLevel (atts.getValue("AccessLevel")); - m_Table.setDescription(getStringValue(atts,"Description")); - m_Table.setEntityType(atts.getValue("EntityType")); - m_Table.setHelp(getStringValue(atts,"Help")); - m_Table.setIsActive(atts.getValue("isActive") != null ? Boolean.valueOf(atts.getValue("isActive")).booleanValue():true); - m_Table.setImportTable(getStringValue(atts,"ImportTable")); - m_Table.setIsChangeLog(Boolean.valueOf(atts.getValue("isChangeLog")).booleanValue()); - m_Table.setIsDeleteable(Boolean.valueOf(atts.getValue("isDeleteable")).booleanValue()); - m_Table.setIsHighVolume(Boolean.valueOf(atts.getValue("isHighVolume")).booleanValue()); - m_Table.setIsSecurityEnabled(Boolean.valueOf(atts.getValue("isSecurityEnabled")).booleanValue()); - m_Table.setIsView(Boolean.valueOf(atts.getValue("isView")).booleanValue()); - //m_Table.setLoadSeq(Integer.parseInt(atts.getValue("LoadSeq"))); - m_Table.setName(atts.getValue("Name")); - m_Table.setReplicationType(getStringValue(atts,"ReplicationType")); - m_Table.setTableName(atts.getValue("TableName")); - if (m_Table.save(getTrxName(ctx)) == true) - { - record_log (ctx, 1, m_Table.getName(),"Table", m_Table.get_ID(),AD_Backup_ID, Object_Status,"AD_Table",get_IDWithColumn(ctx, "AD_Table", "TableName", "AD_Table")); - tables.add(m_Table.getAD_Table_ID()); - packIn.addTable(tableName, m_Table.getAD_Table_ID()); - element.recordId = m_Table.getAD_Table_ID(); - } - else - { - record_log (ctx, 0, m_Table.getName(),"Table", m_Table.get_ID(),AD_Backup_ID, Object_Status,"AD_Table",get_IDWithColumn(ctx, "AD_Table", "TableName", "AD_Table")); - throw new POSaveFailedException("Table"); - } - } - else - { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - - int AD_Table_ID = Env.getContextAsInt(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Table_ID); - PackOut packOut = (PackOut)ctx.get("PackOutProcess"); - boolean exported = isTableProcess(ctx, AD_Table_ID); - AttributesImpl atts = new AttributesImpl(); - //Export table if not already done so - if (!exported){ - - String sql = "SELECT Name FROM AD_Table WHERE AD_Table_ID= " + AD_Table_ID; - - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sql, getTrxName(ctx)); - - try { - - ResultSet rs = pstmt.executeQuery(); - - while (rs.next()) - { - X_AD_Table m_Table = new X_AD_Table (ctx, AD_Table_ID, null); - createTableBinding(atts,m_Table); - document.startElement("","","table",atts); - - String sql1 = "SELECT * FROM AD_Column WHERE AD_Table_ID = " + AD_Table_ID - + " ORDER BY IsKey DESC, AD_Column_ID"; // Export key column as the first one - - PreparedStatement pstmt1 = null; - pstmt1 = DB.prepareStatement (sql1, getTrxName(ctx)); - - try { - - ResultSet rs1 = pstmt1.executeQuery(); - - while (rs1.next()){ - - packOut.createAdElement(rs1.getInt("AD_Element_ID"), document); - - if (rs1.getInt("AD_Reference_ID")>0) - packOut.createReference (rs1.getInt("AD_Reference_ID"), document); - - if (rs1.getInt("AD_Reference_Value_ID")>0) - packOut.createReference (rs1.getInt("AD_Reference_Value_ID"), document); - - if (rs1.getInt("AD_Process_ID")>0) - packOut.createProcess (rs1.getInt("AD_Process_ID"), document); - - if (rs1.getInt("AD_Val_Rule_ID")>0) - packOut.createDynamicRuleValidation (rs1.getInt("AD_Val_Rule_ID"), document); - - createColumn(ctx, document, rs1.getInt("AD_Column_ID")); - } - - rs1.close(); - pstmt1.close(); - pstmt1 = null; - } - catch (Exception e) { - log.log(Level.SEVERE,"getProcess", e); - } - finally { - try { - if (pstmt1 != null) - pstmt1.close (); - } - catch (Exception e){} - pstmt1 = null; - } - document.endElement("","","table"); - } - rs.close(); - pstmt.close(); - pstmt = null; - } - - catch (Exception e){ - log.log(Level.SEVERE,"getProcess", e); - } - finally{ - try { - if (pstmt != null) - pstmt.close (); - } - catch (Exception e){} - pstmt = null; - } - } - - } - - private void createColumn(Properties ctx, TransformerHandler document, int AD_Column_ID) throws SAXException { - Env.setContext(ctx, X_AD_Column.COLUMNNAME_AD_Column_ID, AD_Column_ID); - columnHandler.create(ctx, document); - ctx.remove(X_AD_Column.COLUMNNAME_AD_Column_ID); - } - - private boolean isTableProcess(Properties ctx, int AD_Table_ID) - { - if (tables.contains(AD_Table_ID)) - return true; - else { - tables.add(AD_Table_ID); - return false; - } - } - - private AttributesImpl createTableBinding( AttributesImpl atts, X_AD_Table m_Table) - { - String sql = null; - String name = null; - atts.clear(); - if (m_Table.getAD_Table_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("", "", "AD_Table_ID", "CDATA", Integer.toString(m_Table.getAD_Table_ID())); - atts.addAttribute("","","Name","CDATA",(m_Table.getName () != null ? m_Table.getName ():"")); - if (m_Table.getAD_Table_ID()> 0 ){ - sql = "SELECT TableName FROM AD_Table WHERE AD_Table_ID=?"; - name = DB.getSQLValueString(null,sql,m_Table.getAD_Table_ID()); - atts.addAttribute("","","ADTableNameID","CDATA",name); - } - else - atts.addAttribute("","","ADTableNameID","CDATA",""); - if (m_Table.getAD_Window_ID()> 0 ){ - sql = "SELECT Name FROM AD_Window WHERE AD_Window_ID=?"; - name = DB.getSQLValueString(null,sql,m_Table.getAD_Window_ID()); - atts.addAttribute("","","ADWindowNameID","CDATA",name); - } - else - atts.addAttribute("","","ADWindowNameID","CDATA",""); - if (m_Table.getPO_Window_ID()> 0 ){ - sql = "SELECT Name FROM AD_Window WHERE AD_Window_ID=?"; - name = DB.getSQLValueString(null,sql,m_Table.getPO_Window_ID()); - atts.addAttribute("","","POWindowNameID","CDATA",name); - } - else - atts.addAttribute("","","POWindowNameID","CDATA",""); - if (m_Table.getAD_Val_Rule_ID()> 0 ){ - sql = "SELECT Name FROM AD_Val_Rule WHERE AD_Val_Rule_ID=?"; - name = DB.getSQLValueString(null,sql,m_Table.getAD_Val_Rule_ID()); - atts.addAttribute("","","ADValRuleNameID","CDATA",name); - } - else - atts.addAttribute("","","ADValRuleNameID","CDATA",""); - atts.addAttribute("","","AccessLevel","CDATA",(m_Table.getAccessLevel () != null ? m_Table.getAccessLevel ():"")); - atts.addAttribute("","","Description","CDATA",(m_Table.getDescription () != null ? m_Table.getDescription ():"")); - atts.addAttribute("","","EntityType","CDATA",(m_Table.getEntityType () != null ? m_Table.getEntityType ():"")); - atts.addAttribute("","","Help","CDATA",(m_Table.getHelp() != null ? m_Table.getHelp ():"")); - atts.addAttribute("","","ImportTable","CDATA",(m_Table.getImportTable () != null ? m_Table.getImportTable ():"")); - atts.addAttribute("","","isChangeLog","CDATA",(m_Table.isChangeLog()== true ? "true":"false")); - atts.addAttribute("","","isActive","CDATA",(m_Table.isActive()== true ? "true":"false")); - atts.addAttribute("","","isDeleteable","CDATA",(m_Table.isDeleteable()== true ? "true":"false")); - atts.addAttribute("","","isHighVolume","CDATA",(m_Table.isHighVolume()== true ? "true":"false")); - atts.addAttribute("","","isSecurityEnabled","CDATA",(m_Table.isSecurityEnabled()== true ? "true":"false")); - atts.addAttribute("","","isView","CDATA",(m_Table.isView()== true ? "true":"false")); - atts.addAttribute("","","LoadSeq","CDATA",(m_Table.getLoadSeq ()> 0 ? "" + m_Table.getLoadSeq ():"")); - atts.addAttribute("","","ReplicationType","CDATA",(m_Table.getReplicationType () != null ? m_Table.getReplicationType ():"")); - atts.addAttribute("","","TableName","CDATA",(m_Table.getTableName () != null ? m_Table.getTableName ():"")); - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/TaskAccessElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/TaskAccessElementHandler.java deleted file mode 100644 index d2f495d9a1..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/TaskAccessElementHandler.java +++ /dev/null @@ -1,137 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.Properties; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.exception.DatabaseAccessException; -import org.compiere.model.X_AD_Role; -import org.compiere.model.X_AD_Task; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class TaskAccessElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - log.info(elementValue); - int roleid =0; - int taskid =0; - StringBuffer sqlB = null; - Attributes atts = element.attributes; - if (getStringValue(atts,"rolename")!=null){ - String name = atts.getValue("rolename"); - sqlB = new StringBuffer ("SELECT AD_Role_ID FROM AD_Role WHERE Name= ?"); - roleid = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),name); - } - - if (getStringValue(atts,"taskname")!=null){ - String name = atts.getValue("taskname"); - sqlB = new StringBuffer ("SELECT AD_Task_ID FROM AD_Task WHERE Name= ?"); - taskid = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),name); - } - - sqlB = new StringBuffer ("SELECT count(*) FROM AD_Task_Access WHERE AD_Role_ID=? and AD_Task_ID=?"); - int count = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),roleid,taskid); - @SuppressWarnings("unused") - int AD_Backup_ID = -1; - @SuppressWarnings("unused") - String Object_Status = null; - if (count>0){ - Object_Status = "Update"; - sqlB = new StringBuffer ("UPDATE AD_Task_Access ") - .append( "SET isActive = '" + atts.getValue("isActive") ) - .append( "', isReadWrite = '" + atts.getValue("isReadWrite") ) - .append( "' WHERE AD_Role_ID = " + roleid ) - .append( " and AD_Task_ID = " + taskid ); - - int no = DB.executeUpdate (sqlB.toString(), getTrxName(ctx)); - if (no == -1) { - log.info("Update to task access failed"); - throw new DatabaseAccessException("Update to task access failed"); - } - } - else{ - Object_Status = "New"; - AD_Backup_ID =0; - sqlB = new StringBuffer ("INSERT INTO AD_Task_Access") - .append( "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, " ) - .append( "AD_Role_ID, AD_Task_ID, isActive, isReadWrite) " ) - .append( "VALUES(" ) - .append( " "+ Env.getAD_Client_ID(ctx) ) - .append( ", "+ Env.getAD_Org_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", " + roleid ) - .append( ", " + taskid ) - .append( ", '" + atts.getValue("isActive") ) - .append( "', '" + atts.getValue("isReadWrite")+"')" ); - - int no = DB.executeUpdate (sqlB.toString(), getTrxName(ctx)); - if (no == -1) { - log.info("Insert to task access failed"); - throw new DatabaseAccessException("Insert to task access failed"); - } - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Task_ID = Env.getContextAsInt(ctx, X_AD_Task.COLUMNNAME_AD_Task_ID); - int AD_Role_ID = Env.getContextAsInt(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); - AttributesImpl atts = new AttributesImpl(); - createTaskAccessBinding(atts, AD_Task_ID, AD_Role_ID); - document.startElement("", "", "taskaccess", atts); - document.endElement("", "", "taskaccess"); - } - - private AttributesImpl createTaskAccessBinding(AttributesImpl atts, - int task_id, int role_id) { - String sql = null; - String name = null; - atts.clear(); - - sql = "SELECT Name FROM AD_Task WHERE AD_Task_ID=?"; - name = DB.getSQLValueString(null, sql, task_id); - atts.addAttribute("", "", "taskname", "CDATA", name); - - sql = "SELECT Name FROM AD_Role WHERE AD_Role_ID=?"; - name = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "rolename", "CDATA", name); - - sql = "SELECT isActive FROM AD_Task_Access WHERE AD_Task_ID=" + task_id - + " and AD_Role_ID=?"; - String TrueFalse = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "isActive", "CDATA", TrueFalse); - - sql = "SELECT isReadWrite FROM AD_Task_Access WHERE AD_Task_ID=" - + task_id + " and AD_Role_ID=?"; - String isReadWrite = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "isReadWrite", "CDATA", isReadWrite); - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/TaskElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/TaskElementHandler.java deleted file mode 100644 index 2cc739e25c..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/TaskElementHandler.java +++ /dev/null @@ -1,140 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.MTask; -import org.compiere.model.X_AD_Task; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class TaskElementHandler extends AbstractElementHandler { - - private List tasks = new ArrayList(); - - public void startElement(Properties ctx, Element element) - throws SAXException { - String elementValue = element.getElementValue(); - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("ADTaskNameID")); - String entitytype = atts.getValue("EntityType"); - if (isProcessElement(ctx, entitytype)) { - String name = atts.getValue("ADTaskNameID"); - int id = get_ID(ctx, "AD_Task", name); - MTask m_Task = new MTask(ctx, id, getTrxName(ctx)); - int AD_Backup_ID = -1; - String Object_Status = null; - if (id <= 0 && atts.getValue("AD_Task_ID") != null && Integer.parseInt(atts.getValue("AD_Task_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Task.setAD_Task_ID(Integer.parseInt(atts.getValue("AD_Task_ID"))); - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_Task", m_Task); - Object_Status = "Update"; - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - m_Task.setAccessLevel(atts.getValue("AccessLevel")); - m_Task.setDescription(getStringValue(atts,"Description")); - m_Task.setEntityType(atts.getValue("EntityType")); - m_Task.setHelp(getStringValue(atts,"Help")); - m_Task.setIsActive(atts.getValue("isActive") != null ? Boolean - .valueOf(atts.getValue("isActive")).booleanValue() : true); - m_Task.setName(name); - m_Task.setOS_Command(getStringValue(atts,"OS_Command")); - if (m_Task.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_Task.getName(), "Task", m_Task.get_ID(), - AD_Backup_ID, Object_Status, "AD_Task", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Task")); - } else { - record_log(ctx, 0, m_Task.getName(), "Task", m_Task.get_ID(), - AD_Backup_ID, Object_Status, "AD_Task", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Task")); - throw new POSaveFailedException("Task"); - } - } else { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Task_ID = Env.getContextAsInt(ctx, "AD_Task_ID"); - if (tasks.contains(AD_Task_ID)) - return; - tasks.add(AD_Task_ID); - X_AD_Task m_Task = new X_AD_Task(ctx, AD_Task_ID, null); - AttributesImpl atts = new AttributesImpl(); - createTaskBinding(atts, m_Task); - document.startElement("", "", "task", atts); - document.endElement("", "", "task"); - - } - - private static AttributesImpl createTaskBinding(AttributesImpl atts, - X_AD_Task m_Task) { - String sql = null; - String name = null; - atts.clear(); - if (m_Task.getAD_Task_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_Task_ID","CDATA",Integer.toString(m_Task.getAD_Task_ID())); - if (m_Task.getAD_Task_ID() > 0) { - sql = "SELECT Name FROM AD_Task WHERE AD_Task_ID=?"; - name = DB.getSQLValueString(null, sql, m_Task.getAD_Task_ID()); - if (name != null) - atts.addAttribute("", "", "ADTaskNameID", "CDATA", name); - else - atts.addAttribute("", "", "ADTaskNameID", "CDATA", ""); - } else { - atts.addAttribute("", "", "ADTaskNameID", "CDATA", ""); - } - - atts.addAttribute("", "", "AccessLevel", "CDATA", (m_Task - .getAccessLevel() != null ? m_Task.getAccessLevel() : "")); - atts.addAttribute("", "", "Description", "CDATA", (m_Task - .getDescription() != null ? m_Task.getDescription() : "")); - atts.addAttribute("", "", "EntityType", "CDATA", (m_Task - .getEntityType() != null ? m_Task.getEntityType() : "")); - atts.addAttribute("", "", "Help", "CDATA", - (m_Task.getHelp() != null ? m_Task.getHelp() : "")); - atts.addAttribute("", "", "isActive", "CDATA", - (m_Task.isActive() == true ? "true" : "false")); - atts.addAttribute("", "", "Name", "CDATA", - (m_Task.getName() != null ? m_Task.getName() : "")); - atts.addAttribute("", "", "OS_Command", "CDATA", (m_Task - .getOS_Command() != null ? m_Task.getOS_Command() : "")); - return atts; - } - -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/UserRoleElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/UserRoleElementHandler.java deleted file mode 100644 index ba94d7b00d..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/UserRoleElementHandler.java +++ /dev/null @@ -1,141 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.Properties; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.compiere.model.X_AD_Role; -import org.compiere.model.X_AD_User; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class UserRoleElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - log.info(elementValue); - int roleid =0; - int userid =0; - int orgid =0; - - StringBuffer sqlB = null; - Attributes atts = element.attributes; - if (atts.getValue("username")!=null){ - String name = atts.getValue("username"); - sqlB = new StringBuffer ("SELECT AD_User_ID FROM AD_User WHERE Name= ?"); - userid = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),name); - } - - if (atts.getValue("rolename")!=null){ - String name = atts.getValue("rolename"); - sqlB = new StringBuffer ("SELECT AD_Role_ID FROM AD_Role WHERE Name= ?"); - roleid = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),name); - } - - if (atts.getValue("orgname")!=null){ - String name = atts.getValue("orgname"); - sqlB = new StringBuffer ("SELECT AD_Org_ID FROM AD_Org WHERE Name= ?"); - orgid = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),name); - } - - sqlB = new StringBuffer ("SELECT count(*) FROM AD_User_Roles WHERE AD_User_ID = ? and AD_Role_ID = ?"); - int count = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),userid,roleid); - - @SuppressWarnings("unused") - int AD_Backup_ID = -1; - @SuppressWarnings("unused") - String Object_Status = null; - if (count>0){ - //AD_Backup_ID = copyRecord("AD_Role",m_Role); - Object_Status = "Update"; - sqlB = new StringBuffer ("UPDATE AD_User_Roles ") - .append( "SET isActive = '" + atts.getValue("isActive")+"'" ) - .append( " WHERE AD_User_ID = " + userid ) - .append( " and AD_Role_ID = " + roleid ) - .append( " and AD_Org_ID = " + orgid ); - - int no = DB.executeUpdate (sqlB.toString(), getTrxName(ctx)); - if (no == -1) - log.info("Update to user roles failed"); - } - else{ - Object_Status = "New"; - AD_Backup_ID =0; - sqlB = new StringBuffer ("INSERT INTO AD_User_Roles") - .append( "(AD_Client_ID, CreatedBy, UpdatedBy, " ) - .append( "AD_User_ID, AD_Role_ID, AD_Org_ID, isActive) " ) - .append( "VALUES(" ) - .append( " "+ Env.getAD_Client_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", " +userid ) - .append( ", " + roleid ) - .append( ", " + orgid ) - .append( ", '" + atts.getValue("isActive")+"')" ); - int no = DB.executeUpdate (sqlB.toString(), getTrxName(ctx)); - if (no == -1) - log.info("Insert to user roles failed"); - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_User_ID = Env.getContextAsInt(ctx, X_AD_User.COLUMNNAME_AD_User_ID); - int AD_Role_ID = Env.getContextAsInt(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); - int AD_Org_ID = Env.getContextAsInt(ctx, "AD_Org_ID"); - AttributesImpl atts = new AttributesImpl(); - createUserAssignBinding(atts, AD_User_ID,AD_Role_ID, AD_Org_ID); - document.startElement("", "", "userrole", atts); - document.endElement("", "", "userrole"); - } - - private AttributesImpl createUserAssignBinding(AttributesImpl atts, - int user_id, int role_id, int org_id) { - String sql = null; - String name = null; - atts.clear(); - - sql = "SELECT Name FROM AD_User WHERE AD_User_ID=?"; - name = DB.getSQLValueString(null, sql, user_id); - atts.addAttribute("", "", "username", "CDATA", name); - - sql = "SELECT Name FROM AD_Role WHERE AD_Role_ID=?"; - name = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "rolename", "CDATA", name); - - sql = "SELECT isActive FROM AD_User_Roles WHERE AD_User_ID=" + user_id - + " and AD_Role_ID=?"; - String TrueFalse = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "isActive", "CDATA", TrueFalse); - - sql = "SELECT Name FROM AD_Org WHERE AD_Org_ID=?"; - name = DB.getSQLValueString(null, sql, org_id); - atts.addAttribute("", "", "orgname", "CDATA", name); - - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WindowAccessElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WindowAccessElementHandler.java deleted file mode 100644 index 5afcfaa20d..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WindowAccessElementHandler.java +++ /dev/null @@ -1,142 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.Properties; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.compiere.model.X_AD_Role; -import org.compiere.model.X_AD_Window; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class WindowAccessElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - log.info(elementValue); - int roleid =0; - int windowid =0; - StringBuffer sqlB = null; - Attributes atts = element.attributes; - if (atts.getValue("rolename")!=null){ - String name = atts.getValue("rolename"); - sqlB = new StringBuffer ("SELECT AD_Role_ID FROM AD_Role WHERE Name= ?"); - roleid = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),name); - if (roleid <= 0) { - element.defer = true; - return; - } - } - - if (atts.getValue("windowname")!=null){ - String name = atts.getValue("windowname"); - sqlB = new StringBuffer ("SELECT AD_Window_ID FROM AD_Window WHERE Name= ?"); - windowid = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),name); - if (windowid <= 0) { - element.defer = true; - return; - } - } - - sqlB = new StringBuffer ("SELECT count(*) FROM AD_Window_Access WHERE AD_Role_ID=? and AD_Window_ID=?"); - int count = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),roleid,windowid); - @SuppressWarnings("unused") - int AD_Backup_ID = -1; - @SuppressWarnings("unused") - String Object_Status = null; - if (count>0){ - Object_Status = "Update"; - sqlB = new StringBuffer ("UPDATE AD_Window_Access ") - .append( "SET isActive = '" + atts.getValue("isActive") ) - .append( "', isReadWrite = '" + atts.getValue("isReadWrite") ) - .append( "' WHERE AD_Role_ID = " + roleid ) - .append( " and AD_Window_ID = " + windowid ); - - int no = DB.executeUpdate (sqlB.toString(), getTrxName(ctx)); - if (no == -1) - log.info("Update to window access failed"); - } - else{ - Object_Status = "New"; - AD_Backup_ID =0; - sqlB = new StringBuffer ("INSERT INTO AD_Window_Access") - .append( "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, " ) - .append( "AD_Role_ID, AD_Window_ID, isActive, isReadWrite) " ) - .append( "VALUES(" ) - .append( " "+ Env.getAD_Client_ID(ctx) ) - .append( ", "+ Env.getAD_Org_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", " + roleid ) - .append( ", " + windowid ) - .append( ", '" + atts.getValue("isActive") ) - .append( "', '" + atts.getValue("isReadWrite")+"')" ); - - int no = DB.executeUpdate (sqlB.toString(), getTrxName(ctx)); - if (no == -1) - log.info("Insert to window access failed"); - } - - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Window_ID = Env.getContextAsInt(ctx, X_AD_Window.COLUMNNAME_AD_Window_ID); - int AD_Role_ID = Env.getContextAsInt(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); - AttributesImpl atts = new AttributesImpl(); - createWindowAccessBinding(atts, AD_Window_ID, AD_Role_ID); - document.startElement("", "", "windowaccess", atts); - document.endElement("", "", "windowaccess"); - } - - private AttributesImpl createWindowAccessBinding(AttributesImpl atts, - int window_id, int role_id) { - String sql = null; - String name = null; - atts.clear(); - - sql = "SELECT Name FROM AD_Window WHERE AD_Window_ID=?"; - name = DB.getSQLValueString(null, sql, window_id); - atts.addAttribute("", "", "windowname", "CDATA", name); - - sql = "SELECT Name FROM AD_Role WHERE AD_Role_ID=?"; - name = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "rolename", "CDATA", name); - - sql = "SELECT isActive FROM AD_Window_Access WHERE AD_Window_ID=" - + window_id + " and AD_Role_ID=?"; - String TrueFalse = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "isActive", "CDATA", TrueFalse); - - sql = "SELECT isReadWrite FROM AD_Window_Access WHERE AD_Window_ID=" - + window_id + " and AD_Role_ID=?"; - String isReadWrite = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "isReadWrite", "CDATA", isReadWrite); - - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WindowElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WindowElementHandler.java deleted file mode 100644 index 030b891a59..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WindowElementHandler.java +++ /dev/null @@ -1,309 +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) 2005 Robert Klein. robeklein@hotmail.com * - * Contributor(s): Low Heng Sin hengsin@avantz.com * - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.DatabaseAccessException; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.MWindow; -import org.compiere.model.X_AD_Preference; -import org.compiere.model.X_AD_Tab; -import org.compiere.model.X_AD_Window; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.compiere.util.Util; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class WindowElementHandler extends AbstractElementHandler { - - private TabElementHandler tabHandler = new TabElementHandler(); - private PreferenceElementHandler preferenceHandler = new PreferenceElementHandler(); - - private List windows = new ArrayList(); - - public void startElement(Properties ctx, Element element) - throws SAXException { - // Check namespace. - String elementValue = element.getElementValue(); - Attributes atts = element.attributes; - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("Name")); - String entitytype = atts.getValue("EntityType"); - if (isProcessElement(ctx, entitytype)) { - String name = atts.getValue("Name"); - int id = get_ID(ctx, "AD_Window", name); - if (id > 0 && windows.contains(id)) { - return; - } - MWindow m_Window = new MWindow(ctx, id, getTrxName(ctx)); - if (id <= 0 && atts.getValue("AD_Window_ID") != null && Integer.parseInt(atts.getValue("AD_Window_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Window.setAD_Window_ID(Integer.parseInt(atts.getValue("AD_Window_ID"))); - String Object_Status = null; - int AD_Backup_ID = -1; - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_Window", m_Window); - Object_Status = "Update"; - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - m_Window.setName(name); - - name = atts.getValue("ADImageNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_Image", "Name", name); - //TODO: export and import of ad_image - /* - if (id <= 0) { - element.defer = true; - return; - }*/ - if (id > 0) - m_Window.setAD_Image_ID(id); - } - - name = atts.getValue("ADColorNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_Color", "Name", name); - //TODO: export and import of ad_color - /* - if (id <= 0) { - element.defer = true; - return; - }*/ - if (id > 0) - m_Window.setAD_Color_ID(id); - } - - m_Window.setDescription(getStringValue(atts,"Description")); - m_Window.setEntityType(atts.getValue("EntityType")); - m_Window.setHelp(getStringValue(atts,"Help")); - m_Window.setIsActive(atts.getValue("isActive") != null ? Boolean - .valueOf(atts.getValue("isActive")).booleanValue() : true); - m_Window.setIsBetaFunctionality(Boolean.valueOf( - atts.getValue("isBetaFunctionality")).booleanValue()); - m_Window.setIsDefault(Boolean.valueOf(atts.getValue("isDefault")) - .booleanValue()); - m_Window.setIsSOTrx(Boolean.valueOf(atts.getValue("isSOTrx")) - .booleanValue()); - m_Window.setName(atts.getValue("Name")); - m_Window.setProcessing(false); - if (!Util.isEmpty(atts.getValue("WinHeight"), true)) - m_Window.setWinWidth(getValueInt(atts, "WinWidth", 0)); - if (!Util.isEmpty(atts.getValue("WinHeight"), true)) - m_Window.setWinHeight(getValueInt(atts, "WinHeight", 0)); - m_Window.setWindowType(atts.getValue("WindowType")); - if (m_Window.save(getTrxName(ctx)) == true) { - record_log(ctx, 1, m_Window.getName(), "Window", m_Window - .get_ID(), AD_Backup_ID, Object_Status, "AD_Window", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Window")); - element.recordId = m_Window.getAD_Window_ID(); - windows.add(m_Window.getAD_Window_ID()); - } else { - record_log(ctx, 0, m_Window.getName(), "Window", m_Window - .get_ID(), AD_Backup_ID, Object_Status, "AD_Window", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Window")); - throw new POSaveFailedException("Window"); - } - } else { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Window_ID = Env.getContextAsInt(ctx, "AD_Window_ID"); - PackOut packOut = (PackOut) ctx.get("PackOutProcess"); - - X_AD_Window m_Window = new X_AD_Window(ctx, AD_Window_ID, null); - AttributesImpl atts = new AttributesImpl(); - createWindowBinding(atts, m_Window); - document.startElement("", "", "window", atts); - // Tab Tag - String sql = "SELECT * FROM AD_TAB WHERE AD_WINDOW_ID = " - + AD_Window_ID - +" ORDER BY "+X_AD_Tab.COLUMNNAME_SeqNo+","+X_AD_Tab.COLUMNNAME_AD_Tab_ID - ; - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()) { - packOut.createTable(rs.getInt("AD_Table_ID"), document); - createTab(ctx, document, rs.getInt("AD_Tab_ID")); - } - rs.close(); - pstmt.close(); - pstmt = null; - } catch (Exception e) { - log.log(Level.SEVERE, e.getLocalizedMessage(), e); - if (e instanceof SAXException) - throw (SAXException) e; - else if (e instanceof SQLException) - throw new DatabaseAccessException("Failed to export window.", e); - else if (e instanceof RuntimeException) - throw (RuntimeException) e; - else - throw new RuntimeException("Failed to export window.", e); - } finally { - try { - if (pstmt != null) - pstmt.close(); - } catch (Exception e) { - } - pstmt = null; - } - - //TODO: export of ad_image and ad_color use - - // Loop tags. - document.endElement("", "", "window"); - - // Preference Tag - sql = "SELECT * FROM AD_PREFERENCE WHERE AD_WINDOW_ID = " + AD_Window_ID - +" ORDER BY "+X_AD_Preference.COLUMNNAME_AD_Preference_ID; - pstmt = null; - pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()) { - createPreference(ctx, document, rs.getInt("AD_Preference_ID")); - } - rs.close(); - pstmt.close(); - pstmt = null; - } catch (Exception e) { - log.log(Level.SEVERE, e.getLocalizedMessage(), e); - if (e instanceof SAXException) - throw (SAXException) e; - else if (e instanceof SQLException) - throw new DatabaseAccessException("Failed to export window preference.", e); - else if (e instanceof RuntimeException) - throw (RuntimeException) e; - else - throw new RuntimeException("Failed to export window preference.", e); - } finally { - try { - if (pstmt != null) - pstmt.close(); - } catch (Exception e) { - } - pstmt = null; - } - } - - private void createPreference(Properties ctx, TransformerHandler document, - int AD_Preference_ID) throws SAXException { - Env.setContext(ctx, X_AD_Preference.COLUMNNAME_AD_Preference_ID, - AD_Preference_ID); - preferenceHandler.create(ctx, document); - ctx.remove(X_AD_Preference.COLUMNNAME_AD_Preference_ID); - } - - private void createTab(Properties ctx, TransformerHandler document, - int AD_Tab_ID) throws SAXException { - Env.setContext(ctx, X_AD_Tab.COLUMNNAME_AD_Tab_ID, AD_Tab_ID); - tabHandler.create(ctx, document); - ctx.remove(X_AD_Tab.COLUMNNAME_AD_Tab_ID); - } - - private AttributesImpl createWindowBinding(AttributesImpl atts, - X_AD_Window m_Window) { - atts.clear(); - if (m_Window.getAD_Window_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("", "", "AD_Window_ID", "CDATA", Integer.toString(m_Window.getAD_Window_ID())); - String sql = "SELECT Name FROM AD_Window WHERE AD_Window_ID=?"; - String name = DB.getSQLValueString(null, sql, m_Window - .getAD_Window_ID()); - atts.addAttribute("", "", "ADWindowNameID", "CDATA", name); - if (m_Window.getAD_Image_ID() > 0) { - sql = "SELECT Name FROM AD_Image WHERE AD_Image_ID=?"; - name = DB.getSQLValueString(null, sql, m_Window.getAD_Image_ID()); - if (name != null) - atts.addAttribute("", "", "ADImageNameID", "CDATA", name); - else - atts.addAttribute("", "", "ADImageNameID", "CDATA", ""); - } - else { - atts.addAttribute("", "", "ADImageNameID", "CDATA", ""); - } - - if (m_Window.getAD_Color_ID() > 0) { - sql = "SELECT Name FROM AD_Color WHERE AD_Color_ID=?"; - name = DB.getSQLValueString(null, sql, m_Window.getAD_Color_ID()); - if (name != null) - atts.addAttribute("", "", "ADColorNameID", "CDATA", name); - else - atts.addAttribute("", "", "ADColorNameID", "CDATA", ""); - } else { - atts.addAttribute("", "", "ADColorNameID", "CDATA", ""); - } - - atts.addAttribute("", "", "Description", "CDATA", (m_Window - .getDescription() != null ? m_Window.getDescription() : "")); - atts.addAttribute("", "", "EntityType", "CDATA", (m_Window - .getEntityType() != null ? m_Window.getEntityType() : "")); - atts.addAttribute("", "", "Help", "CDATA", - (m_Window.getHelp() != null ? m_Window.getHelp() : "")); - atts.addAttribute("", "", "isBetaFunctionality", "CDATA", (m_Window - .isBetaFunctionality() == true ? "true" : "false")); - atts.addAttribute("", "", "isDefault", "CDATA", - (m_Window.isDefault() == true ? "true" : "false")); - atts.addAttribute("", "", "isSOTrx", "CDATA", - (m_Window.isSOTrx() == true ? "true" : "false")); - atts.addAttribute("", "", "isActive", "CDATA", - (m_Window.isActive() == true ? "true" : "false")); - atts.addAttribute("", "", "Name", "CDATA", - (m_Window.getName() != null ? m_Window.getName() : "")); - atts.addAttribute("", "", "isProcessing", "CDATA", (m_Window - .isProcessing() == true ? "true" : "false")); - atts.addAttribute("", "", "WinHeight", "CDATA", (m_Window - .getWinHeight() > 0 ? "" + m_Window.getWinHeight() : "")); - atts.addAttribute("", "", "WinWidth", "CDATA", (m_Window - .getWinWidth() > 0 ? "" + m_Window.getWinWidth() : "")); - atts.addAttribute("", "", "WindowType", "CDATA", (m_Window - .getWindowType() != null ? m_Window.getWindowType() : "")); - return atts; - } - - protected int getValueInt(Attributes atts, String name, int defaultValue) - { - String value = atts.getValue(name); - if (Util.isEmpty(value, true)) - return defaultValue; - int i = Integer.parseInt(value.trim()); - return i; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowAccessElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowAccessElementHandler.java deleted file mode 100644 index f6701525e5..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowAccessElementHandler.java +++ /dev/null @@ -1,138 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.Properties; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.exception.DatabaseAccessException; -import org.compiere.model.X_AD_Role; -import org.compiere.model.X_AD_Workflow; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class WorkflowAccessElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) throws SAXException { - String elementValue = element.getElementValue(); - log.info(elementValue); - int roleid =0; - int workflowid =0; - StringBuffer sqlB = null; - Attributes atts = element.attributes; - if (getStringValue(atts,"rolename")!=null){ - String name = atts.getValue("rolename"); - sqlB = new StringBuffer ("SELECT AD_Role_ID FROM AD_Role WHERE Name= ?"); - roleid = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),name); - } - - if (getStringValue(atts,"workflowname")!=null){ - String name = atts.getValue("workflowname"); - sqlB = new StringBuffer ("SELECT AD_Workflow_ID FROM AD_Workflow WHERE Name= ?"); - workflowid = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),name); - } - - sqlB = new StringBuffer ("SELECT count(*) FROM AD_Workflow_Access WHERE AD_Role_ID=? and AD_Workflow_ID=?"); - int count = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),roleid,workflowid); - @SuppressWarnings("unused") - int AD_Backup_ID = -1; - @SuppressWarnings("unused") - String Object_Status = null; - if (count>0){ - Object_Status = "Update"; - sqlB = new StringBuffer ("UPDATE AD_Workflow_Access ") - .append( "SET isActive = '" + atts.getValue("isActive") ) - .append( "', isReadWrite = '" + atts.getValue("isReadWrite") ) - .append( "' WHERE AD_Role_ID = " + roleid ) - .append( " and AD_Workflow_ID = " + workflowid ); - - int no = DB.executeUpdate (sqlB.toString(), getTrxName(ctx)); - if (no == -1) { - log.info("Update to workflow access failed"); - throw new DatabaseAccessException("Update to workflow access failed"); - } - } - else{ - Object_Status = "New"; - AD_Backup_ID =0; - sqlB = new StringBuffer ("INSERT INTO AD_Workflow_Access") - .append( "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, " ) - .append( "AD_Role_ID, AD_Workflow_ID, isActive, isReadWrite) " ) - .append( "VALUES(" ) - .append( " "+ Env.getAD_Client_ID(ctx) ) - .append( ", "+ Env.getAD_Org_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", "+ Env.getAD_User_ID(ctx) ) - .append( ", " + roleid ) - .append( ", " + workflowid ) - .append( ", '" + atts.getValue("isActive") ) - .append( "', '" + atts.getValue("isReadWrite")+"')" ); - - int no = DB.executeUpdate (sqlB.toString(), getTrxName(ctx)); - if (no == -1) { - log.info("Insert to workflow access failed"); - throw new DatabaseAccessException("Insert to workflow access failed"); - } - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Workflow_ID = Env.getContextAsInt(ctx, X_AD_Workflow.COLUMNNAME_AD_Workflow_ID); - int AD_Role_ID = Env.getContextAsInt(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); - AttributesImpl atts = new AttributesImpl(); - createWorkflowAccessBinding(atts, AD_Workflow_ID, AD_Role_ID); - document.startElement("", "", "workflowaccess", atts); - document.endElement("", "", "workflowaccess"); - } - - private AttributesImpl createWorkflowAccessBinding(AttributesImpl atts, - int workflow_id, int role_id) { - String sql = null; - String name = null; - atts.clear(); - - sql = "SELECT Name FROM AD_Workflow WHERE AD_Workflow_ID=?"; - name = DB.getSQLValueString(null, sql, workflow_id); - atts.addAttribute("", "", "workflowname", "CDATA", name); - - sql = "SELECT Name FROM AD_Role WHERE AD_Role_ID=?"; - name = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "rolename", "CDATA", name); - - sql = "SELECT isActive FROM AD_Workflow_Access WHERE AD_Workflow_ID=" - + workflow_id + " and AD_Role_ID=?"; - String TrueFalse = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "isActive", "CDATA", TrueFalse); - - sql = "SELECT isReadWrite FROM AD_Workflow_Access WHERE AD_Workflow_ID=" - + workflow_id + " and AD_Role_ID=?"; - String isReadWrite = DB.getSQLValueString(null, sql, role_id); - atts.addAttribute("", "", "isReadWrite", "CDATA", isReadWrite); - - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowElementHandler.java deleted file mode 100644 index 6081bf582a..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowElementHandler.java +++ /dev/null @@ -1,453 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - * Teo Sarca, teo.sarca@gmail.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.DatabaseAccessException; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.X_AD_Package_Exp_Detail; -import org.compiere.model.X_AD_WF_NextCondition; -import org.compiere.model.X_AD_WF_Node; -import org.compiere.model.X_AD_WF_NodeNext; -import org.compiere.model.X_AD_Workflow; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.compiere.wf.MWorkflow; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class WorkflowElementHandler extends AbstractElementHandler { - - private WorkflowNodeElementHandler nodeHandler = new WorkflowNodeElementHandler(); - private WorkflowNodeNextElementHandler nodeNextHandler = new WorkflowNodeNextElementHandler(); - private WorkflowNodeNextConditionElementHandler nextConditionHandler = new WorkflowNodeNextConditionElementHandler(); - - private List workflows = new ArrayList(); - - public void startElement(Properties ctx, Element element) - throws SAXException { - Attributes atts = element.attributes; - String elementValue = element.getElementValue(); - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("Name")); - String entitytype = atts.getValue("EntityType"); - if (log.isLoggable(Level.INFO)) log.info("entitytype " + atts.getValue("EntityType")); - - if (isProcessElement(ctx, entitytype)) { - - String workflowName = atts.getValue("Name"); - - int id = get_IDWithColumn(ctx, "AD_Workflow", "name", workflowName); - if (id > 0 && workflows.contains(id)) { - element.skip = true; - return; - } - - MWorkflow m_Workflow = new MWorkflow(ctx, id, getTrxName(ctx)); - int AD_Backup_ID = -1; - String Object_Status = null; - if (id <= 0 && atts.getValue("AD_Workflow_ID") != null && Integer.parseInt(atts.getValue("AD_Workflow_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_Workflow.setAD_Workflow_ID(Integer.parseInt(atts.getValue("AD_Workflow_ID"))); - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_Workflow", m_Workflow); - Object_Status = "Update"; - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - - String name = atts.getValue("ADWorkflowResponsibleNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_WF_Responsible", "Name", name); - if (id <= 0) { - element.defer = true; - element.unresolved = "AD_WF_Responsible: " + name; - return; - } - m_Workflow.setAD_WF_Responsible_ID(id); - } - - name = atts.getValue("ADTableNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_Table", "TableName", name); - if (id <= 0) { - element.defer = true; - element.unresolved = "AD_Table: " + name; - return; - } - m_Workflow.setAD_Table_ID(id); - - } - - name = atts.getValue("ADWorkflowProcessorNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_WorkflowProcessor", "Name", name); - if (id <= 0) { - element.defer = true; - element.unresolved = "AD_WorkflowProcessor: " + name; - return; - } - m_Workflow.setAD_WorkflowProcessor_ID(id); - - } - - m_Workflow.setValue(atts.getValue("Value")); - m_Workflow.setName(workflowName); - m_Workflow.setIsBetaFunctionality (Boolean.valueOf(atts.getValue("isBetaFunctionality")).booleanValue()); - m_Workflow.setAccessLevel(atts.getValue("AccessLevel")); - m_Workflow.setDescription(getStringValue(atts,"Description")); - m_Workflow.setHelp(getStringValue(atts,"Help")); - m_Workflow.setDurationUnit(getStringValue(atts,"DurationUnit")); - m_Workflow.setAuthor(getStringValue(atts,"Author")); - if(getStringValue(atts, "Version") != null) - m_Workflow.setVersion(Integer.valueOf(atts.getValue("Version"))); - if(getStringValue(atts, "Priority") != null) - m_Workflow.setPriority(Integer.valueOf(atts.getValue("Priority"))); - if(getStringValue(atts, "Limit") != null) - m_Workflow.setLimit(Integer.valueOf(atts.getValue("Limit"))); - if(getStringValue(atts, "Duration") != null) - m_Workflow.setDuration(Integer.valueOf(atts.getValue("Duration"))); - if(getStringValue(atts, "Cost") != null) - m_Workflow.setCost(new BigDecimal(atts.getValue("Cost"))); - - m_Workflow.setWorkingTime(Integer.valueOf(atts - .getValue("WorkingTime"))); - m_Workflow.setWaitingTime(Integer.valueOf(atts - .getValue("WaitingTime"))); - m_Workflow.setPublishStatus(atts.getValue("PublishStatus")); - m_Workflow.setWorkflowType(atts.getValue("WorkflowType")); - m_Workflow.setDocValueLogic(getStringValue(atts,"DocValueLogic")); - m_Workflow.setIsValid(atts.getValue("isValid") != null ? Boolean - .valueOf(atts.getValue("isValid")).booleanValue() : true); - m_Workflow.setEntityType(atts.getValue("EntityType")); - m_Workflow.setAD_WF_Node_ID(-1); - log.info("about to execute m_Workflow.save"); - if (m_Workflow.save(getTrxName(ctx)) == true) { - log.info("m_Workflow save success"); - record_log(ctx, 1, m_Workflow.getName(), "Workflow", m_Workflow - .get_ID(), AD_Backup_ID, Object_Status, "AD_Workflow", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Workflow")); - workflows.add(m_Workflow.getAD_Workflow_ID()); - element.recordId = m_Workflow.getAD_Workflow_ID(); - } else { - log.info("m_Workflow save failure"); - record_log(ctx, 0, m_Workflow.getName(), "Workflow", m_Workflow - .get_ID(), AD_Backup_ID, Object_Status, "AD_Workflow", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Workflow")); - throw new POSaveFailedException("MWorkflow"); - } - } else { - element.skip = true; - } - } - - /** - * @param ctx - * @param element - */ - public void endElement(Properties ctx, Element element) throws SAXException { - if (!element.defer && !element.skip && element.recordId > 0) { - Attributes atts = element.attributes; - //set start node - String name = atts.getValue("ADWorkflowNodeNameID"); - if (name != null && name.trim().length() > 0) { - MWorkflow m_Workflow = new MWorkflow(ctx, element.recordId, getTrxName(ctx)); - int id = get_IDWithMasterAndColumn(ctx, "AD_WF_Node", "Name", name, "AD_Workflow", m_Workflow.getAD_Workflow_ID()); - if (id <= 0) { - log.warning("Failed to resolve start node reference for workflow element. Workflow=" - + m_Workflow.getName() + " StartNode=" + name); - return; - } - m_Workflow.setAD_WF_Node_ID(id); - if (m_Workflow.save(getTrxName(ctx)) == true) { - log.info("m_Workflow update success"); - record_log(ctx, 1, m_Workflow.getName(), "Workflow", m_Workflow - .get_ID(), 0, "Update", "AD_Workflow", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Workflow")); - workflows.add(m_Workflow.getAD_Workflow_ID()); - element.recordId = m_Workflow.getAD_Workflow_ID(); - } else { - log.info("m_Workflow update fail"); - record_log(ctx, 0, m_Workflow.getName(), "Workflow", m_Workflow - .get_ID(), 0, "Update", "AD_Workflow", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_Workflow")); - throw new POSaveFailedException("MWorkflow"); - } - } - } - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_Workflow_ID = Env.getContextAsInt(ctx, - X_AD_Package_Exp_Detail.COLUMNNAME_AD_Workflow_ID); - if (workflows.contains(AD_Workflow_ID)) - return; - - workflows.add(AD_Workflow_ID); - String sql = "SELECT Name FROM AD_Workflow WHERE AD_Workflow_ID= " - + AD_Workflow_ID; - int ad_wf_nodenext_id = 0; - int ad_wf_nodenextcondition_id = 0; - AttributesImpl atts = new AttributesImpl(); - - PreparedStatement pstmt = null; - ResultSet rs = null; - pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - - try { - - rs = pstmt.executeQuery(); - - while (rs.next()) { - X_AD_Workflow m_Workflow = new X_AD_Workflow(ctx, - AD_Workflow_ID, null); - - createWorkflowBinding(atts, m_Workflow); - document.startElement("", "", "workflow", atts); - String sql1 = "SELECT AD_WF_Node_ID FROM AD_WF_Node WHERE AD_Workflow_ID = " - + AD_Workflow_ID - + " ORDER BY "+X_AD_WF_Node.COLUMNNAME_AD_WF_Node_ID - ; - - PreparedStatement pstmt1 = null; - ResultSet rs1 = null; - try { - pstmt1 = DB.prepareStatement(sql1, getTrxName(ctx)); - // Generated workflowNodeNext(s) and - // workflowNodeNextCondition(s) - rs1 = pstmt1.executeQuery(); - while (rs1.next()) { - - int nodeId = rs1.getInt("AD_WF_Node_ID"); - createNode(ctx, document, nodeId); - - ad_wf_nodenext_id = 0; - - String sqlnn = "SELECT AD_WF_NodeNext_ID FROM AD_WF_NodeNext WHERE AD_WF_Node_ID = ?" - + " ORDER BY "+X_AD_WF_NodeNext.COLUMNNAME_AD_WF_NodeNext_ID; - PreparedStatement pstmtnn = null; - ResultSet rsnn = null; - try { - pstmtnn = DB.prepareStatement(sqlnn, getTrxName(ctx)); - pstmtnn.setInt(1, nodeId); - rsnn = pstmtnn.executeQuery(); - while (rsnn.next()) { - ad_wf_nodenext_id = rsnn.getInt("AD_WF_NodeNext_ID"); - if (ad_wf_nodenext_id > 0) { - createNodeNext(ctx, document, ad_wf_nodenext_id); - - ad_wf_nodenextcondition_id = 0; - - String sqlnnc = "SELECT AD_WF_NextCondition_ID FROM AD_WF_NextCondition WHERE AD_WF_NodeNext_ID = ?" - + " ORDER BY "+X_AD_WF_NextCondition.COLUMNNAME_AD_WF_NextCondition_ID; - PreparedStatement pstmtnnc = null; - ResultSet rsnnc = null; - try { - pstmtnnc = DB.prepareStatement(sqlnnc, getTrxName(ctx)); - pstmtnnc.setInt(1, ad_wf_nodenext_id); - rsnnc = pstmtnnc.executeQuery(); - while (rsnnc.next()) { - ad_wf_nodenextcondition_id = rsnnc.getInt("AD_WF_NextCondition_ID"); - if (log.isLoggable(Level.INFO)) log.info("ad_wf_nodenextcondition_id: " + String.valueOf(ad_wf_nodenextcondition_id)); - if (ad_wf_nodenextcondition_id > 0) { - createNodeNextCondition(ctx, document, ad_wf_nodenextcondition_id); - } - } - } finally { - DB.close(rsnnc, pstmtnnc); - rsnnc = null; - pstmtnnc = null; - } - } - } - - } finally { - DB.close(rsnn, pstmtnn); - rsnn = null; - pstmtnn = null; - } - - } - } finally { - DB.close(rs1, pstmt1); - rs1 = null; - pstmt1 = null; - - document.endElement("", "", "workflow"); - } - } - } catch (Exception e) { - log.log(Level.SEVERE, "Workflow", e); - if (e instanceof SAXException) - throw (SAXException) e; - else if (e instanceof SQLException) - throw new DatabaseAccessException("Failed to export workflow.", e); - else - throw new RuntimeException("Failed to export workflow.", e); - } finally { - DB.close(rs, pstmt); - rs = null; - pstmt = null; - } - } - - private void createNodeNextCondition(Properties ctx, - TransformerHandler document, int ad_wf_nodenextcondition_id) - throws SAXException { - Env.setContext(ctx, - X_AD_WF_NextCondition.COLUMNNAME_AD_WF_NextCondition_ID, - ad_wf_nodenextcondition_id); - nextConditionHandler.create(ctx, document); - ctx.remove(X_AD_WF_NextCondition.COLUMNNAME_AD_WF_NextCondition_ID); - } - - private void createNodeNext(Properties ctx, TransformerHandler document, - int ad_wf_nodenext_id) throws SAXException { - Env.setContext(ctx, X_AD_WF_NodeNext.COLUMNNAME_AD_WF_NodeNext_ID, - ad_wf_nodenext_id); - nodeNextHandler.create(ctx, document); - ctx.remove(X_AD_WF_NodeNext.COLUMNNAME_AD_WF_NodeNext_ID); - } - - private void createNode(Properties ctx, TransformerHandler document, - int AD_WF_Node_ID) throws SAXException { - Env.setContext(ctx, X_AD_WF_Node.COLUMNNAME_AD_WF_Node_ID, - AD_WF_Node_ID); - nodeHandler.create(ctx, document); - ctx.remove(X_AD_WF_Node.COLUMNNAME_AD_WF_Node_ID); - } - - private AttributesImpl createWorkflowBinding(AttributesImpl atts, - X_AD_Workflow m_Workflow) { - String sql = null; - String name = null; - atts.clear(); - if (m_Workflow.getAD_Workflow_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_Workflow_ID","CDATA",Integer.toString(m_Workflow.getAD_Workflow_ID())); - atts.addAttribute("", "", "Value", "CDATA", (m_Workflow.getValue() != null ? m_Workflow.getValue() : "")); - atts.addAttribute("", "", "Name", "CDATA", - (m_Workflow.getName() != null ? m_Workflow.getName() : "")); - if (m_Workflow.getAD_Table_ID() > 0) { - sql = "SELECT TableName FROM AD_Table WHERE AD_Table_ID=?"; - name = DB.getSQLValueString(null, sql, m_Workflow.getAD_Table_ID()); - atts.addAttribute("", "", "ADTableNameID", "CDATA", - (name != null ? name : "")); - } else - atts.addAttribute("", "", "ADTableNameID", "CDATA", ""); - - if (m_Workflow.getAD_WF_Node_ID() > 0) { - sql = "SELECT Name FROM AD_WF_Node WHERE AD_WF_Node_ID=?"; - name = DB.getSQLValueString(null, sql, m_Workflow - .getAD_WF_Node_ID()); - atts.addAttribute("", "", "ADWorkflowNodeNameID", "CDATA", - (name != null ? name : "")); - } else - atts.addAttribute("", "", "ADWorkflowNodeNameID", "CDATA", ""); - - if (m_Workflow.getAD_WF_Responsible_ID() > 0) { - sql = "SELECT Name FROM AD_WF_Responsible WHERE AD_WF_Responsible_ID=?"; - name = DB.getSQLValueString(null, sql, m_Workflow - .getAD_WF_Responsible_ID()); - atts.addAttribute("", "", "ADWorkflowResponsibleNameID", "CDATA", - (name != null ? name : "")); - } else - atts.addAttribute("", "", "ADWorkflowResponsibleNameID", "CDATA", - ""); - - if (m_Workflow.getAD_WorkflowProcessor_ID() > 0) { - sql = "SELECT Name FROM AD_WorkflowProcessor_ID WHERE AD_WorkflowProcessor_ID=?"; - name = DB.getSQLValueString(null, sql, m_Workflow - .getAD_WorkflowProcessor_ID()); - atts.addAttribute("", "", "ADWorkflowProcessorNameID", "CDATA", - (name != null ? name : "")); - } else - atts.addAttribute("", "", "ADWorkflowProcessorNameID", "CDATA", ""); - - atts.addAttribute("","","isBetaFunctionality","CDATA",(m_Workflow.isBetaFunctionality()== true ? "true":"false")); - - atts.addAttribute("", "", "AccessLevel", "CDATA", (m_Workflow - .getAccessLevel() != null ? m_Workflow.getAccessLevel() : "")); - atts - .addAttribute("", "", "DurationUnit", "CDATA", (m_Workflow - .getDurationUnit() != null ? m_Workflow - .getDurationUnit() : "")); - atts.addAttribute("", "", "Help", "CDATA", - (m_Workflow.getHelp() != null ? m_Workflow.getHelp() : "")); - atts.addAttribute("", "", "Description", "CDATA", (m_Workflow - .getDescription() != null ? m_Workflow.getDescription() : "")); - atts.addAttribute("", "", "EntityType", "CDATA", (m_Workflow - .getEntityType() != null ? m_Workflow.getEntityType() : "")); - atts.addAttribute("", "", "Author", "CDATA", - (m_Workflow.getAuthor() != null ? m_Workflow.getAuthor() : "")); - atts.addAttribute("", "", "Version", "CDATA", ("" - + m_Workflow.getVersion() != null ? "" - + m_Workflow.getVersion() : "")); - // FIXME: Handle dates - // atts.addAttribute("","","ValidFrom","CDATA",(m_Workflow.getValidFrom - // ().toGMTString() != null ? - // m_Workflow.getValidFrom().toGMTString():"")); - // atts.addAttribute("","","ValidTo","CDATA",(m_Workflow.getValidTo - // ().toGMTString() != null ? - // m_Workflow.getValidTo().toGMTString():"")); - atts.addAttribute("", "", "Priority", "CDATA", ("" + m_Workflow - .getPriority())); - atts.addAttribute("", "", "Limit", "CDATA", - ("" + m_Workflow.getLimit())); - atts.addAttribute("", "", "Duration", "CDATA", ("" + m_Workflow - .getDuration())); - atts.addAttribute("", "", "Cost", "CDATA", ("" + m_Workflow.getCost())); - atts.addAttribute("", "", "WorkingTime", "CDATA", ("" + m_Workflow - .getWorkingTime())); - atts.addAttribute("", "", "WaitingTime", "CDATA", ("" + m_Workflow - .getWaitingTime())); - atts.addAttribute("", "", "PublishStatus", "CDATA", (m_Workflow - .getPublishStatus() != null ? m_Workflow.getPublishStatus() - : "")); - atts - .addAttribute("", "", "WorkflowType", "CDATA", (m_Workflow - .getWorkflowType() != null ? m_Workflow - .getWorkflowType() : "")); - atts.addAttribute("", "", "DocValueLogic", "CDATA", (m_Workflow - .getDocValueLogic() != null ? m_Workflow.getDocValueLogic() - : "")); - atts.addAttribute("", "", "isValid", "CDATA", - (m_Workflow.isValid() == true ? "true" : "false")); - // Doesn't appear to be necessary - // atts.addAttribute("","","SetupTime","CDATA",(""+m_Workflow.getSetupTime() - // != null ? ""+m_Workflow.getSetupTime():"")); - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowNodeElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowNodeElementHandler.java deleted file mode 100644 index 01e1533698..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowNodeElementHandler.java +++ /dev/null @@ -1,435 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - * Contributor(s): Victor Perez. victor.perez@e-evolution.com [Bugs-1789058 ] - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.math.BigDecimal; -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.X_AD_WF_Node; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class WorkflowNodeElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) - throws SAXException { - Attributes atts = element.attributes; - String elementValue = element.getElementValue(); - if (log.isLoggable(Level.INFO)) log.info(elementValue + " " + atts.getValue("Name")); - String entitytype = atts.getValue("EntityType"); - if (log.isLoggable(Level.INFO)) log.info("entitytype " + atts.getValue("EntityType")); - - if (isProcessElement(ctx, entitytype)) { - if (element.parent != null && element.parent.skip) { - element.skip = true; - return; - } - if (element.parent != null && element.parent.getElementValue().equals("workflow") - && element.parent.defer) { - element.unresolved = "Parent element mark as defer: " + atts.getValue("ADWorkflowNameID"); - element.defer = true; - return; - } - - int workflowId = 0; - String workflowName = atts.getValue("ADWorkflowNameID"); - if (element.parent != null && element.parent.getElementValue().equals("workflow") - && element.parent.recordId > 0) - workflowId = element.parent.recordId; - else { - workflowId = get_IDWithColumn(ctx, "AD_Workflow", "name", - workflowName); - if (workflowId <= 0) { - element.defer = true; - element.unresolved = "AD_Workflow: " + workflowName; - return; - } - else if (element.parent != null && element.parent.getElementValue().equals("workflow")) - element.parent.recordId = workflowId; - } - - String workflowNodeName = atts.getValue("Name").trim(); - - StringBuffer sqlB = new StringBuffer( - "SELECT ad_wf_node_id FROM AD_WF_Node WHERE AD_Workflow_ID=? and Name =?"); - - int id = DB.getSQLValue(getTrxName(ctx), sqlB.toString(), - workflowId, workflowNodeName); - - X_AD_WF_Node m_WFNode = new X_AD_WF_Node(ctx, id, getTrxName(ctx)); - int AD_Backup_ID = -1; - String Object_Status = null; - if (id <= 0 && atts.getValue("AD_WF_Node_ID") != null && Integer.parseInt(atts.getValue("AD_WF_Node_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_WFNode.setAD_WF_Node_ID(Integer.parseInt(atts.getValue("AD_WF_Node_ID"))); - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_WF_Node", m_WFNode); - Object_Status = "Update"; - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - m_WFNode.setValue(atts.getValue("Value")); - m_WFNode.setName(workflowNodeName); - m_WFNode.setAD_Workflow_ID(workflowId); - - String name = atts.getValue("ADProcessNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_Process", "Name", name); - if (id <= 0) { - element.defer = true; - element.unresolved = "AD_Process: " + name; - return; - } - m_WFNode.setAD_Process_ID(id); - } - - name = atts.getValue("ADFormNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_Form", "Name", name); - if (id <= 0) { - element.defer = true; - element.unresolved = "AD_Form: " + name; - return; - } - m_WFNode.setAD_Form_ID(id); - } - - name = atts.getValue("ADWorkflowResponsibleNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_WF_Responsible", "Name", name); - //TODO: export and import of ad_wf_responsible - /* - if (id <= 0) { - element.defer = true; - return; - }*/ - if (id > 0) - m_WFNode.setAD_WF_Responsible_ID(id); - } - - name = atts.getValue("ADWindowNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_Window", "Name", name); - if (id <= 0) { - element.defer = true; - element.unresolved = "AD_Window: " + name; - return; - } - m_WFNode.setAD_Window_ID(id); - } - - name = atts.getValue("ADImageNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_Image", "Name", name); - //TODO: export and import of ad_image - /* - if (id <= 0) { - element.defer = true; - return; - }*/ - if (id > 0) - m_WFNode.setAD_Image_ID(id); - } - - name = atts.getValue("ADWorkflowBlockNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_WF_Block", "Name", name); - //TODO: export and import of ad_workflow_block - /* - if (id <= 0) { - element.defer = true; - return; - }*/ - if (id > 0) - m_WFNode.setAD_WF_Block_ID(id); - } - - //[Bugs-1789058 ] - /* - name = atts.getValue("WorkflowNameID"); - if (name != null && name.trim().length() > 0) { - id = get_IDWithColumn(ctx, "AD_Workflow", "Name", name); - //TODO: export and import of ad_workflow - - if (id <= 0) { - element.defer = true; - element.unresolved = "Sub Workflow: " + name; - return; - } - if (id > 0) - m_WFNode.setWorkflow_ID(id); - }*/ - - /* - * FIXME: Do we need TaskName ? if - * (atts.getValue("ADTaskNameID")!=null){ String name = - * atts.getValue("ADTaskNameID"); sqlB = new StringBuffer ("SELECT - * AD_Task_ID FROM AD_Task WHERE Name= ?"); taskid = - * DB.getSQLValue(m_trxName,sqlB.toString(),name); } - */ - m_WFNode.setValue(atts.getValue("Value")); - m_WFNode.setEntityType(atts.getValue("EntityType")); - m_WFNode.setAction(getStringValue(atts,"Action")); - m_WFNode.setDocAction(getStringValue(atts, "DocAction")); - m_WFNode.setDescription(getStringValue(atts,"Description")); - m_WFNode.setJoinElement(atts.getValue("JoinElement")); - m_WFNode.setSplitElement(atts.getValue("SplitElement")); - if (getStringValue(atts, "XPosition") != null) - m_WFNode.setXPosition(Integer.valueOf(atts.getValue("XPosition"))); - if (getStringValue(atts, "YPosition") != null) - m_WFNode.setYPosition(Integer.valueOf(atts.getValue("YPosition"))); - m_WFNode.setWaitingTime(Integer.valueOf(atts - .getValue("WaitingTime"))); - if (getStringValue(atts, "WaitTime") != null) - m_WFNode.setWaitTime(Integer.valueOf(atts.getValue("WaitTime"))); - m_WFNode.setWorkingTime(Integer.valueOf(atts - .getValue("WorkingTime"))); - if (getStringValue(atts, "Cost") != null) - m_WFNode.setCost(new BigDecimal(atts.getValue("Cost"))); - if (getStringValue(atts, "Duration") != null) - m_WFNode.setDuration(Integer.valueOf(atts.getValue("Duration"))); - if (getStringValue(atts, "Priority") != null) - m_WFNode.setPriority(Integer.valueOf(atts.getValue("Priority"))); - m_WFNode.setStartMode(getStringValue(atts, "StartMode")); - m_WFNode.setSubflowExecution(getStringValue(atts,"SubflowExecution")); - m_WFNode.setIsCentrallyMaintained(Boolean.valueOf( - atts.getValue("IsCentrallyMaintained")).booleanValue()); - if (getStringValue(atts,"DynPriorityChange") != null) - m_WFNode.setDynPriorityChange(new BigDecimal(atts - .getValue("DynPriorityChange"))); - // m_WFNode.setAccessLevel (atts.getValue("AccessLevel")); - m_WFNode.setDynPriorityUnit (getStringValue(atts,"DynPriorityUnit")); - m_WFNode.setIsActive(atts.getValue("isActive") != null ? Boolean - .valueOf(atts.getValue("isActive")).booleanValue() : true); - m_WFNode.setValue(atts.getValue("Value")); - log.info("about to execute m_WFNode.save"); - if (m_WFNode.save(getTrxName(ctx)) == true) { - log.info("m_WFNode save success"); - record_log(ctx, 1, m_WFNode.getName(), "WFNode", m_WFNode - .get_ID(), AD_Backup_ID, Object_Status, "AD_WF_Node", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_WF_Node")); - } else { - log.info("m_WFNode save failure"); - record_log(ctx, 0, m_WFNode.getName(), "WFNode", m_WFNode - .get_ID(), AD_Backup_ID, Object_Status, "AD_WF_Node", - get_IDWithColumn(ctx, "AD_Table", "TableName", - "AD_WF_Node")); - throw new POSaveFailedException("WorkflowNode"); - } - } else { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int AD_WF_Node_ID = Env.getContextAsInt(ctx, - X_AD_WF_Node.COLUMNNAME_AD_WF_Node_ID); - AttributesImpl atts = new AttributesImpl(); - X_AD_WF_Node m_WF_Node = new X_AD_WF_Node(ctx, AD_WF_Node_ID, - getTrxName(ctx)); - - createWorkflowNodeBinding(atts, m_WF_Node); - document.startElement("", "", "workflowNode", atts); - document.endElement("", "", "workflowNode"); - } - - private AttributesImpl createWorkflowNodeBinding(AttributesImpl atts, - X_AD_WF_Node m_WF_Node) { - String sql = null; - String name = null; - atts.clear(); - if (m_WF_Node.getAD_WF_Node_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_WF_Node_ID","CDATA",Integer.toString(m_WF_Node.getAD_WF_Node_ID())); - atts.addAttribute("", "", "Value", "CDATA", (m_WF_Node.getValue() != null ? m_WF_Node.getValue() : "")); - atts.addAttribute("", "", "Name", "CDATA", - (m_WF_Node.getName() != null ? m_WF_Node.getName() : "")); - - if (m_WF_Node.getAD_Workflow_ID() > 0) { - sql = "SELECT Name FROM AD_Workflow WHERE AD_Workflow_ID=?"; - name = DB.getSQLValueString(null, sql, m_WF_Node - .getAD_Workflow_ID()); - atts.addAttribute("", "", "ADWorkflowNameID", "CDATA", name); - } else - atts.addAttribute("", "", "ADWorkflowNameID", "CDATA", ""); - - if (m_WF_Node.getAD_Window_ID() > 0) { - sql = "SELECT Name FROM AD_Window WHERE AD_Window_ID=?"; - name = DB.getSQLValueString(null, sql, m_WF_Node.getAD_Window_ID()); - if (name != null) - atts.addAttribute("", "", "ADWindowNameID", "CDATA", name); - else - atts.addAttribute("", "", "ADWindowNameID", "CDATA", ""); - } else { - atts.addAttribute("", "", "ADWindowNameID", "CDATA", ""); - } - - - if (m_WF_Node.getAD_Task_ID() > 0) { - sql = "SELECT Name FROM AD_Task WHERE AD_Task_ID=?"; - name = DB.getSQLValueString(null, sql, m_WF_Node.getAD_Task_ID()); - if (name != null) - atts.addAttribute("", "", "ADTaskNameID", "CDATA", name); - else - atts.addAttribute("", "", "ADTaskNameID", "CDATA", ""); - } else { - atts.addAttribute("", "", "ADTaskNameID", "CDATA", ""); - } - - - if (m_WF_Node.getAD_Process_ID() > 0) { - sql = "SELECT Name FROM AD_Process WHERE AD_Process_ID=?"; - name = DB - .getSQLValueString(null, sql, m_WF_Node.getAD_Process_ID()); - atts.addAttribute("", "", "ADProcessNameID", "CDATA", - (name != null ? name : "")); - } else - atts.addAttribute("", "", "ADProcessNameID", "CDATA", ""); - - if (m_WF_Node.getAD_Form_ID() > 0) { - sql = "SELECT Name FROM AD_Form WHERE AD_Form_ID=?"; - name = DB.getSQLValueString(null, sql, m_WF_Node.getAD_Form_ID()); - atts.addAttribute("", "", "ADFormNameID", "CDATA", - (name != null ? name : "")); - } else - atts.addAttribute("", "", "ADFormNameID", "CDATA", ""); - - if (m_WF_Node.getAD_WF_Block_ID() > 0) { - sql = "SELECT Name FROM AD_WF_Block WHERE AD_WF_Block_ID=?"; - name = DB.getSQLValueString(null, sql, m_WF_Node - .getAD_WF_Block_ID()); - atts.addAttribute("", "", "ADWorkflowBlockNameID", "CDATA", - (name != null ? name : "")); - } else - atts.addAttribute("", "", "ADWorkflowBlockNameID", "CDATA", ""); - - if (m_WF_Node.getAD_WF_Responsible_ID() > 0) { - sql = "SELECT Name FROM AD_WF_Responsible WHERE AD_WF_Responsible_ID=?"; - name = DB.getSQLValueString(null, sql, m_WF_Node - .getAD_WF_Responsible_ID()); - atts.addAttribute("", "", "ADWorkflowResponsibleNameID", "CDATA", - (name != null ? name : "")); - } else - atts.addAttribute("", "", "ADWorkflowResponsibleNameID", "CDATA", - ""); - - if (m_WF_Node.getAD_Image_ID() > 0) { - sql = "SELECT Name FROM AD_Image WHERE AD_Image_ID=?"; - name = DB.getSQLValueString(null, sql, m_WF_Node.getAD_Image_ID()); - if (name != null) - atts.addAttribute("", "", "ADImageNameID", "CDATA", name); - else - atts.addAttribute("", "", "ADImageNameID", "CDATA", ""); - } else { - atts.addAttribute("", "", "ADImageNameID", "CDATA", ""); - } - - //[Bugs-1789058 ] - if (m_WF_Node.getWorkflow_ID() > 0) { - sql = "SELECT Name FROM AD_Workflow WHERE AD_Workflow_ID=?"; - name = DB.getSQLValueString(null, sql, m_WF_Node.getWorkflow_ID()); - if (name != null) - atts.addAttribute("", "", "WorkflowNameID", "CDATA", name); - else - atts.addAttribute("", "", "WorkflowNameID", "CDATA", ""); - } else { - atts.addAttribute("", "", "WorkflowNameID", "CDATA", ""); - } - - - if (m_WF_Node.getAD_Column_ID() > 0) { - sql = "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID=?"; - name = DB.getSQLValueString(null, sql, m_WF_Node.getAD_Column_ID()); - atts.addAttribute("", "", "ADColumnNameID", "CDATA", - (name != null ? name : "")); - } else - atts.addAttribute("", "", "ADColumnNameID", "CDATA", ""); - atts.addAttribute("", "", "Value", "CDATA", (m_WF_Node - .getValue() != null ? m_WF_Node.getValue() : "")); - - atts.addAttribute("", "", "Value", "CDATA", (m_WF_Node - .getValue() != null ? m_WF_Node.getValue() : "")); - - atts.addAttribute("", "", "isActive", "CDATA", - (m_WF_Node.isActive() == true ? "true" : "false")); - atts.addAttribute("", "", "Description", "CDATA", (m_WF_Node - .getDescription() != null ? m_WF_Node.getDescription() : "")); - atts.addAttribute("", "", "Help", "CDATA", - (m_WF_Node.getHelp() != null ? m_WF_Node.getHelp() : "")); - atts.addAttribute("", "", "isCentrallyMaintained", "CDATA", (m_WF_Node - .isCentrallyMaintained() == true ? "true" : "false")); - - atts.addAttribute("", "", "Action", "CDATA", - (m_WF_Node.getAction() != null ? m_WF_Node.getAction() : "")); - atts.addAttribute("", "", "EntityType", "CDATA", (m_WF_Node - .getEntityType() != null ? m_WF_Node.getEntityType() : "")); - atts.addAttribute("", "", "XPosition", "CDATA", ("" + m_WF_Node - .getXPosition())); - atts.addAttribute("", "", "YPosition", "CDATA", ("" + m_WF_Node - .getYPosition())); - atts.addAttribute("", "", "SubflowExecution", "CDATA", (m_WF_Node - .getSubflowExecution() != null ? m_WF_Node - .getSubflowExecution() : "")); - atts.addAttribute("", "", "StartMode", "CDATA", (m_WF_Node - .getStartMode() != null ? m_WF_Node.getStartMode() : "")); - atts.addAttribute("", "", "Priority", "CDATA", ("" + m_WF_Node - .getPriority())); - atts.addAttribute("", "", "Duration", "CDATA", ("" + m_WF_Node - .getDuration())); - atts.addAttribute("", "", "Cost", "CDATA", ("" + m_WF_Node.getCost())); - atts.addAttribute("", "", "WorkingTime", "CDATA", ("" + m_WF_Node - .getWorkingTime())); - atts.addAttribute("", "", "WaitingTime", "CDATA", ("" + m_WF_Node - .getWaitingTime())); - atts.addAttribute("", "", "JoinElement", "CDATA", (m_WF_Node - .getJoinElement() != null ? m_WF_Node.getJoinElement() : "")); - atts.addAttribute("", "", "SplitElement", "CDATA", (m_WF_Node - .getSplitElement() != null ? m_WF_Node.getSplitElement() : "")); - atts.addAttribute("", "", "WaitTime", "CDATA", ("" + m_WF_Node - .getWaitTime())); - atts.addAttribute("", "", "AttributeName", "CDATA", - (m_WF_Node.getAttributeName() != null ? m_WF_Node - .getAttributeName() : "")); - atts.addAttribute("", "", "AttributeValue", "CDATA", (m_WF_Node - .getAttributeValue() != null ? m_WF_Node.getAttributeValue() - : "")); - atts.addAttribute("", "", "DocAction", "CDATA", (m_WF_Node - .getDocAction() != null ? m_WF_Node.getDocAction() : "")); - atts.addAttribute("", "", "DynPriorityUnit", "CDATA", (m_WF_Node - .getDynPriorityUnit() != null ? m_WF_Node.getDynPriorityUnit() - : "")); - atts.addAttribute("", "", "DynPriorityChange", "CDATA", ("" + m_WF_Node - .getDynPriorityChange())); - - return atts; - } -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowNodeNextConditionElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowNodeNextConditionElementHandler.java deleted file mode 100644 index 8a3b6c1f4d..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowNodeNextConditionElementHandler.java +++ /dev/null @@ -1,270 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.X_AD_WF_NextCondition; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.compiere.wf.MWFNextCondition; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class WorkflowNodeNextConditionElementHandler extends - AbstractElementHandler { - - public void startElement(Properties ctx, Element element) - throws SAXException { - Attributes atts = element.attributes; - String entitytype = atts.getValue("EntityType"); - if (log.isLoggable(Level.INFO)) log.info("entitytype " + atts.getValue("EntityType")); - - if (isProcessElement(ctx, entitytype)) { - if (element.parent != null && element.parent.skip) { - element.skip = true; - return; - } - - String workflowName = atts.getValue("ADWorkflowNameID"); - - int workflowId = get_IDWithColumn(ctx, "AD_Workflow", "name", - workflowName); - if (workflowId <= 0) { - element.defer = true; - element.unresolved = "AD_Workflow: " + workflowName; - return; - } - - String workflowNodeName = atts.getValue("ADWorkflowNodeNameID"); - String workflowNodeNextName = atts - .getValue("ADWorkflowNodeNextNameID"); - - StringBuffer sqlB = new StringBuffer( - "SELECT ad_wf_node_id FROM AD_WF_Node WHERE AD_Workflow_ID=? and Name =?"); - - int wfNodeId = DB.getSQLValue(getTrxName(ctx), sqlB.toString(), - workflowId, workflowNodeName); - if (wfNodeId <= 0) { - element.unresolved = "AD_WF_Node=" + workflowNodeName; - element.defer = true; - return; - } - - int wfNodeNextId = DB.getSQLValue(getTrxName(ctx), sqlB.toString(), - workflowId, workflowNodeNextName); - if (wfNodeNextId <= 0) { - element.unresolved = "AD_WF_Node=" + workflowNodeNextName; - element.defer = true; - return; - } - - sqlB = new StringBuffer( - "SELECT ad_wf_nodenext_id FROM AD_WF_NodeNext WHERE ad_wf_node_id =? and ad_wf_next_id =?"); - int wfNodeNextTablePKId = DB.getSQLValue(getTrxName(ctx), sqlB - .toString(), wfNodeId, wfNodeNextId); - - sqlB = new StringBuffer( - "SELECT ad_wf_nextcondition_id FROM AD_WF_NextCondition WHERE ad_wf_nodenext_id =?"); - int id = DB.getSQLValue(getTrxName(ctx), sqlB.toString(), - wfNodeNextTablePKId); - - MWFNextCondition m_WFNodeNextCondition = new MWFNextCondition(ctx, - id, getTrxName(ctx)); - int AD_Backup_ID = -1; - String Object_Status = null; - if (id <= 0 && atts.getValue("AD_WF_NextCondition_ID") != null && Integer.parseInt(atts.getValue("AD_WF_NextCondition_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_WFNodeNextCondition.setAD_WF_NextCondition_ID(Integer.parseInt(atts.getValue("AD_WF_NextCondition_ID"))); - if (id > 0) { - AD_Backup_ID = copyRecord(ctx, "AD_WF_NextCondition", - m_WFNodeNextCondition); - Object_Status = "Update"; - } else { - Object_Status = "New"; - AD_Backup_ID = 0; - } - - sqlB = new StringBuffer( - "SELECT AD_Column.ad_column_id FROM AD_Column, AD_Table WHERE AD_Column.ad_table_id = AD_Table.ad_table_id and AD_Table.name = '" - + atts.getValue("ADTableNameID") - + "' and AD_Column.name = ?"); - // int columnId = - // DB.getSQLValue(m_trxName,sqlB.toString(),atts.getValue("ADTableNameID"), - // atts.getValue("ADColumnNameID")); - int columnId = DB.getSQLValue(getTrxName(ctx), sqlB.toString(), - atts.getValue("ADColumnNameID")); - m_WFNodeNextCondition.setAD_Column_ID(columnId); - - m_WFNodeNextCondition.setAD_WF_NodeNext_ID(wfNodeNextTablePKId); - m_WFNodeNextCondition - .setIsActive(atts.getValue("isActive") != null ? Boolean - .valueOf(atts.getValue("isActive")).booleanValue() - : true); - m_WFNodeNextCondition.setAD_WF_NodeNext_ID(wfNodeNextTablePKId); - m_WFNodeNextCondition.setSeqNo(Integer.valueOf(atts - .getValue("SeqNo"))); - m_WFNodeNextCondition.setEntityType(atts.getValue("EntityType")); - m_WFNodeNextCondition.setAndOr(atts.getValue("AndOr")); - m_WFNodeNextCondition.setOperation(atts.getValue("Operation")); - m_WFNodeNextCondition.setValue(atts.getValue("Value")); - m_WFNodeNextCondition.setValue2(atts.getValue("Value2")); - - log.info("about to execute m_WFNodeNextCondition.save"); - if (m_WFNodeNextCondition.save(getTrxName(ctx)) == true) { - log.info("m_WFNodeNextCondition save success"); - record_log( - ctx, - 1, - String.valueOf(m_WFNodeNextCondition.get_ID()), - "WFNextCondition", - m_WFNodeNextCondition.get_ID(), - AD_Backup_ID, - Object_Status, - "AD_WF_NextCondition", - get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_WF_NextCondition")); - } else { - log.info("m_WFNodeNextCondition save failure"); - record_log( - ctx, - 0, - String.valueOf(m_WFNodeNextCondition.get_ID()), - "WFNextCondition", - m_WFNodeNextCondition.get_ID(), - AD_Backup_ID, - Object_Status, - "AD_WF_NextCondition", - get_IDWithColumn(ctx, "AD_Table", - "TableName", "AD_WF_NextCondition")); - throw new POSaveFailedException("WorkflowNodeNextCondition"); - } - } else { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int ad_wf_nodenextcondition_id = Env.getContextAsInt(ctx, - X_AD_WF_NextCondition.COLUMNNAME_AD_WF_NextCondition_ID); - X_AD_WF_NextCondition m_WF_NodeNextCondition = new X_AD_WF_NextCondition( - ctx, ad_wf_nodenextcondition_id, null); - AttributesImpl atts = new AttributesImpl(); - createWorkflowNodeNextConditionBinding(atts, m_WF_NodeNextCondition); - document.startElement("", "", "workflowNodeNextCondition", atts); - document.endElement("", "", "workflowNodeNextCondition"); - } - - private AttributesImpl createWorkflowNodeNextConditionBinding( - AttributesImpl atts, X_AD_WF_NextCondition m_WF_NodeNextCondition) { - String sql = null; - String name = null; - atts.clear(); - if (m_WF_NodeNextCondition.getAD_WF_NextCondition_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_WF_NextCondition_ID","CDATA",Integer.toString(m_WF_NodeNextCondition.getAD_WF_NextCondition_ID())); - - if (m_WF_NodeNextCondition.getAD_WF_NodeNext_ID() > 0) { - // FIXME: it appears nodes point back to themselves - // so a group by is necessary - sql = "SELECT AD_Workflow.Name FROM AD_Workflow, AD_WF_Node, AD_WF_NodeNext WHERE AD_Workflow.AD_Workflow_ID = AD_WF_Node.AD_Workflow_ID and AD_WF_Node.AD_WF_Node_ID = AD_WF_NodeNext.AD_WF_Node_ID and AD_WF_NodeNext.AD_WF_NodeNext_ID = ? group by AD_Workflow.Name"; - name = DB.getSQLValueString(null, sql, m_WF_NodeNextCondition - .getAD_WF_NodeNext_ID()); - atts.addAttribute("", "", "ADWorkflowNameID", "CDATA", name); - // FIXME: it appears nodes point back to themselves - // so a group by is necessary - sql = "SELECT AD_WF_Node.Name FROM AD_WF_Node, AD_WF_NodeNext WHERE AD_WF_Node.AD_WF_Node_ID = AD_WF_NodeNext.AD_WF_Node_ID and AD_WF_NodeNext.AD_WF_NodeNext_ID = ? group by AD_WF_Node.Name"; - name = DB.getSQLValueString(null, sql, m_WF_NodeNextCondition - .getAD_WF_NodeNext_ID()); - atts.addAttribute("", "", "ADWorkflowNodeNameID", "CDATA", name); - // FIXME: it appears nodes point back to themselves - // so a group by is necessary - sql = "SELECT AD_WF_Node.Name FROM AD_WF_Node, AD_WF_NodeNext, AD_WF_NextCondition WHERE AD_WF_Node.AD_WF_Node_ID = AD_WF_NodeNext.AD_WF_Next_ID and AD_WF_NodeNext.AD_WF_NodeNext_ID = ? group by AD_WF_Node.Name"; - name = DB.getSQLValueString(null, sql, m_WF_NodeNextCondition - .getAD_WF_NodeNext_ID()); - // log.log(Level.INFO,"node next name: ", name); - atts - .addAttribute("", "", "ADWorkflowNodeNextNameID", "CDATA", - name); - } - - if (m_WF_NodeNextCondition.getAD_Column_ID() > 0) { - - sql = "SELECT AD_Table.TableName FROM AD_Table, AD_Column, AD_WF_NextCondition WHERE AD_Column.AD_Table_ID=AD_Table.AD_Table_ID and AD_Column.AD_Column_ID = ?"; - name = DB.getSQLValueString(null, sql, m_WF_NodeNextCondition - .getAD_Column_ID()); - atts.addAttribute("", "", "ADTableNameID", "CDATA", name); - - sql = "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID=?"; - name = DB.getSQLValueString(null, sql, m_WF_NodeNextCondition - .getAD_Column_ID()); - atts.addAttribute("", "", "ADColumnNameID", "CDATA", name); - } else { - atts.addAttribute("", "", "ADTableNameID", "CDATA", name); - atts.addAttribute("", "", "ADColumnNameID", "CDATA", ""); - } - - // FIXME: don't know if I need org_id or not - // sql = "SELECT Name FROM AD_Org WHERE AD_Org_ID=?"; - // name = DB.getSQLValueString(null,sql,org_id); - // atts.addAttribute("","","orgname","CDATA",name); - - atts.addAttribute("", "", "isActive", "CDATA", (m_WF_NodeNextCondition - .isActive() == true ? "true" : "false")); - atts - .addAttribute( - "", - "", - "EntityType", - "CDATA", - (m_WF_NodeNextCondition.getEntityType() != null ? m_WF_NodeNextCondition - .getEntityType() - : "")); - atts.addAttribute("", "", "AndOr", "CDATA", (m_WF_NodeNextCondition - .getAndOr() != null ? m_WF_NodeNextCondition.getAndOr() : "")); - atts.addAttribute("", "", "Operation", "CDATA", (m_WF_NodeNextCondition - .getOperation() != null ? m_WF_NodeNextCondition.getOperation() - : "")); - atts.addAttribute("", "", "Value", "CDATA", (m_WF_NodeNextCondition - .getValue() != null ? m_WF_NodeNextCondition.getValue() : "")); - atts - .addAttribute( - "", - "", - "Value2", - "CDATA", - (m_WF_NodeNextCondition.getValue2() != null ? m_WF_NodeNextCondition - .getValue2() - : "")); - atts.addAttribute("", "", "SeqNo", "CDATA", (String - .valueOf(m_WF_NodeNextCondition.getSeqNo()) != null ? String - .valueOf(m_WF_NodeNextCondition.getSeqNo()) : "")); - - return atts; - } - -} diff --git a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowNodeNextElementHandler.java b/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowNodeNextElementHandler.java deleted file mode 100644 index 1c74250845..0000000000 --- a/org.adempiere.pipo.legacy/src/org/adempiere/pipo/handler/WorkflowNodeNextElementHandler.java +++ /dev/null @@ -1,276 +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) 2005 Robert Klein. robeklein@hotmail.com - * Contributor(s): Low Heng Sin hengsin@avantz.com - *****************************************************************************/ -package org.adempiere.pipo.handler; - -import java.util.Properties; -import java.util.logging.Level; - -import javax.xml.transform.sax.TransformerHandler; - -import org.adempiere.pipo.AbstractElementHandler; -import org.adempiere.pipo.Element; -import org.adempiere.pipo.PackOut; -import org.adempiere.pipo.exception.POSaveFailedException; -import org.compiere.model.X_AD_WF_NodeNext; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.compiere.wf.MWFNodeNext; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -public class WorkflowNodeNextElementHandler extends AbstractElementHandler { - - public void startElement(Properties ctx, Element element) throws SAXException { - Attributes atts = element.attributes; - String entitytype = atts.getValue("EntityType"); - if (log.isLoggable(Level.INFO)) log.info("entitytype "+atts.getValue("EntityType")); - - if (isProcessElement(ctx, entitytype)) { - if (element.parent != null && element.parent.skip) { - element.skip = true; - return; - } - - String workflowName = atts.getValue("ADWorkflowNameID"); - int workflowId = get_IDWithColumn(ctx, "AD_Workflow", "name", workflowName); - if (workflowId <= 0) { - element.defer = true; - element.unresolved = "AD_Workflow: " + workflowName; - return; - } - - String workflowNodeName = atts.getValue("ADWorkflowNodeNameID").trim(); - String workflowNodeNextName = atts.getValue("ADWorkflowNodeNextNameID").trim(); - - StringBuffer sqlB = new StringBuffer ("SELECT ad_wf_node_id FROM AD_WF_Node WHERE AD_Workflow_ID=? and Name =?"); - - int wfNodeId = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),workflowId,workflowNodeName); - if (wfNodeId <= 0) { - element.defer = true; - element.unresolved = "AD_WF_Node: " + workflowNodeName; - return; - } - - int wfNodeNextId = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),workflowId,workflowNodeNextName); - if (wfNodeNextId <= 0) { - element.defer = true; - element.unresolved = "AD_WF_Node: " + workflowNodeNextName; - return; - } - - sqlB = new StringBuffer ("SELECT ad_wf_nodenext_id FROM AD_WF_NodeNext WHERE ad_wf_node_id =? and ad_wf_next_id =?"); - - int id = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),wfNodeId,wfNodeNextId); - - MWFNodeNext m_WFNodeNext = new MWFNodeNext(ctx, id, getTrxName(ctx)); - int AD_Backup_ID = -1; - String Object_Status = null; - if (id <= 0 && atts.getValue("AD_WF_NodeNext_ID") != null && Integer.parseInt(atts.getValue("AD_WF_NodeNext_ID")) <= PackOut.MAX_OFFICIAL_ID) - m_WFNodeNext.setAD_WF_NodeNext_ID(Integer.parseInt(atts.getValue("AD_WF_NodeNext_ID"))); - if (id > 0){ - AD_Backup_ID = copyRecord(ctx, "AD_WF_NodeNext",m_WFNodeNext); - Object_Status = "Update"; - } - else{ - Object_Status = "New"; - AD_Backup_ID =0; - } - m_WFNodeNext.setAD_WF_Node_ID(wfNodeId); - m_WFNodeNext.setAD_WF_Next_ID(wfNodeNextId); - m_WFNodeNext.setEntityType(atts.getValue("EntityType")); - m_WFNodeNext.setSeqNo(Integer.valueOf(atts.getValue("SeqNo"))); - m_WFNodeNext.setIsActive(atts.getValue("isActive") != null ? Boolean.valueOf(atts.getValue("isActive")).booleanValue():true); - m_WFNodeNext.setIsStdUserWorkflow(atts.getValue("IsStdUserWorkflow") != null ? Boolean.valueOf(atts.getValue("IsStdUserWorkflow")).booleanValue():true); - log.info("about to execute m_WFNodeNext.save"); - if (m_WFNodeNext.save(getTrxName(ctx)) == true){ - log.info("m_WFNodeNext save success"); - record_log (ctx, 1, String.valueOf(m_WFNodeNext.get_ID()),"WFNodeNext", m_WFNodeNext.get_ID(),AD_Backup_ID, Object_Status,"AD_WF_NodeNext", - get_IDWithColumn(ctx, "AD_Table", "TableName", "AD_WF_NodeNext")); - } - else{ - log.info("m_WFNodeNext save failure"); - record_log (ctx, 0, String.valueOf(m_WFNodeNext.get_ID()),"WFNodeNext", m_WFNodeNext.get_ID(),AD_Backup_ID, Object_Status,"AD_WF_NodeNext", - get_IDWithColumn(ctx, "AD_Table", "TableName", "AD_WF_NodeNext")); - throw new POSaveFailedException("WorkflowNodeNext"); - } - } else { - element.skip = true; - } - } - - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) - throws SAXException { - int ad_wf_nodenext_id = Env.getContextAsInt(ctx, X_AD_WF_NodeNext.COLUMNNAME_AD_WF_NodeNext_ID); - X_AD_WF_NodeNext m_WF_NodeNext = new X_AD_WF_NodeNext( - ctx, ad_wf_nodenext_id, null); - AttributesImpl atts = new AttributesImpl(); - createWorkflowNodeNextBinding(atts, m_WF_NodeNext); - document.startElement("", "", "workflowNodeNext", - atts); - document.endElement("", "", "workflowNodeNext"); - - } - - private AttributesImpl createWorkflowNodeNextBinding(AttributesImpl atts, - X_AD_WF_NodeNext m_WF_NodeNext) - // public AttributesImpl createwf_nodenextBinding( AttributesImpl atts, - // X_AD_WF_NodeNext m_WF_NodeNext, X_AD_WF_Node m_WF_Node) - { - String sql = null; - String name = null; - atts.clear(); - if (m_WF_NodeNext.getAD_WF_NodeNext_ID() <= PackOut.MAX_OFFICIAL_ID) - atts.addAttribute("","","AD_WF_NodeNext_ID","CDATA",Integer.toString(m_WF_NodeNext.getAD_WF_NodeNext_ID())); - // log.log(Level.INFO,"m_WF_NodeNext.getAD_WF_Node_ID: ", - // m_WF_NodeNext.getAD_WF_Node_ID()); - // log.log(Level.INFO,"m_WF_NodeNext.getAD_WF_Next_ID: ", - // m_WF_NodeNext.getAD_WF_Next_ID()); - - if (m_WF_NodeNext.getAD_WF_Node_ID() > 0) { - sql = "SELECT AD_Workflow.Name FROM AD_Workflow, AD_WF_Node WHERE AD_Workflow.AD_Workflow_ID = AD_WF_Node.AD_Workflow_ID and AD_WF_Node.AD_WF_Node_ID =?"; - name = DB.getSQLValueString(null, sql, m_WF_NodeNext - .getAD_WF_Node_ID()); - atts.addAttribute("", "", "ADWorkflowNameID", "CDATA", name); - sql = "SELECT Name FROM AD_WF_Node WHERE AD_WF_Node_ID=?"; - name = DB.getSQLValueString(null, sql, m_WF_NodeNext - .getAD_WF_Node_ID()); - atts.addAttribute("", "", "ADWorkflowNodeNameID", "CDATA", name); - } - - if (m_WF_NodeNext.getAD_WF_Next_ID() > 0) { - sql = "SELECT Name FROM AD_WF_Node WHERE AD_WF_Node_ID=?"; - name = DB.getSQLValueString(null, sql, m_WF_NodeNext - .getAD_WF_Next_ID()); - // log.log(Level.INFO,"node next name: ", name); - atts - .addAttribute("", "", "ADWorkflowNodeNextNameID", "CDATA", - name); - } - - // FIXME: don't know if I need org_id or not - // sql = "SELECT Name FROM AD_Org WHERE AD_Org_ID=?"; - // name = DB.getSQLValueString(null,sql,org_id); - // atts.addAttribute("","","orgname","CDATA",name); - - atts.addAttribute("", "", "isActive", "CDATA", (m_WF_NodeNext - .isActive() == true ? "true" : "false")); - atts.addAttribute("", "", "EntityType", "CDATA", (m_WF_NodeNext - .getEntityType() != null ? m_WF_NodeNext.getEntityType() : "")); - atts.addAttribute("", "", "Description", "CDATA", - (m_WF_NodeNext.getDescription() != null ? m_WF_NodeNext - .getDescription() : "")); - atts.addAttribute("", "", "SeqNo", "CDATA", (String - .valueOf(m_WF_NodeNext.getSeqNo()) != null ? String - .valueOf(m_WF_NodeNext.getSeqNo()) : "")); - atts.addAttribute("", "", "IsStdUserWorkflow", "CDATA", (String - .valueOf(m_WF_NodeNext.isStdUserWorkflow()) != null ? String - .valueOf(m_WF_NodeNext.isStdUserWorkflow()) : "")); - - return atts; - } - - /* - private AttributesImpl createWorkflowNodeNextConditionBinding( - AttributesImpl atts, X_AD_WF_NextCondition m_WF_NodeNextCondition) { - String sql = null; - String name = null; - atts.clear(); - - if (m_WF_NodeNextCondition.getAD_WF_NodeNext_ID() > 0) { - // FIXME: it appears nodes point back to themselves - // so a group by is necessary - sql = "SELECT AD_Workflow.Name FROM AD_Workflow, AD_WF_Node, AD_WF_NodeNext WHERE AD_Workflow.AD_Workflow_ID = AD_WF_Node.AD_Workflow_ID and AD_WF_Node.AD_WF_Node_ID = AD_WF_NodeNext.AD_WF_Node_ID and AD_WF_NodeNext.AD_WF_NodeNext_ID = ? group by AD_Workflow.Name"; - name = DB.getSQLValueString(null, sql, m_WF_NodeNextCondition - .getAD_WF_NodeNext_ID()); - atts.addAttribute("", "", "ADWorkflowNameID", "CDATA", name); - // FIXME: it appears nodes point back to themselves - // so a group by is necessary - sql = "SELECT AD_WF_Node.Name FROM AD_WF_Node, AD_WF_NodeNext WHERE AD_WF_Node.AD_WF_Node_ID = AD_WF_NodeNext.AD_WF_Node_ID and AD_WF_NodeNext.AD_WF_NodeNext_ID = ? group by AD_WF_Node.Name"; - name = DB.getSQLValueString(null, sql, m_WF_NodeNextCondition - .getAD_WF_NodeNext_ID()); - atts.addAttribute("", "", "ADWorkflowNodeNameID", "CDATA", name); - // FIXME: it appears nodes point back to themselves - // so a group by is necessary - sql = "SELECT AD_WF_Node.Name FROM AD_WF_Node, AD_WF_NodeNext, AD_WF_NextCondition WHERE AD_WF_Node.AD_WF_Node_ID = AD_WF_NodeNext.AD_WF_Next_ID and AD_WF_NodeNext.AD_WF_NodeNext_ID = ? group by AD_WF_Node.Name"; - name = DB.getSQLValueString(null, sql, m_WF_NodeNextCondition - .getAD_WF_NodeNext_ID()); - // log.log(Level.INFO,"node next name: ", name); - atts - .addAttribute("", "", "ADWorkflowNodeNextNameID", "CDATA", - name); - } - - if (m_WF_NodeNextCondition.getAD_Column_ID() > 0) { - - sql = "SELECT AD_Table.TableName FROM AD_Table, AD_Column, AD_WF_NextCondition WHERE AD_Column.AD_Table_ID=AD_Table.AD_Table_ID and AD_Column.AD_Column_ID = ?"; - name = DB.getSQLValueString(null, sql, m_WF_NodeNextCondition - .getAD_Column_ID()); - atts.addAttribute("", "", "ADTableNameID", "CDATA", name); - - sql = "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID=?"; - name = DB.getSQLValueString(null, sql, m_WF_NodeNextCondition - .getAD_Column_ID()); - atts.addAttribute("", "", "ADColumnNameID", "CDATA", name); - } else { - atts.addAttribute("", "", "ADTableNameID", "CDATA", name); - atts.addAttribute("", "", "ADColumnNameID", "CDATA", ""); - } - - // FIXME: don't know if I need org_id or not - // sql = "SELECT Name FROM AD_Org WHERE AD_Org_ID=?"; - // name = DB.getSQLValueString(null,sql,org_id); - // atts.addAttribute("","","orgname","CDATA",name); - - atts.addAttribute("", "", "isActive", "CDATA", (m_WF_NodeNextCondition - .isActive() == true ? "true" : "false")); - atts - .addAttribute( - "", - "", - "EntityType", - "CDATA", - (m_WF_NodeNextCondition.getEntityType() != null ? m_WF_NodeNextCondition - .getEntityType() - : "")); - atts.addAttribute("", "", "AndOr", "CDATA", (m_WF_NodeNextCondition - .getAndOr() != null ? m_WF_NodeNextCondition.getAndOr() : "")); - atts.addAttribute("", "", "Operation", "CDATA", (m_WF_NodeNextCondition - .getOperation() != null ? m_WF_NodeNextCondition.getOperation() - : "")); - atts.addAttribute("", "", "Value", "CDATA", (m_WF_NodeNextCondition - .getValue() != null ? m_WF_NodeNextCondition.getValue() : "")); - atts - .addAttribute( - "", - "", - "Value2", - "CDATA", - (m_WF_NodeNextCondition.getValue2() != null ? m_WF_NodeNextCondition - .getValue2() - : "")); - atts.addAttribute("", "", "SeqNo", "CDATA", (String - .valueOf(m_WF_NodeNextCondition.getSeqNo()) != null ? String - .valueOf(m_WF_NodeNextCondition.getSeqNo()) : "")); - - return atts; - } - */ -} diff --git a/org.adempiere.pipo.legacy/src/test/functional/PackOutTest.java b/org.adempiere.pipo.legacy/src/test/functional/PackOutTest.java deleted file mode 100644 index 9b12e98120..0000000000 --- a/org.adempiere.pipo.legacy/src/test/functional/PackOutTest.java +++ /dev/null @@ -1,88 +0,0 @@ -//PackOutTest.java -package test.functional; - -import org.adempiere.pipo.IDFinder; -import org.adempiere.pipo.PackInHandler; -import org.adempiere.pipo.PackOut; -import org.compiere.model.MLocation; -import org.compiere.model.MPackageExp; -import org.compiere.model.X_AD_Package_Exp_Detail; -import org.compiere.process.ProcessInfo; -import org.compiere.util.Trx; - -import test.AdempiereTestCase; - -public class PackOutTest extends AdempiereTestCase { - - // Test: Specific variables - @SuppressWarnings("unused") - private MLocation location = null; - - - public void testPackOut() { - PackOut m_PackOut = new PackOut(); - @SuppressWarnings("unused") - PackInHandler m_PackInHandler = new PackInHandler(); - Trx m_trx = Trx.get(getTrxName(), true); - int m_ad_process_id = IDFinder.get_IDWithColumn("ad_process", "Name", "PackOut", getAD_Client_ID(), getTrxName()); - int m_ad_table_id = IDFinder.get_IDWithColumn("ad_table", "Name", "AD_Package_Exp_ID", getAD_Client_ID(), getTrxName()); - - //Create 2Pack Export Package - MPackageExp m_MPackageExp = new MPackageExp(getCtx(), 0, getTrxName()); - m_MPackageExp.setName("testSqlStatement2Pack"); - m_MPackageExp.setIsActive(true); - m_MPackageExp.setDescription("Test Output Package"); - m_MPackageExp.setEMail("wgheath@gmail.com"); - m_MPackageExp.setUserName("wgheath@gmail.com"); - m_MPackageExp.setFile_Directory("packages/"); - m_MPackageExp.setInstructions("use 2pack to import this package"); - m_MPackageExp.setReleaseNo( X_AD_Package_Exp_Detail.RELEASENO_NoSpecificRelease); - m_MPackageExp.setVersion("1.0"); - m_MPackageExp.setPK_Version("1.0"); - - boolean saveResult = m_MPackageExp.save(); - assertTrue("MPackageExp.save()", saveResult); - - X_AD_Package_Exp_Detail m_PackDetail =new X_AD_Package_Exp_Detail(getCtx(), 0, getTrxName()); - m_PackDetail.setAD_Org_ID(m_MPackageExp.getAD_Org_ID()); - m_PackDetail.setAD_Package_Exp_ID(m_MPackageExp.get_ID()); - m_MPackageExp.setIsActive(true); - m_PackDetail.setType(X_AD_Package_Exp_Detail.TYPE_SQLStatement); - m_PackDetail.setDBType("ALL"); - m_PackDetail.setSQLStatement("select * from ad_table"); - m_PackDetail.setDescription("2pack test sql statement"); - /*m_PackDetail.setFileName(rs.getString("FILENAME")); - m_PackDetail.setAD_Client_ID(m_MPackageExp.getAD_Client_ID()); - m_PackDetail.setDescription(rs.getString("DESCRIPTION")); - m_PackDetail.setTarget_Directory(rs.getString("TARGET_DIRECTORY")); - m_PackDetail.setFile_Directory(rs.getString("FILE_DIRECTORY")); - m_PackDetail.setDestination_Directory(rs.getString("DESTINATION_DIRECTORY")); - m_PackDetail.setAD_Workflow_ID(rs.getInt("AD_WORKFLOW_ID")); - m_PackDetail.setAD_Window_ID(rs.getInt("AD_WINDOW_ID")); - m_PackDetail.setAD_Role_ID(rs.getInt("AD_ROLE_ID")); - m_PackDetail.setAD_Process_ID(rs.getInt("AD_PROCESS_ID")); - m_PackDetail.setAD_Menu_ID(rs.getInt("AD_MENU_ID")); - m_PackDetail.setAD_ImpFormat_ID(rs.getInt("AD_IMPFORMAT_ID")); - m_PackDetail.setAD_Workbench_ID(rs.getInt("AD_WORKBENCH_ID")); - m_PackDetail.setAD_Table_ID(rs.getInt("AD_TABLE_ID")); - m_PackDetail.setAD_Form_ID(rs.getInt("AD_FORM_ID")); - m_PackDetail.setAD_ReportView_ID(rs.getInt("AD_REPORTVIEW_ID")); - */ - m_PackDetail.setLine(10); - saveResult = m_PackDetail.save(); - assertTrue("X_AD_Package_Exp_Detail.save()", saveResult); - - @SuppressWarnings("unused") - int m_ad_record_id = IDFinder.get_IDWithColumn("ad_package_exp", "Name", "test2packJunit", getAD_Client_ID(), getTrxName()); - - ProcessInfo m_ProcessInfo = new ProcessInfo("PackOut", m_ad_process_id, m_ad_table_id, m_MPackageExp.get_ID()); - m_PackOut.startProcess(getCtx(), m_ProcessInfo, m_trx); - assertFalse("PackOut", m_ProcessInfo.isError()); - - try { - commit(); - } catch (Exception e) { - fail(e.getLocalizedMessage()); - } - } -}