details:   https://code.openbravo.com/erp/devel/pi/rev/3398cf233133
changeset: 32681:3398cf233133
user:      Alvaro Ferraz <alvaro.ferraz <at> openbravo.com>
date:      Wed Sep 06 13:23:35 2017 +0200
summary:   Related to issue 36789: Code review improvements

Initialize variables with null instead of an empty string and then check if 
variable is not null.
Thus, we avoid problems in Oracle if we check if length('') = 0.
See: https://issues.openbravo.com/view.php?id=36789#c98858

diffstat:

 src-db/database/model/functions/MA_STANDARD_COST.xml       |   2 +-
 src-db/database/model/functions/MA_WORKEFFORT_VALIDATE.xml |  16 +++---
 src-db/database/model/functions/M_GET_OFFERS_NAME.xml      |   8 +-
 src-db/database/model/functions/M_INOUT_POST.xml           |  31 ++++++-------
 src-db/database/model/functions/M_PRODUCTION_RUN.xml       |  14 +++---
 src-db/database/sourcedata/AD_AUXILIARINPUT.xml            |   4 +-
 src-db/database/sourcedata/AD_COLUMN.xml                   |   2 +-
 7 files changed, 38 insertions(+), 39 deletions(-)

diffs (259 lines):

diff -r 9ba0cfebdf14 -r 3398cf233133 
src-db/database/model/functions/MA_STANDARD_COST.xml
--- a/src-db/database/model/functions/MA_STANDARD_COST.xml      Thu Sep 07 
15:23:54 2017 -0400
+++ b/src-db/database/model/functions/MA_STANDARD_COST.xml      Wed Sep 06 
13:23:35 2017 +0200
@@ -127,7 +127,7 @@
   END LOOP;
 
   --  Update AD_PInstance
-  IF (v_Message IS NOT NULL AND v_Message <> '') THEN
+  IF (v_Message IS NOT NULL) THEN
     v_Message := '@Success@<br>' || v_Message;
     v_Result := 2;
   END IF;
diff -r 9ba0cfebdf14 -r 3398cf233133 
src-db/database/model/functions/MA_WORKEFFORT_VALIDATE.xml
--- a/src-db/database/model/functions/MA_WORKEFFORT_VALIDATE.xml        Thu Sep 
07 15:23:54 2017 -0400
+++ b/src-db/database/model/functions/MA_WORKEFFORT_VALIDATE.xml        Wed Sep 
06 13:23:35 2017 +0200
@@ -16,7 +16,7 @@
 * under the License.
 * The Original Code is Openbravo ERP.
 * The Initial Developer of the Original Code is Openbravo SLU
-* All portions are Copyright (C) 2001-2015 Openbravo SLU
+* All portions are Copyright (C) 2001-2017 Openbravo SLU
 * All Rights Reserved.
 * Contributor(s):  ______________________________________.
 ************************************************************************/
@@ -310,8 +310,8 @@
     END IF;
     IF(NOT FINISH_PROCESS) THEN
       DECLARE
-        v_Message_ProductionRun VARCHAR(2000) :='';
-        v_Message_ProductLine VARCHAR(2000) :='';
+        v_Message_ProductionRun VARCHAR(2000);
+        v_Message_ProductLine VARCHAR(2000);
         BEGIN
           FOR CUR_ProductionPlan IN
             (SELECT pp.Line, pp.M_PRODUCTIONPLAN_ID
@@ -328,14 +328,14 @@
               AND pr.ISACTIVE='N'
               ORDER BY pl.Line)
             LOOP
-              
v_Message_ProductLine:=v_Message_ProductLine||CUR_PL_Post.line||', ';
+              v_Message_ProductLine := COALESCE(v_Message_ProductLine, '') || 
CUR_PL_Post.line || ', ';
             END LOOP;
-            IF(length(v_Message_ProductLine) > 0) THEN
-              
v_Message_ProductionRun:=v_Message_ProductionRun||'@ProductionRunLine@'||Cur_ProductionPlan.line||'
 @ProductLine@'||v_Message_ProductLine;
