[Yanel-commits] rev 55848 - public/yanel/contributions/realms/konakart-yanel-realm/res-types/model/src/java/org/wyona/konakart/model/impl

michi at wyona.com michi at wyona.com
Wed Jan 5 08:08:57 CET 2011


Author: michi
Date: 2011-01-05 08:08:55 +0100 (Wed, 05 Jan 2011)
New Revision: 55848

Modified:
   public/yanel/contributions/realms/konakart-yanel-realm/res-types/model/src/java/org/wyona/konakart/model/impl/KonakartOrderJDBCNode.java
Log:
update store ID

Modified: public/yanel/contributions/realms/konakart-yanel-realm/res-types/model/src/java/org/wyona/konakart/model/impl/KonakartOrderJDBCNode.java
===================================================================
--- public/yanel/contributions/realms/konakart-yanel-realm/res-types/model/src/java/org/wyona/konakart/model/impl/KonakartOrderJDBCNode.java	2011-01-05 06:36:03 UTC (rev 55847)
+++ public/yanel/contributions/realms/konakart-yanel-realm/res-types/model/src/java/org/wyona/konakart/model/impl/KonakartOrderJDBCNode.java	2011-01-05 07:08:55 UTC (rev 55848)
@@ -112,8 +112,61 @@
     public void setProperty(Property property) throws RepositoryException {
         //log.debug("Property: " + property.getName() + ", " + property.getValueAsString());
         properties.put(property.getName(), property);
+
+        int languageID = ((KonakartJDBCRepository)repository).getLanguageId("de");
+        log.warn("DEBUG: Language ID: " + languageID);
+
+        if (property.getName().equals("store-id")) {
+            updateStoreID(property.getValueAsString(), "orders");
+            updateStoreID(property.getValueAsString(), "orders_products");
+            updateStoreID(property.getValueAsString(), "orders_products_attributes");
+            updateStoreID(property.getValueAsString(), "orders_status_history");
+            updateStoreID(property.getValueAsString(), "orders_total");
+        } else {
+            throw new RepositoryException("No such property: " + name);
+        }
     }
 
+    /**
+     * Update store ID
+     * @param storeId Store ID
+     * @param tableName Name of database table
+     */
+    private void updateStoreID(String storeId, String tableName) throws RepositoryException {
+        log.warn("DEBUG: Try to update store id '" + storeId + "' of order ID '" + getName() + "' within table '" + tableName + "'.");
+
+        int languageID = ((KonakartJDBCRepository)repository).getLanguageId("de");
+        log.warn("DEBUG: Language ID: " + languageID);
+
+        String query = "SELECT * FROM " + tableName + " WHERE orders_id = '" + getName() + "'";
+        //String query = "SELECT * FROM orders WHERE orders_id = '" + getName() + "' AND language_id = '" + languageID + "'";
+        try {
+            Connection con = ((KonakartJDBCRepository)repository).getConnection();
+            Statement stm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
+            ResultSet resultSet = stm.executeQuery(query);
+            if(resultSet.next()) { // TODO: filter by language
+            //if(resultSet.last() && resultSet.getRow() == 1) {
+                String id = resultSet.getString("orders_id");
+                log.warn("DEBUG: Update store id '" + storeId + "' of order ID '" + id + "' within table '" + tableName + "'.");
+                //log.debug("Column count: " + resultSet.getMetaData().getColumnCount());
+                
+                resultSet.updateString("store_id", storeId);
+                resultSet.updateRow();
+            } else {
+                log.warn("No such order: " + query);
+            }
+            resultSet.close();
+            stm.close();
+            con.close();
+        } catch(SQLException e) {
+            log.error(e, e);
+            throw new RepositoryException(e.getMessage());
+        }
+    }
+
+    /**
+     *
+     */
     public InputStream getInputStream() throws RepositoryException {
         log.warn("TODO: Not implemented yet!");
         return null;



More information about the Yanel-commits mailing list