details:   /erp/devel/pi/rev/f7f9f562a391
changeset: 9393:f7f9f562a391
user:      Adrián Romero <adrianromero <at> openbravo.com>
date:      Fri Dec 24 13:37:02 2010 +0100
summary:   Fixes issue 0015523: Create shipments from Orders: Movement date is 
being created with the Sales order date
The date of the shipment created now depends on the type of the order

details:   /erp/devel/pi/rev/8892bca8717c
changeset: 9394:8892bca8717c
user:      Adrián Romero <adrianromero <at> openbravo.com>
date:      Fri Dec 24 13:37:27 2010 +0100
summary:   merging

diffstat:

 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
 |  68 +++++----
 src-db/database/model/functions/M_INOUT_CREATE.xml                             
                 |  14 +-
 src/org/openbravo/base/model/domaintype/BooleanDomainType.java                 
                 |   4 +-
 3 files changed, 51 insertions(+), 35 deletions(-)

diffs (168 lines):

diff -r 0c884939d01f -r 8892bca8717c 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
--- 
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
   Fri Dec 24 12:47:58 2010 +0100
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
   Fri Dec 24 13:37:27 2010 +0100
@@ -157,36 +157,37 @@
                 docTypeTarget, docType, false, false) + ">";
       }
       String defaultS = field.getColumn().getDefaultValue();