-              v_Message_ProductLine:='';
+            IF (v_Message_ProductLine IS NOT NULL) THEN
+              v_Message_ProductionRun := COALESCE(v_Message_ProductionRun, '') 
|| '@ProductionRunLine@' || Cur_ProductionPlan.line || ' @ProductLine@' || 
v_Message_ProductLine;
+              v_Message_ProductLine := NULL;
             END IF;
           END LOOP;
-          IF length(v_Message_ProductionRun) > 0 THEN
+          IF (v_Message_ProductionRun IS NOT NULL) THEN
             RAISE_APPLICATION_ERROR(-20000, 
v_Message_ProductionRun||'@InActiveProducts@');
           END IF;
         END;
diff -r 9ba0cfebdf14 -r 3398cf233133 
src-db/database/model/functions/M_GET_OFFERS_NAME.xml
--- a/src-db/database/model/functions/M_GET_OFFERS_NAME.xml     Thu Sep 07 
15:23:54 2017 -0400
+++ b/src-db/database/model/functions/M_GET_OFFERS_NAME.xml     Wed Sep 06 
13:23:35 2017 +0200
@@ -22,13 +22,13 @@
 * under the License.
 * The Original Code is Openbravo ERP.
 * The Initial Developer of the Original Code is Openbravo SLU
-* All portions are Copyright (C) 2001-2016 Openbravo SLU
+* All portions are Copyright (C) 2001-2017 Openbravo SLU
 * All Rights Reserved.
 * Contributor(s):  ______________________________________.
 ************************************************************************/
   TYPE RECORD IS REF CURSOR;
     Cur_Offer RECORD;
-    v_Names varchar2(10000) := '';
+    v_Names varchar2(10000);
   BEGIN
     FOR Cur_Offer IN
       (SELECT NAME
@@ -103,10 +103,10 @@
         M_OFFER_ID DESC
       )
     LOOP
-      IF v_Names <> '' THEN
+      IF (v_Names IS NOT NULL) THEN
         v_Names := v_Names||'<br/>&nbsp;';
       END IF;
-      v_Names := v_Names||Cur_Offer.name;
+      v_Names := COALESCE(v_Names, '') || Cur_Offer.name;
     END LOOP;
     RETURN v_Names;
 EXCEPTION
diff -r 9ba0cfebdf14 -r 3398cf233133 
src-db/database/model/functions/M_INOUT_POST.xml
--- a/src-db/database/model/functions/M_INOUT_POST.xml  Thu Sep 07 15:23:54 
2017 -0400
+++ b/src-db/database/model/functions/M_INOUT_POST.xml  Wed Sep 06 13:23:35 
2017 +0200
@@ -45,7 +45,7 @@
   -- Logistice
   v_ResultStr VARCHAR2(2000):='';
   v_Message VARCHAR2(2000):='';
-  v_Message_aux VARCHAR2(2000):='';
+  v_Message_aux VARCHAR2(2000);
   v_Record_ID VARCHAR2(32);
   v_User VARCHAR2(32);
   v_PUser VARCHAR2(32);
@@ -193,7 +193,7 @@
         END IF;
       END IF;
        Declare
-       v_Message_product VARCHAR(2000) :='';
+       v_Message_product VARCHAR(2000);
        Begin
           FOR Cur_Lines IN (
                              SELECT M.line
@@ -204,14 +204,14 @@
                                AND (M.M_PRODUCT_ID IS NULL AND M.MOVEMENTQTY 
<> 0)
                                ORDER BY M.line
                             ) LOOP
-               v_Message_product:=v_Message_product||Cur_Lines.line||', ';
+               v_Message_product := COALESCE(v_Message_product, '') || 
Cur_Lines.line || ', ';
           END LOOP;
