diff --git a/db/ddlutils/oracle/views/M_CostMovement_V.sql b/db/ddlutils/oracle/views/M_CostMovement_V.sql new file mode 100644 index 0000000000..2adaf9fcab --- /dev/null +++ b/db/ddlutils/oracle/views/M_CostMovement_V.sql @@ -0,0 +1,7 @@ +CREATE OR REPLACE VIEW m_costmovement_v AS +SELECT a.ad_client_id, a.ad_org_id, b.c_acctschema_id, a.m_costhistory_id, a.m_costtype_id, a.m_costelement_id, a.m_attributesetinstance_id, b.m_product_id, a.oldqty, a.newqty, a.oldcostprice, a.newcostprice, a.oldcqty, a.newcqty, a.oldcamt, a.newcamt, b.qty, b.amt, b.deltaqty, b.deltaamt, b.c_orderline_id, b.m_inoutline_id, b.c_invoiceline_id, b.m_movementline_id, b.m_inventoryline_id, b.m_productionline_id, b.c_projectissue_id, a.m_costdetail_id, b.description, a.created, a.createdby, a.updated, a.updatedby, a.isactive + FROM m_costhistory a + JOIN m_costdetail b ON a.m_costdetail_id = b.m_costdetail_id + ORDER BY a.m_costhistory_id +; + diff --git a/db/ddlutils/postgresql/views/M_CostMovement_V.sql b/db/ddlutils/postgresql/views/M_CostMovement_V.sql new file mode 100644 index 0000000000..2adaf9fcab --- /dev/null +++ b/db/ddlutils/postgresql/views/M_CostMovement_V.sql @@ -0,0 +1,7 @@ +CREATE OR REPLACE VIEW m_costmovement_v AS +SELECT a.ad_client_id, a.ad_org_id, b.c_acctschema_id, a.m_costhistory_id, a.m_costtype_id, a.m_costelement_id, a.m_attributesetinstance_id, b.m_product_id, a.oldqty, a.newqty, a.oldcostprice, a.newcostprice, a.oldcqty, a.newcqty, a.oldcamt, a.newcamt, b.qty, b.amt, b.deltaqty, b.deltaamt, b.c_orderline_id, b.m_inoutline_id, b.c_invoiceline_id, b.m_movementline_id, b.m_inventoryline_id, b.m_productionline_id, b.c_projectissue_id, a.m_costdetail_id, b.description, a.created, a.createdby, a.updated, a.updatedby, a.isactive + FROM m_costhistory a + JOIN m_costdetail b ON a.m_costdetail_id = b.m_costdetail_id + ORDER BY a.m_costhistory_id +; + diff --git a/migration/i1.0b-release/oracle/201305031441_IDEMPIERE-909.sql b/migration/i1.0b-release/oracle/201305031441_IDEMPIERE-909.sql new file mode 100644 index 0000000000..ce31fd0284 --- /dev/null +++ b/migration/i1.0b-release/oracle/201305031441_IDEMPIERE-909.sql @@ -0,0 +1,8 @@ +-- May 3, 2013 2:40:20 PM COT +-- IDEMPIERE-909 Enable back After Order delivered invoice rule +UPDATE AD_Ref_List SET IsActive='Y',Updated=TO_DATE('2013-05-03 14:40:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Ref_List_ID=214 +; + +SELECT register_migration_script('201305031441_IDEMPIERE-909.sql') FROM dual +; + diff --git a/migration/i1.0b-release/oracle/201305041605_IDEMPIERE-894.sql b/migration/i1.0b-release/oracle/201305041605_IDEMPIERE-894.sql new file mode 100644 index 0000000000..b6fc7be93e --- /dev/null +++ b/migration/i1.0b-release/oracle/201305041605_IDEMPIERE-894.sql @@ -0,0 +1,12 @@ +-- May 4, 2013 4:02:25 PM COT +-- IDEMPIERE-894 Not Possible to Link Business Partner to an Organization +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_DATE('2013-05-04 16:02:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=10927 +; + +-- May 4, 2013 4:03:03 PM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_DATE('2013-05-04 16:03:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=8757 +; + +SELECT register_migration_script('201305041605_IDEMPIERE-894.sql') FROM dual +; + diff --git a/migration/i1.0b-release/postgresql/201305031441_IDEMPIERE-909.sql b/migration/i1.0b-release/postgresql/201305031441_IDEMPIERE-909.sql new file mode 100644 index 0000000000..0be1912a42 --- /dev/null +++ b/migration/i1.0b-release/postgresql/201305031441_IDEMPIERE-909.sql @@ -0,0 +1,8 @@ +-- May 3, 2013 2:40:20 PM COT +-- IDEMPIERE-909 Enable back After Order delivered invoice rule +UPDATE AD_Ref_List SET IsActive='Y',Updated=TO_TIMESTAMP('2013-05-03 14:40:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Ref_List_ID=214 +; + +SELECT register_migration_script('201305031441_IDEMPIERE-909.sql') FROM dual +; + diff --git a/migration/i1.0b-release/postgresql/201305041605_IDEMPIERE-894.sql b/migration/i1.0b-release/postgresql/201305041605_IDEMPIERE-894.sql new file mode 100644 index 0000000000..9f8c7364c4 --- /dev/null +++ b/migration/i1.0b-release/postgresql/201305041605_IDEMPIERE-894.sql @@ -0,0 +1,12 @@ +-- May 4, 2013 4:02:25 PM COT +-- IDEMPIERE-894 Not Possible to Link Business Partner to an Organization +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2013-05-04 16:02:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=10927 +; + +-- May 4, 2013 4:03:03 PM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2013-05-04 16:03:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=8757 +; + +SELECT register_migration_script('201305041605_IDEMPIERE-894.sql') FROM dual +; + diff --git a/org.adempiere.base.process/src/org/compiere/process/CopyFromJournalDoc.java b/org.adempiere.base.process/src/org/compiere/process/CopyFromJournalDoc.java index 55007a1df6..82a54cc8bd 100644 --- a/org.adempiere.base.process/src/org/compiere/process/CopyFromJournalDoc.java +++ b/org.adempiere.base.process/src/org/compiere/process/CopyFromJournalDoc.java @@ -62,7 +62,7 @@ public class CopyFromJournalDoc extends SvrProcess MJournal from = new MJournal (getCtx(), m_GL_Journal_ID, get_TrxName()); MJournal to = new MJournal (getCtx(), To_GL_Journal_ID, get_TrxName()); // - int no = to.copyLinesFrom(from, from.getDateAcct(), 'x'); + int no = to.copyLinesFrom(from, to.getDateAcct(), 'x'); // return "@Copied@=" + no; } // doIt diff --git a/org.adempiere.base/src/org/adempiere/base/IGridTabExporter.java b/org.adempiere.base/src/org/adempiere/base/IGridTabExporter.java index cfcfef6647..b259811269 100644 --- a/org.adempiere.base/src/org/adempiere/base/IGridTabExporter.java +++ b/org.adempiere.base/src/org/adempiere/base/IGridTabExporter.java @@ -32,7 +32,7 @@ public interface IGridTabExporter { * @param isCurrentRowOnly * @param file */ - public void export(GridTab gridTab, List childs, boolean isCurrentRowOnly, File file); + public void export(GridTab gridTab, List childs, boolean isCurrentRowOnly, File file, int indxDetailSelected); /** * @return file extension diff --git a/org.adempiere.base/src/org/adempiere/impexp/GridTabCSVExporter.java b/org.adempiere.base/src/org/adempiere/impexp/GridTabCSVExporter.java index 74595924c0..cbb4cb39ea 100644 --- a/org.adempiere.base/src/org/adempiere/impexp/GridTabCSVExporter.java +++ b/org.adempiere.base/src/org/adempiere/impexp/GridTabCSVExporter.java @@ -69,7 +69,7 @@ public class GridTabCSVExporter implements IGridTabExporter private static CLogger log = CLogger.getCLogger(GridTabCSVExporter.class); @Override - public void export(GridTab gridTab, List childs, boolean currentRowOnly, File file) { + public void export(GridTab gridTab, List childs, boolean currentRowOnly, File file,int indxDetailSelected) { ICsvMapWriter mapWriter = null; Map tabMapDetails = new HashMap(); @@ -129,6 +129,9 @@ public class GridTabCSVExporter implements IGridTabExporter int specialDetDispayType = 0; int numOfTabs=0; for(GridTab detail: childs){ + + if(indxDetailSelected != detail.getTabNo()) + continue; if(!detail.isDisplayed()) continue; diff --git a/org.adempiere.base/src/org/adempiere/impexp/GridTabCSVImporter.java b/org.adempiere.base/src/org/adempiere/impexp/GridTabCSVImporter.java index ebcc3b9b51..6fdcbf3161 100644 --- a/org.adempiere.base/src/org/adempiere/impexp/GridTabCSVImporter.java +++ b/org.adempiere.base/src/org/adempiere/impexp/GridTabCSVImporter.java @@ -459,12 +459,11 @@ public class GridTabCSVImporter implements IGridTabImporter if(isInsertMode()) logMsg = Msg.getMsg(Env.getCtx(), "Inserted")+" "+ po.toString(); - else + else{ logMsg = Msg.getMsg(Env.getCtx(), "Updated")+" "+ po.toString(); - - //if it's parent record and there are details, parent needs to be refreshed - if(currentGridTab.equals(gridTab) && sortedtTabMapIndexes.size()>1) - currentGridTab.dataRefresh(false); + if(currentGridTab.equals(gridTab) && sortedtTabMapIndexes.size()>1) + currentGridTab.dataRefresh(true); + } } else { ValueNamePair ppE = CLogger.retrieveWarning(); if (ppE==null) @@ -482,11 +481,17 @@ public class GridTabCSVImporter implements IGridTabImporter if(currentGridTab.equals(gridTab) && masterRecord==null){ isMasterok = false; + rowResult.append("<"+currentGridTab.getTableName()+">: "); + rowResult.append(logMsg); + rowResult.append(" / "); break; } if(!currentGridTab.equals(gridTab) && masterRecord!=null){ isDetailok = false; + rowResult.append("<"+currentGridTab.getTableName()+">: "); + rowResult.append(logMsg); + rowResult.append(" / "); break; } } @@ -543,7 +548,6 @@ public class GridTabCSVImporter implements IGridTabImporter row =row.replaceAll("Inserted","RolledBack"); logFileW.write(row); } - gridTab.dataRefreshAll(); }else{ if(isThereDocAction){ @@ -581,13 +585,13 @@ public class GridTabCSVImporter implements IGridTabImporter } if(masterRecord!=null){ - gridTab.getTableModel().dataRequery(masterRecord.get_WhereClause(true),false,0,false); - gridTab.navigateCurrent(); - gridTab.getTableModel().setImportingMode(false, null); - + gridTab.query(false); + gridTab.getTableModel().setImportingMode(false,null); for(GridTab detail: childs) - if(detail.getTableModel().isOpen()) + if(detail.getTableModel().isOpen()){ + detail.query(true); detail.getTableModel().setImportingMode(false,null); + } } trx.close(); trx=null; @@ -1227,7 +1231,7 @@ public class GridTabCSVImporter implements IGridTabImporter } if (isUpdateMode()){ if(gridTab.getTableModel().getRowCount()==1){ - gridTab.navigateRelative(gridTab.getCurrentRow()); + gridTab.navigateCurrent(); return null; } else if(gridTab.getTableModel().getRowCount()<=0) @@ -1237,7 +1241,7 @@ public class GridTabCSVImporter implements IGridTabImporter } if (isMergeMode()){ if(gridTab.getTableModel().getRowCount()==1){ - gridTab.navigateRelative(gridTab.getCurrentRow()); + gridTab.navigateCurrent(); m_import_mode = IMPORT_MODE_UPDATE; }else if(gridTab.getTableModel().getRowCount()<=0) m_import_mode = IMPORT_MODE_INSERT; diff --git a/org.adempiere.base/src/org/adempiere/impexp/GridTabExcelExporter.java b/org.adempiere.base/src/org/adempiere/impexp/GridTabExcelExporter.java index e8ffe79949..8b7616a86a 100644 --- a/org.adempiere.base/src/org/adempiere/impexp/GridTabExcelExporter.java +++ b/org.adempiere.base/src/org/adempiere/impexp/GridTabExcelExporter.java @@ -153,7 +153,7 @@ public class GridTabExcelExporter extends AbstractExcelExporter implements IGrid } @Override - public void export(GridTab gridTab, List childs, boolean currentRowOnly, File file) { + public void export(GridTab gridTab, List childs, boolean currentRowOnly, File file,int indxDetailSelected) { m_tab = gridTab; setCurrentRowOnly(currentRowOnly); try { diff --git a/org.adempiere.base/src/org/compiere/model/GridTable.java b/org.adempiere.base/src/org/compiere/model/GridTable.java index ac207738cc..3edd09bed1 100644 --- a/org.adempiere.base/src/org/compiere/model/GridTable.java +++ b/org.adempiere.base/src/org/compiere/model/GridTable.java @@ -2822,7 +2822,7 @@ public class GridTable extends AbstractTableModel ResultSet rs = null; try { - pstmt = DB.prepareStatement(sql, null); + pstmt = DB.prepareStatement(sql,get_TrxName()); rs = pstmt.executeQuery(); // only one row if (rs.next()) @@ -3681,7 +3681,7 @@ public class GridTable extends AbstractTableModel String sql = "SELECT " + columns + " FROM " + m_tableName + " WHERE " + m_tableName + "_ID=?"; try { - pstmt = DB.prepareStatement(sql, null); + pstmt = DB.prepareStatement(sql, get_TrxName()); pstmt.setInt(1, getKeyID(row)); rs = pstmt.executeQuery(); if (rs.next()) { @@ -3717,9 +3717,13 @@ public class GridTable extends AbstractTableModel if (hasProcessed) { Boolean memProcessed = null; memProcessed = (Boolean) getOldValue(row, colProcessed); - if (memProcessed == null) - memProcessed = (Boolean) getValueAt(row, colProcessed); - + if (memProcessed == null){ + if(getValueAt(row, colProcessed) instanceof Boolean ) + memProcessed = (Boolean) getValueAt(row, colProcessed); + else if (getValueAt(row, colProcessed) instanceof String ) + memProcessed = Boolean.valueOf((String)getValueAt(row, colProcessed)); + } + Boolean dbProcessed = Boolean.TRUE; if (! dbProcessedS.equals("Y")) dbProcessed = Boolean.FALSE; diff --git a/org.adempiere.base/src/org/compiere/model/MBPartner.java b/org.adempiere.base/src/org/compiere/model/MBPartner.java index 90975de351..9c96bb9fda 100644 --- a/org.adempiere.base/src/org/compiere/model/MBPartner.java +++ b/org.adempiere.base/src/org/compiere/model/MBPartner.java @@ -538,7 +538,7 @@ public class MBPartner extends X_C_BPartner if (AD_OrgBP_ID == 0) super.setAD_OrgBP_ID (null); else - super.setAD_OrgBP_ID (String.valueOf(AD_OrgBP_ID)); + super.set_Value("AD_OrgBP_ID", AD_OrgBP_ID); } // setAD_OrgBP_ID /** diff --git a/org.adempiere.base/src/org/compiere/print/DataEngine.java b/org.adempiere.base/src/org/compiere/print/DataEngine.java index a81892f9d8..0489bf31d8 100644 --- a/org.adempiere.base/src/org/compiere/print/DataEngine.java +++ b/org.adempiere.base/src/org/compiere/print/DataEngine.java @@ -370,6 +370,9 @@ public class DataEngine eSql = MLookupFactory.getLookup_TableDirEmbed(m_language, ColumnName, tableName); } + if (Util.isEmpty(eSql)) { // No Identifier records found + eSql = lookupSQL; + } // DisplayColumn String display = ColumnName; // => (..) AS AName, Table.ID, diff --git a/org.adempiere.pipo/src/org/adempiere/pipo2/GridTab2PackExporter.java b/org.adempiere.pipo/src/org/adempiere/pipo2/GridTab2PackExporter.java index e85da83e52..bd5c21cc0e 100644 --- a/org.adempiere.pipo/src/org/adempiere/pipo2/GridTab2PackExporter.java +++ b/org.adempiere.pipo/src/org/adempiere/pipo2/GridTab2PackExporter.java @@ -43,7 +43,7 @@ public class GridTab2PackExporter implements IGridTabExporter { */ @SuppressWarnings({ "rawtypes", "unchecked" }) @Override - public void export(GridTab gridTab, List childs, boolean currentRowOnly, File file) { + public void export(GridTab gridTab, List childs, boolean currentRowOnly, File file,int indxDetailSelected) { String tableName = gridTab.getTableName(); PackOut packOut = new PackOut(); packOut.setCtx(Env.getCtx()); diff --git a/org.adempiere.ui.swing/src/org/compiere/apps/AExport.java b/org.adempiere.ui.swing/src/org/compiere/apps/AExport.java index 002da6a387..972b69db93 100644 --- a/org.adempiere.ui.swing/src/org/compiere/apps/AExport.java +++ b/org.adempiere.ui.swing/src/org/compiere/apps/AExport.java @@ -160,6 +160,6 @@ public class AExport childs.add(gc.getMTab()); } - exporter.export(tab, childs, currentRowOnly, outFile); + exporter.export(tab, childs, currentRowOnly, outFile,0); } } diff --git a/org.adempiere.ui.zk.example/src/org/adempiere/ui/zk/example/action/ExportWindow.java b/org.adempiere.ui.zk.example/src/org/adempiere/ui/zk/example/action/ExportWindow.java index 9e67901d30..a7d44ab704 100644 --- a/org.adempiere.ui.zk.example/src/org/adempiere/ui/zk/example/action/ExportWindow.java +++ b/org.adempiere.ui.zk.example/src/org/adempiere/ui/zk/example/action/ExportWindow.java @@ -173,7 +173,11 @@ public class ExportWindow extends Window implements EventListener { childs.add(adTabPanel.getGridTab()); } - exporter.export(panel.getActiveGridTab(), childs, currentRowOnly, file); + int indxDetailSelected = 0; + if( adTab.getSelectedDetailADTabpanel()!=null ) + indxDetailSelected = adTab.getSelectedDetailADTabpanel().getGridTab().getTabNo(); + + exporter.export(panel.getActiveGridTab(), childs, currentRowOnly,file,indxDetailSelected); onClose(); AMedia media = null; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WCharge.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WCharge.java index 39d477556c..086514f47e 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WCharge.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WCharge.java @@ -295,13 +295,13 @@ public class WCharge extends Charge implements IFormController, EventListener, private void btnCurrentDateClicked() { calendars.setCurrentDate(Calendar.getInstance(calendars.getDefaultTimeZone()).getTime()); updateDateLabel(); + updateUI(); } private void divArrowClicked(boolean isNext) { @@ -388,6 +389,7 @@ public class DPCalendar extends DashboardPanel implements EventListener, else calendars.previousPage(); updateDateLabel(); + updateUI(); } @Override diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTableDirEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTableDirEditor.java index 93b4875e68..e2a1aa45ec 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTableDirEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTableDirEditor.java @@ -281,7 +281,7 @@ ContextMenuListener, IZoomableEditor //still not in list, reset to zero if (!getComponent().isSelected(value)) { - if (value instanceof Integer && gridField != null && gridField.getDisplayType() != DisplayType.ID) // for IDs is ok to be out of the list + if (value instanceof Integer && gridField != null && gridField.getDisplayType() != DisplayType.ID && !gridTab.getTableModel().isImporting()) // for IDs is ok to be out of the list { getComponent().setValue(null); if (curValue == null) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ExportAction.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ExportAction.java index 5da2684179..306014ef8f 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ExportAction.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ExportAction.java @@ -205,8 +205,12 @@ public class ExportAction implements EventListener tables.add(tableName); childs.add(adTabPanel.getGridTab()); } - - exporter.export(panel.getActiveGridTab(), childs, currentRowOnly, file); + + int indxDetailSelected = 0; + if( adTab.getSelectedDetailADTabpanel()!=null ) + indxDetailSelected = adTab.getSelectedDetailADTabpanel().getGridTab().getTabNo(); + + exporter.export(panel.getActiveGridTab(), childs, currentRowOnly,file,indxDetailSelected); winExportFile.onClose(); winExportFile = null; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ReportAction.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ReportAction.java index 891b4e1fab..bf8b4d0b13 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ReportAction.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ReportAction.java @@ -189,9 +189,12 @@ public class ReportAction implements EventListener else if(event.getTarget() == chkExport) cboExportType.setVisible(chkExport.isChecked()); else if (event.getName().equals("onValidate")) { - validate(); - Clients.clearBusy(); - panel.getComponent().invalidate(); + try { + validate(); + } finally { + Clients.clearBusy(); + panel.getComponent().invalidate(); + } } } diff --git a/org.adempiere.ui/src/org/compiere/apps/form/Charge.java b/org.adempiere.ui/src/org/compiere/apps/form/Charge.java index 9de832c1dc..ca37b6a854 100644 --- a/org.adempiere.ui/src/org/compiere/apps/form/Charge.java +++ b/org.adempiere.ui/src/org/compiere/apps/form/Charge.java @@ -214,6 +214,7 @@ public class Charge MElementValue.ACCOUNTSIGN_Natural, false, false, null); ev.setAD_Org_ID(m_AD_Org_ID); + ev.setC_Element_ID(m_C_Element_ID); if (!ev.save()) log.log(Level.WARNING, "C_ElementValue_ID not created"); return ev.getC_ElementValue_ID();