-      if (defaultS != null) {
-        if (!defaultS.startsWith("@SQL=")) {
-          columnValue = Utility.getDefault(new DalConnectionProvider(false), rq
-              .getVariablesSecureApp(), field.getColumn().getDBColumnName(), 
defaultS, field
-              .getTab().getWindow().getId(), defaultS);
-        } else {
-          ArrayList<String> params = new ArrayList<String>();
-          String sql = parseSQL(defaultS, params);
-          int indP = 1;
-          try {
-            PreparedStatement ps = 
OBDal.getInstance().getConnection().prepareStatement(sql);
-            for (String parameter : params) {
-              String value = "";
-              if (parameter.substring(0, 1).equals("#")) {
-                value = Utility.getContext(new DalConnectionProvider(false), 
RequestContext.get()
-                    .getVariablesSecureApp(), parameter, 
field.getTab().getWindow().getId());
-              } else {
-                String fieldId = "inp" + 
Sqlc.TransformaNombreColumna(parameter);
-                value = RequestContext.get().getRequestParameter(fieldId);
-              }
-              ps.setObject(indP++, value);
+      if (defaultS == null) {
+        defaultS = "";
+      }
+      if (!defaultS.startsWith("@SQL=")) {
+        columnValue = Utility.getDefault(new DalConnectionProvider(false), rq
+            .getVariablesSecureApp(), field.getColumn().getDBColumnName(), 
defaultS, field.getTab()
+            .getWindow().getId(), defaultS);
+      } else {
+        ArrayList<String> params = new ArrayList<String>();
+        String sql = parseSQL(defaultS, params);
+        int indP = 1;
+        try {
+          PreparedStatement ps = 
OBDal.getInstance().getConnection().prepareStatement(sql);
+          for (String parameter : params) {
+            String value = "";
+            if (parameter.substring(0, 1).equals("#")) {
+              value = Utility.getContext(new DalConnectionProvider(false), 
RequestContext.get()
+                  .getVariablesSecureApp(), parameter, 
field.getTab().getWindow().getId());
+            } else {
+              String fieldId = "inp" + Sqlc.TransformaNombreColumna(parameter);
+              value = RequestContext.get().getRequestParameter(fieldId);
             }
-            ResultSet rs = ps.executeQuery();
-            if (rs.next()) {
-              columnValue = rs.getString(1);
-            }
-          } catch (Exception e) {
-            log.error("Error computing default value for field " + 
field.getName() + " of tab "
-                + field.getTab().getName(), e);
+            ps.setObject(indP++, value);
           }
+          ResultSet rs = ps.executeQuery();
+          if (rs.next()) {
+            columnValue = rs.getString(1);
+          }
+        } catch (Exception e) {
+          log.error("Error computing default value for field " + 
field.getName() + " of tab "
+              + field.getTab().getName(), e);
         }
       }
     }
@@ -346,7 +347,7 @@
       ComboTableData comboTableData = new ComboTableData(vars, new 
DalConnectionProvider(false),
           ref, field.getColumn().getDBColumnName(), objectReference, 
validation, orgList,
           clientList, 0);
-      FieldProvider tabData = generateTabData(field.getTab().getADFieldList());
+      FieldProvider tabData = generateTabData(field.getTab().getADFieldList(), 
field, columnValue);
       comboTableData.fillParameters(tabData, 
field.getTab().getWindow().getId(), columnValue);
       FieldProvider[] fps = comboTableData.select(getValueFromSession);
       ArrayList<FieldProvider> values = new ArrayList<FieldProvider>();
@@ -391,13 +392,18 @@
     }
   }
 
-  private FieldProvider generateTabData(List<Field> fields) {
+  private FieldProvider generateTabData(List<Field> fields, Field 
currentField, String currentValue) {
     HashMap<String, Object> noinpDataMap = new HashMap<String, Object>();
     for (Field field : fields) {
       UIDefinition uiDef = 
UIDefinitionController.getInstance().getUIDefinition(
           field.getColumn().getId());
       String oldKey = "inp" + 
Sqlc.TransformaNombreColumna(field.getColumn().getDBColumnName());
-      Object value = RequestContext.get().getRequestParameter(oldKey);
+      Object value;
+      if (currentField.getId().equals(field.getId())) {
+        value = uiDef.formatValueToSQL(currentValue);
+      } else {
+        value = RequestContext.get().getRequestParameter(oldKey);
+      }
       noinpDataMap.put(field.getColumn().getDBColumnName(),
           value == null || value.equals("") ? null : 
uiDef.formatValueToSQL(value.toString()));
     }
diff -r 0c884939d01f -r 8892bca8717c 
src-db/database/model/functions/M_INOUT_CREATE.xml
--- a/src-db/database/model/functions/M_INOUT_CREATE.xml        Fri Dec 24 
12:47:58 2010 +0100
+++ b/src-db/database/model/functions/M_INOUT_CREATE.xml        Fri Dec 24 
13:37:27 2010 +0100
@@ -82,6 +82,7 @@
     v_User_ID VARCHAR2(32):='0';
     -- Orders to process  - one per warehouse
     Cur_Order RECORD;
+    v_NEWORDERDATE DATE;
     -- Order Lines per Warehouse
     CURSOR Cur_OrderLine (Order_ID VARCHAR, Warehouse_ID VARCHAR) IS
     SELECT l.*, p.name
@@ -221,8 +222,9 @@
              o.C_Project_ID, o.C_Activity_ID, o.C_Campaign_ID, o.AD_OrgTrx_ID,
              o.User1_ID, o.User2_ID, o.DeliveryViaRule, o.M_Shipper_ID,
              o.C_Charge_ID, o.ChargeAmt, o.PriorityRule, o.SALESREP_ID,
+             d.DocSubTypeSO,
              o.DELIVERY_LOCATION_ID -- Added by Rafa Roda to include delivery 
location
-           FROM C_ORDER o INNER JOIN C_ORDERLINE l 
ON(o.C_Order_ID=l.C_Order_ID) --  Orders are IP  or CO if Standard Orders
+           FROM C_ORDER o JOIN C_DOCTYPE d ON o.C_DOCTYPE_ID = d.C_DOCTYPE_ID 
INNER JOIN C_ORDERLINE l ON(o.C_Order_ID=l.C_Order_ID) --  Orders are IP  or CO 
if Standard Orders
            WHERE(o.DocStatus='IP' OR(o.DocStatus='CO'
                                      AND o.IsDelivered='N'
                                      AND v_Record_ID='0')) -- Sales Orders 
Only and not Offers
@@ -254,6 +256,7 @@
              o.C_Project_ID, o.C_Activity_ID, o.C_Campaign_ID, o.AD_OrgTrx_ID,
              o.User1_ID, o.User2_ID, o.DeliveryViaRule, o.M_Shipper_ID,
              o.C_Charge_ID, o.ChargeAmt, o.PriorityRule, o.SALESREP_ID,
+             d.DocSubTypeSO,
              o.DELIVERY_LOCATION_ID -- Added by Rafa Roda to include delivery 
location
            ORDER BY o.PriorityRule
           ) LOOP
@@ -300,6 +303,13 @@
             IF(v_DocumentNo IS NULL) THEN
               Ad_Sequence_Doc('DocumentNo_M_InOut', Cur_Order.AD_Client_ID, 
'Y', v_DocumentNo) ;
             END IF;
+
+            IF Cur_Order.DocSubTypeSO = 'WR' THEN
+              v_NEWORDERDATE = Cur_Order.DATEORDERED; -- IS A POS ORDER
+            ELSE
+              v_NEWORDERDATE = now();
+            END IF;
+
             --RAISE_APPLICATION_ERROR(-20100,'el numero documento 
es:'||COALESCE(v_DocumentNo,0)||' El doctypeId es: 
'||COALESCE(v_DocType_ID,0)||' El cOrderId es: 
'||COALESCE(Cur_Order.C_Order_ID,'0'));
             --
             DBMS_OUTPUT.PUT_LINE('  InOut_ID=' || p_InOut_ID || ', 
DocumentNo=' || v_DocumentNo || ', Ship_DocType_ID=' || v_DocType_ID || ', 
Order_DocType_ID=' || Cur_Order.C_DocType_ID) ;
@@ -321,7 +331,7 @@
               (p_InOut_ID, Cur_Order.C_Order_ID, Cur_Order.IsSOTrx, 
Cur_Order.AD_Client_ID,
               Cur_Order.AD_Org_ID, 'Y', now(), v_User_ID,
               now(), v_User_ID, v_DocumentNo, v_DocType_ID,
-              Cur_Order.Description, 'N', 'C-', Cur_Order.DATEORDERED,
+              Cur_Order.Description, 'N', 'C-', v_NEWORDERDATE,
               now(), Cur_Order.C_BPartner_ID, 
Cur_Order.C_BPartner_Location_ID, Cur_Order.AD_User_ID,
               Cur_Order.M_Warehouse_ID, Cur_Order.POReference, 
Cur_Order.DateOrdered, Cur_Order.DeliveryRule,
               Cur_Order.FreightCostRule, Cur_Order.FreightAmt, 
Cur_Order.C_Project_ID, Cur_Order.C_Activity_ID,
diff -r 0c884939d01f -r 8892bca8717c 
src/org/openbravo/base/model/domaintype/BooleanDomainType.java
--- a/src/org/openbravo/base/model/domaintype/BooleanDomainType.java    Fri Dec 
24 12:47:58 2010 +0100
+++ b/src/org/openbravo/base/model/domaintype/BooleanDomainType.java    Fri Dec 
24 13:37:27 2010 +0100
@@ -39,10 +39,10 @@
     if (strValue == null || strValue.trim().length() == 0) {
       return null;
     }
-    if (strValue.equalsIgnoreCase("T")) {
+    if (strValue.equalsIgnoreCase("Y")) {
       return Boolean.TRUE;
     }
-    if (strValue.equalsIgnoreCase("F")) {
+    if (strValue.equalsIgnoreCase("N")) {
       return Boolean.FALSE;
     }
     return new Boolean(strValue);

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to