-          if length(v_Message_product) > 0 then
+          IF (v_Message_product IS NOT NULL) THEN
              RAISE_APPLICATION_ERROR(-20000, '@Inline@ '||v_Message_product||' 
'||'@ProductNullAndMovementQtyGreaterZero@') ;
-          end if ;
+          END IF;
             End ;
             Declare
-       v_Message_Qty VARCHAR(2000) :='';
+       v_Message_Qty VARCHAR(2000);
             BEGIN
                                        FOR Cur_Lines IN (
                              SELECT M.line
@@ -222,14 +222,14 @@
                                AND (M.M_PRODUCT_ID IS NOT NULL AND 
M.MOVEMENTQTY = 0)
                                ORDER BY M.line
                             ) LOOP
-          v_Message_Qty:=v_Message_Qty||Cur_Lines.line||', ';
+          v_Message_Qty := COALESCE(v_Message_Qty, '') || Cur_Lines.line || ', 
';
           END LOOP;
-          IF length(v_Message_Qty) > 0 THEN
+          IF (v_Message_Qty IS NOT NULL) THEN
              RAISE_APPLICATION_ERROR(-20000, '@Inline@ '||v_Message_Qty||' 
'||'@ProductNotNullAndMovementQtyZero@') ;
           END IF;
             End ;
             Declare
-       v_Message_NotAvail VARCHAR(2000) :='';
+       v_Message_NotAvail VARCHAR(2000);
             BEGIN
                                        FOR Cur_Lines IN (
                              SELECT M.line
@@ -245,14 +245,14 @@
                                   (I.issotrx = 'N' AND v_isreturndoctype = 
'Y'))
                              ORDER BY M.line
                             ) LOOP
-          v_Message_NotAvail:=v_Message_NotAvail||Cur_Lines.line||', ';
+          v_Message_NotAvail := COALESCE(v_Message_NotAvail, '') || 
Cur_Lines.line || ', ';
           END LOOP;
-          IF length(v_Message_NotAvail) > 0 THEN
+          IF (v_Message_NotAvail IS NOT NULL) THEN
              RAISE_APPLICATION_ERROR(-20000, '@Inline@ 
'||v_Message_NotAvail||' '||'@LocatorWithNotAvailableStatus@') ;
           END IF;
             End ;
       DECLARE
-      v_Message_Inactive_Products VARCHAR(2000) :='';
+      v_Message_Inactive_Products VARCHAR(2000);
       BEGIN
         FOR Cur_Lines IN (
           SELECT IOL.line
@@ -263,9 +263,9 @@
           ORDER BY IOL.line
           )
         LOOP
-          
v_Message_Inactive_Products:=v_Message_Inactive_Products||Cur_Lines.line||', ';
+          v_Message_Inactive_Products := COALESCE(v_Message_Inactive_Products, 
'') || Cur_Lines.line || ', ';
         END LOOP;
-        IF length(v_Message_Inactive_Products) > 0 THEN
+        IF (v_Message_Inactive_Products IS NOT NULL) THEN
           RAISE_APPLICATION_ERROR(-20000, '@Inline@ 
'||v_Message_Inactive_Products||' '||'@InActiveProducts@') ;
         END IF;
       END;
@@ -994,7 +994,6 @@
             where M_INOUT.M_INOUT_id =v_Record_ID;
             if v_voiddoccount = 0 then
               v_ResultStr:='Check delivery rule for sales orders';
-              v_Message_aux:='';
               v_orderid_old:='0';
               FOR Cur_Order IN 
                 (SELECT c_order.deliveryrule, m_inoutline.line, 
c_order.c_order_id,
@@ -1024,7 +1023,7 @@
                 END IF;
                 v_orderid_old := cur_order.c_order_id;
               END LOOP;
-              IF (v_Message_aux IS NOT NULL AND v_Message_aux <> '') THEN
+              IF (v_Message_aux IS NOT NULL) THEN
                 RAISE_APPLICATION_ERROR(-20000, v_Message_aux);
               END IF;
             END IF;
diff -r 9ba0cfebdf14 -r 3398cf233133 
src-db/database/model/functions/M_PRODUCTION_RUN.xml
--- a/src-db/database/model/functions/M_PRODUCTION_RUN.xml      Thu Sep 07 
15:23:54 2017 -0400
+++ b/src-db/database/model/functions/M_PRODUCTION_RUN.xml      Wed Sep 06 
13:23:35 2017 +0200
@@ -570,8 +570,8 @@
     END IF;
 
     DECLARE
-        v_Message_ProductionRun VARCHAR(2000) :='';
-        v_Message_ProductLine VARCHAR(2000) :='';
+        v_Message_ProductionRun VARCHAR(2000);
+        v_Message_ProductLine VARCHAR(2000);
         BEGIN
           FOR CUR_ProductionPlan IN
             (SELECT pp.Line, pp.M_PRODUCTIONPLAN_ID
@@ -588,14 +588,14 @@
               AND pr.ISACTIVE='N'
               ORDER BY pl.Line)
             LOOP
-              
v_Message_ProductLine:=v_Message_ProductLine||CUR_PL_Post.line||', ';
+              v_Message_ProductLine := COALESCE(v_Message_ProductLine, '') || 
CUR_PL_Post.line || ', ';
             END LOOP;
-            IF(length(v_Message_ProductLine) > 0) THEN
-              
v_Message_ProductionRun:=v_Message_ProductionRun||'@ProductionRunLine@'||Cur_ProductionPlan.line||'
 @ProductLine@'||v_Message_ProductLine;
-              v_Message_ProductLine:='';
+            IF (v_Message_ProductLine IS NOT NULL) THEN
+              v_Message_ProductionRun := COALESCE(v_Message_ProductionRun, '') 
|| '@ProductionRunLine@' || Cur_ProductionPlan.line || ' @ProductLine@' || 
v_Message_ProductLine;
+              v_Message_ProductLine := NULL;
             END IF;
           END LOOP;
-          IF length(v_Message_ProductionRun) > 0 THEN
+          IF (v_Message_ProductionRun IS NOT NULL) THEN
             RAISE_APPLICATION_ERROR(-20000, 
v_Message_ProductionRun||'@InActiveProducts@');
           END IF;
         END;
diff -r 9ba0cfebdf14 -r 3398cf233133 
src-db/database/sourcedata/AD_AUXILIARINPUT.xml
--- a/src-db/database/sourcedata/AD_AUXILIARINPUT.xml   Thu Sep 07 15:23:54 
2017 -0400
+++ b/src-db/database/sourcedata/AD_AUXILIARINPUT.xml   Wed Sep 06 13:23:35 
2017 +0200
@@ -1186,7 +1186,7 @@
 <!--2252C06D4EA7419FA38E7B5565EF411C-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--2252C06D4EA7419FA38E7B5565EF411C-->  
<AD_TAB_ID><![CDATA[1004400002]]></AD_TAB_ID>
 <!--2252C06D4EA7419FA38E7B5565EF411C-->  <NAME><![CDATA[GROSSPRICE]]></NAME>
-<!--2252C06D4EA7419FA38E7B5565EF411C-->  <CODE><![CDATA[@SQL=SELECT 
istaxincluded from m_pricelist where m_pricelist_id = CASE WHEN 
COALESCE(@M_PRICELIST_ID@,'') <> ''   THEN @M_PRICELIST_ID@   ELSE  (SELECT 
m_pricelist_id from m_requisition where m_requisition_id = @M_Requisition_ID@) 
END]]></CODE>
+<!--2252C06D4EA7419FA38E7B5565EF411C-->  <CODE><![CDATA[@SQL=SELECT 
istaxincluded from m_pricelist where m_pricelist_id = CASE WHEN @M_PRICELIST_ID 
IS NOT NULL THEN @M_PRICELIST_ID@ ELSE (SELECT m_pricelist_id from 
m_requisition where m_requisition_id = @M_Requisition_ID@) END]]></CODE>
 <!--2252C06D4EA7419FA38E7B5565EF411C-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
 <!--2252C06D4EA7419FA38E7B5565EF411C--></AD_AUXILIARINPUT>
 
@@ -1697,7 +1697,7 @@
 <!--3C6B0BCF770446E1BE14CFEE4E6ABC23-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--3C6B0BCF770446E1BE14CFEE4E6ABC23-->  
<AD_TAB_ID><![CDATA[800251]]></AD_TAB_ID>
 <!--3C6B0BCF770446E1BE14CFEE4E6ABC23-->  <NAME><![CDATA[GROSSPRICE]]></NAME>
-<!--3C6B0BCF770446E1BE14CFEE4E6ABC23-->  <CODE><![CDATA[@SQL=SELECT 
istaxincluded from m_pricelist where m_pricelist_id = CASE WHEN 
COALESCE(@M_PRICELIST_ID@,'') <> ''   THEN @M_PRICELIST_ID@   ELSE  (SELECT 
m_pricelist_id from m_requisition where m_requisition_id = @M_Requisition_ID@) 
END]]></CODE>
+<!--3C6B0BCF770446E1BE14CFEE4E6ABC23-->  <CODE><![CDATA[@SQL=SELECT 
istaxincluded from m_pricelist where m_pricelist_id = CASE WHEN 
@M_PRICELIST_ID@ IS NOT NULL THEN @M_PRICELIST_ID@ ELSE (SELECT m_pricelist_id 
from m_requisition where m_requisition_id = @M_Requisition_ID@) END]]></CODE>
 <!--3C6B0BCF770446E1BE14CFEE4E6ABC23-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
 <!--3C6B0BCF770446E1BE14CFEE4E6ABC23--></AD_AUXILIARINPUT>
 
diff -r 9ba0cfebdf14 -r 3398cf233133 src-db/database/sourcedata/AD_COLUMN.xml
--- a/src-db/database/sourcedata/AD_COLUMN.xml  Thu Sep 07 15:23:54 2017 -0400
+++ b/src-db/database/sourcedata/AD_COLUMN.xml  Wed Sep 06 13:23:35 2017 +0200
@@ -24717,7 +24717,7 @@
 <!--1636-->  <AD_REFERENCE_ID><![CDATA[18]]></AD_REFERENCE_ID>
 <!--1636-->  <AD_REFERENCE_VALUE_ID><![CDATA[233]]></AD_REFERENCE_VALUE_ID>
 <!--1636-->  <FIELDLENGTH><![CDATA[22]]></FIELDLENGTH>
-<!--1636-->  <DEFAULTVALUE><![CDATA[@SQL= SELECT CASE WHEN (@C_Period_ID@ <> 
'' AND @C_Period_ID@ IS NOT NULL) THEN @C_Period_ID@ ELSE C_Period_ID END FROM 
C_Period WHERE C_Year_ID IN (SELECT C_Year_ID FROM C_Year WHERE C_Calendar_ID 
=(SELECT C_Calendar_ID FROM AD_ORG WHERE AD_Client_ID= @AD_Client_ID@ AND 
AD_ORG_ID=(SELECT AD_ORG_GETCALENDAROWNER( @AD_Org_ID@ ) from dual))) AND 
to_date( COALESCE(@DateAcct@,@#Date@) ) BETWEEN StartDate AND EndDate AND 
PeriodType='S' AND exists (select 1 from c_periodcontrol where 
c_periodcontrol.c_period_id = c_period.c_period_id AND periodstatus = 
'O')]]></DEFAULTVALUE>
+<!--1636-->  <DEFAULTVALUE><![CDATA[@SQL= SELECT CASE WHEN @C_Period_ID@ IS 
NOT NULL THEN @C_Period_ID@ ELSE C_Period_ID END FROM C_Period WHERE C_Year_ID 
IN (SELECT C_Year_ID FROM C_Year WHERE C_Calendar_ID =(SELECT C_Calendar_ID 
FROM AD_ORG WHERE AD_Client_ID= @AD_Client_ID@ AND AD_ORG_ID=(SELECT 
AD_ORG_GETCALENDAROWNER( @AD_Org_ID@ ) from dual))) AND to_date( 
COALESCE(@DateAcct@,@#Date@) ) BETWEEN StartDate AND EndDate AND PeriodType='S' 
AND exists (select 1 from c_periodcontrol where c_periodcontrol.c_period_id = 
c_period.c_period_id AND periodstatus = 'O')]]></DEFAULTVALUE>
 <!--1636-->  <ISKEY><![CDATA[N]]></ISKEY>
 <!--1636-->  <ISPARENT><![CDATA[N]]></ISPARENT>
 <!--1636-->  <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to