diff --git a/migration/i2.0/oracle/201311071604_IDEMPIERE-1514.sql b/migration/i2.0/oracle/201311071604_IDEMPIERE-1514.sql index 84bc6bdc84..a360fa76e0 100644 --- a/migration/i2.0/oracle/201311071604_IDEMPIERE-1514.sql +++ b/migration/i2.0/oracle/201311071604_IDEMPIERE-1514.sql @@ -5,3 +5,6 @@ SET DEFINE OFF UPDATE AD_Field SET SeqNo=70, IsDisplayed='Y', XPosition=1,Updated=TO_DATE('2013-11-07 21:30:44','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=60934 ; +SELECT register_migration_script('201311071604_IDEMPIERE-1514.sql') FROM dual +; + diff --git a/migration/i2.0/oracle/201311151945_IDEMPIERE-1533.sql b/migration/i2.0/oracle/201311151945_IDEMPIERE-1533.sql new file mode 100644 index 0000000000..589c386b9a --- /dev/null +++ b/migration/i2.0/oracle/201311151945_IDEMPIERE-1533.sql @@ -0,0 +1,10 @@ +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- Nov 15, 2013 7:35:45 PM CET +-- IDEMPIERE-1533 Constraint Name shouldn't be copied +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_DATE('2013-11-15 19:35:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=210871 +; + +SELECT register_migration_script('201311151945_IDEMPIERE-1533.sql') FROM dual +; diff --git a/migration/i2.0/postgresql/201311071604_IDEMPIERE-1514.sql b/migration/i2.0/postgresql/201311071604_IDEMPIERE-1514.sql index f13a6d2e85..6e2a0ad1ad 100644 --- a/migration/i2.0/postgresql/201311071604_IDEMPIERE-1514.sql +++ b/migration/i2.0/postgresql/201311071604_IDEMPIERE-1514.sql @@ -2,3 +2,6 @@ UPDATE AD_Field SET SeqNo=70, IsDisplayed='Y', XPosition=1,Updated=TO_TIMESTAMP('2013-11-07 21:30:44','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=60934 ; +SELECT register_migration_script('201311071604_IDEMPIERE-1514.sql') FROM dual +; + diff --git a/migration/i2.0/postgresql/201311151945_IDEMPIERE-1533.sql b/migration/i2.0/postgresql/201311151945_IDEMPIERE-1533.sql new file mode 100644 index 0000000000..a9a4485c61 --- /dev/null +++ b/migration/i2.0/postgresql/201311151945_IDEMPIERE-1533.sql @@ -0,0 +1,7 @@ +-- Nov 15, 2013 7:35:45 PM CET +-- IDEMPIERE-1533 Constraint Name shouldn't be copied +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2013-11-15 19:35:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=210871 +; + +SELECT register_migration_script('201311151945_IDEMPIERE-1533.sql') FROM dual +; diff --git a/org.adempiere.base.callout/src/org/compiere/model/Callout_AD_Column.java b/org.adempiere.base.callout/src/org/compiere/model/Callout_AD_Column.java index a568648f89..31229a0a41 100644 --- a/org.adempiere.base.callout/src/org/compiere/model/Callout_AD_Column.java +++ b/org.adempiere.base.callout/src/org/compiere/model/Callout_AD_Column.java @@ -74,6 +74,7 @@ public class Callout_AD_Column extends CalloutEngine + " IsIdentifier, " + " IsUpdateable, " + " IsAlwaysUpdateable, " + + " FKConstraintType," + " COUNT(*) " + "FROM AD_Column " + "WHERE ColumnName = ? " @@ -86,7 +87,8 @@ public class Callout_AD_Column extends CalloutEngine + " ReadOnlyLogic, " + " IsIdentifier, " + " IsUpdateable, " - + " IsAlwaysUpdateable " + + " IsAlwaysUpdateable, " + + " FKConstraintType " + "ORDER BY COUNT(*) DESC "; PreparedStatement pstmt = null; ResultSet rs = null; @@ -109,6 +111,7 @@ public class Callout_AD_Column extends CalloutEngine column.setIsIdentifier("Y".equals(rs.getString(8))); column.setIsUpdateable("Y".equals(rs.getString(9))); column.setIsAlwaysUpdateable("Y".equals(rs.getString(10))); + column.setFKConstraintType(rs.getString(11)); } } catch (SQLException e) diff --git a/org.adempiere.base.process/src/org/compiere/process/CopyOrder.java b/org.adempiere.base.process/src/org/compiere/process/CopyOrder.java index e00d31ed50..7b00d93de2 100644 --- a/org.adempiere.base.process/src/org/compiere/process/CopyOrder.java +++ b/org.adempiere.base.process/src/org/compiere/process/CopyOrder.java @@ -113,7 +113,8 @@ public class CopyOrder extends SvrProcess // Env.setSOTrx(getCtx(), newOrder.isSOTrx()); // return "@C_Order_ID@ " + newOrder.getDocumentNo(); StringBuilder msgreturn = new StringBuilder().append(dt.getName()).append(": ").append(newOrder.getDocumentNo()); - return msgreturn.toString(); + addLog(0, null, null, msgreturn.toString(), newOrder.get_Table_ID(), newOrder.getC_Order_ID()); + return "@C_Order_ID@ @Created@"; } // doIt } // CopyOrder \ No newline at end of file diff --git a/org.adempiere.base.process/src/org/compiere/process/ExpenseAPInvoice.java b/org.adempiere.base.process/src/org/compiere/process/ExpenseAPInvoice.java index e64761bccc..6744e3824f 100644 --- a/org.adempiere.base.process/src/org/compiere/process/ExpenseAPInvoice.java +++ b/org.adempiere.base.process/src/org/compiere/process/ExpenseAPInvoice.java @@ -225,7 +225,7 @@ public class ExpenseAPInvoice extends SvrProcess // m_noInvoices++; addLog(invoice.get_ID(), invoice.getDateInvoiced(), - invoice.getGrandTotal(), invoice.getDocumentNo()); + invoice.getGrandTotal(), invoice.getDocumentNo(), invoice.get_Table_ID(), invoice.getC_Invoice_ID()); } // completeInvoice } // ExpenseAPInvoice diff --git a/org.adempiere.base.process/src/org/compiere/process/ExpenseSOrder.java b/org.adempiere.base.process/src/org/compiere/process/ExpenseSOrder.java index f4975736d6..9ddd45dea0 100644 --- a/org.adempiere.base.process/src/org/compiere/process/ExpenseSOrder.java +++ b/org.adempiere.base.process/src/org/compiere/process/ExpenseSOrder.java @@ -282,7 +282,7 @@ public class ExpenseSOrder extends SvrProcess if (!m_order.save()) throw new IllegalStateException("Cannot save Order"); m_noOrders++; - addLog (m_order.get_ID(), m_order.getDateOrdered(), m_order.getGrandTotal(), m_order.getDocumentNo()); + addLog (m_order.get_ID(), m_order.getDateOrdered(), m_order.getGrandTotal(), m_order.getDocumentNo(), m_order.get_Table_ID(), m_order.getC_Order_ID()); m_order = null; } // completeOrder diff --git a/org.adempiere.base.process/src/org/compiere/process/RfQCreatePO.java b/org.adempiere.base.process/src/org/compiere/process/RfQCreatePO.java index 27cbb991aa..25a85b86dd 100644 --- a/org.adempiere.base.process/src/org/compiere/process/RfQCreatePO.java +++ b/org.adempiere.base.process/src/org/compiere/process/RfQCreatePO.java @@ -175,7 +175,7 @@ public class RfQCreatePO extends SvrProcess order.setSalesRep_ID(rfq.getSalesRep_ID()); order.saveEx(); noOrders++; - addLog(0, null, null, order.getDocumentNo()); + addLog(0, null, null, order.getDocumentNo(), order.get_Table_ID(), order.getC_Order_ID()); } // For all Qtys MRfQResponseLineQty[] qtys = line.getQtys(false); diff --git a/org.adempiere.base/src/org/compiere/model/MInOut.java b/org.adempiere.base/src/org/compiere/model/MInOut.java index 3c3ff21d4b..fc10039433 100644 --- a/org.adempiere.base/src/org/compiere/model/MInOut.java +++ b/org.adempiere.base/src/org/compiere/model/MInOut.java @@ -1344,13 +1344,16 @@ public class MInOut extends X_M_InOut implements DocAction { if (!isReversal()) { - BigDecimal toDelivered = oLine.getQtyOrdered().subtract(oLine.getQtyDelivered()); - if (sLine.getMovementQty().compareTo(toDelivered) > 0) - overReceipt = sLine.getMovementQty().subtract(toDelivered); - if (overReceipt.signum() != 0) + if (oLine != null) { - sLine.setQtyOverReceipt(overReceipt); - sLine.saveEx(); + BigDecimal toDelivered = oLine.getQtyOrdered().subtract(oLine.getQtyDelivered()); + if (sLine.getMovementQty().compareTo(toDelivered) > 0) + overReceipt = sLine.getMovementQty().subtract(toDelivered); + if (overReceipt.signum() != 0) + { + sLine.setQtyOverReceipt(overReceipt); + sLine.saveEx(); + } } } else diff --git a/org.adempiere.base/src/org/compiere/print/PrintDataElement.java b/org.adempiere.base/src/org/compiere/print/PrintDataElement.java index f58d77b4b8..bbbc78d75c 100644 --- a/org.adempiere.base/src/org/compiere/print/PrintDataElement.java +++ b/org.adempiere.base/src/org/compiere/print/PrintDataElement.java @@ -25,6 +25,7 @@ import org.compiere.util.DisplayType; import org.compiere.util.Env; import org.compiere.util.KeyNamePair; import org.compiere.util.Language; +import org.compiere.util.Msg; import org.compiere.util.NamePair; /** @@ -191,9 +192,15 @@ public class PrintDataElement implements Serializable { if (DisplayType.isNumeric(m_displayType)) { retValue = DisplayType.getNumberFormat(m_displayType, language, m_formatPattern).format(m_value); - } - else if (DisplayType.isDate(m_displayType)) + } else if (DisplayType.isDate(m_displayType)) { retValue = DisplayType.getDateFormat(m_displayType, language, m_formatPattern).format(m_value); + } else if (m_value instanceof Boolean) { + if (m_value.toString().equals("true")) { + retValue = Msg.getMsg(Env.getCtx(), "Yes"); + } else if (m_value.toString().equals("false")) { + retValue = Msg.getMsg(Env.getCtx(), "No"); + } + } } return retValue; } // getValueDisplay diff --git a/org.adempiere.install/src/org/compiere/install/SetupRes_da.java b/org.adempiere.install/src/org/compiere/install/SetupRes_da.java index be8a12794b..11642662f8 100644 --- a/org.adempiere.install/src/org/compiere/install/SetupRes_da.java +++ b/org.adempiere.install/src/org/compiere/install/SetupRes_da.java @@ -28,50 +28,51 @@ public class SetupRes_da extends ListResourceBundle { /** Translation Info */ static final Object[][] contents = new String[][]{ - { "AdempiereServerSetup", "iDempiere: Opsætning af server" }, + { "AdempiereServerSetup", "iDempiere: Ops\u00e6tning af Server" }, { "Ok", "OK" }, { "File", "Fil" }, { "Exit", "Afslut" }, - { "Help", "Hjælp" }, - { "PleaseCheck", "Kontrollér" }, - { "UnableToConnect", "Kan ikke hente hjælp fra Adempieres web-sted" }, + { "Help", "Hj\u00e6lp" }, + { "PleaseCheck", "Kontroller" }, + { "UnableToConnect", "Kan ikke hente hj\u00e6lp fra iDempieres web-sted" }, { "AdempiereHomeInfo", "iDempiere Home er hovedmappen" }, { "AdempiereHome", "iDempiere Home" }, - { "WebPortInfo", "Web (HTML)-port" }, - { "WebPort", "Web-port" }, - { "AppsServerInfo", "Programserverens navn" }, - { "AppsServer", "Prog.-server" }, - { "DatabaseTypeInfo", "Databasetype" }, - { "DatabaseType", "Databasetype" }, - { "DatabaseNameInfo", "Databasenavn " }, - { "DatabaseName", "Databasenavn (SID)" }, + { "WebPortInfo", "Web (HTML) Port" }, + { "WebPort", "Program Server" }, + { "AppsServerInfo", "Program Serverens Navn" }, + { "AppsServer", "Program Server" }, + { "DbExists", "Database Er Oprettet" }, + { "DatabaseTypeInfo", "Database Type" }, + { "DatabaseType", "Database Type" }, + { "DatabaseNameInfo", "Database Navn " }, + { "DatabaseName", "Database Navn (SID)" }, { "DatabasePortInfo", "Database Listener Port" }, - { "DatabasePort", "Databaseport" }, - { "DatabaseUserInfo", "Database: Bruger-ID til Adempiere" }, - { "DatabaseUser", "Database: Bruger" }, - { "DatabasePasswordInfo", "Database: Brugeradgangskode til Adempiere" }, - { "DatabasePassword", "Database: Adgangskode" }, + { "DatabasePort", "Database Port" }, + { "DatabaseUserInfo", "Database Bruger-ID til iDempiere" }, + { "DatabaseUser", "Database Bruger" }, + { "DatabasePasswordInfo", "Database Brugeradgangskode til iDempiere" }, + { "DatabasePassword", "Database Adgangskode" }, { "TNSNameInfo", "TNS eller Global Database Name" }, - { "TNSName", "TNS-navn" }, + { "TNSName", "TNS Navn" }, { "SystemPasswordInfo", "System: Brugeradgangskode" }, - { "SystemPassword", "System-adgangskode" }, - { "MailServerInfo", "Mail-server" }, - { "MailServer", "Mail-server" }, - { "AdminEMailInfo", "Adempiere: Administrators e-mail" }, + { "SystemPassword", "System Adgangskode" }, + { "MailServerInfo", "Mail Server" }, + { "MailServer", "Mail Server" }, + { "AdminEMailInfo", "iDempiere: Administrators e-mail" }, { "AdminEMail", "Admin. e-mail" }, - { "DatabaseServerInfo", "Databaseservers navn" }, - { "DatabaseServer", "Databaseserver" }, + { "DatabaseServerInfo", "Database Servers Navn" }, + { "DatabaseServer", "Database Server" }, { "JavaHomeInfo", "Java Home-mappe" }, { "JavaHome", "Java Home" }, - { "JNPPortInfo", "Programservers JNP-port" }, + { "JNPPortInfo", "Programs Srvers JNP-port" }, { "JNPPort", "JNP-port" }, - { "MailUserInfo", "Adempiere: Mail-bruger" }, - { "MailUser", "Mail: Bruger" }, - { "MailPasswordInfo", "Adempiere: Brugeradgangskode til mail" }, + { "MailUserInfo", "iDempiere: Mail Bruger" }, + { "MailUser", "Mail Bruger" }, + { "MailPasswordInfo", "iDempiere: Bruger Adgangskode til mail" }, { "MailPassword", "Adgangskode til mail" }, - { "KeyStorePassword", "Key Store Password" }, - { "KeyStorePasswordInfo", "Password for SSL Key Store" }, + { "KeyStorePassword", "Key Store Adgangskode" }, + { "KeyStorePasswordInfo", "Key Store Adgangskode" }, // { "JavaType", "Java VM"}, { "JavaTypeInfo", "Java VM Vendor"}, @@ -81,15 +82,15 @@ public class SetupRes_da extends ListResourceBundle { "DeployDirInfo", "J2EE Deployment Directory"}, { "ErrorDeployDir", "Error Deployment Directory"}, // - { "TestInfo", "Afprøv opsætning" }, - { "Test", "Afprøv" }, - { "SaveInfo", "Gem opsætning" }, + { "TestInfo", "Afpr\u00f8v ops\u00e6tning" }, + { "Test", "Afpr\u00f8v" }, + { "SaveInfo", "Gem ops\u00e6tning" }, { "Save", "Gem" }, - { "HelpInfo", "Hjælp" }, + { "HelpInfo", "Hj\u00e6lp" }, - { "ServerError", "Fejl: Serverops�tning" }, + { "ServerError", "Fejl: Serverops\u00e6tning" }, { "ErrorJavaHome", "Fejl: Java Home" }, - { "ErrorAdempiereHome", "Fejl: iDempiere Home" }, + { "ErrorAdempiereHome", "Fejl: iDempiere Home" }, { "ErrorAppsServer", "Fejl: Prog.-server" }, { "ErrorWebPort", "Fejl: Web-port" }, { "ErrorJNPPort", "Fejl: JNP-port" }, @@ -101,7 +102,7 @@ public class SetupRes_da extends ListResourceBundle { "ErrorMail", "Fejl: Mail" }, { "ErrorSave", "Fejl: Swing-fil" }, - { "EnvironmentSaved", "Miljøet er gemt\nGenstart serveren." }, + { "EnvironmentSaved", "Milj\u00f8et er gemt. Genstart serveren." }, { "RMIoverHTTP", "Tunnel Objects via HTTP" }, { "RMIoverHTTPInfo", "RMI over HTTP allows to go through firewalls" } }; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/session/SessionContextListener.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/session/SessionContextListener.java index 68c0a7275e..a733c4d078 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/session/SessionContextListener.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/session/SessionContextListener.java @@ -65,6 +65,19 @@ public class SessionContextListener implements ExecutionInit, Session session = exec.getDesktop().getSession(); Properties ctx = (Properties)session.getAttribute(SESSION_CTX); HttpSession httpSession = (HttpSession)session.getNativeSession(); + //create empty context if there's no valid native session + if (httpSession == null) + { + ctx = new Properties(); + ctx.put(ServerContextURLHandler.SERVER_CONTEXT_URL_HANDLER, new ServerContextURLHandler() { + public void showURL(String url) { + SessionManager.getAppDesktop().showURL(url, true); + } + }); + ServerContext.setCurrentInstance(ctx); + return; + } + if (ctx != null) { //verify ctx @@ -283,7 +296,7 @@ public class SessionContextListener implements ExecutionInit, HttpSession httpSession = (HttpSession)session.getNativeSession(); //verify ctx String cacheId = ctx.getProperty(SERVLET_SESSION_ID); - if (cacheId == null || !cacheId.equals(httpSession.getId()) ) + if (cacheId == null || httpSession == null || !cacheId.equals(httpSession.getId()) ) { return false; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WGadgets.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WGadgets.java index a66166a4ba..60a0606c77 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WGadgets.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WGadgets.java @@ -18,6 +18,8 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -61,13 +63,11 @@ import org.zkoss.zul.Vlayout; * @author hengsin */ public class WGadgets extends Window implements EventListener{ - /** * */ - private static final long serialVersionUID = 3652943562286386813L; - - + private static final long serialVersionUID = -4466888491090717617L; + // UI variables protected Label noLabel = new Label(); protected Label yesLabel = new Label(); @@ -320,8 +320,17 @@ public class WGadgets extends Window implements EventListener{ else noItems.add(content); } + + Collections.sort(yesItems, new DashboardNameComparator()); + Collections.sort(noItems, new DashboardNameComparator()); } + class DashboardNameComparator implements Comparator { + public int compare(MDashboardContent dc1, MDashboardContent dc2) { + return dc1.get_Translation("Name").compareTo(dc2.get_Translation("Name")); + } + } + /** * @param event */ @@ -422,9 +431,9 @@ public class WGadgets extends Window implements EventListener{ yesModel.removeAllElements(); for (int i=0 ; i < yesItems.size() ; i++) { int ID= yesItems.get(i).get_ID(); - String name = yesItems.get(i).getName(); + String name = yesItems.get(i).get_Translation("Name"); yesList.addItem(new KeyNamePair(ID, name)); - yesModel.addElement(new ListElement(ID, name, yesItems.get(i).getName(), true, yesItems.get(i).getAD_Client_ID(), yesItems.get(i).getAD_Org_ID())); + yesModel.addElement(new ListElement(ID, name, yesItems.get(i).get_Translation("Name"), true, yesItems.get(i).getAD_Client_ID(), yesItems.get(i).getAD_Org_ID())); } } @@ -432,9 +441,9 @@ public class WGadgets extends Window implements EventListener{ noModel.removeAllElements(); for (int i=0 ; i < noItems.size() ; i++) { int ID= noItems.get(i).get_ID(); - String name = noItems.get(i).getName(); + String name = noItems.get(i).get_Translation("Name"); noList.addItem(new KeyNamePair(ID, name)); - noModel.add(i,new ListElement(ID, name, noItems.get(i).getName(), false, noItems.get(i).getAD_Client_ID(), noItems.get(i).getAD_Org_ID())); + noModel.add(i,new ListElement(ID, name, noItems.get(i).get_Translation("Name"), false, noItems.get(i).getAD_Client_ID(), noItems.get(i).getAD_Org_ID())); } } }