Merge Production Development with 3.0MP3
authorrafaeldemiguel <rdm@openbravo.com>
Wed, 05 Oct 2011 12:55:03 +0200
changeset 14996 3dcb2ad96674
parent 14995 c6a3cbc06c65 (current diff)
parent 13888 c7a189353e46 (diff)
child 14997 b6a33609d723
Merge Production Development with 3.0MP3
modules/org.openbravo.v3/src-db/database/configScript.xml
src-db/database/sourcedata/AD_CALLOUT.xml
src-db/database/sourcedata/AD_COLUMN.xml
src-db/database/sourcedata/AD_FIELD.xml
src-db/database/sourcedata/AD_MODEL_OBJECT.xml
src-db/database/sourcedata/AD_MODEL_OBJECT_MAPPING.xml
src-db/database/sourcedata/AD_REFERENCE.xml
src-db/database/sourcedata/AD_REF_LIST.xml
src-db/database/sourcedata/AD_TAB.xml
src-db/database/sourcedata/AD_VAL_RULE.xml
--- a/.hgsigs	Wed Oct 05 12:11:55 2011 +0200
+++ b/.hgsigs	Wed Oct 05 12:55:03 2011 +0200
@@ -36,3 +36,7 @@
 99fb3658a953bb30e5b4850aca947102942b4659 0 iEYEABECAAYFAk32R/EACgkQCX/oGf+2qkPedQCgiUtwjVa9BInf4zD2a1rIDU8CW8gAoOqRFJ/4MzHb0pzYjJIfKwMyA0pf
 79fe315001bf47622578a9a79eae48bd6cf8bdfe 0 iEYEABECAAYFAk4KFpoACgkQCX/oGf+2qkNikwCgpMtzmBV9fuHz8lvRfdWRyDwmOJgAn087uO1ifI24qVsXnlNIUmPlZa1r
 e1095f432296d2d007a16592ce903c611e32a8ca 0 iEYEABECAAYFAk4fNVoACgkQCX/oGf+2qkM/vACeMJuEyh0KlU/iUOd+GOJu+23MMasAni7f8YASwyBpy8Rhq6hseH9jl+QP
+298c364b00dfafd8d14f39e4c46582666b63b792 0 iEYEABECAAYFAk5FBE8ACgkQCX/oGf+2qkMLLwCg5owJffX+FRvdAhcx5lu98a+bczMAoOrxERXMnWJcjrPiRsHe9uK2rbEB
+73cf94540eee261735546af235c022b6629c60b4 0 iEYEABECAAYFAk5km6QACgkQCX/oGf+2qkMg+QCfSxJaCXo3RB98Em77DE2wTgMdIrsAn3lvr6yVFui+ZIn81ELLNg6+hjTY
+de6ba33247c6a6fe40c8091880ca88371e62f9e5 0 iEYEABECAAYFAk5uEmIACgkQCX/oGf+2qkMqYwCeOiBUc3Bbsscvh17YA3xEium84OsAoNuBTpQKw5uNm0oE7YgIYfxislr9
+1337fbe9577f700323ed7dca2830832d4c767c24 0 iEYEABECAAYFAk58b5AACgkQCX/oGf+2qkOhuwCfcZb9pTthMp2BXE6xcKVquD27R7MAnidzwSvbx4rJK2XvWht0B35hELV4
--- a/.hgtags	Wed Oct 05 12:11:55 2011 +0200
+++ b/.hgtags	Wed Oct 05 12:55:03 2011 +0200
@@ -47,3 +47,7 @@
 1cb20ca392d7b5cca925cc6fdca4f718d3df1d10 3.0MP0
 4ae068de5044da49268d6d3bbde0dcc78b719bee 3.0MP0.1
 c7557e3684a44b84a633889ad597e689715bc57f 3.0MP1
+e303b38f24e9a12a4b8fdf0b2408055a2ab040d7 3.0MP2
+7ab6e81dcecb181d85885103d32f2f6ccac8b0a1 3.0MP2.1
+d08117cade69fcc9ac91619661a6b5071db6af16 3.0MP2.2
+74d95de540d0f428ab9c53303fa45ac6c192885c 3.0MP2.3
--- a/CONTRIBUTORS	Wed Oct 05 12:11:55 2011 +0200
+++ b/CONTRIBUTORS	Wed Oct 05 12:55:03 2011 +0200
@@ -13,3 +13,4 @@
 Sreedhar Sirigiri TDS - provided deep linking with filter clause
 Mallikarjun M TDS - provided deep linking with filter clause
 Shankar Balachandran <shaanjus4u@gmail.com> - Bug fixing
+Francois Le Roux - <lerfrancois@gmail.com> - Bug fixing and documentation
Binary file modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/buildvalidation/WrongPaymentScheduleDetailsCheck.class has changed
Binary file modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/buildvalidation/WrongPaymentScheduleDetailsCheckData.class has changed
Binary file modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/modulescript/AlertsForWrongInvoices.class has changed
Binary file modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/modulescript/AlertsForWrongInvoicesData.class has changed
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_INV.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_INV.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -164,6 +164,7 @@
       cur_payments RECORD;
       cur_order_schdet_ISOPEN BOOLEAN:=false;
       fetch_next_order_item BOOLEAN:=true;
+      next_order BOOLEAN := FALSE;
       v_TargetDocBaseType C_DOCTYPE.DocBaseType%TYPE;
       v_isReversal C_DOCTYPE.IsReversal%TYPE;
       v_MultiplierARC NUMBER:=1;
@@ -174,7 +175,6 @@
       v_invoicedamount NUMBER;
       v_notassignedamount NUMBER;
       v_assignedamount NUMBER;
-      v_pendingAmountFromOrder NUMBER:=0;
       v_scheduledetailamount NUMBER;
       v_oldorder VARCHAR2(32) := '-1';
       v_payment_schedule_invoice VARCHAR2(32);
@@ -183,13 +183,16 @@
       v_new_scheduledetailid VARCHAR2(32);
       v_ConsumedGranTotal NUMBER:= 0;
       v_paymentCount NUMBER:= 0;
+      v_negativePS NUMBER:= 1;
+      v_psdbreakbypartialpayment BOOLEAN:=TRUE;
 
       CURSOR cur_order_schdet (invoice_id VARCHAR) IS
-      SELECT c_orderline.c_order_id AS order_id, fin_payment_scheduledetail.amount + COALESCE(fin_payment_scheduledetail.writeoffamt,0) AS amount,
+      SELECT DISTINCT c_orderline.c_order_id AS order_id, fin_payment_scheduledetail.amount + COALESCE(fin_payment_scheduledetail.writeoffamt,0) AS amount,
              fin_payment_scheduledetail_id,
              fin_payment_scheduledetail.fin_payment_schedule_order,
              fin_payment_scheduledetail.fin_payment_detail_id,
-             CASE WHEN fin_payment.status IN ('PPM', 'RPR', 'PWNC', 'RDNC', 'RPPC') THEN 'Y' ELSE 'N' END AS paid
+             CASE WHEN fin_payment.status IN ('PPM', 'RPR', 'PWNC', 'RDNC', 'RPPC') THEN 'Y' ELSE 'N' END AS paid,
+             CASE WHEN fin_payment_scheduledetail.fin_payment_detail_id is not null THEN 0 ELSE 1 END AS priority
       FROM c_invoiceline, c_orderline, fin_payment_schedule,
         fin_payment_scheduledetail LEFT JOIN fin_payment_detail ON fin_payment_scheduledetail.fin_payment_detail_id = fin_payment_detail.fin_payment_detail_id
                                    LEFT JOIN fin_payment ON fin_payment_detail.fin_payment_id = fin_payment.fin_payment_id
@@ -200,7 +203,6 @@
         AND c_invoiceline.c_invoice_id = invoice_id
       ORDER BY CASE WHEN fin_payment_scheduledetail.fin_payment_detail_id is not null THEN 0 ELSE 1 END, c_orderline.c_order_id;
       order_schdet cur_order_schdet%ROWTYPE;
-      next_order BOOLEAN := FALSE;
 
     BEGIN
       v_ResultStr:='Generating FIN_PAYMENT_SCHEDULE';
@@ -230,6 +232,7 @@
       
       IF (v_pendingAmount <> 0) THEN
 
+        --get number of payment schedules expected for the invoice
         SELECT count(*) INTO v_paymentcount
         FROM (
             SELECT line, percentage, onremainder, excludetax,
@@ -247,6 +250,7 @@
                    fixmonthoffset, netday, isnextbusinessday
             FROM c_paymentterm
             WHERE c_paymentterm_id=v_paymentterm) a;
+
         FOR cur_payments IN (
             SELECT line, percentage, onremainder, excludetax,
                    COALESCE(paymentrule, v_paymentrule) AS paymentrule,
@@ -266,7 +270,7 @@
             ORDER BY line
           )
         LOOP
-          -- Decrease v_paymentcount, when its value is 0 it's tha last payment.
+          -- Decrease v_paymentcount, when its value is 0 it's the last payment.
           v_paymentcount := v_paymentcount - 1;
           v_plannedDate:=C_Paymentduedate(v_bpartner_id, v_issotrx, cur_payments.fixmonthday, cur_payments.fixmonthday2, cur_payments.fixmonthday3, cur_payments.netdays, cur_payments.fixmonthoffset, cur_payments.netday, cur_payments.isnextbusinessday, v_dateinvoiced);
 
@@ -281,9 +285,13 @@
           END IF;
           v_pendingamount := v_pendingamount - v_paymentamount;
           v_scheduledamount := C_Currency_Round((v_paymentamount * v_multiplierarc), v_currency_id, NULL);
+          IF (v_scheduledamount < 0) THEN
+            v_negativeps := -1;
+          ELSE
+            v_negativeps := 1;
+          END IF;
 
           v_ResultStr:='Inserting in FIN_PAYMENT_SCHEDULE table';
-
           v_payment_schedule_invoice := get_uuid();
           INSERT INTO fin_payment_schedule
           (
@@ -301,7 +309,7 @@
             v_scheduledamount, v_PaymentPriority
           );
 
-          -- loop for payment schedule details
+          -- loop for payment schedule details of related orders
           LOOP
             -- open cursor once
             IF (NOT cur_order_schdet_ISOPEN) THEN
@@ -315,13 +323,13 @@
               EXIT WHEN cur_order_schdet%NOTFOUND;
               v_scheduledetailid := order_schdet.fin_payment_scheduledetail_id;
               v_scheduledetailamount := order_schdet.amount;
+              next_order := FALSE;
             ELSE
               v_scheduledetailamount := v_differenceamount;
               v_scheduledetailid := v_new_scheduledetailid;
             END IF;
 
             IF (order_schdet.order_id <> v_oldorder) THEN
-              next_order := FALSE;
               -- get invoiced amount for the order
               SELECT COALESCE(SUM(c_invoiceline.linenetamt+c_getinvoiceline_taxamount(c_invoiceline.c_invoiceline_id)),0) INTO v_invoicedamount
               FROM c_invoiceline, c_orderline
@@ -329,36 +337,7 @@
                 AND c_invoiceline.c_invoice_id = p_record_id
                 AND c_orderline.c_order_id = order_schdet.order_id;
 
-              -- invoiced amount for the order plan cannot be higher than total order plan amount.
-              -- sometimes there is a difference due to taxes. that amount will be compensated at the end.
-              IF (v_invoicedamount > order_schdet.amount) THEN
-                v_invoicedamount := order_schdet.amount;
-              END IF;
-
-              -- substract previously assigned amount
-              SELECT COALESCE(SUM(psd.amount),0) INTO v_assignedamount
-              FROM fin_payment_schedule ps_inv, fin_payment_scheduledetail psd,
-                   fin_payment_schedule ps_ord
-              WHERE ps_inv.fin_payment_schedule_id = psd.fin_payment_schedule_invoice
-                AND psd.fin_payment_schedule_order = ps_ord.fin_payment_schedule_id
-                AND ps_inv.c_invoice_id = p_record_id
-                AND ps_ord.c_order_id = order_schdet.order_id;
-
-              v_notassignedamount := COALESCE(v_invoicedamount,0) - COALESCE(v_assignedamount,0);
-            END IF;
-
-            IF (v_notassignedamount <= 0) THEN
-              next_order := TRUE;
-            END IF;
-            -- create a new payment schedule detail if necessary
-            IF (NOT next_order) THEN
-              v_differenceamount := 0;
-              IF ((v_notassignedamount <= v_scheduledamount) AND (v_notassignedamount < v_scheduledetailamount)) THEN
-                v_differenceamount := COALESCE(v_scheduledetailamount,0) - COALESCE(v_notassignedamount,0);
-              ELSIF ((v_scheduledamount < v_notassignedamount) AND (v_scheduledamount < v_scheduledetailamount)) THEN
-                v_differenceamount := COALESCE(v_scheduledetailamount,0) - COALESCE(v_scheduledamount,0);
-              END IF;
-
+              --if v_count = 0 the order is completely invoiced on this invoice.
               IF (v_IsSOTrx = 'Y') THEN
                 SELECT COALESCE(COUNT(*),0) INTO v_Count
                 FROM c_orderline
@@ -375,27 +354,60 @@
                   GROUP BY ol.c_orderline_id, ol.qtyordered) a
                 WHERE a.matchedqty != a.qtyordered;
               END IF;
+            END IF;
 
-              -- The order is completely invoiced and it is the last payment schedule
+            --If the order is completely invoiced the whole amount of the psd has to be included on the invoice.
+            IF (v_count = 0) THEN
+              v_notassignedamount := v_scheduledetailamount;
+            ELSE 
+              SELECT COALESCE(SUM(psd.amount),0) INTO v_assignedamount
+              FROM fin_payment_schedule ps_inv, fin_payment_scheduledetail psd,
+                 fin_payment_schedule ps_ord
+              WHERE ps_inv.fin_payment_schedule_id = psd.fin_payment_schedule_invoice
+                AND psd.fin_payment_schedule_order = ps_ord.fin_payment_schedule_id
+                AND ps_inv.c_invoice_id = p_record_id
+                AND ps_ord.c_order_id = order_schdet.order_id;
+
+              -- substract previously assigned amount
+              v_notassignedamount := (COALESCE(v_invoicedamount,0) - COALESCE(v_assignedamount,0));
+            END IF;
+
+            -- If there is no amount left to assign from the order to the invoice and the order is not completely
+            -- invoiced move to next order payment schedule detail.
+            -- Example 1: an order with a partial prepayment and is partially invoiced with the prepayment amount, the
+            -- psd that remains unpaid shall not be included in the invoice.
+            -- Example 2: an order with a partial prepayment and is invoiced completely changing the price so the grand
+            -- total is exactly the amount of the prepayment, the psd that remaing unpaid shall be included in the invoice.
+            IF (v_notassignedamount = 0 AND v_count <> 0) THEN
+              next_order := TRUE;
+            END IF;
+            IF (NOT next_order) THEN
+              v_differenceamount := 0;
+
+              --1st condition: The order is completely invoiced and it is the last payment schedule. All the pending amount of the
+              --               order has to be assigned to this invoice, a regulation psd only related to this invoice will be 
+              --               generated later to match the difference.
+              --2st condition: invoiced amount is higher than the scheduled amount, calculate the difference and split
+              --               the payment schedule detail of the order.
+              --3rd condition: split order's payment schedule detail in case that not all the amount has been invoiced.
+              --               In this case difference amount would not be zero.
               IF(v_Count = 0 AND v_paymentcount = 0) THEN
                 v_differenceamount:= 0;
-                -- Calculate
-                SELECT COALESCE(SUM(amount), 0) + v_pendingAmountFromOrder INTO v_pendingAmountFromOrder
-                FROM fin_payment_scheduledetail
-                WHERE fin_payment_schedule_order = order_schdet.fin_payment_schedule_order
-                      AND fin_payment_schedule_invoice is null
-                      AND fin_payment_scheduledetail_id <> v_scheduledetailid;
-                -- link remaining payment schedule detail from order to the invoice as it is fully invoiced
-                UPDATE fin_payment_scheduledetail
-                SET fin_payment_schedule_invoice = v_payment_schedule_invoice
-                WHERE fin_payment_schedule_order = order_schdet.fin_payment_schedule_order
-                      AND fin_payment_schedule_invoice is null
-                      AND fin_payment_scheduledetail_id <> v_scheduledetailid;
+              ELSIF (v_notassignedamount * v_negativePS > v_scheduledamount * v_negativeps ) THEN
+                v_differenceamount := COALESCE(v_scheduledetailamount,0) - COALESCE(v_scheduledamount,0);
+                IF (v_paymentcount > 0) THEN
+                  v_psdbreakbypartialpayment := true;
+                ELSE
+                  v_psdbreakbypartialpayment := false;
+                END IF;
+              ELSE
+                v_differenceamount := COALESCE(v_scheduledetailamount,0) - COALESCE(v_notassignedamount,0);
+                v_psdbreakbypartialpayment := false;
               END IF;
 
-              IF (v_differenceamount > 0) THEN
-                -- continue with the same payment schedule detail
-                fetch_next_order_item := false;
+              --When difference amount is not 0 the payment schedule detail of the order has to be split. The difference
+              --amount is the amount of the new psd that is not related to any invoice.
+              IF (v_differenceamount <> 0) THEN
                 v_new_scheduledetailid := get_uuid();
                 INSERT INTO fin_payment_scheduledetail
                 (
@@ -423,9 +435,12 @@
                 WHERE fin_payment_scheduledetail_id = v_scheduledetailid;
 
                 v_scheduledetailamount := v_scheduledetailamount - v_differenceamount;
+              END IF;
 
+              IF (v_differenceamount = 0 OR (v_count <> 0 AND NOT v_psdbreakbypartialpayment)) THEN
+                fetch_next_order_item := true;
               ELSE
-                fetch_next_order_item := true;
+                fetch_next_order_item := false;
               END IF;
 
               -- link current current payment schedule detail to the invoice
@@ -443,11 +458,10 @@
                 WHERE fin_payment_schedule_id = v_payment_schedule_invoice;
               END IF;
 
-              v_notassignedamount := v_notassignedamount - v_scheduledetailamount;
               v_scheduledamount := v_scheduledamount - v_scheduledetailamount;
 
-              IF (v_scheduledamount <= 0 AND v_paymentcount > 0) THEN
-                -- actual payment processed.
+              IF (v_scheduledamount * v_negativeps <= 0 AND v_paymentcount > 0) THEN
+                -- actual invoice's payment schedule processed.
                 v_oldorder := order_schdet.order_id;
                 EXIT;
               END IF;
@@ -456,8 +470,8 @@
             v_oldorder := order_schdet.order_id;
           END LOOP;
 
-          IF (v_scheduledamount - v_pendingAmountFromOrder != 0 ) THEN
-            -- no orders, insert payment schedule detail with remaining amount
+          IF (v_scheduledamount <> 0 ) THEN
+            -- no more orders, insert payment schedule detail with remaining amount
             INSERT INTO fin_payment_scheduledetail
             (
               fin_payment_scheduledetail_id, ad_client_id, ad_org_id, isactive,
@@ -474,9 +488,8 @@
               null,
               v_payment_schedule_invoice,
               null,
-              v_scheduledamount - v_pendingAmountFromOrder
+              v_scheduledamount
             );
-            v_pendingAmountFromOrder:=0;
           END IF;
         END LOOP;
 
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_ORD.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_ORD.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -144,7 +144,7 @@
         WHERE fin_payment_schedule_id = v_payment_schedule_order;
       END LOOP;
   
-      IF (v_pendingamount > 0) THEN
+      IF (v_pendingamount <> 0) THEN
         INSERT INTO fin_payment_scheduledetail
         (
           fin_payment_scheduledetail_id, ad_client_id, ad_org_id, isactive,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_ISPAYMENTCONFIRMED.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -0,0 +1,87 @@
+<?xml version="1.0"?>
+  <database name="FUNCTION APRM_ISPAYMENTCONFIRMED">
+    <function name="APRM_ISPAYMENTCONFIRMED" type="VARCHAR">
+      <parameter name="status" type="VARCHAR" mode="in">
+        <default/>
+      </parameter>
+      <parameter name="fin_payment_scheduledetail_id" type="VARCHAR" mode="in">
+        <default/>
+      </parameter>
+      <body><![CDATA[/*************************************************************************
+* The contents of this file are subject to the Openbravo  Public  License
+* Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+* Version 1.1  with a permitted attribution clause; you may not  use this
+* file except in compliance with the License. You  may  obtain  a copy of
+* the License at http://www.openbravo.com/legal/license.html
+* Software distributed under the License  is  distributed  on  an "AS IS"
+* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+* License for the specific  language  governing  rights  and  limitations
+* under the License.
+* The Original Code is Openbravo ERP.
+* The Initial Developer of the Original Code is Openbravo SLU
+* All portions are Copyright (C) 2011 Openbravo SLU
+* All Rights Reserved.
+* Contributor(s):  ______________________________________.
+************************************************************************/
+  v_Sql VARCHAR2(2000);
+  v_count NUMBER;
+  v_module   VARCHAR2(32);
+  v_dbprefix   VARCHAR2(7);
+  v_isPaymentConfirmed CHAR(1) := 'N';
+  TYPE RECORD IS REF CURSOR;
+  Cur_Dbprefix RECORD;
+
+BEGIN
+  -- Check if the status exists
+  SELECT count(*) INTO v_count FROM DUAL
+  WHERE EXISTS (SELECT 1 FROM ad_ref_list
+                WHERE ad_reference_id = '575BCB88A4694C27BC013DE9C73E6FE7'
+                      AND value = status);
+
+  IF (v_count = 0) THEN
+    RETURN 'N';
+  END IF;
+  IF (status IN ('PPM', 'RPR', 'PWNC', 'RDNC', 'RPPC')) THEN
+    -- core final statuses
+    v_isPaymentConfirmed := 'Y';
+  ELSIF (status IN ('RPAP', 'RPAE', 'RPVOID')) THEN
+    -- core intermediate statuses
+    v_isPaymentConfirmed := 'N';
+  ELSE
+    -- statuses implemented by other module
+    SELECT ad_module_id INTO v_module
+    FROM ad_ref_list
+    WHERE ad_reference_id = '575BCB88A4694C27BC013DE9C73E6FE7'
+      AND value = status;
+
+    -- if the module defines a merge can have several dbprefix
+    FOR Cur_Dbprefix IN ( 
+      SELECT name AS dbprefix
+      FROM ad_module_dbprefix
+      WHERE ad_module_id = v_module
+      ORDER BY name)
+    LOOP
+      BEGIN
+        v_Sql := 'SELECT ' || Cur_Dbprefix.dbprefix || '_ispaymentconfirmed' || '(''' || status || ''', ''' || fin_payment_scheduledetail_id || ''') FROM DUAL';
+
+        EXECUTE IMMEDIATE v_Sql INTO v_isPaymentConfirmed;
+        IF (v_ispaymentconfirmed = 'Y') THEN
+          EXIT;
+        END IF;
+      EXCEPTION WHEN OTHERS THEN
+        DBMS_OUTPUT.PUT_LINE(Cur_Dbprefix.dbprefix || '_ispaymentconfirmed function not implemented');
+        -- do nothing
+      END;
+    END LOOP;
+  END IF;
+
+  RETURN v_isPaymentConfirmed;
+
+EXCEPTION
+WHEN OTHERS THEN
+  DBMS_OUTPUT.PUT_LINE('aprm_ispaymentconfirmed exception');
+  RAISE;
+END APRM_ISPAYMENTCONFIRMED
+]]></body>
+    </function>
+  </database>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_C_BANKSTATEMENT_TRG.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_C_BANKSTATEMENT_TRG.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -25,9 +25,20 @@
   FROM DUAL
   WHERE EXISTS (SELECT 1 FROM ad_preference WHERE attribute = 'APRM_Ready');
 
-  IF (v_count = 1) THEN
-    RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@');
+  IF(v_count = 1) THEN
+   IF(DELETING) THEN
+     RAISE_APPLICATION_ERROR(-20501, '@APRM_OldFlowDisabled@') ;
+   END IF;
+   IF(UPDATING) THEN
+     IF(:old.Processed <> :new.Processed) THEN
+       RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@') ;
+     END IF;
+   END IF;
+   IF(INSERTING) THEN
+     RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@') ;
+   END IF;
   END IF;
+
 END APRM_C_BANKSTATEMENT_TRG
 ]]></body>
     </trigger>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_C_CASH_TRG.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_C_CASH_TRG.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -25,9 +25,20 @@
   FROM DUAL
   WHERE EXISTS (SELECT 1 FROM ad_preference WHERE attribute = 'APRM_Ready');
 
-  IF (v_count = 1) THEN
-    RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@');
+  IF(v_count = 1) THEN
+   IF(DELETING) THEN
+     RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@') ;
+   END IF;
+   IF(UPDATING) THEN
+     IF(:old.Processed <> :new.Processed) THEN
+       RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@') ;
+     END IF;
+   END IF;
+   IF(INSERTING) THEN
+     RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@') ;
+   END IF;
   END IF;
+  
 END APRM_C_CASH_TRG
 ]]></body>
     </trigger>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_C_DP_MANAGEMENT_TRG.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_C_DP_MANAGEMENT_TRG.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -25,9 +25,20 @@
   FROM DUAL
   WHERE EXISTS (SELECT 1 FROM ad_preference WHERE attribute = 'APRM_Ready');
 
-  IF (v_count = 1) THEN
-    RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@');
+  IF(v_count = 1) THEN
+   IF(DELETING) THEN
+     RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@') ;
+   END IF;
+   IF(UPDATING) THEN
+     IF(:old.Processed <> :new.Processed) THEN
+       RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@') ;
+     END IF;
+   END IF;
+   IF(INSERTING) THEN
+     RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@') ;
+   END IF;
   END IF;
+  
 END APRM_C_DP_MANAGEMENT_TRG
 ]]></body>
     </trigger>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_C_REMITTANCE_TRG.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_C_REMITTANCE_TRG.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -25,9 +25,20 @@
   FROM DUAL
   WHERE EXISTS (SELECT 1 FROM ad_preference WHERE attribute = 'APRM_Ready');
 
-  IF (v_count = 1) THEN
-    RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@');
+  IF(v_count = 1) THEN
+   IF(DELETING) THEN
+     RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@') ;
+   END IF;
+   IF(UPDATING) THEN
+     IF(:old.Processed <> :new.Processed) THEN
+       RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@') ;
+     END IF;
+   END IF;
+   IF(INSERTING) THEN
+     RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@') ;
+   END IF;
   END IF;
+  
 END APRM_C_REMITTANCE_TRG
 ]]></body>
     </trigger>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_C_SETTLEMENT_TRG.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_C_SETTLEMENT_TRG.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -25,9 +25,20 @@
   FROM DUAL
   WHERE EXISTS (SELECT 1 FROM ad_preference WHERE attribute = 'APRM_Ready');
 
-  IF (v_count = 1) THEN
-    RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@');
+  IF(v_count = 1) THEN
+   IF(DELETING) THEN
+     RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@') ;
+   END IF;
+   IF(UPDATING) THEN
+     IF(:old.Processed <> :new.Processed) THEN
+       RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@') ;
+     END IF;
+   END IF;
+   IF(INSERTING) THEN
+     RAISE_APPLICATION_ERROR(-20000, '@APRM_OldFlowDisabled@') ;
+   END IF;
   END IF;
+  
 END APRM_C_SETTLEMENT_TRG
 ]]></body>
     </trigger>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_COLUMN.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_COLUMN.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -333,7 +333,7 @@
 <!--18096D8809024E67A36E636EA0D9D0E7-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
 <!--18096D8809024E67A36E636EA0D9D0E7-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
 <!--18096D8809024E67A36E636EA0D9D0E7-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
-<!--18096D8809024E67A36E636EA0D9D0E7-->  <POSITION><![CDATA[18]]></POSITION>
+<!--18096D8809024E67A36E636EA0D9D0E7-->  <POSITION><![CDATA[25]]></POSITION>
 <!--18096D8809024E67A36E636EA0D9D0E7-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
 <!--18096D8809024E67A36E636EA0D9D0E7-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
 <!--18096D8809024E67A36E636EA0D9D0E7-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
@@ -6383,7 +6383,7 @@
 <!--F362B84F4718449EAD840F1C25667B37-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
 <!--F362B84F4718449EAD840F1C25667B37-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
 <!--F362B84F4718449EAD840F1C25667B37-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
-<!--F362B84F4718449EAD840F1C25667B37-->  <POSITION><![CDATA[22]]></POSITION>
+<!--F362B84F4718449EAD840F1C25667B37-->  <POSITION><![CDATA[25]]></POSITION>
 <!--F362B84F4718449EAD840F1C25667B37-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
 <!--F362B84F4718449EAD840F1C25667B37-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
 <!--F362B84F4718449EAD840F1C25667B37-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <NAME><![CDATA[Advanced Payables and Receivables Mngmt]]></NAME>
-<!--A918E3331C404B889D69AA9BFAFB23AC-->  <VERSION><![CDATA[3.0.13451]]></VERSION>
+<!--A918E3331C404B889D69AA9BFAFB23AC-->  <VERSION><![CDATA[3.0.13698]]></VERSION>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <DESCRIPTION><![CDATA[Managing your finances with an ERP does not have to be difficult. Enjoy a radically improved user experience that combines the power of an enterprise grade financial application with the simplicity and ease of a web 2.0 personal accounting service.]]></DESCRIPTION>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <HELP><![CDATA[Advanced Payables and Receivables Management simplifies and automates the business processes around the management of financial accounts, from the receipt and issue of payment, to the reconciliation of those events with bank statements.
 If you would like to help shape this module you are welcome to take part in the forum discussions or register feature requests or issues in the corresponding (Forum and Bug Tracking) sections in the Advanced Payables and Receivable project in the OB Forge.]]></HELP>
@@ -25,7 +25,7 @@
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <UPDATEINFO><![CDATA[Fixed issue with document sequence numbers reset in case of applying dataset second time.
 Fixed issue 15305.]]></UPDATEINFO>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <REFERENCEDATAINFO><![CDATA[Document types and default algorithm for bank statement auto matching]]></REFERENCEDATAINFO>
-<!--A918E3331C404B889D69AA9BFAFB23AC-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--A918E3331C404B889D69AA9BFAFB23AC-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--A918E3331C404B889D69AA9BFAFB23AC--></AD_MODULE>
 
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <AD_DEPENDENT_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_DEPENDENT_MODULE_ID>
-<!--89326AE95DAD449D85DFAB2C5B1C6683-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--89326AE95DAD449D85DFAB2C5B1C6683-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Selector]]></DEPENDANT_MODULE_NAME>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--B97FC854C6DD41E692161585645A900F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--B97FC854C6DD41E692161585645A900F-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--B97FC854C6DD41E692161585645A900F-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--B97FC854C6DD41E692161585645A900F-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--B97FC854C6DD41E692161585645A900F-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--B97FC854C6DD41E692161585645A900F-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--B97FC854C6DD41E692161585645A900F-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--B97FC854C6DD41E692161585645A900F-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/org/openbravo/advpaymentmngt/buildvalidation/WrongPaymentScheduleDetailsCheck.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/org/openbravo/advpaymentmngt/buildvalidation/WrongPaymentScheduleDetailsCheck.java	Wed Oct 05 12:55:03 2011 +0200
@@ -31,13 +31,16 @@
     ConnectionProvider cp = getConnectionProvider();
     ArrayList<String> errors = new ArrayList<String>();
     try {
-      if (WrongPaymentScheduleDetailsCheckData.existWrongPaymentSchedules(cp)) {
-        String alertRuleId = UnpostRefundPaymentsData.getUUID(cp);
-        if (!WrongPaymentScheduleDetailsCheckData.existsAlertRule(cp)) {
-          WrongPaymentScheduleDetailsCheckData.insertAlertRule(cp, alertRuleId);
+      // Prevent error when upgrading from a pure 2.50 (MP0)
+      if (WrongPaymentScheduleDetailsCheckData.existAPRMbasetables(cp)) {
+        if (WrongPaymentScheduleDetailsCheckData.existWrongPaymentSchedules(cp)) {
+          String alertRuleId = UnpostRefundPaymentsData.getUUID(cp);
+          if (!WrongPaymentScheduleDetailsCheckData.existsAlertRule(cp)) {
+            WrongPaymentScheduleDetailsCheckData.insertAlertRule(cp, alertRuleId);
+          }
+          alertRuleId = WrongPaymentScheduleDetailsCheckData.getAlertRuleId(cp);
+          processAlert(alertRuleId, cp);
         }
-        alertRuleId = WrongPaymentScheduleDetailsCheckData.getAlertRuleId(cp);
-        processAlert(alertRuleId, cp);
       }
     } catch (Exception e) {
       return handleError(e);
--- a/modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/org/openbravo/advpaymentmngt/buildvalidation/WrongPaymentScheduleDetailsCheck_data.xsql	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/org/openbravo/advpaymentmngt/buildvalidation/WrongPaymentScheduleDetailsCheck_data.xsql	Wed Oct 05 12:55:03 2011 +0200
@@ -193,4 +193,13 @@
     <Parameter name="recordId" />
     <Parameter name="referencekey_id" />
   </SqlMethod>
+  <SqlMethod name="existAPRMbasetables" type="preparedStatement" return="boolean">
+    <SqlMethodComment>Check if the FIN_Payment_ScheduleDetail table exist</SqlMethodComment>
+    <Sql><![CDATA[
+       SELECT count(*) AS EXISTING
+       FROM ad_table
+       WHERE ad_table_id = 'C0233061EA504EFEAB0483E836BBAF31'
+      ]]>
+    </Sql>
+  </SqlMethod>
 </SqlClass>
--- a/modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/src/org/openbravo/advpaymentmngt/buildvalidation/WrongPaymentScheduleDetailsCheckData.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/src/org/openbravo/advpaymentmngt/buildvalidation/WrongPaymentScheduleDetailsCheckData.java	Wed Oct 05 12:55:03 2011 +0200
@@ -37,37 +37,37 @@
   }
 
   public String getField(String fieldName) {
-    if (fieldName.equalsIgnoreCase("CLIENT"))
+    if (fieldName.equalsIgnoreCase("client"))
       return client;
-    else if (fieldName.equalsIgnoreCase("DOCUMENTNO"))
+    else if (fieldName.equalsIgnoreCase("documentno"))
       return documentno;
-    else if (fieldName.equalsIgnoreCase("NAME"))
+    else if (fieldName.equalsIgnoreCase("name"))
       return name;
-    else if (fieldName.equalsIgnoreCase("AD_ALERTRULE_ID") || fieldName.equals("adAlertruleId"))
+    else if (fieldName.equalsIgnoreCase("ad_alertrule_id") || fieldName.equals("adAlertruleId"))
       return adAlertruleId;
-    else if (fieldName.equalsIgnoreCase("SQL"))
+    else if (fieldName.equalsIgnoreCase("sql"))
       return sql;
-    else if (fieldName.equalsIgnoreCase("DESCRIPTION"))
+    else if (fieldName.equalsIgnoreCase("description"))
       return description;
-    else if (fieldName.equalsIgnoreCase("RECORD_ID") || fieldName.equals("recordId"))
+    else if (fieldName.equalsIgnoreCase("record_id") || fieldName.equals("recordId"))
       return recordId;
-    else if (fieldName.equalsIgnoreCase("REFERENCEKEY_ID") || fieldName.equals("referencekeyId"))
+    else if (fieldName.equalsIgnoreCase("referencekey_id") || fieldName.equals("referencekeyId"))
       return referencekeyId;
-    else if (fieldName.equalsIgnoreCase("AD_CLIENT_ID") || fieldName.equals("adClientId"))
+    else if (fieldName.equalsIgnoreCase("ad_client_id") || fieldName.equals("adClientId"))
       return adClientId;
-    else if (fieldName.equalsIgnoreCase("AD_ORG_ID") || fieldName.equals("adOrgId"))
+    else if (fieldName.equalsIgnoreCase("ad_org_id") || fieldName.equals("adOrgId"))
       return adOrgId;
-    else if (fieldName.equalsIgnoreCase("CREATED"))
+    else if (fieldName.equalsIgnoreCase("created"))
       return created;
-    else if (fieldName.equalsIgnoreCase("CREATEDBY"))
+    else if (fieldName.equalsIgnoreCase("createdby"))
       return createdby;
-    else if (fieldName.equalsIgnoreCase("UPDATED"))
+    else if (fieldName.equalsIgnoreCase("updated"))
       return updated;
-    else if (fieldName.equalsIgnoreCase("UPDATEDBY"))
+    else if (fieldName.equalsIgnoreCase("updatedby"))
       return updatedby;
-    else if (fieldName.equalsIgnoreCase("ISACTIVE"))
+    else if (fieldName.equalsIgnoreCase("isactive"))
       return isactive;
-    else if (fieldName.equalsIgnoreCase("AD_ROLE_ID") || fieldName.equals("adRoleId"))
+    else if (fieldName.equalsIgnoreCase("ad_role_id") || fieldName.equals("adRoleId"))
       return adRoleId;
    else {
      log4j.debug("Field does not exist: " + fieldName);
@@ -106,22 +106,22 @@
       while(continueResult && result.next()) {
         countRecord++;
         WrongPaymentScheduleDetailsCheckData objectWrongPaymentScheduleDetailsCheckData = new WrongPaymentScheduleDetailsCheckData();
-        objectWrongPaymentScheduleDetailsCheckData.client = UtilSql.getValue(result, "CLIENT");
-        objectWrongPaymentScheduleDetailsCheckData.documentno = UtilSql.getValue(result, "DOCUMENTNO");
-        objectWrongPaymentScheduleDetailsCheckData.name = UtilSql.getValue(result, "NAME");
-        objectWrongPaymentScheduleDetailsCheckData.adAlertruleId = UtilSql.getValue(result, "AD_ALERTRULE_ID");
-        objectWrongPaymentScheduleDetailsCheckData.sql = UtilSql.getValue(result, "SQL");
-        objectWrongPaymentScheduleDetailsCheckData.description = UtilSql.getValue(result, "DESCRIPTION");
-        objectWrongPaymentScheduleDetailsCheckData.recordId = UtilSql.getValue(result, "RECORD_ID");
-        objectWrongPaymentScheduleDetailsCheckData.referencekeyId = UtilSql.getValue(result, "REFERENCEKEY_ID");
-        objectWrongPaymentScheduleDetailsCheckData.adClientId = UtilSql.getValue(result, "AD_CLIENT_ID");
-        objectWrongPaymentScheduleDetailsCheckData.adOrgId = UtilSql.getValue(result, "AD_ORG_ID");
-        objectWrongPaymentScheduleDetailsCheckData.created = UtilSql.getValue(result, "CREATED");
-        objectWrongPaymentScheduleDetailsCheckData.createdby = UtilSql.getValue(result, "CREATEDBY");
-        objectWrongPaymentScheduleDetailsCheckData.updated = UtilSql.getValue(result, "UPDATED");
-        objectWrongPaymentScheduleDetailsCheckData.updatedby = UtilSql.getValue(result, "UPDATEDBY");
-        objectWrongPaymentScheduleDetailsCheckData.isactive = UtilSql.getValue(result, "ISACTIVE");
-        objectWrongPaymentScheduleDetailsCheckData.adRoleId = UtilSql.getValue(result, "AD_ROLE_ID");
+        objectWrongPaymentScheduleDetailsCheckData.client = UtilSql.getValue(result, "client");
+        objectWrongPaymentScheduleDetailsCheckData.documentno = UtilSql.getValue(result, "documentno");
+        objectWrongPaymentScheduleDetailsCheckData.name = UtilSql.getValue(result, "name");
+        objectWrongPaymentScheduleDetailsCheckData.adAlertruleId = UtilSql.getValue(result, "ad_alertrule_id");
+        objectWrongPaymentScheduleDetailsCheckData.sql = UtilSql.getValue(result, "sql");
+        objectWrongPaymentScheduleDetailsCheckData.description = UtilSql.getValue(result, "description");
+        objectWrongPaymentScheduleDetailsCheckData.recordId = UtilSql.getValue(result, "record_id");
+        objectWrongPaymentScheduleDetailsCheckData.referencekeyId = UtilSql.getValue(result, "referencekey_id");
+        objectWrongPaymentScheduleDetailsCheckData.adClientId = UtilSql.getValue(result, "ad_client_id");
+        objectWrongPaymentScheduleDetailsCheckData.adOrgId = UtilSql.getValue(result, "ad_org_id");
+        objectWrongPaymentScheduleDetailsCheckData.created = UtilSql.getValue(result, "created");
+        objectWrongPaymentScheduleDetailsCheckData.createdby = UtilSql.getValue(result, "createdby");
+        objectWrongPaymentScheduleDetailsCheckData.updated = UtilSql.getValue(result, "updated");
+        objectWrongPaymentScheduleDetailsCheckData.updatedby = UtilSql.getValue(result, "updatedby");
+        objectWrongPaymentScheduleDetailsCheckData.isactive = UtilSql.getValue(result, "isactive");
+        objectWrongPaymentScheduleDetailsCheckData.adRoleId = UtilSql.getValue(result, "ad_role_id");
         objectWrongPaymentScheduleDetailsCheckData.InitRecordNumber = Integer.toString(firstRegister);
         vector.addElement(objectWrongPaymentScheduleDetailsCheckData);
         if (countRecord >= numberRegisters && numberRegisters != 0) {
@@ -180,7 +180,7 @@
 
       result = st.executeQuery();
       if(result.next()) {
-        boolReturn = !UtilSql.getValue(result, "EXISTING").equals("0");
+        boolReturn = !UtilSql.getValue(result, "existing").equals("0");
       }
       result.close();
     } catch(SQLException e){
@@ -214,7 +214,7 @@
 
       result = st.executeQuery();
       if(result.next()) {
-        strReturn = UtilSql.getValue(result, "NAME");
+        strReturn = UtilSql.getValue(result, "name");
       }
       result.close();
     } catch(SQLException e){
@@ -250,7 +250,7 @@
 
       result = st.executeQuery();
       if(result.next()) {
-        boolReturn = !UtilSql.getValue(result, "EXISTING").equals("0");
+        boolReturn = !UtilSql.getValue(result, "existing").equals("0");
       }
       result.close();
     } catch(SQLException e){
@@ -286,7 +286,7 @@
 
       result = st.executeQuery();
       if(result.next()) {
-        strReturn = UtilSql.getValue(result, "NAME");
+        strReturn = UtilSql.getValue(result, "name");
       }
       result.close();
     } catch(SQLException e){
@@ -339,20 +339,20 @@
       while(continueResult && result.next()) {
         countRecord++;
         WrongPaymentScheduleDetailsCheckData objectWrongPaymentScheduleDetailsCheckData = new WrongPaymentScheduleDetailsCheckData();
-        objectWrongPaymentScheduleDetailsCheckData.adClientId = UtilSql.getValue(result, "AD_CLIENT_ID");
-        objectWrongPaymentScheduleDetailsCheckData.adOrgId = UtilSql.getValue(result, "AD_ORG_ID");
-        objectWrongPaymentScheduleDetailsCheckData.created = UtilSql.getDateValue(result, "CREATED", "dd-MM-yyyy");
-        objectWrongPaymentScheduleDetailsCheckData.createdby = UtilSql.getValue(result, "CREATEDBY");
-        objectWrongPaymentScheduleDetailsCheckData.updated = UtilSql.getDateValue(result, "UPDATED", "dd-MM-yyyy");
-        objectWrongPaymentScheduleDetailsCheckData.updatedby = UtilSql.getValue(result, "UPDATEDBY");
-        objectWrongPaymentScheduleDetailsCheckData.isactive = UtilSql.getValue(result, "ISACTIVE");
-        objectWrongPaymentScheduleDetailsCheckData.recordId = UtilSql.getValue(result, "RECORD_ID");
-        objectWrongPaymentScheduleDetailsCheckData.description = UtilSql.getValue(result, "DESCRIPTION");
-        objectWrongPaymentScheduleDetailsCheckData.referencekeyId = UtilSql.getValue(result, "REFERENCEKEY_ID");
-        objectWrongPaymentScheduleDetailsCheckData.adRoleId = UtilSql.getValue(result, "AD_ROLE_ID");
-        objectWrongPaymentScheduleDetailsCheckData.adAlertruleId = UtilSql.getValue(result, "AD_ALERTRULE_ID");
-        objectWrongPaymentScheduleDetailsCheckData.sql = UtilSql.getValue(result, "SQL");
-        objectWrongPaymentScheduleDetailsCheckData.name = UtilSql.getValue(result, "NAME");
+        objectWrongPaymentScheduleDetailsCheckData.adClientId = UtilSql.getValue(result, "ad_client_id");
+        objectWrongPaymentScheduleDetailsCheckData.adOrgId = UtilSql.getValue(result, "ad_org_id");
+        objectWrongPaymentScheduleDetailsCheckData.created = UtilSql.getDateValue(result, "created", "dd-MM-yyyy");
+        objectWrongPaymentScheduleDetailsCheckData.createdby = UtilSql.getValue(result, "createdby");
+        objectWrongPaymentScheduleDetailsCheckData.updated = UtilSql.getDateValue(result, "updated", "dd-MM-yyyy");
+        objectWrongPaymentScheduleDetailsCheckData.updatedby = UtilSql.getValue(result, "updatedby");
+        objectWrongPaymentScheduleDetailsCheckData.isactive = UtilSql.getValue(result, "isactive");
+        objectWrongPaymentScheduleDetailsCheckData.recordId = UtilSql.getValue(result, "record_id");
+        objectWrongPaymentScheduleDetailsCheckData.description = UtilSql.getValue(result, "description");
+        objectWrongPaymentScheduleDetailsCheckData.referencekeyId = UtilSql.getValue(result, "referencekey_id");
+        objectWrongPaymentScheduleDetailsCheckData.adRoleId = UtilSql.getValue(result, "ad_role_id");
+        objectWrongPaymentScheduleDetailsCheckData.adAlertruleId = UtilSql.getValue(result, "ad_alertrule_id");
+        objectWrongPaymentScheduleDetailsCheckData.sql = UtilSql.getValue(result, "sql");
+        objectWrongPaymentScheduleDetailsCheckData.name = UtilSql.getValue(result, "name");
         objectWrongPaymentScheduleDetailsCheckData.InitRecordNumber = Integer.toString(firstRegister);
         vector.addElement(objectWrongPaymentScheduleDetailsCheckData);
         if (countRecord >= numberRegisters && numberRegisters != 0) {
@@ -411,10 +411,10 @@
       while(continueResult && result.next()) {
         countRecord++;
         WrongPaymentScheduleDetailsCheckData objectWrongPaymentScheduleDetailsCheckData = new WrongPaymentScheduleDetailsCheckData();
-        objectWrongPaymentScheduleDetailsCheckData.description = UtilSql.getValue(result, "DESCRIPTION");
-        objectWrongPaymentScheduleDetailsCheckData.recordId = UtilSql.getValue(result, "RECORD_ID");
-        objectWrongPaymentScheduleDetailsCheckData.referencekeyId = UtilSql.getValue(result, "REFERENCEKEY_ID");
-        objectWrongPaymentScheduleDetailsCheckData.adClientId = UtilSql.getValue(result, "AD_CLIENT_ID");
+        objectWrongPaymentScheduleDetailsCheckData.description = UtilSql.getValue(result, "description");
+        objectWrongPaymentScheduleDetailsCheckData.recordId = UtilSql.getValue(result, "record_id");
+        objectWrongPaymentScheduleDetailsCheckData.referencekeyId = UtilSql.getValue(result, "referencekey_id");
+        objectWrongPaymentScheduleDetailsCheckData.adClientId = UtilSql.getValue(result, "ad_client_id");
         objectWrongPaymentScheduleDetailsCheckData.InitRecordNumber = Integer.toString(firstRegister);
         vector.addElement(objectWrongPaymentScheduleDetailsCheckData);
         if (countRecord >= numberRegisters && numberRegisters != 0) {
@@ -457,7 +457,7 @@
 
       result = st.executeQuery();
       if(result.next()) {
-        boolReturn = !UtilSql.getValue(result, "EXISTING").equals("0");
+        boolReturn = !UtilSql.getValue(result, "existing").equals("0");
       }
       result.close();
     } catch(SQLException e){
@@ -497,7 +497,7 @@
 
       result = st.executeQuery();
       if(result.next()) {
-        boolReturn = !UtilSql.getValue(result, "EXISTING").equals("0");
+        boolReturn = !UtilSql.getValue(result, "existing").equals("0");
       }
       result.close();
     } catch(SQLException e){
@@ -537,7 +537,7 @@
 
       result = st.executeQuery();
       if(result.next()) {
-        boolReturn = !UtilSql.getValue(result, "EXISTING").equals("0");
+        boolReturn = !UtilSql.getValue(result, "existing").equals("0");
       }
       result.close();
     } catch(SQLException e){
@@ -661,4 +661,42 @@
     }
     return(updateCount);
   }
+
+/**
+Check if the FIN_Payment_ScheduleDetail table exist
+ */
+  public static boolean existAPRMbasetables(ConnectionProvider connectionProvider)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "       SELECT count(*) AS EXISTING" +
+      "       FROM ad_table" +
+      "       WHERE ad_table_id = 'C0233061EA504EFEAB0483E836BBAF31'";
+
+    ResultSet result;
+    boolean boolReturn = false;
+    PreparedStatement st = null;
+
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+
+      result = st.executeQuery();
+      if(result.next()) {
+        boolReturn = !UtilSql.getValue(result, "existing").equals("0");
+      }
+      result.close();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    return(boolReturn);
+  }
 }
--- a/modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/org/openbravo/advpaymentmngt/modulescript/AlertsForWrongInvoices.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/org/openbravo/advpaymentmngt/modulescript/AlertsForWrongInvoices.java	Wed Oct 05 12:55:03 2011 +0200
@@ -24,6 +24,8 @@
 import org.openbravo.modulescript.ModuleScript;
 
 public class AlertsForWrongInvoices extends ModuleScript {
+  
+  final static private String ALERT_RULE_SQL = "select distinct ad_column_identifier('c_invoice', fin_payment_schedule.c_invoice_id, 'en_US') as record_id, fin_payment_schedule.c_invoice_id  as referencekey_id, 0 as ad_role_id, null as ad_user_id, 'This invoice needs to be reactivated and processed again due to wrong payment info.' as description, 'Y' as isActive, fin_payment_schedule.ad_org_id, fin_payment_schedule.ad_client_id, now() as created, 0 as createdBy, now() as updated, 0 as updatedBy from fin_payment_schedule, fin_payment_scheduledetail where fin_payment_schedule.fin_payment_schedule_id = fin_payment_scheduledetail.fin_payment_schedule_invoice and fin_payment_scheduledetail.iscanceled = 'N' group by fin_payment_schedule.ad_org_id, fin_payment_schedule.ad_client_id, fin_payment_schedule.fin_payment_schedule_id, fin_payment_schedule.c_invoice_id, fin_payment_schedule.amount having fin_payment_schedule.amount <> sum(fin_payment_scheduledetail.amount + coalesce(fin_payment_scheduledetail.writeoffamt,0)) order by 1";
 
   @Override
   // Inserting Alerts for invoices which needs to be recalculated/processed
@@ -34,11 +36,23 @@
       for (AlertsForWrongInvoicesData wrongInvoice : data) {
         createAlert(cp, wrongInvoice);
       }
+      
+      // Fix sql for all the alert rules created not taking in account voided payments
+      AlertsForWrongInvoicesData[] oldAlertRules = AlertsForWrongInvoicesData.selectOldAlertRules(cp);
+      for (AlertsForWrongInvoicesData alertRule : oldAlertRules) {
+        // Check if exist any alert created using the wrong sql query. In that case fix the alert
+        AlertsForWrongInvoicesData[] oldAlerts = AlertsForWrongInvoicesData.selectVoidAlerts(cp, alertRule.adAlertruleId);
+        for (AlertsForWrongInvoicesData alert : oldAlerts) {
+          AlertsForWrongInvoicesData.updateAlertStatus(cp, "SOLVED", "Y", alert.adAlertId);
+        }
+        AlertsForWrongInvoicesData.updateAlertRuleSql(cp, ALERT_RULE_SQL, alertRule.adAlertruleId);
+      }
+      
     } catch (Exception e) {
       handleError(e);
     }
   }
-
+  
   private void createAlert(ConnectionProvider cp, AlertsForWrongInvoicesData wrongInvoice)
       throws ServletException {
     final String SALES_INVOICE_WINDOW = "167";
@@ -46,7 +60,6 @@
     final String SALES_INVOICE_TAB = "263";
     final String PURCHASE_INVOICE_TAB = "290";
     String ALERT_RULE = "Wrong purchase invoice. Wrong amount in payment plan detail";
-    final String ALERT_RULE_SQL = "select distinct ad_column_identifier('c_invoice', fin_payment_schedule.c_invoice_id, 'en_US') as record_id, fin_payment_schedule.c_invoice_id  as referencekey_id, 0 as ad_role_id, null as ad_user_id, 'Posted refund payment. Please ensure that it is unposted before applying the module version upgrade.' as description, 'Y' as isActive, fin_payment_schedule.ad_org_id, fin_payment_schedule.ad_client_id, now() as created, 0 as createdBy, now() as updated, 0 as updatedBy from fin_payment_schedule, fin_payment_scheduledetail where fin_payment_schedule.fin_payment_schedule_id = fin_payment_scheduledetail.fin_payment_schedule_invoice group by fin_payment_schedule.ad_org_id, fin_payment_schedule.ad_client_id, fin_payment_schedule.fin_payment_schedule_id, fin_payment_schedule.c_invoice_id, fin_payment_schedule.amount having fin_payment_schedule.amount <> sum(fin_payment_scheduledetail.amount + coalesce(fin_payment_scheduledetail.writeoffamt,0)) order by 1";
     String WindowInvoiceId = PURCHASE_INVOICE_TAB;
     String strTabId = PURCHASE_INVOICE_TAB;
     if ("Y".equals(wrongInvoice.issotrx)) {
@@ -59,7 +72,7 @@
     String oldAlertRuleId = AlertsForWrongInvoicesData.getAlertRuleId(cp, ALERT_RULE,
         wrongInvoice.adClientId);
     if (!AlertsForWrongInvoicesData.existsAlert(cp, oldAlertRuleId, wrongInvoice.cInvoiceId)) {
-      if (!AlertsForWrongInvoicesData.existsAlertRule(cp, ALERT_RULE)) {
+      if (!AlertsForWrongInvoicesData.existsAlertRule(cp, ALERT_RULE, wrongInvoice.adClientId)) {
         AlertsForWrongInvoicesData.insertAlertRule(cp, wrongInvoice.adClientId, ALERT_RULE,
             strTabId, ALERT_RULE_SQL);
         AlertsForWrongInvoicesData[] roles = AlertsForWrongInvoicesData.getRoleId(cp,
--- a/modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/org/openbravo/advpaymentmngt/modulescript/AlertsForWrongInvoices_data.xsql	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/org/openbravo/advpaymentmngt/modulescript/AlertsForWrongInvoices_data.xsql	Wed Oct 05 12:55:03 2011 +0200
@@ -14,16 +14,36 @@
     <Sql>
       <![CDATA[
       select distinct fin_payment_schedule.ad_client_id, ad_column_identifier('c_invoice', fin_payment_schedule.c_invoice_id, 'en_US') as invoice, 
-      fin_payment_schedule.c_invoice_id, fin_payment_schedule.ad_org_id, c_invoice.issotrx, '' as ad_role_id
+      fin_payment_schedule.c_invoice_id, fin_payment_schedule.ad_org_id, c_invoice.issotrx, '' as ad_role_id, '' as ad_alertrule_id, '' as ad_alert_id
       from c_invoice, fin_payment_schedule, fin_payment_scheduledetail
       where c_invoice.c_invoice_id = fin_payment_schedule.c_invoice_id 
       and fin_payment_schedule.fin_payment_schedule_id = fin_payment_scheduledetail.fin_payment_schedule_invoice
+      and fin_payment_scheduledetail.iscanceled = 'N'
       group by fin_payment_schedule.ad_client_id, fin_payment_schedule.ad_org_id, c_invoice.issotrx, fin_payment_schedule.fin_payment_schedule_id, fin_payment_schedule.c_invoice_id, fin_payment_schedule.amount
       having fin_payment_schedule.amount <> sum(fin_payment_scheduledetail.amount + coalesce(fin_payment_scheduledetail.writeoffamt,0))
       order by 1, 2
       ]]>
     </Sql>
   </SqlMethod>
+  <SqlMethod name="selectVoidAlerts" type="preparedStatement" return="multiple">
+    <SqlMethodComment>Identify alerts created not taking in account the void payment functionality.</SqlMethodComment>
+    <Sql>
+      <![CDATA[
+      select distinct fin_payment_schedule.c_invoice_id, ad_alert.ad_alert_id
+      from fin_payment_schedule, fin_payment_scheduledetail, ad_alert
+      where fin_payment_schedule.fin_payment_schedule_id = fin_payment_scheduledetail.fin_payment_schedule_invoice
+            and ad_alert.referencekey_id = fin_payment_schedule.c_invoice_id
+      and exists (select 1
+                  from fin_payment_scheduledetail psd
+                  where psd.fin_payment_scheduledetail_id = fin_payment_scheduledetail.fin_payment_scheduledetail_id
+                        and psd.iscanceled = 'Y')
+      and ad_alert.ad_alertrule_id = ?
+      group by fin_payment_schedule.fin_payment_schedule_id, fin_payment_schedule.c_invoice_id, fin_payment_schedule.amount, ad_alert.ad_alert_id
+      having fin_payment_schedule.amount <> sum(fin_payment_scheduledetail.amount + coalesce(fin_payment_scheduledetail.writeoffamt,0))
+      ]]>
+    </Sql>
+    <Parameter name="alertRuleId"/>
+  </SqlMethod>  
   <SqlMethod name="existsAlertRule" type="preparedStatement" return="boolean">
     <SqlMethodComment></SqlMethodComment>
     <Sql><![CDATA[
@@ -31,9 +51,11 @@
        FROM AD_ALERTRULE
        WHERE NAME = ?
          AND ISACTIVE = 'Y'
+         AND AD_CLIENT_ID = ?
       ]]>
     </Sql>
     <Parameter name="alertRule"/>
+    <Parameter name="client"/>
   </SqlMethod>
   <SqlMethod name="existsAlert" type="preparedStatement" return="boolean">
     <SqlMethodComment></SqlMethodComment>
@@ -60,6 +82,17 @@
     <Parameter name="name"/>
     <Parameter name="client"/>
   </SqlMethod>
+  <SqlMethod name="selectOldAlertRules" type="preparedStatement" return="multiple">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql><![CDATA[
+       SELECT ad_alertrule_id
+       FROM AD_ALERTRULE
+       WHERE (name = 'Wrong purchase invoice. Wrong amount in payment plan detail' OR
+              name = 'Wrong sales invoice. Wrong amount in payment plan detail')
+         AND ISACTIVE = 'Y'
+         AND lower(SQL) not like '%iscanceled%'
+      ]]></Sql>
+  </SqlMethod>
   <SqlMethod name="getRoleId" type="preparedStatement" return="multiple">
     <SqlMethodComment></SqlMethodComment>
     <Sql><![CDATA[
@@ -129,4 +162,23 @@
     <Parameter name="adAlertRuleId" />
     <Parameter name="role" />
   </SqlMethod>
+  <SqlMethod name="updateAlertRuleSql" type="preparedStatement" return="rowcount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql><![CDATA[
+      UPDATE ad_alertrule SET SQL = ? WHERE ad_alertrule_id = ?
+      ]]>
+    </Sql>
+    <Parameter name="sql"/>
+    <Parameter name="adAlertRuleId"/>
+  </SqlMethod>
+  <SqlMethod name="updateAlertStatus" type="preparedStatement" return="rowcount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql><![CDATA[
+      UPDATE ad_alert SET status = ?, isfixed = ? WHERE ad_alert_id = ?
+      ]]>
+    </Sql>
+    <Parameter name="status"/>
+    <Parameter name="isfixed"/>
+    <Parameter name="alertId"/>
+  </SqlMethod>
 </SqlClass>
--- a/modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/src/org/openbravo/advpaymentmngt/modulescript/AlertsForWrongInvoicesData.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/src/org/openbravo/advpaymentmngt/modulescript/AlertsForWrongInvoicesData.java	Wed Oct 05 12:55:03 2011 +0200
@@ -21,24 +21,30 @@
   public String adOrgId;
   public String issotrx;
   public String adRoleId;
+  public String adAlertruleId;
+  public String adAlertId;
 
   public String getInitRecordNumber() {
     return InitRecordNumber;
   }
 
   public String getField(String fieldName) {
-    if (fieldName.equalsIgnoreCase("ad_client_id") || fieldName.equals("adClientId"))
+    if (fieldName.equalsIgnoreCase("AD_CLIENT_ID") || fieldName.equals("adClientId"))
       return adClientId;
-    else if (fieldName.equalsIgnoreCase("invoice"))
+    else if (fieldName.equalsIgnoreCase("INVOICE"))
       return invoice;
-    else if (fieldName.equalsIgnoreCase("c_invoice_id") || fieldName.equals("cInvoiceId"))
+    else if (fieldName.equalsIgnoreCase("C_INVOICE_ID") || fieldName.equals("cInvoiceId"))
       return cInvoiceId;
-    else if (fieldName.equalsIgnoreCase("ad_org_id") || fieldName.equals("adOrgId"))
+    else if (fieldName.equalsIgnoreCase("AD_ORG_ID") || fieldName.equals("adOrgId"))
       return adOrgId;
-    else if (fieldName.equalsIgnoreCase("issotrx"))
+    else if (fieldName.equalsIgnoreCase("ISSOTRX"))
       return issotrx;
-    else if (fieldName.equalsIgnoreCase("ad_role_id") || fieldName.equals("adRoleId"))
+    else if (fieldName.equalsIgnoreCase("AD_ROLE_ID") || fieldName.equals("adRoleId"))
       return adRoleId;
+    else if (fieldName.equalsIgnoreCase("AD_ALERTRULE_ID") || fieldName.equals("adAlertruleId"))
+      return adAlertruleId;
+    else if (fieldName.equalsIgnoreCase("AD_ALERT_ID") || fieldName.equals("adAlertId"))
+      return adAlertId;
    else {
      log4j.debug("Field does not exist: " + fieldName);
      return null;
@@ -53,10 +59,11 @@
     String strSql = "";
     strSql = strSql + 
       "      select distinct fin_payment_schedule.ad_client_id, ad_column_identifier('c_invoice', fin_payment_schedule.c_invoice_id, 'en_US') as invoice, " +
-      "      fin_payment_schedule.c_invoice_id, fin_payment_schedule.ad_org_id, c_invoice.issotrx, '' as ad_role_id" +
+      "      fin_payment_schedule.c_invoice_id, fin_payment_schedule.ad_org_id, c_invoice.issotrx, '' as ad_role_id, '' as ad_alertrule_id, '' as ad_alert_id" +
       "      from c_invoice, fin_payment_schedule, fin_payment_scheduledetail" +
       "      where c_invoice.c_invoice_id = fin_payment_schedule.c_invoice_id " +
       "      and fin_payment_schedule.fin_payment_schedule_id = fin_payment_scheduledetail.fin_payment_schedule_invoice" +
+      "      and fin_payment_scheduledetail.iscanceled = 'N'" +
       "      group by fin_payment_schedule.ad_client_id, fin_payment_schedule.ad_org_id, c_invoice.issotrx, fin_payment_schedule.fin_payment_schedule_id, fin_payment_schedule.c_invoice_id, fin_payment_schedule.amount" +
       "      having fin_payment_schedule.amount <> sum(fin_payment_scheduledetail.amount + coalesce(fin_payment_scheduledetail.writeoffamt,0))" +
       "      order by 1, 2";
@@ -79,12 +86,14 @@
       while(continueResult && result.next()) {
         countRecord++;
         AlertsForWrongInvoicesData objectAlertsForWrongInvoicesData = new AlertsForWrongInvoicesData();
-        objectAlertsForWrongInvoicesData.adClientId = UtilSql.getValue(result, "ad_client_id");
-        objectAlertsForWrongInvoicesData.invoice = UtilSql.getValue(result, "invoice");
-        objectAlertsForWrongInvoicesData.cInvoiceId = UtilSql.getValue(result, "c_invoice_id");
-        objectAlertsForWrongInvoicesData.adOrgId = UtilSql.getValue(result, "ad_org_id");
-        objectAlertsForWrongInvoicesData.issotrx = UtilSql.getValue(result, "issotrx");
-        objectAlertsForWrongInvoicesData.adRoleId = UtilSql.getValue(result, "ad_role_id");
+        objectAlertsForWrongInvoicesData.adClientId = UtilSql.getValue(result, "AD_CLIENT_ID");
+        objectAlertsForWrongInvoicesData.invoice = UtilSql.getValue(result, "INVOICE");
+        objectAlertsForWrongInvoicesData.cInvoiceId = UtilSql.getValue(result, "C_INVOICE_ID");
+        objectAlertsForWrongInvoicesData.adOrgId = UtilSql.getValue(result, "AD_ORG_ID");
+        objectAlertsForWrongInvoicesData.issotrx = UtilSql.getValue(result, "ISSOTRX");
+        objectAlertsForWrongInvoicesData.adRoleId = UtilSql.getValue(result, "AD_ROLE_ID");
+        objectAlertsForWrongInvoicesData.adAlertruleId = UtilSql.getValue(result, "AD_ALERTRULE_ID");
+        objectAlertsForWrongInvoicesData.adAlertId = UtilSql.getValue(result, "AD_ALERT_ID");
         objectAlertsForWrongInvoicesData.InitRecordNumber = Integer.toString(firstRegister);
         vector.addElement(objectAlertsForWrongInvoicesData);
         if (countRecord >= numberRegisters && numberRegisters != 0) {
@@ -110,13 +119,86 @@
     return(objectAlertsForWrongInvoicesData);
   }
 
-  public static boolean existsAlertRule(ConnectionProvider connectionProvider, String alertRule)    throws ServletException {
+/**
+Identify alerts created not taking in account the void payment functionality.
+ */
+  public static AlertsForWrongInvoicesData[] selectVoidAlerts(ConnectionProvider connectionProvider, String alertRuleId)    throws ServletException {
+    return selectVoidAlerts(connectionProvider, alertRuleId, 0, 0);
+  }
+
+/**
+Identify alerts created not taking in account the void payment functionality.
+ */
+  public static AlertsForWrongInvoicesData[] selectVoidAlerts(ConnectionProvider connectionProvider, String alertRuleId, int firstRegister, int numberRegisters)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "      select distinct fin_payment_schedule.c_invoice_id, ad_alert.ad_alert_id" +
+      "      from fin_payment_schedule, fin_payment_scheduledetail, ad_alert" +
+      "      where fin_payment_schedule.fin_payment_schedule_id = fin_payment_scheduledetail.fin_payment_schedule_invoice" +
+      "            and ad_alert.referencekey_id = fin_payment_schedule.c_invoice_id" +
+      "      and exists (select 1" +
+      "                  from fin_payment_scheduledetail psd" +
+      "                  where psd.fin_payment_scheduledetail_id = fin_payment_scheduledetail.fin_payment_scheduledetail_id" +
+      "                        and psd.iscanceled = 'Y')" +
+      "      and ad_alert.ad_alertrule_id = ?" +
+      "      group by fin_payment_schedule.fin_payment_schedule_id, fin_payment_schedule.c_invoice_id, fin_payment_schedule.amount, ad_alert.ad_alert_id" +
+      "      having fin_payment_schedule.amount <> sum(fin_payment_scheduledetail.amount + coalesce(fin_payment_scheduledetail.writeoffamt,0))";
+
+    ResultSet result;
+    Vector<java.lang.Object> vector = new Vector<java.lang.Object>(0);
+    PreparedStatement st = null;
+
+    int iParameter = 0;
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, alertRuleId);
+
+      result = st.executeQuery();
+      long countRecord = 0;
+      long countRecordSkip = 1;
+      boolean continueResult = true;
+      while(countRecordSkip < firstRegister && continueResult) {
+        continueResult = result.next();
+        countRecordSkip++;
+      }
+      while(continueResult && result.next()) {
+        countRecord++;
+        AlertsForWrongInvoicesData objectAlertsForWrongInvoicesData = new AlertsForWrongInvoicesData();
+        objectAlertsForWrongInvoicesData.cInvoiceId = UtilSql.getValue(result, "C_INVOICE_ID");
+        objectAlertsForWrongInvoicesData.adAlertId = UtilSql.getValue(result, "AD_ALERT_ID");
+        objectAlertsForWrongInvoicesData.InitRecordNumber = Integer.toString(firstRegister);
+        vector.addElement(objectAlertsForWrongInvoicesData);
+        if (countRecord >= numberRegisters && numberRegisters != 0) {
+          continueResult = false;
+        }
+      }
+      result.close();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    AlertsForWrongInvoicesData objectAlertsForWrongInvoicesData[] = new AlertsForWrongInvoicesData[vector.size()];
+    vector.copyInto(objectAlertsForWrongInvoicesData);
+    return(objectAlertsForWrongInvoicesData);
+  }
+
+  public static boolean existsAlertRule(ConnectionProvider connectionProvider, String alertRule, String client)    throws ServletException {
     String strSql = "";
     strSql = strSql + 
       "       SELECT COUNT(*) AS EXISTING" +
       "       FROM AD_ALERTRULE" +
       "       WHERE NAME = ?" +
-      "         AND ISACTIVE = 'Y'";
+      "         AND ISACTIVE = 'Y'" +
+      "         AND AD_CLIENT_ID = ?";
 
     ResultSet result;
     boolean boolReturn = false;
@@ -126,10 +208,11 @@
     try {
     st = connectionProvider.getPreparedStatement(strSql);
       iParameter++; UtilSql.setValue(st, iParameter, 12, null, alertRule);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, client);
 
       result = st.executeQuery();
       if(result.next()) {
-        boolReturn = !UtilSql.getValue(result, "existing").equals("0");
+        boolReturn = !UtilSql.getValue(result, "EXISTING").equals("0");
       }
       result.close();
     } catch(SQLException e){
@@ -169,7 +252,7 @@
 
       result = st.executeQuery();
       if(result.next()) {
-        boolReturn = !UtilSql.getValue(result, "existing").equals("0");
+        boolReturn = !UtilSql.getValue(result, "EXISTING").equals("0");
       }
       result.close();
     } catch(SQLException e){
@@ -209,7 +292,7 @@
 
       result = st.executeQuery();
       if(result.next()) {
-        strReturn = UtilSql.getValue(result, "name");
+        strReturn = UtilSql.getValue(result, "NAME");
       }
       result.close();
     } catch(SQLException e){
@@ -228,6 +311,64 @@
     return(strReturn);
   }
 
+  public static AlertsForWrongInvoicesData[] selectOldAlertRules(ConnectionProvider connectionProvider)    throws ServletException {
+    return selectOldAlertRules(connectionProvider, 0, 0);
+  }
+
+  public static AlertsForWrongInvoicesData[] selectOldAlertRules(ConnectionProvider connectionProvider, int firstRegister, int numberRegisters)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "       SELECT ad_alertrule_id" +
+      "       FROM AD_ALERTRULE" +
+      "       WHERE (name = 'Wrong purchase invoice. Wrong amount in payment plan detail' OR" +
+      "              name = 'Wrong sales invoice. Wrong amount in payment plan detail')" +
+      "         AND ISACTIVE = 'Y'" +
+      "         AND lower(SQL) not like '%iscanceled%'";
+
+    ResultSet result;
+    Vector<java.lang.Object> vector = new Vector<java.lang.Object>(0);
+    PreparedStatement st = null;
+
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+
+      result = st.executeQuery();
+      long countRecord = 0;
+      long countRecordSkip = 1;
+      boolean continueResult = true;
+      while(countRecordSkip < firstRegister && continueResult) {
+        continueResult = result.next();
+        countRecordSkip++;
+      }
+      while(continueResult && result.next()) {
+        countRecord++;
+        AlertsForWrongInvoicesData objectAlertsForWrongInvoicesData = new AlertsForWrongInvoicesData();
+        objectAlertsForWrongInvoicesData.adAlertruleId = UtilSql.getValue(result, "AD_ALERTRULE_ID");
+        objectAlertsForWrongInvoicesData.InitRecordNumber = Integer.toString(firstRegister);
+        vector.addElement(objectAlertsForWrongInvoicesData);
+        if (countRecord >= numberRegisters && numberRegisters != 0) {
+          continueResult = false;
+        }
+      }
+      result.close();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    AlertsForWrongInvoicesData objectAlertsForWrongInvoicesData[] = new AlertsForWrongInvoicesData[vector.size()];
+    vector.copyInto(objectAlertsForWrongInvoicesData);
+    return(objectAlertsForWrongInvoicesData);
+  }
+
   public static AlertsForWrongInvoicesData[] getRoleId(ConnectionProvider connectionProvider, String window, String clientId)    throws ServletException {
     return getRoleId(connectionProvider, window, clientId, 0, 0);
   }
@@ -262,7 +403,7 @@
       while(continueResult && result.next()) {
         countRecord++;
         AlertsForWrongInvoicesData objectAlertsForWrongInvoicesData = new AlertsForWrongInvoicesData();
-        objectAlertsForWrongInvoicesData.adRoleId = UtilSql.getValue(result, "ad_role_id");
+        objectAlertsForWrongInvoicesData.adRoleId = UtilSql.getValue(result, "AD_ROLE_ID");
         objectAlertsForWrongInvoicesData.InitRecordNumber = Integer.toString(firstRegister);
         vector.addElement(objectAlertsForWrongInvoicesData);
         if (countRecord >= numberRegisters && numberRegisters != 0) {
@@ -411,4 +552,67 @@
     }
     return(updateCount);
   }
+
+  public static int updateAlertRuleSql(ConnectionProvider connectionProvider, String sql, String adAlertRuleId)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "      UPDATE ad_alertrule SET SQL = ? WHERE ad_alertrule_id = ?";
+
+    int updateCount = 0;
+    PreparedStatement st = null;
+
+    int iParameter = 0;
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, sql);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, adAlertRuleId);
+
+      updateCount = st.executeUpdate();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    return(updateCount);
+  }
+
+  public static int updateAlertStatus(ConnectionProvider connectionProvider, String status, String isfixed, String alertId)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "      UPDATE ad_alert SET status = ?, isfixed = ? WHERE ad_alert_id = ?";
+
+    int updateCount = 0;
+    PreparedStatement st = null;
+
+    int iParameter = 0;
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, status);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, isfixed);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, alertId);
+
+      updateCount = st.executeUpdate();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    return(updateCount);
+  }
 }
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.html	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.html	Wed Oct 05 12:55:03 2011 +0200
@@ -55,6 +55,7 @@
   OB.APRM.APFT_GLItems = [];
   OB.APRM.APFT_GLItemsId = 0;
   OB.APRM.HasGLItems = false;
+  OB.APRM.AOOI_bp = null;
 var hasBPartner = null;
 </script>
 <script language="JavaScript" type="text/javascript">
@@ -100,12 +101,28 @@
   return true;
 }
 function loadGridList() {
-  try {
-    var url = '../org.openbravo.advpaymentmngt.ad_actionbutton/AddOrderOrInvoice.html';
-    var paramXMLReq = null;
-    return submitXmlHttpRequest(callBackGrid, document.frmMain, 'GRIDLIST', url, false, null, paramXMLReq);
-  } catch (e) {
-    alert(e);
+  if (OB.APRM.AOOI_bp === null ||
+      OB.APRM.AOOI_bp !== document.getElementById('C_BPartner_ID').value ||
+      OB.APRM.AOOI_dt !== document.getElementById('paramDocumentType').value ||
+      OB.APRM.AOOI_pm !== document.getElementById('paramAlternativePaymentMethod').checked ||
+      OB.APRM.AOOI_ddf !== document.getElementById('paramDueDateFrom').value ||
+      OB.APRM.AOOI_ddt !== document.getElementById('paramDueDateTo').value ||
+      OB.APRM.AOOI_cu !== document.getElementById('paramCurrencyId').value)
+  {
+	OB.APRM.AOOI_bp = document.getElementById('C_BPartner_ID').value;
+    OB.APRM.AOOI_dt = document.getElementById('paramDocumentType').value;
+    OB.APRM.AOOI_pm = document.getElementById('paramAlternativePaymentMethod').checked;
+    OB.APRM.AOOI_ddf = document.getElementById('paramDueDateFrom').value;
+    OB.APRM.AOOI_ddt = document.getElementById('paramDueDateTo').value;
+    OB.APRM.AOOI_cu = document.getElementById('paramCurrencyId').value;
+
+	try {
+      var url = '../org.openbravo.advpaymentmngt.ad_actionbutton/AddOrderOrInvoice.html';
+      var paramXMLReq = null;
+      return submitXmlHttpRequest(callBackGrid, document.frmMain, 'GRIDLIST', url, false, null, paramXMLReq);
+    } catch (e) {
+      alert(e);
+    }
   }
 }
 </script>
@@ -836,7 +853,7 @@
             <tr>
               <td class="TitleCell"><span class="LabelText">Transaction Type</span></td>
               <td class="Combo_ContentCell">
-                <select name="inpDocumentType" class="ComboKey Combo_OneCell_width" onchange="documentTypeOnChange(this.value);">
+                <select id="paramDocumentType" name="inpDocumentType" class="ComboKey Combo_OneCell_width" onchange="documentTypeOnChange(this.value);">
                   <option value="O">Orders</option>
                   <option value="I" selected="selected">Invoices</option>
                   <option value="B">Orders and Invoices</option>
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java	Wed Oct 05 12:55:03 2011 +0200
@@ -176,7 +176,7 @@
             if (strDifferenceAction.equals("refund")) {
               Boolean newPayment = !payment.getFINPaymentDetailList().isEmpty();
               FIN_Payment refundPayment = FIN_AddPayment.createRefundPayment(this, vars, payment,
-                  refundAmount.negate());
+                  refundAmount.negate(), exchangeRate);
               OBError auxMessage = FIN_AddPayment.processPayment(vars, this,
                   (strAction.equals("PRP") || strAction.equals("PPP")) ? "P" : "D", refundPayment);
               if (newPayment) {
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java	Wed Oct 05 12:55:03 2011 +0200
@@ -228,7 +228,7 @@
             if (strDifferenceAction.equals("refund")) {
               Boolean newPayment = !payment.getFINPaymentDetailList().isEmpty();
               FIN_Payment refundPayment = FIN_AddPayment.createRefundPayment(this, vars, payment,
-                  refundAmount.negate());
+                  refundAmount.negate(), exchangeRate);
               OBError auxMessage = FIN_AddPayment.processPayment(vars, this,
                   (strAction.equals("PRP") || strAction.equals("PPP")) ? "P" : "D", refundPayment);
               if (newPayment) {
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.html	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.html	Wed Oct 05 12:55:03 2011 +0200
@@ -52,6 +52,8 @@
   OB.APRM.APFT_GLItems = [];
   OB.APRM.APFT_GLItemsId = 0;
   OB.APRM.HasGLItems = false;
+  OB.APRM.APFT_bp = null;
+  OB.APRM.APPM_bp = null;
 function callBackGrid(paramXMLParticular, XMLHttpRequestObj) {
   var strText = '';
   if (getReadyStateHandler(XMLHttpRequestObj)) {
@@ -87,13 +89,38 @@
   }
   return true;
 }
+
 function loadGridList() {
-  try {
-    var url = '../org.openbravo.advpaymentmngt.ad_actionbutton/AddPaymentFromTransaction.html';
-    var paramXMLReq = null;
-    return submitXmlHttpRequest(callBackGrid, document.frmMain, 'GRIDLIST', url, false, null, paramXMLReq);
-  } catch (e) {
-    alert(e);
+  if (OB.APRM.APFT_bp === null ||
+      OB.APRM.APFT_bp !== frmMain['inpcBpartnerId'].value ||
+      OB.APRM.APFT_fa !== frmMain['inpFinancialAccountId'].value ||
+      OB.APRM.APFT_ddf !== frmMain['inpDueDateFrom'].value ||
+      OB.APRM.APFT_ddt !== frmMain['inpDueDateTo'].value ||
+      OB.APRM.APFT_tdf !== frmMain['inpTransDateFrom'].value ||
+      OB.APRM.APFT_tdt !== frmMain['inpTransDateTo'].value ||
+      OB.APRM.APFT_dt !== frmMain['inpDocumentType'].value ||
+      OB.APRM.APFT_cu !== frmMain['inpCurrencyId'].value ||
+      OB.APRM.APFT_dn !== frmMain['inpDocumentNo'].value ||
+      OB.APRM.APFT_re !== frmMain['isReceipt'].value) {
+
+    OB.APRM.APFT_bp = frmMain['inpcBpartnerId'].value;
+    OB.APRM.APFT_fa = frmMain['inpFinancialAccountId'].value;
+    OB.APRM.APFT_ddf = frmMain['inpDueDateFrom'].value;
+    OB.APRM.APFT_ddt = frmMain['inpDueDateTo'].value;
+    OB.APRM.APFT_tdf = frmMain['inpTransDateFrom'].value;
+    OB.APRM.APFT_tdt = frmMain['inpTransDateTo'].value;
+    OB.APRM.APFT_dt = frmMain['inpDocumentType'].value;
+    OB.APRM.APFT_cu = frmMain['inpCurrencyId'].value;
+    OB.APRM.APFT_dn = frmMain['inpDocumentNo'].value;
+    OB.APRM.APFT_re = frmMain['isReceipt'].value;
+
+    try {
+      var url = '../org.openbravo.advpaymentmngt.ad_actionbutton/AddPaymentFromTransaction.html';
+      var paramXMLReq = null;
+      return submitXmlHttpRequest(callBackGrid, document.frmMain, 'GRIDLIST', url, false, null, paramXMLReq);
+    } catch (e) {
+      alert(e);
+    }
   }
 }
 function callBackPaymentMethod(paramXMLParticular, XMLHttpRequestObj) {
@@ -111,12 +138,23 @@
 }
 
 function loadPaymentMethodCombo() {
-  try {
-    var url = "../org.openbravo.advpaymentmngt.ad_actionbutton/AddPaymentFromTransaction.html";
-    var paramXMLReq = null;
-    return submitXmlHttpRequest(callBackPaymentMethod, document.frmMain, "PAYMENTMETHODCOMBO", url, false, null, paramXMLReq);
-  } catch (e) {
-    alert(e);
+
+  if (OB.APRM.APPM_bp === null ||
+      OB.APRM.APPM_bp !== frmMain['inpcBpartnerId'].value ||
+      OB.APRM.APPM_fa !== frmMain['inpFinancialAccountId'].value ||
+      OB.APRM.APPM_re !== frmMain['isReceipt'].value) {
+
+    OB.APRM.APPM_bp = frmMain['inpcBpartnerId'].value;
+    OB.APRM.APPM_fa = frmMain['inpFinancialAccountId'].value;
+    OB.APRM.APPM_re = frmMain['isReceipt'].value;
+
+    try {
+      var url = "../org.openbravo.advpaymentmngt.ad_actionbutton/AddPaymentFromTransaction.html";
+      var paramXMLReq = null;
+      return submitXmlHttpRequest(callBackPaymentMethod, document.frmMain, "PAYMENTMETHODCOMBO", url, false, null, paramXMLReq);
+    } catch (e) {
+      alert(e);
+    }
   }
 }
 
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.java	Wed Oct 05 12:55:03 2011 +0200
@@ -256,7 +256,7 @@
           if (strDifferenceAction.equals("refund")) {
             Boolean newPayment = !payment.getFINPaymentDetailList().isEmpty();
             FIN_Payment refundPayment = FIN_AddPayment.createRefundPayment(this, vars, payment,
-                refundAmount.negate());
+                refundAmount.negate(), exchangeRate);
             OBError auxMessage = FIN_AddPayment.processPayment(vars, this,
                 (strAction.equals("PRP") || strAction.equals("PPP")) ? "P" : "D", refundPayment);
             if (newPayment) {
@@ -520,8 +520,15 @@
     FIN_FinancialAccount account = OBDal.getInstance().get(FIN_FinancialAccount.class,
         strFinancialAccountId);
     BusinessPartner bp = OBDal.getInstance().get(BusinessPartner.class, strBusinessPartnerId);
-    paymentMethodComboHtml = FIN_Utility.getPaymentMethodList(
-        (bp != null && bp.getPaymentMethod() != null) ? bp.getPaymentMethod().getId() : null,
+    String paymentMethodId = null;
+    if (bp != null) {
+      if (isReceipt && bp.getPaymentMethod() != null) {
+        paymentMethodId = bp.getPaymentMethod().getId();
+      } else if (!isReceipt && bp.getPOPaymentMethod() != null) {
+        paymentMethodId = bp.getPOPaymentMethod().getId();
+      }
+    }
+    paymentMethodComboHtml = FIN_Utility.getPaymentMethodList(paymentMethodId,
         strFinancialAccountId, account.getOrganization().getId(), true, true, isReceipt);
 
     response.setContentType("text/html; charset=UTF-8");
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.java	Wed Oct 05 12:55:03 2011 +0200
@@ -129,6 +129,10 @@
           updateReconciliation(vars, reconciliation.getId(), strFinancialAccountId, strTabId, false);
         }
 
+        // Force manually created bank statements to be processed
+        forceProcessManualBankStatements(OBDal.getInstance().get(FIN_FinancialAccount.class,
+            strFinancialAccountId));
+
         printPage(response, vars, strOrgId, strWindowId, strTabId, strPaymentTypeFilter,
             strFinancialAccountId, reconciliation.getId(), strShowCleared, strHideDate);
       }
@@ -1149,6 +1153,19 @@
     return (obc.list().size() > 0);
   }
 
+  private void forceProcessManualBankStatements(FIN_FinancialAccount account) {
+    OBCriteria<FIN_BankStatement> obc = OBDal.getInstance().createCriteria(FIN_BankStatement.class);
+    obc.add(Restrictions.eq(FIN_BankStatement.PROPERTY_ACCOUNT, account));
+    obc.add(Restrictions.eq(FIN_BankStatement.PROPERTY_PROCESSED, false));
+    obc.add(Restrictions.isNotEmpty(FIN_BankStatement.PROPERTY_FINBANKSTATEMENTLINELIST));
+    for (FIN_BankStatement bs : obc.list()) {
+      bs.setProcessed(true);
+      bs.setAPRMProcessBankStatement("R");
+      OBDal.getInstance().save(bs);
+      OBDal.getInstance().flush();
+    }
+  }
+
   public String getServletInfo() {
     return "This servlet match imported bank statement lines for a financial account";
   }
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/ProcessInvoice.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/ProcessInvoice.java	Wed Oct 05 12:55:03 2011 +0200
@@ -351,19 +351,17 @@
    *         in other cases.
    */
   private boolean isPaymentMethodConfigured(Invoice invoice) {
-    boolean paymentMethodConfigOk = false;
     final FIN_FinancialAccount bpFinAccount = invoice.isSalesTransaction() ? invoice
         .getBusinessPartner().getAccount() : invoice.getBusinessPartner().getPOFinancialAccount();
     if (bpFinAccount != null) {
       for (final FinAccPaymentMethod bpFinAccPaymentMethod : bpFinAccount
           .getFinancialMgmtFinAccPaymentMethodList()) {
         if (bpFinAccPaymentMethod.getPaymentMethod().equals(invoice.getPaymentMethod())) {
-          paymentMethodConfigOk = true;
-          break;
+          return true;
         }
       }
     }
-    return paymentMethodConfigOk;
+    return false;
   }
 
   public String getServletInfo() {
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/TransactionsDao.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/TransactionsDao.java	Wed Oct 05 12:55:03 2011 +0200
@@ -26,6 +26,7 @@
 import java.util.List;
 
 import org.hibernate.criterion.Restrictions;
+import org.openbravo.advpaymentmngt.utility.FIN_Utility;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.provider.OBProvider;
 import org.openbravo.base.secureApp.VariablesSecureApp;
@@ -109,12 +110,14 @@
               payment.getDescription().length() > 254 ? 254 : payment.getDescription().length()));
       newTransaction.setClient(payment.getClient());
       newTransaction.setLineNo(getTransactionMaxLineNo(payment.getAccount()) + 10);
-      newTransaction
-          .setDepositAmount(payment.getDocumentType().getDocumentCategory().equals("ARR") ? payment
-              .getFinancialTransactionAmount() : BigDecimal.ZERO);
-      newTransaction
-          .setPaymentAmount(payment.getDocumentType().getDocumentCategory().equals("ARR") ? BigDecimal.ZERO
-              : payment.getFinancialTransactionAmount());
+
+      BigDecimal depositAmt = FIN_Utility.getDepositAmount(payment.getDocumentType()
+          .getDocumentCategory().equals("ARR"), payment.getFinancialTransactionAmount());
+      BigDecimal paymentAmt = FIN_Utility.getPaymentAmount(payment.getDocumentType()
+          .getDocumentCategory().equals("ARR"), payment.getFinancialTransactionAmount());
+
+      newTransaction.setDepositAmount(depositAmt);
+      newTransaction.setPaymentAmount(paymentAmt);
       newTransaction.setStatus(newTransaction.getDepositAmount().compareTo(
           newTransaction.getPaymentAmount()) > 0 ? "RPR" : "PPM");
       if (!newTransaction.getCurrency().equals(payment.getCurrency())) {
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_AddPayment.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_AddPayment.java	Wed Oct 05 12:55:03 2011 +0200
@@ -227,6 +227,12 @@
 
   public static FIN_Payment createRefundPayment(ConnectionProvider conProvider,
       VariablesSecureApp vars, FIN_Payment payment, BigDecimal refundAmount) {
+    return createRefundPayment(conProvider, vars, payment, refundAmount, null);
+  }
+
+  public static FIN_Payment createRefundPayment(ConnectionProvider conProvider,
+      VariablesSecureApp vars, FIN_Payment payment, BigDecimal refundAmount,
+      BigDecimal conversionRate) {
     dao = new AdvPaymentMngtDao();
     FIN_Payment refundPayment;
     if (payment.getFINPaymentDetailList().isEmpty())
@@ -249,6 +255,8 @@
     refundPayment.setAmount(refundAmount);
     refundPayment.setUsedCredit(refundAmount.negate());
 
+    setFinancialTransactionAmountAndRate(refundPayment, conversionRate, null);
+
     FIN_PaymentScheduleDetail refundScheduleDetail = dao.getNewPaymentScheduleDetail(
         payment.getOrganization(), refundAmount);
     dao.getNewPaymentDetail(refundPayment, refundScheduleDetail, refundAmount, BigDecimal.ZERO,
--- a/modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/FIN_Utilities.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/FIN_Utilities.js	Wed Oct 05 12:55:03 2011 +0200
@@ -41,10 +41,16 @@
   if (!isCreditAllowed) {
     frm.inpUseCredit.checked = false;
   }
-  globalMaskNumeric = getDefaultMaskNumeric();
   globalDecSeparator = getGlobalDecSeparator();
   globalGroupSeparator = getGlobalGroupSeparator();
   globalGroupInterval = getGlobalGroupInterval();
+
+  globalMaskNumeric = formatNameToMask('euroEdition');
+  if (!globalMaskNumeric && OB && OB.Format && OB.Format.formats) {
+    globalMaskNumeric = OB.Format.formats.euroEdition;
+    globalMaskNumeric = returnMaskChange(globalMaskNumeric, '.', ',', globalDecSeparator, globalGroupSeparator);
+  }
+  globalMaskNumeric = globalMaskNumeric || getDefaultMaskNumeric();
 }
 
 function processLabels() {
@@ -303,8 +309,8 @@
 }
 
 function updateDifference() {
-  var expected = (frm.inpExpectedPayment && frm.inpExpectedPayment.value) ? frm.inpExpectedPayment.value : 0,
-      total = (frm.inpTotal && frm.inpTotal.value) ? frm.inpTotal.value : 0,
+  var expected = (frm.inpExpectedPayment && frm.inpExpectedPayment.value) ? frm.inpExpectedPayment.value : applyFormat('0'),
+      total = (frm.inpTotal && frm.inpTotal.value) ? frm.inpTotal.value : applyFormat('0'),
       amount = total,
       invoicedAmount = total;
   
@@ -323,7 +329,7 @@
   } else if ( compareWithSign(amount, '>', total) ) {
     frm.inpDifference.value = subtract(amount, total);
   } else {
-    frm.inpDifference.value = 0;
+    frm.inpDifference.value = applyFormat('0');
   }
   document.getElementById('paramDifference').innerHTML = frm.inpDifference.value;
   displayLogicElement('sectionDifference', ( compare(expected, '!=', total) || compareWithSign(amount, '>', total) ) );
@@ -346,7 +352,7 @@
 
 function updateTotal() {
   var chk = frm.inpScheduledPaymentDetailId;
-  var total = 0, i, invalidSpan;
+  var total = applyFormat('0'), i, invalidSpan;
   var scheduledPaymentDetailId, pendingAmount, amount, isAnyChecked = false;
   var selectedBusinessPartners = {
      numberofitems: 0,
@@ -385,9 +391,9 @@
       frm.inpActualPayment.value = frm.inpGeneratedCredit.value;
     }
     updateDifference();
-    if (OB.APRM.HasGLItems === 'undefined' || !OB.APRM.HasGLItems) {
+    //if (OB.APRM.HasGLItems === 'undefined' || !OB.APRM.HasGLItems) {
       //return;
-    }
+    //}
   } else if (!chk.length) {
     scheduledPaymentDetailId = frm.inpRecordId0.value;
     pendingAmount = frm.elements["inpRecordAmt" + scheduledPaymentDetailId].value;
@@ -548,9 +554,9 @@
   var chk = frm.inpScheduledPaymentDetailId;
   var recordAmount, i;
 
-  frm.inpExpectedPayment.value = '0';
+  frm.inpExpectedPayment.value = applyFormat('0');
   if (isGLItemEnabled) {
-    frm.inpExpectedPayment.value = frm.inpGLSumAmount.value || '0';
+    frm.inpExpectedPayment.value = frm.inpGLSumAmount.value || applyFormat('0');
   }
   if (!chk) {
     return;
@@ -613,7 +619,7 @@
       if (!validateSelectedAmounts(chk.value, compare(selectedTotal, '<', actualPayment), action)) {
         return false;
       }
-    } else if ( !allowNotSelectingPendingPayment || compare(document.frmMain.inpDifference.value, '==', "0") ){
+    } else if ( !allowNotSelectingPendingPayment || compare(actualPayment, '==', "0")){
       showJSMessage('APRM_JSNOTLINESELECTED');
       return false;
     }
@@ -629,7 +635,7 @@
       }
     }
     if (!isAnyChecked &&
-        (!allowNotSelectingPendingPayment || compare(document.frmMain.inpDifference.value, '==', "0")) 
+        (!allowNotSelectingPendingPayment || compare(actualPayment, '==', "0"))
         ) {
       showJSMessage('APRM_JSNOTLINESELECTED');
       return false;
--- a/modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <NAME><![CDATA[JBoss Weld]]></NAME>
-<!--C70732EA90A14EC0916078B85CC33D2D-->  <VERSION><![CDATA[1.1.13451]]></VERSION>
+<!--C70732EA90A14EC0916078B85CC33D2D-->  <VERSION><![CDATA[1.1.13698]]></VERSION>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <DESCRIPTION><![CDATA[JBoss Weld]]></DESCRIPTION>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <HELP><![CDATA[Provides the JBoss Weld framework: Java Contexts and Dependency Injection for the Java EE platform (CDI). For more information see http://seamframework.org/Weld]]></HELP>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <URL><![CDATA[http://forge.openbravo.com/projects/weld]]></URL>
@@ -22,7 +22,7 @@
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <UPDATEINFO><![CDATA[Bug fixing.]]></UPDATEINFO>
-<!--C70732EA90A14EC0916078B85CC33D2D-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--C70732EA90A14EC0916078B85CC33D2D-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--C70732EA90A14EC0916078B85CC33D2D--></AD_MODULE>
 
--- a/modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <AD_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_MODULE_ID>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <DEPENDANT_MODULE_NAME><![CDATA[Core]]></DEPENDANT_MODULE_NAME>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_COLUMN.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_COLUMN.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -3568,6 +3568,7 @@
 <!--A890369E8CB240B3825A25E6F9C4A385-->  <COLUMNNAME><![CDATA[AD_Module_ID]]></COLUMNNAME>
 <!--A890369E8CB240B3825A25E6F9C4A385-->  <AD_TABLE_ID><![CDATA[B733B9E74A0D4FE1A3EC2A100E0ADD47]]></AD_TABLE_ID>
 <!--A890369E8CB240B3825A25E6F9C4A385-->  <AD_REFERENCE_ID><![CDATA[19]]></AD_REFERENCE_ID>
+<!--A890369E8CB240B3825A25E6F9C4A385-->  <AD_VAL_RULE_ID><![CDATA[C45CFD74FF5145B0A356E9233D49996F]]></AD_VAL_RULE_ID>
 <!--A890369E8CB240B3825A25E6F9C4A385-->  <FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
 <!--A890369E8CB240B3825A25E6F9C4A385-->  <ISKEY><![CDATA[N]]></ISKEY>
 <!--A890369E8CB240B3825A25E6F9C4A385-->  <ISPARENT><![CDATA[N]]></ISPARENT>
@@ -4615,7 +4616,7 @@
 <!--F7DE0BA73FA64A68B898495072729D12-->  <FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
 <!--F7DE0BA73FA64A68B898495072729D12-->  <ISKEY><![CDATA[N]]></ISKEY>
 <!--F7DE0BA73FA64A68B898495072729D12-->  <ISPARENT><![CDATA[N]]></ISPARENT>
-<!--F7DE0BA73FA64A68B898495072729D12-->  <ISMANDATORY><![CDATA[N]]></ISMANDATORY>
+<!--F7DE0BA73FA64A68B898495072729D12-->  <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
 <!--F7DE0BA73FA64A68B898495072729D12-->  <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
 <!--F7DE0BA73FA64A68B898495072729D12-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
 <!--F7DE0BA73FA64A68B898495072729D12-->  <SEQNO><![CDATA[100]]></SEQNO>
--- a/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -1362,7 +1362,7 @@
 <!--FF80808130DC55FE0130DC9631A60019-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--FF80808130DC55FE0130DC9631A60019-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF80808130DC55FE0130DC9631A60019-->  <VALUE><![CDATA[OBUIAPP_ActivateMessage]]></VALUE>
-<!--FF80808130DC55FE0130DC9631A60019-->  <MSGTEXT><![CDATA[Only Professional and Basic Edition subscribers can %0. <a target="_blank" href="http://www.openbravo.com/product/erp/editions/">Learn more</a> about the benefits of Openbravo's commercial editions.]]></MSGTEXT>
+<!--FF80808130DC55FE0130DC9631A60019-->  <MSGTEXT><![CDATA[%0 only available for Professional and Basic Edition subscribers. <a target="_blank" href="http://www.openbravo.com/product/erp/editions/">Learn more</a> about the benefits of Openbravo's Professional and Basic Editions.]]></MSGTEXT>
 <!--FF80808130DC55FE0130DC9631A60019-->  <MSGTIP><![CDATA[%0 is a place-holder used to show a feature description]]></MSGTIP>
 <!--FF80808130DC55FE0130DC9631A60019-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
 <!--FF80808130DC55FE0130DC9631A60019-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
@@ -1473,7 +1473,7 @@
 <!--FF8080813198F7290131995F17A8004E-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--FF8080813198F7290131995F17A8004E-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080813198F7290131995F17A8004E-->  <VALUE><![CDATA[OBUIAPP_ActivateMessagePersonalization]]></VALUE>
-<!--FF8080813198F7290131995F17A8004E-->  <MSGTEXT><![CDATA[use <a href="http://wiki.openbravo.com/wiki/User_Manual/Window_Personalization" target="_blank">Window Personalization</a>]]></MSGTEXT>
+<!--FF8080813198F7290131995F17A8004E-->  <MSGTEXT><![CDATA[<a href="http://wiki.openbravo.com/wiki/User_Manual/Window_Personalization" target="_blank">Window Personalization</a> is a Premium Feature]]></MSGTEXT>
 <!--FF8080813198F7290131995F17A8004E-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
 <!--FF8080813198F7290131995F17A8004E-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--FF8080813198F7290131995F17A8004E--></AD_MESSAGE>
@@ -2823,7 +2823,7 @@
 <!--FF808181317F5351013180238B8C001F-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--FF808181317F5351013180238B8C001F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF808181317F5351013180238B8C001F-->  <VALUE><![CDATA[OBUIAPP_Personalization_PropertiesFormEmptyMessage]]></VALUE>
-<!--FF808181317F5351013180238B8C001F-->  <MSGTEXT><![CDATA[Select a field shown in the pane above, to edit its properties in this pane.]]></MSGTEXT>
+<!--FF808181317F5351013180238B8C001F-->  <MSGTEXT><![CDATA[Select a field in the pane above, to edit its properties in this pane.]]></MSGTEXT>
 <!--FF808181317F5351013180238B8C001F-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
 <!--FF808181317F5351013180238B8C001F-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--FF808181317F5351013180238B8C001F--></AD_MESSAGE>
@@ -2993,4 +2993,26 @@
 <!--FF808181318F39F401318F51E56F0023-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--FF808181318F39F401318F51E56F0023--></AD_MESSAGE>
 
+<!--FF80818131AE1B250131AE6200990017--><AD_MESSAGE>
+<!--FF80818131AE1B250131AE6200990017-->  <AD_MESSAGE_ID><![CDATA[FF80818131AE1B250131AE6200990017]]></AD_MESSAGE_ID>
+<!--FF80818131AE1B250131AE6200990017-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FF80818131AE1B250131AE6200990017-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FF80818131AE1B250131AE6200990017-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FF80818131AE1B250131AE6200990017-->  <VALUE><![CDATA[OBUIAPP_Personalization_Toolbar_SaveClose]]></VALUE>
+<!--FF80818131AE1B250131AE6200990017-->  <MSGTEXT><![CDATA[Save your changes and close the form personalizer]]></MSGTEXT>
+<!--FF80818131AE1B250131AE6200990017-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--FF80818131AE1B250131AE6200990017-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
+<!--FF80818131AE1B250131AE6200990017--></AD_MESSAGE>
+
+<!--FF80818131D7B00F0131D7CBD2E9002A--><AD_MESSAGE>
+<!--FF80818131D7B00F0131D7CBD2E9002A-->  <AD_MESSAGE_ID><![CDATA[FF80818131D7B00F0131D7CBD2E9002A]]></AD_MESSAGE_ID>
+<!--FF80818131D7B00F0131D7CBD2E9002A-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FF80818131D7B00F0131D7CBD2E9002A-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FF80818131D7B00F0131D7CBD2E9002A-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FF80818131D7B00F0131D7CBD2E9002A-->  <VALUE><![CDATA[OBUIAPP_WindowPersonalization_Guidance]]></VALUE>
+<!--FF80818131D7B00F0131D7CBD2E9002A-->  <MSGTEXT><![CDATA[Drag a field vertically in the Fields pane to change its order and the section it appears in.]]></MSGTEXT>
+<!--FF80818131D7B00F0131D7CBD2E9002A-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--FF80818131D7B00F0131D7CBD2E9002A-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
+<!--FF80818131D7B00F0131D7CBD2E9002A--></AD_MESSAGE>
+
 </data>
--- a/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <NAME><![CDATA[User Interface Application]]></NAME>
-<!--9BA0836A3CD74EE4AB48753A47211BCC-->  <VERSION><![CDATA[2.1.13451]]></VERSION>
+<!--9BA0836A3CD74EE4AB48753A47211BCC-->  <VERSION><![CDATA[2.1.13698]]></VERSION>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <DESCRIPTION><![CDATA[Provides the main application components for the openbravo user interface]]></DESCRIPTION>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <HELP><![CDATA[Provides the main application components for the openbravo user interface. The main layout incorporates a navigation bar and a main view area.]]></HELP>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <URL><![CDATA[http://forge.openbravo.com/projects/clientapplication]]></URL>
@@ -22,7 +22,7 @@
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <UPDATEINFO><![CDATA[Styling bugfixing]]></UPDATEINFO>
-<!--9BA0836A3CD74EE4AB48753A47211BCC-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--9BA0836A3CD74EE4AB48753A47211BCC-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--9BA0836A3CD74EE4AB48753A47211BCC--></AD_MODULE>
 
--- a/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <AD_DEPENDENT_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_DEPENDENT_MODULE_ID>
-<!--15D7CE8D95D043189162DBABA54A1F61-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--15D7CE8D95D043189162DBABA54A1F61-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <DEPENDANT_MODULE_NAME><![CDATA[JSON Datasource]]></DEPENDANT_MODULE_NAME>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--60A170212F36499D83B8AD38D01F46B3-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--60A170212F36499D83B8AD38D01F46B3-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--60A170212F36499D83B8AD38D01F46B3-->  <AD_DEPENDENT_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_DEPENDENT_MODULE_ID>
-<!--60A170212F36499D83B8AD38D01F46B3-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--60A170212F36499D83B8AD38D01F46B3-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--60A170212F36499D83B8AD38D01F46B3-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--60A170212F36499D83B8AD38D01F46B3-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Client Kernel]]></DEPENDANT_MODULE_NAME>
 <!--60A170212F36499D83B8AD38D01F46B3-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--824D60CB352E4099B1D8C903CA139DAE-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--824D60CB352E4099B1D8C903CA139DAE-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -49,7 +49,7 @@
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <AD_DEPENDENT_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_DEPENDENT_MODULE_ID>
-<!--E8FD820AFE3D4FE08C02FC47769026AD-->  <STARTVERSION><![CDATA[8.1.13451]]></STARTVERSION>
+<!--E8FD820AFE3D4FE08C02FC47769026AD-->  <STARTVERSION><![CDATA[8.1.13698]]></STARTVERSION>
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <DEPENDANT_MODULE_NAME><![CDATA[Smartclient]]></DEPENDANT_MODULE_NAME>
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/ApplicationComponentProvider.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/ApplicationComponentProvider.java	Wed Oct 05 12:55:03 2011 +0200
@@ -29,6 +29,7 @@
 import org.openbravo.client.kernel.Component;
 import org.openbravo.client.kernel.ComponentProvider;
 import org.openbravo.client.kernel.KernelConstants;
+import org.openbravo.dal.core.OBContext;
 
 /**
  * 
@@ -139,6 +140,8 @@
         "web/org.openbravo.client.application/js/form/formitem/ob-formitem-time.js", true));
     globalResources.add(createStaticResource(
         "web/org.openbravo.client.application/js/form/formitem/ob-formitem-yesno.js", true));
+    globalResources.add(createStaticResource(
+        "web/org.openbravo.client.application/js/form/formitem/ob-formitem-spinner.js", true));
 
     globalResources.add(createStaticResource(
         "web/org.openbravo.client.application/js/toolbar/ob-toolbar.js", false));
@@ -180,6 +183,8 @@
     globalResources.add(createStaticResource(
         "web/org.openbravo.client.application/js/main/ob-standard-view.js", false));
     globalResources.add(createStaticResource(
+        "web/org.openbravo.client.application/js/main/ob-base-view.js", false));
+    globalResources.add(createStaticResource(
         "web/org.openbravo.client.application/js/form/ob-view-form-linked-items.js", false));
     globalResources.add(createStaticResource(
         "web/org.openbravo.client.application/js/form/ob-view-form-notes.js", false));
@@ -225,11 +230,6 @@
 
     // personalization
     globalResources.add(createStaticResource(
-        "web/org.openbravo.userinterface.smartclient/openbravo/skins/"
-            + KernelConstants.SKIN_PARAMETER
-            + "/org.openbravo.client.application/ob-personalization-styles.js", false));
-
-    globalResources.add(createStaticResource(
         "web/org.openbravo.client.application/js/personalization/ob-personalization.js", false));
     globalResources.add(createStaticResource(
         "web/org.openbravo.client.application/js/personalization/ob-personalization-treegrid.js",
@@ -269,6 +269,10 @@
     globalResources.add(createStyleSheetResource(
         "web/org.openbravo.userinterface.smartclient/openbravo/skins/"
             + KernelConstants.SKIN_PARAMETER
+            + "/org.openbravo.client.application/ob-dialog-styles.css", false));
+    globalResources.add(createStyleSheetResource(
+        "web/org.openbravo.userinterface.smartclient/openbravo/skins/"
+            + KernelConstants.SKIN_PARAMETER
             + "/org.openbravo.client.application/ob-toolbar-styles.css", false));
     globalResources.add(createStyleSheetResource(
         "web/org.openbravo.userinterface.smartclient/openbravo/skins/"
@@ -356,6 +360,19 @@
             + KernelConstants.SKIN_PARAMETER
             + "/org.openbravo.client.application/ob-personalization-styles.js", false));
 
+    // RTL files should be added at the end. Don't add more files after them
+    if (OBContext.getOBContext().isRTL()) {
+      globalResources.add(createStyleSheetResource(
+          "web/org.openbravo.userinterface.smartclient/openbravo/skins/"
+              + KernelConstants.SKIN_PARAMETER
+              + "/org.openbravo.client.application/ob-rtl-styles.css", false));
+
+      globalResources.add(createStaticResource(
+          "web/org.openbravo.userinterface.smartclient/openbravo/skins/"
+              + KernelConstants.SKIN_PARAMETER
+              + "/org.openbravo.client.application/ob-rtl-styles.js", false));
+    }
+
     return globalResources;
   }
 
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/MenuManager.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/MenuManager.java	Wed Oct 05 12:55:03 2011 +0200
@@ -277,8 +277,8 @@
   @SuppressWarnings("unchecked")
   private void linkWindows() {
     // collect the valid tabs/windows
-    final String tabsHql = "select t from ADTab t left join fetch t.window left join fetch t.table, ADWindowAccess awa "
-        + "where awa.role.id=:roleId and t.active = true and t.window.active = true and t.window = awa.window and t.tabLevel = 0";
+    final String tabsHql = "select t from ADTab t join fetch t.window w join fetch t.table, ADWindowAccess awa "
+        + "where awa.role.id=:roleId and t.active = true and w.active = true and w = awa.window and t.tabLevel = 0";
     final Query tabsQry = OBDal.getInstance().getSession().createQuery(tabsHql);
     tabsQry.setParameter("roleId", OBContext.getOBContext().getRole().getId());
     // force a load
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/ViewComponent.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/ViewComponent.java	Wed Oct 05 12:55:03 2011 +0200
@@ -20,6 +20,7 @@
 
 import javax.inject.Inject;
 
+import org.apache.commons.codec.digest.DigestUtils;
 import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.util.OBClassLoader;
@@ -35,6 +36,7 @@
 import org.openbravo.erpCommon.obps.ActivationKey;
 import org.openbravo.erpCommon.obps.ActivationKey.FeatureRestriction;
 import org.openbravo.model.ad.module.Module;
+import org.openbravo.model.ad.ui.Tab;
 import org.openbravo.model.ad.ui.Window;
 
 /**
@@ -160,4 +162,30 @@
     return this;
   }
 
+  @Override
+  public String getETag() {
+    String etag = super.getETag();
+
+    return etag + "_" + getViewVersionHash();
+  }
+
+  private synchronized String getViewVersionHash() {
+    String viewVersionHash = "";
+    String viewVersions = "";
+    final String viewId = getParameter("viewId");
+    OBContext.setAdminMode();
+    try {
+      Window window = OBDal.getInstance().get(Window.class, correctViewId(viewId));
+      if (window == null) {
+        return viewVersionHash;
+      }
+      for (Tab t : window.getADTabList()) {
+        viewVersions += t.getTable().isFullyAudited() + "|";
+      }
+      viewVersionHash = DigestUtils.md5Hex(viewVersions);
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+    return viewVersionHash;
+  }
 }
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/templates/quick-launch.js.ftl	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/templates/quick-launch.js.ftl	Wed Oct 05 12:55:03 2011 +0200
@@ -20,7 +20,9 @@
 /* jslint */
 isc.OBQuickLaunch.create({
   title: '',
-  prompt: OB.I18N.getLabel('${data.label}'),
+  itemPrompt: OB.I18N.getLabel('${data.label}'),
+  /* Avoid declare directly "prompt: " in this widget definition.
+     Declared as "itemPrompt" to be called later inside "draw" function (at "ob-quick-launch.js") in order to solve issue https://issues.openbravo.com/view.php?id=18192 in FF */
   buttonType: '${data.buttonType}',
   prefixLabel: '${data.prefixRecent}',
   keyboardShortcutId : '${data.keyboardShortcutId}',
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/layout.js.ftl	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/layout.js.ftl	Wed Oct 05 12:55:03 2011 +0200
@@ -72,6 +72,16 @@
       // note the array has to be placed in an array otherwise the newMembers
       // is considered to the argument list
       this.Super('addMembers', [newMembers]);
+    },
+
+    isFirstDraw: true,
+
+    draw: function() {
+      this.Super("draw", arguments);
+      if(isc.Browser.isIE && this.isFirstDraw) {
+        this.isFirstDraw = false;
+        this.markForRedraw(); //To solve issue https://issues.openbravo.com/view.php?id=18192 in IE
+      }
     }
   }, OB.Styles.TopLayout.NavBar);
   
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl	Wed Oct 05 12:55:03 2011 +0200
@@ -33,6 +33,7 @@
         startRow: ${fieldDefinition.startRow?string},
         endRow: ${fieldDefinition.endRow?string},
         personalizable: ${fieldDefinition.personalizable?string},
+        hasDefaultValue: ${fieldDefinition.hasDefaultValue?string},
         <#if fieldDefinition.standardField>
         columnName: '${fieldDefinition.columnName?string}',
         inpColumnName: '${fieldDefinition.inpColumnName?string}',
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-form.js.ftl	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-form.js.ftl	Wed Oct 05 12:55:03 2011 +0200
@@ -19,7 +19,14 @@
 */
 -->
 {
-    fields: [
+    // use theFields instead of fields, when the form
+    // gets created, initialized, the datasource is
+    // set (ob-standard-view.js buildStructure) 
+    // causing re-initialization of the fields,
+    // removing the current ones and recreating new ones
+    // by using theFields, the form initially does not
+    // have fields, which prevents this initial destroy step
+    theFields: [
     <#list data.fields as field>
       <@createField field/><#if field_has_next>,</#if>
     </#list>    
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-personalization-form.js.ftl	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-personalization-form.js.ftl	Wed Oct 05 12:55:03 2011 +0200
@@ -30,6 +30,7 @@
         startRow: ${fieldDefinition.startRow?string},
         endRow: ${fieldDefinition.endRow?string},
         personalizable: ${fieldDefinition.personalizable?string},
+        isPreviewFormItem: true,
         disabled: true,
         showDisabled: false,
         <#if !fieldDefinition.displayed>
@@ -46,6 +47,7 @@
                 displayed: false,
             </#if>
             required: ${fieldDefinition.required?string},
+            hasDefaultValue: ${fieldDefinition.hasDefaultValue?string},
             <#if fieldDefinition.searchField>
                 showPickerIcon: ${(!fieldDefinition.parentProperty)?string},
             </#if>
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-tab.js.ftl	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-tab.js.ftl	Wed Oct 05 12:55:03 2011 +0200
@@ -21,7 +21,7 @@
 <@createView data/>      
 
 <#macro createView tabComponent>    
-    tabTitle: '${tabComponent.tabTitle}',
+    tabTitle: '${tabComponent.tabTitle?js_string}',
     entity:  '${tabComponent.entityName}',
     
     <#if tabComponent.parentProperty != ''>
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java	Wed Oct 05 12:55:03 2011 +0200
@@ -49,6 +49,7 @@
 import org.openbravo.base.structure.ClientEnabled;
 import org.openbravo.base.structure.OrganizationEnabled;
 import org.openbravo.client.application.DynamicExpressionParser;
+import org.openbravo.client.application.Note;
 import org.openbravo.client.application.window.servlet.CalloutHttpServletResponse;
 import org.openbravo.client.application.window.servlet.CalloutServletConfig;
 import org.openbravo.client.kernel.BaseActionHandler;
@@ -134,6 +135,7 @@
       Map<String, List<String>> columnsInValidation = new HashMap<String, List<String>>();
       List<JSONObject> calloutMessages = new ArrayList<JSONObject>();
       List<String> jsExcuteCode = new ArrayList<String>();
+      Map<String, Object> hiddenInputs = new HashMap<String, Object>();
 
       log.debug("Form Initialization Component Execution. Tab Name: " + tab.getWindow().getName()
           + "." + tab.getName() + " Tab Id:" + tab.getId());
@@ -234,7 +236,8 @@
       // Execution of callouts
       long t6 = System.currentTimeMillis();
       List<String> changedCols = executeCallouts(mode, tab, columnValues, changedColumn,
-          calloutsToCall, lastfieldChanged, calloutMessages, changeEventCols, jsExcuteCode);
+          calloutsToCall, lastfieldChanged, calloutMessages, changeEventCols, jsExcuteCode,
+          hiddenInputs);
 
       if (changedCols.size() > 0) {
         RequestContext.get().setRequestParameter("donotaddcurrentelement", "true");
@@ -245,14 +248,18 @@
       long t7 = System.currentTimeMillis();
       List<JSONObject> attachments = attachmentForRows(tab, rowId, multipleRowIds);
 
+      // Notes information
+      long t8 = System.currentTimeMillis();
+      int noteCount = computeNoteCount(tab, rowId);
+
       // Construction of the final JSONObject
-      long t8 = System.currentTimeMillis();
+      long t9 = System.currentTimeMillis();
       JSONObject finalObject = buildJSONObject(mode, tab, columnValues, row, changeEventCols,
-          calloutMessages, attachments, jsExcuteCode);
-      long t9 = System.currentTimeMillis();
+          calloutMessages, attachments, jsExcuteCode, hiddenInputs, noteCount);
+      long t10 = System.currentTimeMillis();
       log.debug("Elapsed time: " + (System.currentTimeMillis() - iniTime) + "(" + (t2 - t1) + ","
           + (t3 - t2) + "," + (t4 - t3) + "," + (t5 - t4) + "," + (t6 - t5) + "," + (t7 - t6) + ","
-          + (t8 - t7) + "," + (t9 - t8) + ")");
+          + (t8 - t7) + "," + (t9 - t8) + "," + (t10 - t9) + ")");
       log.debug("Attachment exists: " + finalObject.getBoolean("attachmentExists"));
       return finalObject;
     } catch (Throwable t) {
@@ -269,6 +276,13 @@
     return null;
   }
 
+  private int computeNoteCount(Tab tab, String rowId) {
+    OBCriteria<Note> criteria = OBDao.getFilteredCriteria(Note.class,
+        Restrictions.eq("table.id", (String) DalUtil.getId(tab.getTable())),
+        Restrictions.eq("record", rowId));
+    return criteria.count();
+  }
+
   private List<String> convertJSONArray(JSONArray jsonArray) {
     List<String> visibleProperties = new ArrayList<String>();
     for (int i = 0; i < jsonArray.length(); i++) {
@@ -310,12 +324,20 @@
 
   private JSONObject buildJSONObject(String mode, Tab tab, Map<String, JSONObject> columnValues,
       BaseOBObject row, List<String> changeEventCols, List<JSONObject> calloutMessages,
-      List<JSONObject> attachments, List<String> jsExcuteCode) {
+      List<JSONObject> attachments, List<String> jsExcuteCode, Map<String, Object> hiddenInputs,
+      int noteCount) {
     JSONObject finalObject = new JSONObject();
     try {
       if (mode.equals("NEW") || mode.equals("CHANGE")) {
         JSONArray arrayMessages = new JSONArray(calloutMessages);
         finalObject.put("calloutMessages", arrayMessages);
+        if (!hiddenInputs.isEmpty()) {
+          JSONObject jsonHiddenInputs = new JSONObject();
+          for (String key : hiddenInputs.keySet()) {
+            jsonHiddenInputs.put(key, hiddenInputs.get(key));
+          }
+          finalObject.put("hiddenInputs", jsonHiddenInputs);
+        }
       }
       if (mode.equals("NEW") || mode.equals("EDIT") || mode.equals("CHANGE")) {
         JSONObject jsonColumnValues = new JSONObject();
@@ -398,6 +420,7 @@
             finalObject.put("_readOnly", true);
           }
         }
+        finalObject.put("noteCount", noteCount);
       }
       finalObject.put("attachments", new JSONArray(attachments));
       finalObject.put("attachmentExists", attachments.size() > 0);
@@ -959,7 +982,8 @@
 
   private List<String> executeCallouts(String mode, Tab tab, Map<String, JSONObject> columnValues,
       String changedColumn, List<String> calloutsToCall, List<String> lastfieldChanged,
-      List<JSONObject> messages, List<String> dynamicCols, List<String> jsExecuteCode) {
+      List<JSONObject> messages, List<String> dynamicCols, List<String> jsExecuteCode,
+      Map<String, Object> hiddenInputs) {
 
     // In CHANGE mode, we will add the initial callout call for the changed column, if there is
     // one
@@ -981,13 +1005,14 @@
       return new ArrayList<String>();
     }
     return runCallouts(columnValues, tab, calledCallouts, calloutsToCall, lastfieldChanged,
-        messages, dynamicCols, jsExecuteCode);
+        messages, dynamicCols, jsExecuteCode, hiddenInputs);
 
   }
 
   private List<String> runCallouts(Map<String, JSONObject> columnValues, Tab tab,
       List<String> calledCallouts, List<String> calloutsToCall, List<String> lastfieldChangedList,
-      List<JSONObject> messages, List<String> dynamicCols, List<String> jsExecuteCode) {
+      List<JSONObject> messages, List<String> dynamicCols, List<String> jsExecuteCode,
+      Map<String, Object> hiddenInputs) {
     HashMap<String, Object> calloutInstances = new HashMap<String, Object>();
 
     // flush&commit to release lock in db which otherwise interfere with callouts which run in their
@@ -1206,6 +1231,18 @@
                         columnValues.put(name, obj);
                       }
                     }
+                    if (!columnValues.containsKey(name)) {
+                      // This returned value wasn't found to be either a column or an auxiliary
+                      // input. We assume it is a hidden input, which are used in places like
+                      // selectors
+                      Object el = element.get(1, null);
+                      if (el != null) {
+                        hiddenInputs.put(name, el);
+                        // We set the hidden fields in the request, so that subsequent callouts can
+                        // use them
+                        rq.setRequestParameter(name, el.toString());
+                      }
+                    }
                   }
                 }
               }
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFormComponent.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFormComponent.java	Wed Oct 05 12:55:03 2011 +0200
@@ -335,6 +335,8 @@
     public String getReadOnlyIf();
 
     public boolean isDisplayed();
+
+    public boolean getHasDefaultValue();
   }
 
   public class OBViewFieldAudit implements OBViewFieldDefinition {
@@ -393,6 +395,10 @@
       return "";
     }
 
+    public boolean getHasDefaultValue() {
+      return false;
+    }
+
     @Override
     public String getTargetEntity() {
       return refEntity;
@@ -529,6 +535,10 @@
       return getUIDefinition().getName();
     }
 
+    public boolean getHasDefaultValue() {
+      return field.getColumn().getDefaultValue() != null;
+    }
+
     public String getFieldProperties() {
 
       String jsonString = getUIDefinition().getFieldProperties(field).trim();
@@ -710,6 +720,10 @@
       return "";
     }
 
+    public boolean getHasDefaultValue() {
+      return false;
+    }
+
     public boolean isReadOnly() {
       return false;
     }
@@ -1077,6 +1091,10 @@
       return false;
     }
 
+    public boolean getHasDefaultValue() {
+      return false;
+    }
+
     public long getColSpan() {
       return 1;
     }
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-date.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-date.js	Wed Oct 05 12:55:03 2011 +0200
@@ -49,9 +49,6 @@
   
   textAlign: 'left',
   
-  // to prevent infinite looping as setFormErrors will also blur
-  inBlur: false,
-
   dateParts : [],
 
   doInit: function() {
@@ -175,16 +172,14 @@
   }
 };
 
-isc.OBDateItem.addProperties(OB.DateItemProperties,
-  {
-  
+isc.OBDateItem.addProperties(OB.DateItemProperties, {
   validateOnExit: true,
   
   init: function() {
     // this call super.init
     this.doInit();
-   },
-  
+  },
+   
   expandValue: function() {
     var newValue = this.parseValue(), oldValue = this.blurValue();
     
@@ -205,28 +200,27 @@
   },
   
   validateOBDateItem: function(value){
-      var dateValue = OB.Utilities.Date.OBToJS(value, this.dateFormat);
-      var isValid = true;
-      if (this.getValue() && dateValue === null) {
-        isValid = false;
-      }
-      var isRequired = this.required;
-      if (isValid === false) {
-        return false;
-      } else if (isRequired === true && value === null) {
-        return false;
-      }
-      return true;
-    },
-    
-    validators: [{
-      type: 'custom',
-      condition: function(item, validator, value){
-        return item.validateOBDateItem(value);
-      }
-    }]
-  } 
-);
+    var dateValue = OB.Utilities.Date.OBToJS(value, this.dateFormat);
+    var isValid = true;
+    if (this.getValue() && dateValue === null) {
+      isValid = false;
+    }
+    var isRequired = this.required;
+    if (isValid === false) {
+      return false;
+    } else if (isRequired === true && value === null) {
+      return false;
+    }
+    return true;
+  },
+  
+  validators: [{
+    type: 'custom',
+    condition: function(item, validator, value){
+      return item.validateOBDateItem(value);
+    }
+  }]
+});
 
 OB.I18N.getLabel('OBUIAPP_InvalidValue', null, isc.OBDateItem, 'invalidValueLabel');
 OB.I18N.getLabel('OBUISC_Validator.requiredField', null, isc.OBDateItem, 'requiredValueLabel');
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-image.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-image.js	Wed Oct 05 12:55:03 2011 +0200
@@ -21,10 +21,6 @@
 //This class is used for the small image shown within the OBImageItemSmallImageContainer
 isc.ClassFactory.defineClass('OBImageItemSmallImage', isc.Img);
 
-isc.OBImageItemSmallImage.addProperties({
-  showDisabled: false
-});
-
 //== OBImageItemSmallImageContainer ==
 //This class is used for the small image container box
 isc.ClassFactory.defineClass('OBImageItemSmallImageContainer', isc.HLayout);
@@ -100,7 +96,7 @@
 //which are used to upload and delete images.
 isc.ClassFactory.defineClass('OBImageCanvas', isc.HLayout);
 
-OBImageCanvas.addProperties({
+isc.OBImageCanvas.addProperties({
   initWidget: function(){
     this.imageLayout = isc.OBImageItemSmallImageContainer.create({
       imageItem: this.creator
@@ -129,6 +125,13 @@
             imageItem: this.imageItem
           });
           selector.show();
+        },
+        updateState: function(value){
+          if(value){
+            this.setDisabled(false);
+          }else{
+            this.setDisabled(true);
+          }
         }
     });
     var deleteButton = isc.OBImageItemButton.create({
@@ -174,7 +177,14 @@
         }
       }
     });
+    
+    if (this.parentItem.isPreviewFormItem) {
+      selectorButton.showDisabled = false;
+      selectorButton.showDisabledIcon = false;
+    }
+    
     this.deleteButton = deleteButton;
+    this.selectorButton = selectorButton;
     buttonLayout.addMember(selectorButton);
     buttonLayout.addMember(deleteButton);
     this.addMember(buttonLayout);
@@ -201,6 +211,15 @@
 isc.OBImageItem.addProperties({
   shouldSaveValue: true,
   canvasConstructor: 'OBImageCanvas',
+  init: function() {
+    this.canvasProperties = this.canvasProperties || {};
+    this.canvasProperties.parentItem = this;
+    this.Super('init', arguments);
+  },
+  //This formitem will never be disabled, so even if the form is readonly, click events will still be triggered
+  isDisabled: function() {
+    return false;
+  },
   setValue: function(newValue){
     if(!newValue || newValue === '') {
       this.canvas.setImage('');
@@ -233,7 +252,9 @@
         }
       });
     }
-    this.canvas.deleteButton.updateState(newValue);
+    //Buttons will not be shown if the form is readonly
+    this.canvas.deleteButton.updateState(newValue && !this.form.readOnly && !this.readOnly);
+    this.canvas.selectorButton.updateState(!this.form.readOnly && !this.readOnly);
     return this.Super('setValue', arguments);
   },
   refreshImage: function(imageId){
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-link.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-link.js	Wed Oct 05 12:55:03 2011 +0200
@@ -31,9 +31,12 @@
       hspace: this.pickerIconHspace,
       click: function(form, item) {
         var url = item.getValue();
-        if(!url || url.indexOf('://') === -1) {
+        if (!url) {
           return;
         }
+        if (url.indexOf('://') === -1) {
+          url = 'http://' + url;
+        }
         window.open(url);
       }
     }];
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-list.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-list.js	Wed Oct 05 12:55:03 2011 +0200
@@ -60,6 +60,8 @@
     this.Super('pickValue', arguments);
     delete this._pickedValue;
     if (this.moveFocusOnPickValue && this.form.focusInNextItem) {
+      // update the display before moving the focus
+      this.updateValueMap(true);
       this.form.focusInNextItem(this.name);
     }
   },
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-minidaterange.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-minidaterange.js	Wed Oct 05 12:55:03 2011 +0200
@@ -149,7 +149,13 @@
   rangeDialogDefaults: {
     _constructor: 'DateRangeDialog',
     autoDraw: false,
-    destroyOnClose: false
+    destroyOnClose: false,
+    clear: function() {
+      if (this.destroying) {
+        return;
+      }
+      this.Super('clear', arguments);
+    }
   },
   fromDateOnlyPrefix: OB.I18N.getLabel('OBUIAPP_fromDateOnlyPrefix'),
   toDateOnlyPrefix: OB.I18N.getLabel('OBUIAPP_toDateOnlyPrefix'),
@@ -197,7 +203,9 @@
     this.rangeItem.name = this.name;
 
     // this call super.init
-    this.doInit();
+    if (this.doInit) {
+      this.doInit();
+    }
   },
   
   blurValue: function() {
@@ -436,5 +444,27 @@
   
   formatDate: function(dt) {
     return OB.Utilities.Date.JSToOB(dt, OB.Format.date);
+  },
+  
+  // TODO: the destroy and clear can be removed 
+  // after upgrading to a SC release after mid-august 2011
+  destroy: function() {
+    this.destroying = true;
+    if (this.rangeDialog) {
+      this.rangeDialog.rangeForm.destroy();
+      this.rangeDialog.mainLayout.destroy();
+      this.rangeDialog.destroying  = true;
+      this.rangeDialog.destroy();
+      this.rangeDialog.destroying  = false;
+    }
+    this.Super('destroy', arguments);
+    this.destroying = false;
+  },
+  
+  clear: function() {
+    if (this.destroying) {
+      return;
+    }
+    this.Super('clear', arguments);
   }
 });
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-spinner.js	Wed Oct 05 12:55:03 2011 +0200
@@ -0,0 +1,29 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use. this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2011 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+
+
+// == OBSpinnerItem ==
+// Input for spinner number
+isc.ClassFactory.defineClass('OBSpinnerItem', SpinnerItem);
+
+isc.OBSpinnerItem.addProperties({
+  operator: 'equals',
+  validateOnExit: true,
+  changeOnKeypress: true
+});
\ No newline at end of file
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-statusbar.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-statusbar.js	Wed Oct 05 12:55:03 2011 +0200
@@ -161,6 +161,7 @@
   mode : '',
   isActive : true,
   buttonBar : null,
+  buttonBarProperties: {},
 
   initWidget : function() {
     this.contentLabel = isc.OBStatusBarTextLabel.create( {
@@ -169,21 +170,21 @@
       height : '100%'
     });
 
-    this.leftStatusBar = isc.OBStatusBarLeftBar.create( {});
+    this.leftStatusBar = isc.OBStatusBarLeftBar.create({});
     this.leftStatusBar.addMember(this.contentLabel);
     
-    this.buttonBar = isc.OBStatusBarIconButtonBar.create( {});
+    this.buttonBar = isc.OBStatusBarIconButtonBar.create(this.buttonBarProperties);
     this.addCreateButtons();
     
     this.savedIcon = isc.Img.create(this.savedIconDefaults);
     this.newIcon = isc.Img.create(this.newIconDefaults);
     this.editIcon = isc.Img.create(this.editIconDefaults);
-    this.spacer = isc.LayoutSpacer.create( {
+    this.spacer = isc.LayoutSpacer.create({
       width : 14
     });
     this.leftStatusBar.addMember(this.spacer, 0);
 
-    this.addMembers( [ this.leftStatusBar, this.buttonBar ]);
+    this.addMembers([this.leftStatusBar, this.buttonBar]);
     this.Super('initWidget', arguments);
   },
   
@@ -287,13 +288,13 @@
 
   addIcon : function(icon) {
       // remove any existing icon or spacer
-    this.leftStatusBar.removeMember(this.leftStatusBar.members[0]);
+    this.leftStatusBar.destroyAndRemoveMembers(this.leftStatusBar.members[0]);
     this.leftStatusBar.addMember(icon, 0);
   },
 
   removeIcon : function() {
     // remove any existing icon or spacer
-    this.leftStatusBar.removeMember(this.leftStatusBar.members[0]);
+    this.leftStatusBar.destroyAndRemoveMembers(this.leftStatusBar.members[0]);
     this.leftStatusBar.addMember(this.spacer, 0);
   },
 
@@ -306,11 +307,11 @@
     }
   },
 
-  setContentLabel: function(icon, statusCode, arrayTitleField) {
+  setContentLabel: function(icon, statusCode, arrayTitleField, message) {
     // set the status code before calling updateContentTitle
     this.statusCode = statusCode;
     
-    this.updateContentTitle(arrayTitleField);
+    this.updateContentTitle(arrayTitleField, message);
 
     if (icon) {
       this.addIcon(icon);
@@ -319,20 +320,48 @@
     }
   },
 
-  updateContentTitle: function(arrayTitleField) {
+  updateContentTitle: function(arrayTitleField, message) {
     var msg = '', i;
-    if (this.statusCode) {
-      msg += '<span class="' + (this.statusLabelStyle?this.statusLabelStyle:'') + '">' + OB.I18N.getLabel(this.statusCode) + '</span>';
-    }
-    if (arrayTitleField) {
-      for (i = 0; i < arrayTitleField[0].length; i++) {
-        if (i !== 0 || this.statusCode) {
+    if (!isc.Page.isRTL()) { // LTR mode
+      if (this.statusCode) {
+        msg += '<span class="' + (this.statusLabelStyle?this.statusLabelStyle:'') + '">' + OB.I18N.getLabel(this.statusCode) + '</span>';
+      }
+      if (arrayTitleField) {
+        for (i = 0; i < arrayTitleField[0].length; i++) {
+          if (i !== 0 || this.statusCode) {
+            msg += '<span class="' + (this.separatorLabelStyle?this.separatorLabelStyle:'') + '">' + '&nbsp;&nbsp;|&nbsp;&nbsp;' + '</span>';
+          }
+          msg += '<span class="' + (this.titleLabelStyle?this.titleLabelStyle:'') + '">' + arrayTitleField[0][i] + ': ' + '</span>';
+          msg += '<span class="' + (this.fieldLabelStyle?this.fieldLabelStyle:'') + '">' + this.getValidValue(arrayTitleField[1][i]) + '</span>';
+        }
+      }
+      if (message) {
+        if (arrayTitleField || this.statusCode) {
           msg += '<span class="' + (this.separatorLabelStyle?this.separatorLabelStyle:'') + '">' + '&nbsp;&nbsp;|&nbsp;&nbsp;' + '</span>';
         }
-        msg += '<span class="' + (this.titleLabelStyle?this.titleLabelStyle:'') + '">' + arrayTitleField[0][i] + ': ' + '</span>';
-        msg += '<span class="' + (this.fieldLabelStyle?this.fieldLabelStyle:'') + '">' + this.getValidValue(arrayTitleField[1][i]) + '</span>';
+        msg += '<span class="' + (this.titleLabelStyle?this.titleLabelStyle:'') + '">' + message + '</span>';
+      }
+    } else { // RTL mode
+      if (message) {
+        msg += '<span class="' + (this.titleLabelStyle?this.titleLabelStyle:'') + '">' + message + '</span>';
+        if (arrayTitleField || this.statusCode) {
+          msg += '<span class="' + (this.separatorLabelStyle?this.separatorLabelStyle:'') + '">' + '&nbsp;&nbsp;|&nbsp;&nbsp;' + '</span>';
+        }
+      }
+      if (arrayTitleField) {
+        for (i = arrayTitleField[0].length-1; i >= 0; i--) {
+          msg += '<span class="' + (this.fieldLabelStyle?this.fieldLabelStyle:'') + '">' + this.getValidValue(arrayTitleField[1][i]) + '</span>';
+          msg += '<span class="' + (this.titleLabelStyle?this.titleLabelStyle:'') + '">' + ' :' + arrayTitleField[0][i] + '</span>';
+          if (i !== 0 || this.statusCode) {
+            msg += '<span class="' + (this.separatorLabelStyle?this.separatorLabelStyle:'') + '">' + '&nbsp;&nbsp;|&nbsp;&nbsp;' + '</span>';
+          }
+        }
+      }
+      if (this.statusCode) {
+        msg += '<span class="' + (this.statusLabelStyle?this.statusLabelStyle:'') + '">' + OB.I18N.getLabel(this.statusCode) + '</span>';
       }
     }
+
     if (this.labelOverflowHidden) {
       msg = '<nobr>' + msg + '</nobr>';
     }
@@ -345,6 +374,23 @@
       return '&nbsp;&nbsp;&nbsp;';
     }
     return value;
+  },
+
+  destroy: function () {
+    if(this.savedIcon) {
+      this.savedIcon.destroy();
+      this.savedIcon = null;
+    }
+
+    if(this.newIcon) {
+      this.newIcon.destroy();
+      this.newIcon = null;
+    }
+
+    if(this.editIcon) {
+      this.editIcon.destroy();
+      this.editIcon = null;
+    }
+    this.Super('destroy', arguments);
   }
-
 });
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form-attachments.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form-attachments.js	Wed Oct 05 12:55:03 2011 +0200
@@ -220,7 +220,7 @@
   
   fillAttachments: function(attachments){
     this.savedAttachments = attachments;
-    this.removeMembers(this.getMembers());
+    this.destroyAndRemoveMembers(this.getMembers());
     var hLayout = isc.HLayout.create();
     if(this.getForm().isNew){
       return;	
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form-linked-items.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form-linked-items.js	Wed Oct 05 12:55:03 2011 +0200
@@ -175,6 +175,7 @@
     var windowId = this.getForm().view.standardWindow.windowId;
     var entityName = this.getForm().view.entity;
     var actionURL = OB.Application.contextUrl + 'utility/UsedByLink.html';
+    var selCatItems=this.linkedItemCategoryListGrid.getSelectedRecord();
     
     var that = this;
     /* loads linked items to the child grid */
@@ -192,7 +193,12 @@
       that.linkedItemDS.setCacheData(usedByLinkData, true);
       that.linkedItemListGrid.filterData();
     };
-    var reqObj = {
+
+    if (!selCatItems){
+     this.linkedItemCategoryListGrid.filterEditorSubmit();
+    }
+    else{
+     var reqObj = {
       params: {
         Command: 'JSONLinkedItem',
         windowId: windowId,
@@ -206,9 +212,9 @@
       httpMethod: 'POST',
       useSimpleHttp: true,
       actionURL: actionURL
-    };
+     };
     isc.RPCManager.sendRequest(reqObj);
-    
+    }
   },
   
   /**
@@ -309,7 +315,6 @@
     hLayout.addMember(this.linkedItemListGrid);
     
     this.messageLabel = isc.Label.create({
-      ID: 'messageLabel',
       width: '100%',
       height: '100%',
       canFocus: true
@@ -351,7 +356,7 @@
     if (expanded && !this.isInitialized) {
     
       this.loadCategories();
-      
+      this.linkedItemCategoryListGrid.filterEditorSubmit();
       // this part should stay also for linked items
       this.isInitialized = true;
     }
@@ -364,6 +369,20 @@
       view.setAsActiveView();
     }
     return this.Super('focusChanged', arguments);
+  },
+
+  destroy: function () {
+    // Explicitly destroy the associated DataSource to prevent memory leaks
+    // http://forums.smartclient.com/showthread.php?p=70493
+    if(this.linkedItemDS) {
+      this.linkedItemDS.destroy();
+      this.likedItemDS = null;
+    }
+    if(this.linkedItemCategoryDS) {
+      this.linkedItemCategoryDS.destroy();
+      this.likedItemDS = null;
+    }
+    this.Super('destroy', arguments);
   }
 });
 
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form-notes.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form-notes.js	Wed Oct 05 12:55:03 2011 +0200
@@ -38,6 +38,8 @@
   canvasItem : null,
 
   visible : true,
+  
+  noteCount: 0,
  
   // this field group does not participate in personalization
   personalizable: false,
@@ -52,6 +54,15 @@
 
     this.Super('init', arguments);
   },
+  
+  setNoteCount: function(lNoteCount) {
+    this.noteCount = lNoteCount;
+    if(lNoteCount !== 0) {
+      this.setValue(OB.I18N.getLabel('OBUIAPP_NotesTitle') + ' (' + lNoteCount+')');
+    }else{
+      this.setValue(OB.I18N.getLabel('OBUIAPP_NotesTitle'));
+    }
+  },
 
   getNotePart : function() {
     if (!this.canvasItem) {
@@ -132,6 +143,8 @@
 
     // clean text area
     this.noteDynamicForm.getItem('noteOBTextAreaItem').clearValue();
+    
+    this.parentElement.noteSection.setNoteCount(this.parentElement.noteSection.noteCount + 1);
   },
 
   /**
@@ -139,11 +152,13 @@
    */
   deleteNote : function( /* note id to delete */id) {
     var noteDS = this.getNoteDataSource();
+    var noteSection = this.parentElement.noteSection;
     isc.confirm(OB.I18N.getLabel('OBUIAPP_ConfirmRemoveNote'), function(clickedOK){
       if(clickedOK){
         noteDS.removeData({
           'id' : id
         });
+        noteSection.setNoteCount(noteSection.noteCount - 1);
       }
     },{title: OB.I18N.getLabel('OBUIAPP_ConfirmRemoveTitle')});
   },
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js	Wed Oct 05 12:55:03 2011 +0200
@@ -90,7 +90,8 @@
 
     // is used to keep track of the original simple objects
     // used to create fields
-    this._originalFields = isc.shallowClone(this.fields);
+    // note fields can be in fields or theFields
+    this._originalFields = isc.shallowClone(this.fields || this.theFields);
     
     this.Super('initWidget', arguments);
 
@@ -159,18 +160,20 @@
   editRecord: function(record, preventFocus, hasChanges, focusFieldName){
     
     var ret = this.Super('editRecord', arguments);
+    
+    // used when clicking on a cell in a grid
+    if (!preventFocus && focusFieldName) {
+      this.forceFocusedField = focusFieldName;
+    }
+
     this.doEditRecordActions(preventFocus, record._new);
+
     if (hasChanges) {
       this.setHasChanged(true);
     }
     
     this.view.setTargetRecordInWindow(record.id);
     
-    // used when clicking on a cell in a grid
-    if (!preventFocus && focusFieldName) {
-      this.forceFocusedField = focusFieldName;
-    }
-    
     return ret;
   },
   
@@ -203,6 +206,8 @@
     this.clearErrors();
     if (!isNew) {
       this.validateAfterFicReturn = true;
+      // If editing a document set to recent documents
+      this.view.setRecentDocument(this.getValues());
     }
     
     this.ignoreFirstFocusEvent = preventFocus;
@@ -401,7 +406,7 @@
   // if it is not focusable then a next item is 
   // searched for
   setFocusInForm: function() {
-    if (!this.view.isActiveView()) {
+    if (!this.view || !this.view.isActiveView()) {
       return;
     }
     
@@ -581,11 +586,18 @@
       delete this.inFicCall;
       return;
     }
+
+    if (data._readOnly || this.view.readOnly) {
+      this.readOnly = true;
+    } else {
+      this.readOnly = false;
+    }
     
     var columnValues = data.columnValues, calloutMessages = data.calloutMessages,
                        auxInputs = data.auxiliaryInputValues, prop, value, i, j,
                        dynamicCols = data.dynamicCols,
-                       sessionAttributes = data.sessionAttributes, item, section;
+                       sessionAttributes = data.sessionAttributes, item, section,
+                       retHiddenInputs = data.hiddenInputs;
 
     // edit row has changed when returning, don't update the form anymore
     if (this.grid && this.grid.getEditRow() !== editRow) {
@@ -611,9 +623,26 @@
       }
     }
     
+    if(retHiddenInputs) {
+      for(prop in retHiddenInputs) {
+        if(retHiddenInputs.hasOwnProperty(prop)){
+          this.hiddenInputs[prop] = retHiddenInputs[prop];
+        }
+      }
+    }
+    
     if(this.attachmentsSection) {
       this.attachmentsSection.fillAttachments(data.attachments);
     }
+    
+    // We will show the note count if it has been calculated and is different from 0
+    if(this.noteSection) {
+      if(data.noteCount) {
+        this.noteSection.setNoteCount(data.noteCount);
+      } else if(request.params.MODE === 'EDIT') {
+        this.noteSection.setNoteCount(0);
+      }
+    }
 
     // apparently sometimes an empty string is returned
     if (calloutMessages && calloutMessages.length > 0 && calloutMessages[0].text !== '') {
@@ -637,11 +666,6 @@
     if (dynamicCols) {
       this.dynamicCols = dynamicCols;
     }
-    if (data._readOnly || this.view.readOnly) {
-      this.readOnly = true;
-    } else {
-      this.readOnly = false;
-    }
 
     // grid editing    
     if (this.grid && this.grid.setEditValues && this.grid.getEditRow() === editRow) {
@@ -975,7 +999,7 @@
     if (item._hasChanged) {
       this.itemChangeActions();
 
-      this.onFieldChanged(this);
+      this.onFieldChanged(item.form, item, item.getValue());
 
       var i;
       for (i = 0; i < this.dynamicCols.length; i++) {
@@ -1531,6 +1555,32 @@
     
     delete this.storedFocusItem;
     delete this.storedSelectionRange;    
+  },
+
+  destroy: function () {
+    var i, items = this.getItems(), len = items.length, ds, dataSources = [];
+
+    // caching reference to all DS of Items
+    for (i = 0; i < len; i++) {
+      item = items[i];
+      ds = item ? item.dataSource || item.optionDataSource : null;
+
+      if(ds) {
+        dataSources.push(ds);
+      }
+    }
+
+    this.Super('destroy', arguments);
+    len = dataSources.length;
+
+    // Destroying DS not managed by DynamicForm.destroy
+    for(i = 0; i < len; i++) {
+      ds = dataSources[i];
+      if(ds) {
+        ds.destroy();
+        ds = null;
+      }
+    }
   }
 };
 
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-grid.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-grid.js	Wed Oct 05 12:55:03 2011 +0200
@@ -331,6 +331,19 @@
     this.Super('initWidget', arguments);
   },
   
+  //  http://forums.smartclient.com/showthread.php?p=72177#post72177
+  destroy: function() {
+    var i, components;
+    this.Super('destroy', arguments);
+    
+    components = this.getRecordComponentPool();
+    if (components) {
+      for (i = 0; i < components.length; i++) {
+        components[i].destroy();
+      }
+    }
+  },
+  
   clearFilter: function(keepFilterClause, noPerformAction){
     var i = 0, fld;
     if (!keepFilterClause) {
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js	Wed Oct 05 12:55:03 2011 +0200
@@ -130,6 +130,9 @@
   // reached
   drawAllMaxCells: 0,
   
+  // the default is enabled which is a commonly used field
+  recordEnabledProperty: '_enabled',
+  
   // keeps track if we are in objectSelectionMode or in toggleSelectionMode
   // objectSelectionMode = singleRecordSelection === true
   singleRecordSelection: false,
@@ -218,7 +221,7 @@
     }
   },
 
-  initWidget: function(){
+  initWidget: function () {
     var i;
     
     // make a copy of the dataProperties otherwise we get 
@@ -287,19 +290,41 @@
     '\'].clearFilter();" class="OBLinkButtonItem">' +
     OB.I18N.getLabel('OBUIAPP_GridClearFilter') +
     '</span>';
-    
+
     return ret;
   },
 
   // destroy the context menu also
   // see why this needs to be done in the 
   // documentation of canvas.contextMenu in Canvas.js
-  destroy: function() {
+  destroy: function () {
+    var i, field, fields = this.getFields(), len = fields.length, ds, dataSources = [];
+
+    for(i = 0; i < len; i++) {
+      field = fields[i];
+      editorProperties = field && field.editorProperties;
+      ds = editorProperties && editorProperties.optionDataSource;
+      if(ds) {
+        dataSources.push(ds);
+      }
+    }
+
     if (this.contextMenu) {
       this.contextMenu.destroy();
       this.contextMenu = null;
     }
+
     this.Super('destroy', arguments);
+
+    len = dataSources.length;
+
+    for(i = 0; i < len; i++) {
+      ds = dataSources[i];
+      if(ds) {
+        ds.destroy();
+        ds = null;
+      }
+    }
   },
   
   setData: function(data) {
@@ -385,6 +410,7 @@
   },
   
   setView: function(view){
+    var dataPageSizeaux;
     this.view = view;
     this.editFormDefaults.view = view;
     if (this.view.standardWindow.viewState && this.view.standardWindow.viewState[this.view.tabId]) {
@@ -420,9 +446,11 @@
         }
       }
     }
+    //Modify the quantity of lines to count per Window
+    dataPageSizeaux = OB.PropertyStore.get('dataPageSize',this.view.windowId);
+    this.dataPageSize = dataPageSizeaux ? +dataPageSizeaux : 100;
+  },
 
-  },
-  
   show: function(){
     var ret = this.Super('show', arguments);
     
@@ -1068,6 +1096,17 @@
   },
 
   recordClick: function(viewer, record, recordNum, field, fieldNum, value, rawValue){
+    var textDeselectInterval = setInterval(function() { //To ensure that if finally a double click (recordDoubleClick) is executed, no work is highlighted/selected
+      if (document.selection && document.selection.empty) {
+        document.selection.empty();
+      } else if (window.getSelection) {
+        var sel = window.getSelection();
+        sel.removeAllRanges();
+      }
+    }, 15);
+    setTimeout(function() {
+      clearInterval(textDeselectInterval);
+    }, 350);
     var actionObject = {
       target: this,
       method: this.handleRecordSelection,
@@ -1793,8 +1832,7 @@
       // as picklist fields will always have picked a value
       // note that focusItem updatevalue for picklist can result in extra datasource requests
       if (focusItem && !focusItem.hasPickList) {
-        focusItem.updateValue();
-        editForm.handleItemChange(focusItem);
+        focusItem.blur(focusItem.form, focusItem);
         if (editForm.inFicCall) {
           // use editValues object as the edit form will be re-used for a next row
           var editValues = this.getEditValues(rowNum);
@@ -1901,8 +1939,7 @@
     } else {
       var editForm = this.getEditForm(), focusItem = editForm.getFocusItem();
       if (focusItem && !focusItem.hasPickList) {
-        focusItem.updateValue();
-        editForm.handleItemChange(focusItem);
+        focusItem.blur(focusItem.form, focusItem);
         if (editForm.inFicCall) {
           // use editValues object as the edit form will be re-used for a next row
           var editValues = this.getEditValues(editValuesID);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-base-view.js	Wed Oct 05 12:55:03 2011 +0200
@@ -0,0 +1,81 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use. this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2011 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+
+// = OBBaseView =
+//
+// A class which implements the view api.
+isc.ClassFactory.defineClass('OBBaseView', isc.Layout);
+
+isc.OBBaseView.addProperties({
+  
+  // ** {{{ OBBaseView.showsItself }}} **
+  // If this boolean property is set to true then the Openbravo view manager
+  // will not place the view instance in a tab in the main Multi-Document-Interface.
+  // Instead it will call the show method on the instance. This makes 
+  // it for example possible to define views which are implemented as 
+  // popups instead of opened in the main MDI.
+  showsItself: false,
+  
+  // ** {{{ OBBaseView.isSameTab() }}} **
+  // Is called by the view manager when opening a view. The view manager
+  // will first check if there is already a tab open by calling the 
+  // isSameTab method on each opened view. If one of the views returns
+  // true then the requested view is opened in that tab (effectively
+  // replacing the current open view there). This is needed for cases
+  // when a certain view may only be opened once.
+  isSameTab: function(viewId, params){
+    // a common implementation does this, this allows only 
+    // one instance of certain view class to be open at one point 
+    // in time.
+    // return viewId === this.getClassName();
+    // this will allow multiple tabs to be opened:
+    return false;
+  },
+
+  // ** {{{ OBBaseView.getBookMarkParams() }}} **
+  // Is used to create a bookmarkable url in the browser's address bar.
+  // For each opened view this method is called and the result is added
+  // to the address bar. This makes it possible for the user to do 
+  // back in the browser, to bookmark the url and to build history in the 
+  // browser itself. 
+  getBookMarkParams: function() {
+    var result = {};
+    result.viewId = this.getClassName();
+    return result;
+  },
+  
+  // ** {{{ OBBaseView.getHelpView() }}} **
+  // This method can return an object containing a view definition. 
+  // If this method returns an object then a link is activated in the 
+  // help pull-down in the top.
+  getHelpView: function(){
+    return;
+    // an example of returning a view definition, the viewId contains
+    // the help view classname, the tabTitle denotes the tab title of the
+    // help view
+//    return {
+//        viewId: 'ClassicOBHelp',
+//        tabTitle: this.tabTitle + ' - ' + OB.I18N.getLabel('UINAVBA_Help'),
+//        windowId: this.windowId,
+//        windowType: 'W',
+//        windowName: this.tabTitle
+//    };
+  }
+
+});
\ No newline at end of file
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-view.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-view.js	Wed Oct 05 12:55:03 2011 +0200
@@ -179,7 +179,7 @@
   
   isShowingForm: false,
   isEditingGrid: false,
-  
+
   initWidget: function(properties){
     this.messageBar = isc.OBMessageBar.create({
       visibility: 'hidden',
@@ -255,8 +255,19 @@
     }
     
     if (this.viewForm) {
-      this.viewForm.setDataSource(this.dataSource, this.viewForm.fields);
+      // setDataSource executes setFields which replaces the current fields
+      // We don't want to destroy the associated DataSource objects
+      this.viewForm.destroyItemObjects = false;
+      
+      // initially the viewForm.fields is not set, the fields are
+      // in this.viewForm.theFields, this to prevent too early creation of fields
+      // i.e. they are recreated when setting the datasource, as is done
+      // here.
+      // make sure the fields are set now
+      this.viewForm.fields = this.viewForm.theFields;
+      this.viewForm.setDataSource(this.dataSource, this.viewForm.theFields);
       this.viewForm.isViewForm = true;
+      this.viewForm.destroyItemObjects = true;
     }
     
     if (this.isRootView) {
@@ -1099,17 +1110,9 @@
     var hasChanged = this.isShowingForm && (this.viewForm.isNew || this.viewForm.hasChanged);
     hasChanged = hasChanged || (this.isEditingGrid && (this.viewGrid.hasErrors() || this.viewGrid.getEditForm().isNew || this.viewGrid.getEditForm().hasChanged)); 
     if (hasChanged) {
-      if (isc.Page.isRTL()) {
-        suffix = ' *';
-      } else {
-        prefix = '* ';
-      }
+      prefix = '* ';
     }/* else {  // To avoid tab width grow each time the * is shown
-      if (isc.Page.isRTL()) {
-        suffix = ' <span style="color: transparent">*</span>';
-      } else {
-        prefix = '<span style="color: transparent">*</span> ';
-      }
+      prefix = '<span style="color: transparent">*</span> ';
     }*/
     
     // store the original tab title
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-window.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-window.js	Wed Oct 05 12:55:03 2011 +0200
@@ -89,6 +89,8 @@
     // method is also called explicitly from the personalization window
     if (!this.getClass().windowSettingsRead) {
       this.readWindowSettings();
+    } else if (this.getClass().personalization) {
+      OB.Personalization.personalizeWindow(this.getClass().personalization, this);
     }
   },
   
@@ -114,6 +116,7 @@
     if (this.getClass().windowSettingsRead) {
       return;
     }
+    this.getClass().personalization = data.personalization;
     this.getClass().windowSettingsRead = true;
     this.getClass().uiPattern = data.uiPattern;
     this.getClass().autoSave = data.autoSave;
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-tab.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-tab.js	Wed Oct 05 12:55:03 2011 +0200
@@ -115,12 +115,20 @@
     };
     OB.KeyboardManager.Shortcuts.set('TabSet_SelectChildTab', 'Canvas', ksAction_SelectChildTab);
     var ksAction_SelectPreviousTab = function() {
-      me.selectPreviousTab();
+      if (!isc.Page.isRTL()) { // LTR mode
+        me.selectPreviousTab();
+      } else { // RTL mode
+        me.selectNextTab();
+      }
       return false; //To avoid keyboard shortcut propagation
     };
     OB.KeyboardManager.Shortcuts.set('TabSet_SelectPreviousTab', 'Canvas', ksAction_SelectPreviousTab);
     var ksAction_SelectNextTab = function() {
-      me.selectNextTab();
+      if (!isc.Page.isRTL()) { // LTR mode
+        me.selectNextTab();
+      } else { // RTL mode
+        me.selectPreviousTab();
+      }
       return false; //To avoid keyboard shortcut propagation
     };
     OB.KeyboardManager.Shortcuts.set('TabSet_SelectNextTab', 'Canvas', ksAction_SelectNextTab);
@@ -276,6 +284,18 @@
     this.Super('removeTabs', [toRemove]);
     OB.Layout.HistoryManager.updateHistory();
     return true;
+  },
+
+  updateTab: function (tab, pane) {
+    var previousPane = tab && this.getTabObject(tab).pane;
+    
+    this.Super('updateTab', arguments);
+
+    // Note: updateTab doesn't remove the previous loading tab
+    // http://www.smartclient.com/docs/8.1/a/b/c/go.html#method..TabSet.updateTab
+    if(previousPane) {
+      previousPane.destroy();
+    }
   }
 });
 
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-application-menu.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-application-menu.js	Wed Oct 05 12:55:03 2011 +0200
@@ -114,7 +114,7 @@
 
   itemClick: function(item, colNum) {
     var isClassicEnvironment = OB.Utilities.useClassicMode(item.windowId);
-    var selectedView = null;
+    var selectedView = isc.addProperties({}, item);
     if (item.tabId) {
       selectedView = OB.Utilities.openView(item.windowId, item.tabId, item.title, null, null, item.icon);
       selectedView.type = item.type;
@@ -147,6 +147,9 @@
     
     selectedView.icon = item.icon;
     selectedView.type = item.type;
+    
+    selectedView = isc.addProperties({}, item, selectedView);
+    
     OB.RecentUtilities.addRecent('UINAVBA_MenuRecentList', selectedView);
     OB.Layout.ViewManager.openView(selectedView.viewId, selectedView);
   }
@@ -171,15 +174,6 @@
     this.Super('draw', arguments);
   },
 
-  click: function() {
-    if (this.menu.showing) {
-      this.menu.hide();
-      return false;
-    } else {
-      this.showMenu();
-    }
-  },
-
   initWidget: function() {
     if (this.initWidgetStyle) {
       this.initWidgetStyle();
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-help-about-widget.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-help-about-widget.js	Wed Oct 05 12:55:03 2011 +0200
@@ -69,6 +69,10 @@
       tabPane = selectedTab.pane;
     }
     // determine if a help link should be shown or not
+    // destroy the current members
+    if (this.members[0].getMembers()) {
+      this.members[0].destroyAndRemoveMembers(this.members[0].getMembers().duplicate());
+    } 
     if (!tabPane) {
       this.members[0].setMembers([aboutLink]);
     } else {
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-logout-widget.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-logout-widget.js	Wed Oct 05 12:55:03 2011 +0200
@@ -22,8 +22,6 @@
 // = OBLogout =
 // The OBLogout implements a widget to logout the application
 isc.OBLogout.addProperties({
-  prompt: OB.I18N.getLabel('UINAVBA_EndSession'),
-
   keyboardShortcutId : 'NavBar_OBLogout',
 
   draw : function() {
@@ -34,6 +32,11 @@
     };
     OB.KeyboardManager.Shortcuts.set(this.keyboardShortcutId, 'Canvas', ksAction);
     this.Super("draw", arguments);
+
+    this.setPrompt(OB.I18N.getLabel('UINAVBA_EndSession'));
+    /* Avoid declare directly "prompt: " in this widget definition.
+       Declared as "setPrompt" inside "draw" function in order to solve issue https://issues.openbravo.com/view.php?id=18192 in FF */
+
     OB.TestRegistry.register('org.openbravo.client.application.navigationbarcomponents.QuitButton', this);
   },
 
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-quick-launch.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-quick-launch.js	Wed Oct 05 12:55:03 2011 +0200
@@ -66,6 +66,15 @@
 
 isc.OBQuickLaunch.addProperties({
 
+  draw : function() {
+    this.Super("draw", arguments);
+    if (this.itemPrompt) {
+      this.setPrompt(this.itemPrompt); // itemPrompt declared at quick-launch.js.ftl
+      /* Avoid declare directly "prompt: " in this widget definition.
+         Declared as "setPrompt" inside "draw" function to solve issue https://issues.openbravo.com/view.php?id=18192 in FF */
+    }
+  },
+
   beforeShow: function(){
     var recent = OB.RecentUtilities.getRecentValue(this.recentPropertyName);
 
@@ -79,7 +88,12 @@
           index++;
         }
       }
+      if (this.members[0].getMembers()) {
+        this.members[0].destroyAndRemoveMembers(this.members[0].getMembers().duplicate());
+      } 
+
       this.members[0].setMembers(newFields);
+
       this.layout.showMember(this.members[0]);
     }
     this.members[1].getField('value').setValue(null);
@@ -192,7 +206,7 @@
             var record = this.getSelectedRecord();
             var viewValue = record.viewValue;
             isc.OBQuickRun.currentQuickRun.doHide();
-            var openObject = null;
+            var openObject = isc.addProperties({}, record);
             if (record.optionType && record.optionType === 'tab') {
               openObject = OB.Utilities.openView(record.windowId, viewValue, record[OB.Constants.IDENTIFIER], null, this.command, record.icon);
               if (openObject) {
@@ -251,6 +265,8 @@
 
             openObject.icon = record.icon;
 
+            openObject = isc.addProperties({}, record, openObject);
+            
             OB.Layout.ViewManager.openView(openObject.viewId, openObject);
 
             OB.RecentUtilities.addRecent(this.recentPropertyName, openObject);
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalization-treegrid.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalization-treegrid.js	Wed Oct 05 12:55:03 2011 +0200
@@ -38,20 +38,6 @@
   canAcceptDroppedRecords: true,
   leaveScrollbarGap: false,
   showCellContextMenus: true,
-
-  bodyStyleName: 'OBGridBody',
-  baseStyle: 'OBPersonalizationTreeGridCell',
-  styleName: 'OBFormPersonalizationFieldsTreeGrid',
-
-  showOpener: false,
-  // eventhough showOpener is false, still space is taken for an opener
-  // icon, set to a small number, should be > 0 (otherwise it it not used)
-  // this setting of 2 makes the drag indicator to be 2 pixels to the right also
-  openerIconSize: 2,
-  
-  // todo: show custom items for different types of fields
-  nodeIcon: OB.Styles.Personalization.Icons.field,
-  folderIcon: OB.Styles.Personalization.Icons.fieldGroup,
   
   // when an item gets dropped on a closed folder its icon 
   // changes
@@ -61,9 +47,6 @@
   closedIconSuffix: 'closed',
   openIconSuffix: 'open',
   
-  width: '100%',
-  indentSize: 10,
-  
   fields: [
     {name: 'title', canHover: true, showHover: true, 
       treeField: true,
@@ -76,6 +59,10 @@
     ],
     
   initWidget: function() {
+    // todo: show custom items for different types of fields
+    this.nodeIcon = OB.Styles.Personalization.Icons.field;
+    this.folderIcon = OB.Styles.Personalization.Icons.fieldGroup;
+
     // register a change notifier
     var i = 0, me = this, changedFunction = function() {
       me.personalizeForm.changed();
@@ -123,6 +110,13 @@
    this.Super('initWidget', arguments);
   },
   
+  destroy: function() {
+    if (this.data) {
+      this.data.destroy();
+    }
+    this.Super('destroy', arguments);
+  },
+  
   // open/close a folder on folder click
   folderClick: function (viewer, folder, recordNum) {
     if (this.data.isOpen(folder)) {
@@ -147,6 +141,17 @@
     if (folder && folder.name === '/') {
       return;
     }
+    
+    // don't allow required fields without default value 
+    // to be dropped on the statusbar
+    if (folder.name === OB.Personalization.STATUSBAR_GROUPNAME) {
+      for (i = 0; i < nodes.length; i++) {
+        if (!nodes[i].wasOnStatusBarField && nodes[i].required && !nodes[i].hasDefaultValue) {
+          return;
+        }
+      }
+    }
+    
 //    
 //    // check if the nodes are all dropped on their current parent
 //    // in the same place they are now (note index + i is done, as
@@ -226,6 +231,13 @@
       // items may have been hidden, which changes their colour
       personalizeForm.fieldsTreeGrid.markForRedraw();
 
+      // set the value in the properties form also
+      if (property === 'hiddenInForm') {
+        personalizeForm.propertiesLayout.formLayout.form.setValue('displayed', !value);
+      } else {
+        personalizeForm.propertiesLayout.formLayout.form.setValue(property, value);
+      }
+      
       // this will reset everything
       personalizeForm.changed();
     };
@@ -234,21 +246,12 @@
     // do not exist on the rest of the form)
     if (record.isStatusBarField) {
       menuItems.add({
-        title: OB.I18N.getLabel('OBUIAPP_Personalization_Hidden'),
-        checked: record.hiddenInForm,
+        title: OB.I18N.getLabel('OBUIAPP_Personalization_Displayed'),
+        checked: !record.hiddenInForm,
         click: function() {
           updatePropertyFunction(record, 'hiddenInForm', !record.hiddenInForm);
         }        
       });
-    } else if (record.isDynamicStatusBarField) {
-      // dynamic status bar fields exist on the form, so they can be removed
-      // from the status bar
-      menuItems.add({
-        title: OB.I18N.getLabel('OBUIAPP_Personalization_RemoveFromStatusBar'),
-        click: function() {
-          me.removeData(record);
-        }        
-      });
     } else {
       // for normal nodes, show some properties which can be changed
       menuItems.add({
@@ -258,13 +261,17 @@
           updatePropertyFunction(record, 'startRow', !record.startRow);
         }        
       });
-      menuItems.add({
-        title: OB.I18N.getLabel('OBUIAPP_Personalization_Displayed'),
-        checked: !record.hiddenInForm,
-        click: function() {
-          updatePropertyFunction(record, 'hiddenInForm', !record.hiddenInForm);
-        }        
-      });
+      
+      if (record.wasOnStatusBarField || !record.required || record.hasDefaultValue) {
+        menuItems.add({
+          title: OB.I18N.getLabel('OBUIAPP_Personalization_Displayed'),
+          checked: !record.hiddenInForm,
+          click: function() {
+            updatePropertyFunction(record, 'hiddenInForm', !record.hiddenInForm);
+          }        
+        });
+      }
+      
       menuItems.add({
         title: OB.I18N.getLabel('OBUIAPP_Personalization_FirstFocus'),
         checked: record.firstFocus,
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalization.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalization.js	Wed Oct 05 12:55:03 2011 +0200
@@ -199,6 +199,7 @@
         startRow : fld.startRow,
         colSpan : fld.colSpan,
         required: fld.required,
+        hasDefaultValue: fld.hasDefaultValue,
         rowSpan : fld.rowSpan
       };
     }
@@ -238,6 +239,9 @@
       record.parentName = OB.Personalization.STATUSBAR_GROUPNAME;
       // these items can not be moved from the statusbar
       record.isStatusBarField = true;
+      // keep track that this at one point was a 
+      // status bar field, allow it to be put back there
+      record.wasOnStatusBarField = true;
     }
   }
 
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalize-form-toolbar-button.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalize-form-toolbar-button.js	Wed Oct 05 12:55:03 2011 +0200
@@ -88,13 +88,13 @@
   // and register the toolbar button the window personalization tab  
   var windowPersonalizationTabButtonProperties = {
     action: function() {
-      var personalizationData = null, personalizeForm, view = this.view, grid = view.viewGrid,
+      var personalizationData = {}, personalizeForm, view = this.view, grid = view.viewGrid,
         record = grid.getSelectedRecord();
       if (record.value) {
         personalizationData = isc.JSON.decode(record.value);
-        personalizationData.personalizationId = record.id;
-        personalizationData.canDelete = false;
       }
+      personalizationData.personalizationId = record.id;
+      personalizationData.canDelete = false;
       
       personalizeForm = isc.OBPersonalizeFormLayout.create({
         personalizationData: personalizationData,
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalize-form.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalize-form.js	Wed Oct 05 12:55:03 2011 +0200
@@ -62,9 +62,6 @@
 
 isc.OBPersonalizeFormLayout.addProperties({
 
-  // is set when called from the personalization grid
-  personalizationId: null,
-
   // the datastructure with personalization information
   personalizationData: null,
   
@@ -116,9 +113,12 @@
     
     fieldsTabSet = isc.OBTabSet.create({
         height: '*',
-        tabBarProperties: {},
           
         initWidget: function(){
+          // copy the tabBarProperties as it is coming from
+          // OB.Styles.Personalization.TabSet which is also used
+          // by the other tabsets
+          this.tabBarProperties = isc.addProperties({}, this.tabBarProperties);
           this.tabBarProperties.tabSet = this;
           this.tabBarProperties.itemClick = function(item, itemNum){
             me.propertiesTabSet.toggleVisualState();
@@ -197,8 +197,8 @@
       alwaysTakeSpace: false,
       required: true,
       validateOnExit: true,
-      showIcons: false,
-      width: 60,
+      showIcons: true,
+      width: 75,
       titleOrientation: 'top',
       titleSuffix: '</b>',
       titlePrefix: '<b>',
@@ -207,7 +207,7 @@
       rightTitlePrefix: '<b>',
       rightTitleSuffix: '</b>',
       keyPressFilter: '[1-9]',
-      editorType: 'OBTextItem'
+      editorType: 'OBSpinnerItem'
     };
 
     propertiesLayout.formLayout = isc.VStack.create({
@@ -239,10 +239,16 @@
       fields: [
          new NumericField({
            name: 'colSpan',
+           keyPressFilter: '[1-4]',
+           min: 1,
+           max: 4,
            title: OB.I18N.getLabel('OBUIAPP_Personalization_Colspan')
          }),
          new NumericField({
            name: 'rowSpan',
+           keyPressFilter: '[1-9]',
+           min: 1,
+           max: 9,
            required: true,
            title: OB.I18N.getLabel('OBUIAPP_Personalization_Rowspan')
          }),
@@ -292,6 +298,12 @@
           this.showItem('startRow');
         }
         
+        if (!record.wasOnStatusBarField && !record.isStatusBarField && record.required && !record.hasDefaultValue) {
+          this.hideItem('displayed');
+        } else {
+          this.showItem('displayed');
+        }
+        
         this.rememberValues();
       },
       
@@ -325,7 +337,6 @@
         this.record.rowSpan = this.getValue('rowSpan');
         this.record.firstFocus = this.getValue('firstFocus');
 
-        this.buttons.changeButtonState(false);
         this.rememberValues();
         this.focus();
         
@@ -340,62 +351,17 @@
       doCancel: function() {
         this.reset();
         this.focus();
-        this.buttons.changeButtonState(false);
       },
       
       // called when a field in the form changes
       // enable the apply/cancel buttons
       itemChanged: function(item, newValue) {
-        this.buttons.changeButtonState(true);
+        this.doSave();
       }
     });
     
     propertiesLayout.formLayout.addMembers(propertiesLayout.formLayout.form);
     
-    // and the button bar
-    propertiesLayout.formLayout.buttons = isc.HStack.create({
-      layoutTopMargin: 10,
-      membersMargin: 10,
-      align: 'center',
-      overflow: 'visible',
-      height: 1,
-      width: '100%',
-      
-      changeButtonState: function(state) {
-        var i = 0;
-        for (i = 0; i < this.members.length; i++) {
-          if (state) {
-            this.members[i].enable();
-          } else {
-            this.members[i].disable();            
-          }
-        }
-      }
-    });
-
-    propertiesLayout.formLayout.buttons.addMembers(isc.OBFormButton.create({
-      container: propertiesLayout.formLayout.buttons,
-      disabled: true,
-      form: propertiesLayout.formLayout.form,
-      title: OB.I18N.getLabel('OBUIAPP_Apply'),
-      click: function(){
-        this.form.doSave();
-      }
-    }));
-    
-    propertiesLayout.formLayout.buttons.addMembers(isc.OBFormButton.create({
-      container: propertiesLayout.formLayout.buttons,
-      form: propertiesLayout.formLayout.form,
-      disabled: true,
-      title: OB.I18N.getLabel('UINAVBA_Cancel'),
-      click: function(){
-        this.form.doCancel();
-      }
-    }));
-    
-    propertiesLayout.formLayout.form.buttons = propertiesLayout.formLayout.buttons;
-    propertiesLayout.formLayout.addMembers(propertiesLayout.formLayout.buttons);
-    
     // the empty message is shown when no field is selected on the left
     propertiesLayout.emptyMessage = 
       isc.Layout.create({
@@ -420,7 +386,8 @@
     // put it all in a tabset...    
     this.propertiesTabSet = isc.OBTabSet.create(OB.Styles.Personalization.TabSet, {
       height: OB.Styles.Personalization.PropertiesTabSet.expandedHeight,
-    
+      expanded: true,
+      
       toggleVisualState: function() {
         if (this.expanded) {
           this.setHeight(OB.Styles.Personalization.PropertiesTabSet.collapsedHeight);
@@ -454,7 +421,6 @@
       } else {
         this.propertiesTabSet.setTabTitle(this.propertiesTabSet.getTab(0), record.title);
         this.formLayout.form.setRecord(record);
-        this.formLayout.form.buttons.changeButtonState(false);
         this.hideMember(this.emptyMessage);
         this.showMember(propertiesLayout.formLayout);
         // set focus to the first one if we get focus
@@ -472,7 +438,8 @@
     var owner = this;
     this.statusBar = isc.OBStatusBar.create({
       view: this,
-
+      buttonBarProperties: OB.Styles.Personalization.buttonBarProperties,
+      
       // add the close button
       addCreateButtons: function() {
         this.buttonBar.setWidth(1);
@@ -485,7 +452,16 @@
           prompt: OB.I18N
               .getLabel('OBUIAPP_Personalization_Statusbar_Close'),
           action: function() {
-            owner.doClose();
+            var clz = (owner.getWindow() ? owner.getWindow().getClass() : null);
+            if (!clz) {
+              owner.doClose();              
+            } else if (!clz.autoSave) {
+              owner.doClose();
+            } else if (clz.showAutoSaveConfirmation) {
+              owner.doClose();
+            } else {
+              owner.saveAndClose();
+            }
           }
         }, OB.Styles.Personalization.closeButtonProperties);
         this.buttonBar.addMembers([ closeButton ]);
@@ -496,7 +472,7 @@
 
   // the toolbar shows the save, delete and undo button
   createAddToolbar: function() {
-    var saveButtonProperties, deleteButtonProperties, cancelButtonProperties;
+    var saveButtonProperties, saveCloseButtonProperties, deleteButtonProperties, cancelButtonProperties;
 
     saveButtonProperties = {
       action: function() {
@@ -511,6 +487,28 @@
       keyboardShortcutId: 'ToolBar_Save'
     };
 
+    saveCloseButtonProperties = {
+      action: function() {
+        this.view.saveAndClose();
+      },
+      saveDisabled: true,
+      buttonType: 'savecloseX',
+      prompt: OB.I18N.getLabel('OBUIAPP_Personalization_Toolbar_SaveClose'),
+      updateState: function() {
+        this.saveDisabled = this.view.hasNotChanged();
+        
+        if (this.saveDisabled) {
+          this.buttonType = 'savecloseX';
+          this.prompt = OB.I18N.getLabel('OBUIAPP_Personalization_Statusbar_Close');
+        } else {
+          this.buttonType = 'saveclose';
+          this.prompt = OB.I18N.getLabel('OBUIAPP_Personalization_Toolbar_SaveClose');
+        }
+        this.resetBaseStyle();
+      },
+      keyboardShortcutId: 'ToolBar_SaveClose'
+    };
+
     deleteButtonProperties = {
         action: function(){
           this.view.deletePersonalization();
@@ -543,15 +541,16 @@
     this.toolBar = isc.OBToolbar.create({
       view: this,
       leftMembers: [ isc.OBToolbarIconButton.create(saveButtonProperties),
-          isc.OBToolbarIconButton.create(deleteButtonProperties),
-          isc.OBToolbarIconButton.create(cancelButtonProperties) ],
+                     isc.OBToolbarIconButton.create(saveCloseButtonProperties),
+                     isc.OBToolbarIconButton.create(cancelButtonProperties),
+                     isc.OBToolbarIconButton.create(deleteButtonProperties)],
       rightMembers: []
     });
     this.addMember(this.toolBar);
   },
 
   // save the new form layout to the server and updates the preview form
-  save: function() {
+  save: function(callback) {
     var params, me = this, newDataFields;
 
     // if there is a personalization id then use that
@@ -591,11 +590,13 @@
         'org.openbravo.client.application.personalization.PersonalizationActionHandler', 
         this.getPersonalizationFields(), params,
         function(resp, data, req){
+          var personalization;
+          
           // if there is no personalization data then create it
           if (!me.personalizationData) {
             me.personalizationData = {};
           }
-          if (data && data.canDelete) {
+          if (data && data.canDelete && me.personalizationData.canDelete !== false) {
             me.personalizationData.canDelete = true;            
           }
           if (data && data.personalizationId) {
@@ -605,7 +606,7 @@
             me.personalizationData.form = {};
           }
           // overwrite what we have
-          me.personalizationData.form.fields = newDataFields;
+          me.personalizationData.form = newDataFields;
 
           me.initializing = true;
           me.isNew = false;
@@ -619,6 +620,15 @@
           me.toolBar.updateButtonState();
           
           delete me.initializing;
+          if (callback) {
+            callback();
+          }
+          
+          // update the information in the global class
+          // so that the settings are maintained when the window
+          // is re-opened
+          personalization = me.getStandardWindow().getClass().personalization;
+          personalization[me.tabId] = me.personalizationData;          
         });
   },
 
@@ -654,6 +664,9 @@
           me.hasBeenDeleted = true;
           // close when returned
           me.doClose(true);
+          
+          personalization = me.getStandardWindow().getClass().personalization;
+          personalization[me.tabId] = null;          
         }
      );
   },
@@ -677,7 +690,7 @@
     this.isSaved = false;
     this.isNew = !this.personalizationData.personalizationId;
     
-    this.removeMember(this.mainLayout);
+    this.destroyAndRemoveMembers(this.mainLayout);
     this.mainLayout = null;
     this.createAddMainLayout();
 
@@ -715,7 +728,7 @@
   
   // creates the preview form and displays it
   buildPreviewForm: function() {
-    var statusBar, i, fld, itemClick, me = this;
+    var statusBar, currentPane, i, fld, itemClick, me = this;
     
     this.formLayout = isc.VLayout.create({ height: '100%', width: '100%'}, OB.Styles.Personalization.Preview);
     
@@ -761,11 +774,19 @@
     });
     
     itemClick = function(item) {
-      if (item.parentItem) {
-        me.doHandlePreviewFormItemClick(item.parentItem);
-      } else {
-        me.doHandlePreviewFormItemClick(item);
-      }
+      // disabled clicking in the form itself as multiple things need to be 
+      // solved:
+      // - the cursor needs to become a pointer
+      // - when the field in a collapsed group in the tree (on the left)
+      //    then the group has to expand automatically
+      // - when the field is not in the viewport on the left then 
+      //    it needs to be scrolled there
+      // - we also need to support clicking in the status bar
+//      if (item.parentItem) {
+//        me.doHandlePreviewFormItemClick(item.parentItem);
+//      } else {
+//        me.doHandlePreviewFormItemClick(item);
+//      }
     };
     
     var persFields = this.getPersonalizationFields();
@@ -799,23 +820,36 @@
     
     this.formLayout.addMember(this.previewForm);
     
+    if (this.previewTabSet.getTab(0).pane) {
+      currentPane = this.previewTabSet.getTab(0).pane;
+    }    
     this.previewTabSet.updateTab(this.previewTabSet.getTab(0), this.formLayout);
+    if (currentPane) {
+      currentPane.destroy();
+    }
   },
   
   buildFormAndTree: function() {
+    var computedPersonalizationData;
     
     this.buildPreviewForm();
     
     // if no personalization data then we need to compute it from the form
     // the personalization data can also be set directly (when called from 
     // the maintenance window)
-    if (!this.personalizationData) {
+    if (!this.personalizationData || !this.personalizationData.form) {
       if (this.form) {
-        this.personalizationData = OB.Personalization.getPersonalizationDataFromForm(this.form);
+        computedPersonalizationData = OB.Personalization.getPersonalizationDataFromForm(this.form);
       } else {
         // create from the previewForm
-        this.personalizationData = OB.Personalization.getPersonalizationDataFromForm(this.previewForm);
+        computedPersonalizationData = OB.Personalization.getPersonalizationDataFromForm(this.previewForm);
       }
+      if (!this.personalizationData) {
+        this.personalizationData = {};
+      }
+      
+      // and copy over what got computed
+      isc.addProperties(this.personalizationData, computedPersonalizationData);
     }
     
     // personalize the preview form, this will remove any non-personalized
@@ -839,8 +873,9 @@
   buildFieldsTreeGrid: function() {
     var i, prop, fld;
     
+    this.fieldsLayout.destroyAndRemoveMembers(this.fieldsLayout.getMembers());
     if (this.fieldsTreeGrid) {
-      this.fieldsLayout.removeMember(this.fieldsTreeGrid);
+      this.fieldsTreeGrid.destroy();
     }
     
     // the tree will add properties to the objects as fieldData
@@ -897,6 +932,25 @@
     }
   },
   
+  saveAndClose: function() {
+    var view = this;
+    if (this.hasNotChanged()) {
+      view.doClose(true);          
+    } else {
+      view.save(function() {
+        view.doClose(true);    
+      });
+    }
+  },
+  
+  getStandardWindow: function() {
+    if (this.openedFromMaintenanceWindow) {
+      return this.maintenanceView.standardWindow;
+    } else {
+      return this.form.view.standardWindow;
+    }
+  },
+  
   // close the form personalizer, refresh the existing form so that 
   // the changes are shown immediately, or if called from the 
   // maintenance window refresh the record there
@@ -927,7 +981,7 @@
       }
       window = this.form.view.standardWindow;
     }
-    window.removeMember(this);
+    window.destroyAndRemoveMembers(this);
     
     // restores the tabtitle
     window.view.updateTabTitle();
@@ -939,6 +993,15 @@
       this.maintenanceView.refresh();
     }
   },
+  
+  getWindow: function() {
+    if (this.openedFromMaintenanceWindow) {
+      return this.maintenanceView.standardWindow;
+    } else if (this.openedInForm) {
+      return this.form.view.standardWindow;
+    }
+    return null;
+  },
 
   // called by the buttons in the toolbar of the standard maintenance form/grid
   doOpen: function(retrievedInitialData) {
@@ -1060,6 +1123,7 @@
       statusBarFields.push(barFieldTitles);
       statusBarFields.push(barFieldValues);
     }
-    this.statusBar.setContentLabel(icon, label, statusBarFields);
+        
+    this.statusBar.setContentLabel(icon, label, statusBarFields, OB.I18N.getLabel('OBUIAPP_WindowPersonalization_Guidance'));
   }
 });
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/toolbar/ob-toolbar.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/toolbar/ob-toolbar.js	Wed Oct 05 12:55:03 2011 +0200
@@ -190,7 +190,7 @@
     buttonType: 'undo',
     prompt: OB.I18N.getLabel('OBUIAPP_CancelEdit'),
     updateState: function() {
-       this.setDisabled(!this.view.viewGrid.hasErrors() && !this.view.viewForm.hasChanged && !this.view.viewGrid.hasChanges());
+       this.setDisabled(!this.view.viewGrid.hasErrors() && !this.view.viewForm.hasChanged && !this.view.viewGrid.hasChanges(false));
     },
     keyboardShortcutId: 'ToolBar_Undo'
   },
@@ -652,7 +652,7 @@
     for (i = 0; i < oldMembersSorted.length; i++) { /* Update the 'leftMembers' array */
       this.leftMembers.splice(oldMembersSorted[i], 1);
     }
-    this.removeMembers(oldArray); /* Remove visually the desired elements */
+    this.destroyAndRemoveMembers(oldArray); /* Remove visually the desired elements */
   },
   
   // ** {{{ removeAllLeftMembers() }}} **
@@ -864,7 +864,7 @@
     for (i = 0; i < oldMembersSorted.length; i++) { /* Update the 'rightMembers' array */
       this.rightMembers.splice(oldMembersSorted[i], 1);
     }
-    this.removeMembers(oldArray); /* Remove visually the desired elements */
+    this.destroyAndRemoveMembers(oldArray); /* Remove visually the desired elements */
   },
   
   // ** {{{ removeAllRightMembers() }}} **
@@ -1007,6 +1007,7 @@
     // This is needed to prevent JSLint complaining about "Don't make functions within a loop.
     var callbackHandler = function (currentContext, me) {
       return function(response, data, request) {
+        var noneOrMultipleRecordsSelected = currentContext.viewGrid.getSelectedRecords().length !== 1 && !isNew;
         var sessionAttributes = data.sessionAttributes, auxInputs = data.auxiliaryInputValues, attachmentExists = data.attachmentExists, prop;
         if (sessionAttributes) {
           currentContext.viewForm.sessionAttributes = sessionAttributes;
@@ -1481,11 +1482,11 @@
 		  // and pick them up in the correct order
 		  // the return should be an array of button instances created by doing 
 		  //  btnDefinitionClass.create(btnDefinitionProperties);
-		  var result = [], resultIndex = 0, i;	
+		  var result = [], resultIndex = 0, i, validTabId, tabIds;	
 		  for (i = 0; i < this.buttonDefinitions.length; i++) {	
-		    var j, tabIds = this.buttonDefinitions[i].tabIds;
-		    var validTabId = !tabIds;
-		    if (!validTabId && tabIds) {
+		    tabIds = this.buttonDefinitions[i].tabIds;
+		    validTabId = !tabIds;
+		    if (tabIds) {
 		      for (j = 0; j < tabIds.length; j++) {
 		        if (tabIds[j] === tabId) {
 		          validTabId = true;
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-utilities-date.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-utilities-date.js	Wed Oct 05 12:55:03 2011 +0200
@@ -112,7 +112,13 @@
   var hours = dateFormat.indexOf('%H') !== -1 ? OBDate.substring(dateFormat.indexOf('%H'), dateFormat.indexOf('%H') + 2) : 0;
   var minutes = dateFormat.indexOf('%M') !== -1 ? OBDate.substring(dateFormat.indexOf('%M'), dateFormat.indexOf('%M') + 2) : 0;
   var seconds = dateFormat.indexOf('%S') !== -1 ? OBDate.substring(dateFormat.indexOf('%S'), dateFormat.indexOf('%S') + 2) : 0;
-  
+
+  month = parseInt(month, 10);
+  day = parseInt(day, 10);
+  hours = parseInt(hours, 10);
+  minutes = parseInt(minutes, 10);
+  seconds = parseInt(seconds, 10);
+
   if (day < 1 || day > 31 || month < 1 || month > 12 || year > 99 ||
   fullYear > 9999) {
     return null;
@@ -129,18 +135,16 @@
   // var JSDate = isc.Date.create(); /**It doesn't work in IE**/
   var JSDate = new Date();
   var centuryReference = OB.Utilities.Date.centuryReference;
-  if (isFullYear) {
-    JSDate.setFullYear(fullYear);
-  } else {
+  if (!isFullYear) {
     if (parseInt(year, 10) < centuryReference) {
-      year = '20' + year;
+      fullYear = '20' + year;
     } else {
-      year = '19' + year;
+      fullYear = '19' + year;
     }
-    JSDate.setFullYear(year);
   }
-  JSDate.setMonth(month - 1);
-  JSDate.setDate(day);
+
+  fullYear = parseInt(fullYear, 10);
+  JSDate.setFullYear(fullYear, month-1, day);
   JSDate.setHours(hours);
   JSDate.setMinutes(minutes);
   JSDate.setSeconds(seconds);
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-view-manager.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-view-manager.js	Wed Oct 05 12:55:03 2011 +0200
@@ -265,29 +265,31 @@
           // 1) view is not open and class not loaded (open view and show loading bar)
           // 2) view is not open but class was loaded (open view and show loading bar)
           // 3) view is open and class is loaded (show loading bar in open view)          
-          var viewTabId, tabTitle, loadingTab = vmgr.findLoadingTab(params);
-          
+          var viewTabId, tabTitle, loadingTab = vmgr.findLoadingTab(params), 
+              loadingPane, currentPane,
+              tabSet = OB.MainView.TabSet;
+
           params = params || {};
-          
+
           if (loadingTab) {
             viewTabId = loadingTab.pane.viewTabId;
           } else if (!params.popup && viewName !== 'OBPopupClassicWindow' && !params.showsItself) {
             viewTabId = vmgr.views.getViewTabID(viewName, params);
             if (viewTabId) {
               // tab exists, replace its contents
-              var loadingPane = OB.Utilities.createLoadingLayout();
-              
+              loadingPane = OB.Utilities.createLoadingLayout();
+
               // make sure it gets found in the next round
               params.loadingTabId = viewTabId;
               loadingPane.viewTabId = viewTabId;
 
               // is used to prevent history updating
               loadingPane.isLoadingTab = true;
+
+              tabSet.updateTab(viewTabId, loadingPane);
               
-              // refresh the existing tab
-              OB.MainView.TabSet.updateTab(viewTabId, loadingPane);
               // and show it
-              OB.MainView.TabSet.selectTab(viewTabId);
+              tabSet.selectTab(viewTabId);
             } else {
               // create a completely new tab
               // first create a loading tab and then call again
@@ -295,12 +297,14 @@
               params = vmgr.createLoadingTab(viewName, params, viewTabId);
             }
             // use a canvas to make use of the fireOnPause possibilities
+            // but don't forget to destroy it afterwards...
             var cnv = isc.Canvas.create({
               openView: function() {
                 vmgr.openView(viewName, params);
                 // delete so that at the next opening a new loading layout
                 // is created
                 delete params.loadingTabId;
+                this.destroy();
               }
             });
             cnv.fireOnPause('openView', cnv.openView, null, cnv);
@@ -320,7 +324,7 @@
           if (viewInstance && viewInstance.show && viewInstance.showsItself) {
             if (loadingTab) {
               delete params.loadingTabId;
-              OB.MainView.TabSet.removeTab(loadingTab.ID);
+              tabSet.removeTab(loadingTab.ID);
             }
             viewInstance.show();
             return;
@@ -329,10 +333,13 @@
           // eventhough there is already an open tab
           // still refresh it
           if (viewTabId !== null) {
+
             // refresh the view
-            OB.MainView.TabSet.updateTab(viewTabId, viewInstance);
+
+            tabSet.updateTab(viewTabId, viewInstance);
+
             // and show it
-            OB.MainView.TabSet.selectTab(viewTabId);
+            tabSet.selectTab(viewTabId);
 
             // tell the viewinstance what tab it is on
             // note do not use tabId on the viewInstance
@@ -359,10 +366,10 @@
             // important part
             
             // the select tab event will update the history
-            if (OB.MainView.TabSet.getSelectedTab() && OB.MainView.TabSet.getSelectedTab().pane.viewTabId === viewTabId) {
+            if (tabSet.getSelectedTab() && tabSet.getSelectedTab().pane.viewTabId === viewTabId) {
               OB.Layout.HistoryManager.updateHistory();
             } else {              
-              OB.MainView.TabSet.selectTab(viewTabId);
+              tabSet.selectTab(viewTabId);
             }
 
             return;
Binary file modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/sectionItem-ico-RTL_Focused_closed.png has changed
Binary file modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/sectionItem-ico-RTL_Focused_opened.png has changed
Binary file modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/sectionItem-ico-RTL_closed.png has changed
Binary file modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/sectionItem-ico-RTL_opened.png has changed
Binary file modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/spinnerControlDecrease.png has changed
Binary file modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/spinnerControlDecrease_Disabled.png has changed
Binary file modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/spinnerControlDecrease_Disabled_orig.png has changed
Binary file modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/spinnerControlDecrease_Down.png has changed
Binary file modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/spinnerControlDecrease_Over.png has changed
Binary file modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/spinnerControlIncrease.png has changed
Binary file modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/spinnerControlIncrease_Disabled.png has changed
Binary file modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/spinnerControlIncrease_Disabled_orig.png has changed
Binary file modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/spinnerControlIncrease_Down.png has changed
Binary file modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/spinnerControlIncrease_Over.png has changed
Binary file modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/personalization/iconFolder-RTL.png has changed
Binary file modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/personalization/iconFolder-RTL_closed.png has changed
Binary file modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/personalization/iconFolder-RTL_open.png has changed
--- a/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-application-styles.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-application-styles.js	Wed Oct 05 12:55:03 2011 +0200
@@ -101,10 +101,8 @@
   styleName: 'OBDialogButtonToolBar'
 });
 
-isc.Dialog.addProperties({
-  messageStackProperties: {
-    defaultLayoutAlign: 'center'
-  }
+isc.Dialog.changeDefaults("messageStackProperties", {
+  defaultLayoutAlign: 'center'
 });
 
 isc.ListGrid.addProperties({
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-dialog-styles.css	Wed Oct 05 12:55:03 2011 +0200
@@ -0,0 +1,43 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html 
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2011 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+
+.OBDialogLabel {
+  font-family: 'lucida sans', sans-serif;
+  font-size: 12px;
+  color: #333333;
+}
+
+.OBDialogLabel a {
+  color: #58A618;
+  cursor: pointer;
+  text-decoration: none;
+}
+
+.OBDialogLabel a:hover {
+  color: #58A618;
+  text-decoration: underline;
+}
+
+.OBDialogLabel a:active {
+  color: #004E27;
+}
+
+.OBDialogLabel a:focus {
+  color: #fa962f;
+}
\ No newline at end of file
--- a/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-dialog-styles.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-dialog-styles.js	Wed Oct 05 12:55:03 2011 +0200
@@ -44,6 +44,7 @@
   bodyColor: 'transparent',
   bodyStyle: 'OBPopupBody',
   headerStyle: 'OBPopupHeader',
+  messageStyle: 'OBDialogLabel',
 
   layoutMargin: 0,
   membersMargin: 0,
--- a/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-form-styles.css	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-form-styles.css	Wed Oct 05 12:55:03 2011 +0200
@@ -336,7 +336,6 @@
 .OBFormFieldSelectInputFocused,
 .OBFormFieldSelectInputDisabled {
   border-width: 1px 0px 1px 1px;
-  border-right:0px none;
 }
 
 .OBFormFieldInputRequiredHint,
@@ -678,7 +677,7 @@
 
 .OBFormButtonDisabled,
 .OBFormButtonSelectedDisabled {
-  border:1px solid #d0d1cd;
+  border:2px solid #d0d1cd;
   background-image: url(./images/form/textButton-bg-disabled.png);
   font-weight:normal;
   color:#777;
--- a/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-form-styles.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-form-styles.js	Wed Oct 05 12:55:03 2011 +0200
@@ -67,6 +67,26 @@
   height: 66
 });
 
+isc.OBSpinnerItem.addProperties(isc.addProperties({}, OB.Styles.OBFormField.DefaultTextItem));
+isc.OBSpinnerItem.INCREASE_ICON = isc.addProperties(isc.OBSpinnerItem.INCREASE_ICON, {
+  width: 21,
+  height: 11,
+  showRollOver: true,
+  showFocused: false,
+  showDown: true,
+  imgOnly: true,
+  src: OB.Styles.skinsPath + 'Default/org.openbravo.client.application/images/form/spinnerControlIncrease.png'
+});
+isc.OBSpinnerItem.DECREASE_ICON = isc.addProperties(isc.OBSpinnerItem.DECREASE_ICON, {
+  width: 21,
+  height: 10,
+  showRollOver: true,
+  showFocused: false,
+  showDown: true,
+  imgOnly: true,
+  src: OB.Styles.skinsPath + 'Default/org.openbravo.client.application/images/form/spinnerControlDecrease.png'
+});
+
 isc.OBPopUpTextAreaItem.addProperties({
   errorOrientation: 'left',
   cellStyle: 'OBFormField',
@@ -140,6 +160,8 @@
   pickerIconHeight: 21,
   pickerIconWidth: 21,
   height: 21,
+  // align the button directly to the field
+  pickerIconHspace: 0,
   pickerIconSrc: OB.Styles.skinsPath + 'Default/org.openbravo.client.application/images/form/search_picker.png',
   clearIcon: {
     showHover: true,
--- a/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-personalization-styles.css	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-personalization-styles.css	Wed Oct 05 12:55:03 2011 +0200
@@ -43,7 +43,9 @@
 }
 
 .OBFormPersonalizerPreviewPanel {
-  border-left: 1px solid #72ab10;
+  border-width: 0px 0px 0px 5px;
+  border-style: solid;
+  border-color: #72ab10;
 }
 
 .OBPersonalizationTreeGridCell,
--- a/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-personalization-styles.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-personalization-styles.js	Wed Oct 05 12:55:03 2011 +0200
@@ -17,8 +17,28 @@
  ************************************************************************
 */
 
+isc.OBPersonalizationTreeGrid.addProperties({
+  bodyStyleName: 'OBGridBody',
+  baseStyle: 'OBPersonalizationTreeGridCell',
+  styleName: 'OBFormPersonalizationFieldsTreeGrid',
+
+  showOpener: false,
+  // eventhough showOpener is false, still space is taken for an opener
+  // icon, set to a small number, should be > 0 (otherwise it it not used)
+  // this setting of 2 makes the drag indicator to be 2 pixels to the right also
+  openerIconSize: 2,
+  
+  width: '100%',
+  indentSize: 10
+});
+
+
 OB.Styles.Personalization = {};
 
+OB.Styles.Personalization.buttonBarProperties = {
+  width: 30
+};
+
 OB.Styles.Personalization.Icons = {
   fieldGroup: OB.Styles.skinsPath + 'Default/org.openbravo.client.application/images/personalization/iconFolder.png',
   field:  OB.Styles.skinsPath + 'Default/org.openbravo.client.application/images/personalization/item.png',
@@ -49,7 +69,7 @@
 };
 
 OB.Styles.Personalization.PropertiesTabSet = {
-  expandedHeight: 225,
+  expandedHeight: 175,
   collapsedHeight: 35
 };
 
@@ -63,20 +83,19 @@
     styleName: 'OBTabBarChild',
     simpleTabBaseStyle: 'OBTabBarButtonChild',
     paneContainerClassName: 'OBTabSetChildContainer',
-    buttonConstructor: isc.OBTabBarButton.create({}),
+    buttonConstructor: isc.OBTabBarButton,
 
     buttonProperties: {
-      // prevent the orange hats, TODO: this not work
-      // don't know why...
-      // another solution is to do a custom style but that's a lot of work
+      // prevent the orange hats
+      customState: 'Inactive',
+      
       src: '',
       capSize: 14,
-      titleStyle: 'OBTabBarButtonChildTitle',
-      showSelected: false,
-      showFocused: false
+      titleStyle: 'OBTabBarButtonChildTitle'
     }
   },
   tabBarPosition: 'top',
+  tabBarAlign: 'left',
   width: '100%',
   height: '100%',
   overflow: 'hidden',
--- a/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-popup-styles.css	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-popup-styles.css	Wed Oct 05 12:55:03 2011 +0200
@@ -27,7 +27,7 @@
 }
 
 .OBPopupHeaderIcon {
-  margin-left: 4px;
+  margin: 0px 0px 0px 4px;
 }
 
 .OBPopupHeaderText {
@@ -45,7 +45,7 @@
 .OBPopupIconMinimizeOver,
 .OBPopupIconMinimizeDown,
 .OBPopupIconMinimizeDisabled {
-  margin-right: 4px;
+  margin: 0px 4px 0px 0px;
   border: 1px solid #A2B48B;
 }
 
@@ -53,7 +53,7 @@
 .OBPopupIconMaximizeOver,
 .OBPopupIconMaximizeDown,
 .OBPopupIconMaximizeDisabled {
-  margin-right: 4px;
+  margin: 0px 4px 0px 0px;
   border: 1px solid #A2B48B;
 }
 
@@ -61,7 +61,7 @@
 .OBPopupIconRestoreOver,
 .OBPopupIconRestoreDown,
 .OBPopupIconRestoreDisabled {
-  margin-right: 4px;
+  margin: 0px 4px 0px 0px;
   border: 1px solid #A2B48B;
 }
 
@@ -69,7 +69,7 @@
 .OBPopupIconCloseOver,
 .OBPopupIconCloseDown,
 .OBPopupIconCloseDisabled {
-  margin-right: 4px;
+  margin: 0px 4px 0px 0px;
   border: 1px solid #FA962F;
 }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-rtl-styles.css	Wed Oct 05 12:55:03 2011 +0200
@@ -0,0 +1,87 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an 'AS IS'
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2011 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+*/
+
+/* ob-form-styles.css */
+
+.OBFormFieldSelectInputRequired,
+.OBFormFieldSelectInputRequiredDisabled,
+.OBFormFieldSelectInputRequiredFocused,
+.OBFormFieldSelectInputRequiredError,
+.OBFormFieldSelectInputRequiredHint,
+
+.OBFormFieldSelectInput,
+.OBFormFieldSelectInputError,
+.OBFormFieldSelectInputSelectedFocused,
+.OBFormFieldSelectInputFocused,
+.OBFormFieldSelectInputDisabled {
+  border-width: 1px 1px 1px 0px;
+}
+
+
+/* ob-personalization-styles.css */
+
+.OBFormPersonalizerPreviewPanel {
+  border-width: 0px 5px 0px 0px;
+}
+
+
+/* ob-popup-styles.js */
+
+.OBPopupHeaderIcon {
+  margin: 0px 4px 0px 0px;
+}
+
+.OBPopupIconMinimize,
+.OBPopupIconMinimizeOver,
+.OBPopupIconMinimizeDown,
+.OBPopupIconMinimizeDisabled {
+  margin: 0px 0px 0px 4px;
+}
+
+.OBPopupIconMaximize,
+.OBPopupIconMaximizeOver,
+.OBPopupIconMaximizeDown,
+.OBPopupIconMaximizeDisabled {
+  margin: 0px 0px 0px 4px;
+}
+
+.OBPopupIconRestore,
+.OBPopupIconRestoreOver,
+.OBPopupIconRestoreDown,
+.OBPopupIconRestoreDisabled {
+  margin: 0px 0px 0px 4px;
+}
+
+.OBPopupIconClose,
+.OBPopupIconCloseOver,
+.OBPopupIconCloseDown,
+.OBPopupIconCloseDisabled {
+  margin: 0px 0px 0px 4px;
+}
+
+
+/* ob-statusbar-styles.css */
+
+.OBStatusBarTextLabel {
+  text-align: right;
+}
+
+.OBStatusBarIconButtonBar {
+  margin: 0px 0px 0px 20px;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-rtl-styles.js	Wed Oct 05 12:55:03 2011 +0200
@@ -0,0 +1,53 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2011 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+*/
+
+/* ob-form-styles.js */
+
+isc.OBSectionItemButton.changeDefaults('backgroundDefaults', {
+  icon: OB.Styles.skinsPath + 'Default/org.openbravo.client.application/images/form/sectionItem-ico-RTL.png'
+});
+
+
+/* ob-personalization-styles.js */
+
+OB.Styles.Personalization.Icons.fieldGroup = OB.Styles.skinsPath + 'Default/org.openbravo.client.application/images/personalization/iconFolder-RTL.png';
+OB.Styles.Personalization.TabSet.tabBarAlign = 'right';
+
+/* ob-statusbar-styles.js */
+
+isc.OBStatusBarLeftBar.addProperties({
+  layoutLeftMargin: 0,
+  layoutRightMargin: 7,
+  align: 'right'
+});
+
+isc.OBStatusBarIconButtonBar.addProperties({
+  align: 'left'
+});
+
+
+/* ob-tab-styles.js */
+
+isc.OBTabSetMain.addProperties({
+  tabBarAlign: 'right'
+});
+
+isc.OBTabSetChild.addProperties({
+  tabBarAlign: 'right'
+});
\ No newline at end of file
--- a/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-statusbar-styles.css	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-statusbar-styles.css	Wed Oct 05 12:55:03 2011 +0200
@@ -29,6 +29,7 @@
   font-size: 11px;
   color: #333333;
   font-weight: normal;  /* Don't change, property set via OBStatusBarTextLabel_Status, OBStatusBarTextLabel_Title and OBStatusBarTextLabel_Field */
+  text-align: left;
 }
 
 .OBStatusBarTextLabel_Status {
@@ -51,5 +52,5 @@
 }
 
 .OBStatusBarIconButtonBar {
-  margin-right: 20px;
+  margin: 0px 20px 0px 0px;
 }
\ No newline at end of file
--- a/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-statusbar-styles.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-statusbar-styles.js	Wed Oct 05 12:55:03 2011 +0200
@@ -84,6 +84,14 @@
   initWidgetStyle: function() {
     var fileExt = this.genericIconSrc.substring(this.genericIconSrc.lastIndexOf('.'), this.genericIconSrc.length);
     var filePath = this.genericIconSrc.substring(0, this.genericIconSrc.length - fileExt.length) + '-';
-    this.setSrc(filePath + this.buttonType + fileExt);
+    var buttonType = this.buttonType;
+    if (isc.Page.isRTL()) {
+      if (buttonType === 'next') {
+        buttonType = 'previous';
+      } else if (buttonType === 'previous') {
+        buttonType = 'next';
+      }
+    }
+    this.setSrc(filePath + buttonType + fileExt);
   }
 });
\ No newline at end of file
--- a/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-tab-styles.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-tab-styles.js	Wed Oct 05 12:55:03 2011 +0200
@@ -32,6 +32,7 @@
 isc.OBTabSetMain.addProperties({
   tabBarConstructor: isc.OBTabBarMain,
   tabBarPosition: 'top',
+  tabBarAlign: 'left',
   width: '100%',
   height: '*',
   overflow: 'hidden',
@@ -81,6 +82,7 @@
 isc.OBTabSetChild.addProperties({
   tabBarConstructor: isc.OBTabBarChild,
   tabBarPosition: 'top',
+  tabBarAlign: 'left',
   width: '100%',
   height: '*',
   overflow: 'hidden',
--- a/modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <NAME><![CDATA[HTML Widget]]></NAME>
-<!--D393BE6F22BB44B7B728259B34FC795A-->  <VERSION><![CDATA[1.0.13451]]></VERSION>
+<!--D393BE6F22BB44B7B728259B34FC795A-->  <VERSION><![CDATA[1.0.13698]]></VERSION>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <DESCRIPTION><![CDATA[Provides the HTML Widget superclass that allows to create widget classes that embed the html code.]]></DESCRIPTION>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <HELP><![CDATA[With this module you can define your own widget classes just setting up your own html code or the html code provided by third parties.]]></HELP>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <URL><![CDATA[http://forge.openbravo.com/projects/htmlwidget]]></URL>
@@ -21,7 +21,7 @@
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <HASCHARTOFACCOUNTS><![CDATA[N]]></HASCHARTOFACCOUNTS>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
-<!--D393BE6F22BB44B7B728259B34FC795A-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--D393BE6F22BB44B7B728259B34FC795A-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--D393BE6F22BB44B7B728259B34FC795A--></AD_MODULE>
 
--- a/modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <AD_MODULE_ID><![CDATA[D393BE6F22BB44B7B728259B34FC795A]]></AD_MODULE_ID>
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <AD_DEPENDENT_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_DEPENDENT_MODULE_ID>
-<!--DCE798FBC5B648F7A3C81A6941720A57-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--DCE798FBC5B648F7A3C81A6941720A57-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <DEPENDANT_MODULE_NAME><![CDATA[My Openbravo Tab]]></DEPENDANT_MODULE_NAME>
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.kernel/jslint/jscheck	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.kernel/jslint/jscheck	Wed Oct 05 12:55:03 2011 +0200
@@ -3,4 +3,5 @@
 find ./modules -name '*.js' -and ! -path '*isomorphic*' \
 -and ! -path '*qunit*' -and ! -path '*docs*' \
 -and ! -path '*LAB*' -and ! -path '*benchmark*' \
--and ! -path '*smartclient*' | xargs -n1 ./modules/org.openbravo.client.kernel/jslint/jslint || exit 1
+-and ! -path '*smartclient*' \
+-and ! -path '*scopeleaks*' | xargs -n1 ./modules/org.openbravo.client.kernel/jslint/jslint || exit 1
--- a/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--4B828F4D03264080AA1D2057B13F613C-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <NAME><![CDATA[User Interface Client Kernel]]></NAME>
-<!--4B828F4D03264080AA1D2057B13F613C-->  <VERSION><![CDATA[2.1.13451]]></VERSION>
+<!--4B828F4D03264080AA1D2057B13F613C-->  <VERSION><![CDATA[2.1.13698]]></VERSION>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <DESCRIPTION><![CDATA[Provides framework functionality for the Openbravo User Interface]]></DESCRIPTION>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <HELP><![CDATA[The user interface client kernel is a generation framework for generating client (browser) components used in Openbravo. Its components are mainly used by other modules to provide customizable and extendable user interfaces.]]></HELP>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <URL><![CDATA[http://forge.openbravo.com/projects/openbravoclientkernel]]></URL>
@@ -22,7 +22,7 @@
 <!--4B828F4D03264080AA1D2057B13F613C-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <UPDATEINFO><![CDATA[Bug fix for issue 15289]]></UPDATEINFO>
-<!--4B828F4D03264080AA1D2057B13F613C-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--4B828F4D03264080AA1D2057B13F613C-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--4B828F4D03264080AA1D2057B13F613C--></AD_MODULE>
 
--- a/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <AD_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_MODULE_ID>
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--26B041893E844A53AFA58BC326C4F0D7-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--26B041893E844A53AFA58BC326C4F0D7-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <AD_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_MODULE_ID>
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <AD_DEPENDENT_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_DEPENDENT_MODULE_ID>
-<!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <STARTVERSION><![CDATA[1.1.13451]]></STARTVERSION>
+<!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <STARTVERSION><![CDATA[1.1.13698]]></STARTVERSION>
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <DEPENDANT_MODULE_NAME><![CDATA[JBoss Weld]]></DEPENDANT_MODULE_NAME>
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <AD_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_MODULE_ID>
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <AD_DEPENDENT_MODULE_ID><![CDATA[F8D1B3ECB3474E8DA5C216473C840DF1]]></AD_DEPENDENT_MODULE_ID>
-<!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <STARTVERSION><![CDATA[2.0.13451]]></STARTVERSION>
+<!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <STARTVERSION><![CDATA[2.0.13698]]></STARTVERSION>
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <DEPENDANT_MODULE_NAME><![CDATA[JSON REST Webservice]]></DEPENDANT_MODULE_NAME>
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_TREENODE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_TREENODE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -8,7 +8,7 @@
 <!--3E38D7EEF9CF48E5B223D6D71DF7EA05-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--3E38D7EEF9CF48E5B223D6D71DF7EA05-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--3E38D7EEF9CF48E5B223D6D71DF7EA05-->  <PARENT_ID><![CDATA[153]]></PARENT_ID>
-<!--3E38D7EEF9CF48E5B223D6D71DF7EA05-->  <SEQNO><![CDATA[135]]></SEQNO>
+<!--3E38D7EEF9CF48E5B223D6D71DF7EA05-->  <SEQNO><![CDATA[140]]></SEQNO>
 <!--3E38D7EEF9CF48E5B223D6D71DF7EA05--></AD_TREENODE>
 
 <!--EEDE9E704B114114BB8AF2A5453F3D77--><AD_TREENODE>
--- a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/ApplicationComponent.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/ApplicationComponent.java	Wed Oct 05 12:55:03 2011 +0200
@@ -19,7 +19,9 @@
 package org.openbravo.client.kernel;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Properties;
 
 import org.openbravo.base.session.OBPropertiesProvider;
@@ -64,6 +66,11 @@
     return getFormatDefinition().getDecimalSymbol();
   }
 
+  @SuppressWarnings("unchecked")
+  public Map<String, String> getFormats() {
+    return (HashMap<String, String>) RequestContext.get().getSessionAttribute("#formatMap");
+  }
+
   public boolean isTestEnvironment() {
     final String testEnvironmentStr = OBPropertiesProvider.getInstance().getOpenbravoProperties()
         .getProperty("test.environment");
--- a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseActionHandler.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseActionHandler.java	Wed Oct 05 12:55:03 2011 +0200
@@ -43,7 +43,6 @@
    * @see org.openbravo.client.kernel.ActionHandler#execute(javax.servlet.http.HttpServletRequest,
    * javax.servlet.http.HttpServletResponse)
    */
-  @SuppressWarnings("unchecked")
   public void execute() {
     final StringBuilder sb = new StringBuilder();
     String line;
@@ -57,7 +56,7 @@
       final String content = (sb.length() > 0 ? sb.toString() : null);
 
       final Map<String, Object> parameterMap = new HashMap<String, Object>();
-      for (Enumeration keys = request.getParameterNames(); keys.hasMoreElements();) {
+      for (Enumeration<?> keys = request.getParameterNames(); keys.hasMoreElements();) {
         final String key = (String) keys.nextElement();
         if (request.getParameterValues(key) != null && request.getParameterValues(key).length > 1) {
           parameterMap.put(key, request.getParameterValues(key));
--- a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseComponent.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseComponent.java	Wed Oct 05 12:55:03 2011 +0200
@@ -182,14 +182,9 @@
    */
   public String getETag() {
     if (hasModulesInDevelopment()) {
-      // if (getModule().isInDevelopment() != null && getModule().isInDevelopment()) {
-
       return OBContext.getOBContext().getLanguage().getId() + "_" + getLastModified().getTime();
     } else {
       return OBContext.getOBContext().getLanguage().getId() + "_" + getModuleVersionHash();
-      // return OBContext.getOBContext().getLanguage().getId() + "_" + getModule().getVersion() +
-      // "_"
-      // + getModule().isEnabled();
     }
   }
 
--- a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/templates/application-js.ftl	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/templates/application-js.ftl	Wed Oct 05 12:55:03 2011 +0200
@@ -38,7 +38,12 @@
         defaultDecimalSymbol: '${data.defaultDecimalSymbol}',
         defaultNumericMask: '${data.defaultNumericMask}',
         date: '${data.dateFormat}',
-        dateTime: '${data.dateTimeFormat}'
+        dateTime: '${data.dateTimeFormat}',
+        formats: {
+        <#list data.formats?keys as key>
+          '${key}': '${data.formats[key]}'<#if key_has_next>,</#if>
+        </#list>
+        }
     },
 
     Constants : {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.client.kernel/web/org.openbravo.client.kernel/js/scopeleaks.js	Wed Oct 05 12:55:03 2011 +0200
@@ -0,0 +1,73 @@
+/**
+* Modified version of scopeleaks by Rui Lopes
+* 
+* https://github.com/ruidlopes/scopeleaks
+* 
+* (The MIT License)
+*
+* Copyright © 2011 Rui Lopes
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy of
+* this software and associated documentation files (the ‘Software’), to deal in
+* the Software without restriction, including without limitation the rights to
+* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+* the Software, and to permit persons to whom the Software is furnished to do so,
+* subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in all
+* copies or substantial portions of the Software.
+* 
+* THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+(function() {
+	var scope = 
+		typeof global !== "undefined" ? global :
+		typeof window !== "undefined" ? window :
+		this;
+	
+	var original = undefined;
+	
+	var inOpera = (typeof scope.opera == 'object') && (scope.opera.toString() == "[object Opera]");
+	var inFirebug = (typeof scope.console == 'object') && (scope.console.firebug !== undefined);
+	
+	var scopeleaks = { 
+		snapshot: function () {
+			var snapshot = {};
+
+			for (var i in scope)
+				snapshot[i] = true;
+
+			original = original || snapshot;
+
+			return snapshot;
+		},
+			
+		leaks: function (snapshot) {
+			var ss = snapshot || scopeleaks.snapshot();
+			var leaks = [];
+			
+			for (var i in scope)
+				if (!ss[i] && i.indexOf('isc_') === 0 && scope[i] !== null && scope[i] !== undefined)
+					leaks.push(i);
+
+			return leaks;
+		}
+	};
+  
+	if (typeof window !== "undefined")
+		window.scopeleaks = scopeleaks;
+  	else if (typeof exports !== "undefined") {
+		exports.leaks = scopeleaks.leaks;
+		exports.snapshot = scopeleaks.snapshot;
+	}
+  
+	scopeleaks.snapshot();
+  
+	return scopeleaks;
+})();
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.client.kernel/web/org.openbravo.client.kernel/js/scopeleaks.min.js	Wed Oct 05 12:55:03 2011 +0200
@@ -0,0 +1,6 @@
+/**
+* Modified version of scopeleaks by Rui Lopes 
+* (The MIT License)
+* Copyright © 2011 Rui Lopes
+*/
+(function(){var a=typeof global!="undefined"?global:typeof window!="undefined"?window:this,b=undefined,c=typeof a.opera=="object"&&a.opera.toString()=="[object Opera]",d=typeof a.console=="object"&&a.console.firebug!==undefined,e={snapshot:function(){var c={};for(var d in a)c[d]=!0;return b=b||c,c},leaks:function(b){var c=b||e.snapshot(),d=[];for(var f in a)!c[f]&&f.indexOf("isc_")===0&&a[f]!==null&&a[f]!==undefined&&d.push(f);return d}};return typeof window!="undefined"?window.scopeleaks=e:typeof exports!="undefined"&&(exports.leaks=e.leaks,exports.snapshot=e.snapshot),e.snapshot(),e})();
--- a/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MESSAGE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MESSAGE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -141,7 +141,7 @@
 <!--4D4433A442EB4F0C8DF2F2A57A8BBE31-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--4D4433A442EB4F0C8DF2F2A57A8BBE31-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--4D4433A442EB4F0C8DF2F2A57A8BBE31-->  <VALUE><![CDATA[OBKMO_ActivateMessage]]></VALUE>
-<!--4D4433A442EB4F0C8DF2F2A57A8BBE31-->  <MSGTEXT><![CDATA[to delete this widget]]></MSGTEXT>
+<!--4D4433A442EB4F0C8DF2F2A57A8BBE31-->  <MSGTEXT><![CDATA[This widget removal capability is]]></MSGTEXT>
 <!--4D4433A442EB4F0C8DF2F2A57A8BBE31-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
 <!--4D4433A442EB4F0C8DF2F2A57A8BBE31-->  <AD_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_MODULE_ID>
 <!--4D4433A442EB4F0C8DF2F2A57A8BBE31--></AD_MESSAGE>
@@ -616,4 +616,16 @@
 <!--FF8081812E9F4334012E9F4645BF0007-->  <AD_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_MODULE_ID>
 <!--FF8081812E9F4334012E9F4645BF0007--></AD_MESSAGE>
 
+<!--FF80818131E162F30131E16910BF0003--><AD_MESSAGE>
+<!--FF80818131E162F30131E16910BF0003-->  <AD_MESSAGE_ID><![CDATA[FF80818131E162F30131E16910BF0003]]></AD_MESSAGE_ID>
+<!--FF80818131E162F30131E16910BF0003-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FF80818131E162F30131E16910BF0003-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FF80818131E162F30131E16910BF0003-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FF80818131E162F30131E16910BF0003-->  <VALUE><![CDATA[OBKMO_InstancePurpose]]></VALUE>
+<!--FF80818131E162F30131E16910BF0003-->  <MSGTEXT><![CDATA[Instance Purpose]]></MSGTEXT>
+<!--FF80818131E162F30131E16910BF0003-->  <MSGTIP><![CDATA[Instance Purpose]]></MSGTIP>
+<!--FF80818131E162F30131E16910BF0003-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--FF80818131E162F30131E16910BF0003-->  <AD_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_MODULE_ID>
+<!--FF80818131E162F30131E16910BF0003--></AD_MESSAGE>
+
 </data>
--- a/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <NAME><![CDATA[Workspace & Widgets]]></NAME>
-<!--2758CD25B2704AF6BBAD10365FC82C06-->  <VERSION><![CDATA[2.1.13451]]></VERSION>
+<!--2758CD25B2704AF6BBAD10365FC82C06-->  <VERSION><![CDATA[2.1.13698]]></VERSION>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <DESCRIPTION><![CDATA[Workspace & Widgets]]></DESCRIPTION>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <HELP><![CDATA[Provides the infrastructure of workspace tab (formerly My Openbravo)]]></HELP>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <URL><![CDATA[http://forge.openbravo.com/projects/myopenbravo]]></URL>
@@ -22,7 +22,7 @@
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <HASREFERENCEDATA><![CDATA[Y]]></HASREFERENCEDATA>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <UPDATEINFO><![CDATA[Styling bugfixing]]></UPDATEINFO>
-<!--2758CD25B2704AF6BBAD10365FC82C06-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--2758CD25B2704AF6BBAD10365FC82C06-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--2758CD25B2704AF6BBAD10365FC82C06--></AD_MODULE>
 
--- a/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--15F51F03882F444CAB6593B4566DC929-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--15F51F03882F444CAB6593B4566DC929-->  <AD_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_MODULE_ID>
 <!--15F51F03882F444CAB6593B4566DC929-->  <AD_DEPENDENT_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_DEPENDENT_MODULE_ID>
-<!--15F51F03882F444CAB6593B4566DC929-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--15F51F03882F444CAB6593B4566DC929-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--15F51F03882F444CAB6593B4566DC929-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--15F51F03882F444CAB6593B4566DC929-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Application]]></DEPENDANT_MODULE_NAME>
 <!--15F51F03882F444CAB6593B4566DC929-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <AD_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_MODULE_ID>
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--E71B28FC949D481D9F59C17D01E46EF9-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--E71B28FC949D481D9F59C17D01E46EF9-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <DEPENDANT_MODULE_NAME><![CDATA[Core]]></DEPENDANT_MODULE_NAME>
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/form/formitem/ob-formitem-widgetinform.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/form/formitem/ob-formitem-widgetinform.js	Wed Oct 05 12:55:03 2011 +0200
@@ -42,12 +42,26 @@
       }
     }
 
+    // make a local copy which can be changed
+    widgetProperties = isc.addProperties({}, this.widgetProperties);
+    
     // add link to form so widget can possibly use it
-    this.widgetProperties.viewForm = this.form;
+    widgetProperties.viewForm = this.form;
 
-    this.widgetProperties.parameters = widgetParameters;
+    widgetProperties.parameters = widgetParameters;
 
-    this.widgetInstance = isc.ClassFactory.newInstance(widgetClass, this.widgetProperties);
+    if (!widgetClass && this.isPreviewFormItem) {
+      widgetClass = isc.OBWidget;
+      widgetProperties.createWindowContents = function() {
+        return isc.Label.create({
+          width: 1,
+          height: 1,
+          contents: '&nbsp;'
+        });
+      };
+    }
+    
+    this.widgetInstance = isc.ClassFactory.newInstance(widgetClass, widgetProperties);
     return this.widgetInstance;
   },
 
--- a/modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-community-branding-widget.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-community-branding-widget.js	Wed Oct 05 12:55:03 2011 +0200
@@ -26,7 +26,19 @@
   headerLabel: null,
 
   createWindowContents: function(){
-    var layout = isc.VStack.create({height:'100%', width:'100%', styleName:''});
+    var layout = isc.VStack.create({
+      height:'100%',
+      width:'100%',
+      styleName:'',
+      resizeTo: function() {
+        var emptySize;
+        if (this.separator) {
+          emptySize = Math.round((this.width - 155) / 2);
+          this.separator.width = emptySize;
+        }
+        this.Super('resizeTo', arguments);
+      }
+    });
 
     if(!OB.Application.brandingWidget) {
       // set a global pointer to ourselves
@@ -71,7 +83,7 @@
   },
 
   setOBContent: function(haveInternet, communityBrandingUrl) {
-    var url, params = {};
+    var url, params = {}, emptySize, toolTip, purposeStack;
 
     if (haveInternet) {
       url = document.location.protocol + communityBrandingUrl;
@@ -86,9 +98,9 @@
     var loadingBar = layout.members[this.windowContents.members.length-1];
 
     this.versionLabel = isc.Label.create({contents: this.versionText,
-      height: '36px',
+      height: '22px',
       width:'100%',
-      styleName: this.getPurposeStyleClass(),
+      styleName: 'OBWidgetCommunityBranding',
       align: 'center'
     });
 
@@ -96,11 +108,31 @@
         contentsType: 'page',
         contentsURL: url,
         contentsURLParams: params,
-        height: '324px',
-        width: '100%'
+        height: '324px'
       });
 
-    layout.removeMember(loadingBar);
+    toolTip = isc.Label.create({contents: '',
+      height: '5px',
+      width:'155px',
+      styleName: this.getPurposeStyleClass(),
+      prompt:OB.I18N.getLabel('OBKMO_InstancePurpose')
+    });
+
+    emptySize = (layout.width - 155) / 2;
+
+    layout.separator = isc.Label.create({contents: '',
+      height: '5px',
+      width: emptySize
+    });
+
+    purposeStack = isc.HStack.create({height:'24px', width:'100%'});
+    purposeStack.addMembers(layout.separator);
+    purposeStack.addMembers(toolTip);
+    purposeStack.addMembers(layout.separator);
+
+    layout.destroyAndRemoveMembers(loadingBar);
+
+    layout.addMember(purposeStack);
     layout.addMember(this.versionLabel);
     layout.addMember(content);
   },
--- a/modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-myopenbravo.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-myopenbravo.js	Wed Oct 05 12:55:03 2011 +0200
@@ -355,9 +355,11 @@
   },
 
   setRecentList: function(layout){
-    var recentList, newRecent, recentIndex = 0, recent, lbl, newIcon, entryLayout, icon;
+    var recentList, newRecent,  
+      recentIndex = 0, recent, lbl, newIcon, entryLayout, icon;
+    
     // start with a fresh content
-    layout.removeMembers(layout.members);
+    layout.destroyAndRemoveMembers(layout.members);
     
     // reads the list of recents and displays them
     recentList = OB.Layout.ViewManager.recentManager.getRecentValue('OBUIAPP_RecentViewList');
@@ -447,10 +449,12 @@
   },
   
   setRecentDocumentsList: function(layout){
-    var recentList, newRecent, recentIndex = 0, recent, lbl, newIcon, entryLayout, icon;
+    var recentList, newRecent, recentIndex = 0, recent, 
+      lbl, newIcon, entryLayout, icon;
+    
     // start with a fresh content
-    layout.removeMembers(layout.members);
-    
+    layout.destroyAndRemoveMembers(layout.members);
+
     // reads the list of recents and displays them
     recentList = OB.Layout.ViewManager.recentManager.getRecentValue('OBUIAPP_RecentDocumentsList');
     if (recentList && recentList.length > 0) {
--- a/modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-showparameter-widget.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-showparameter-widget.js	Wed Oct 05 12:55:03 2011 +0200
@@ -25,7 +25,7 @@
   setParameters: function(parameters){
     this.Super('setParameters', arguments);
     var oldForm = this.displayForm;
-    this.windowContents.removeMember(this.displayForm);
+    this.windowContents.destroyAndRemoveMembers(this.displayForm);
     this.windowContents.addMember(this.createDisplayForm());
     oldForm.destroy();
   },
--- a/modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-widget.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-widget.js	Wed Oct 05 12:55:03 2011 +0200
@@ -166,6 +166,7 @@
   showMinimizeButton: false,
   showCloseButton: false,
   closeConfirmationMessage: OB.I18N.getLabel('OBKMO_DeleteThisWidgetConfirmation'),
+  destroyOnClose: true,
   
   canDelete: true,
   dbInstanceId: '',
--- a/modules/org.openbravo.client.myob/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.myob/ob-widget-styles.css	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.myob/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.myob/ob-widget-styles.css	Wed Oct 05 12:55:03 2011 +0200
@@ -242,6 +242,11 @@
 }
 
 /* Community branding widget */
+.OBWidgetCommunityBranding{
+  font-weight: bold;
+  font-size: 16px;
+}
+
 .OBWidgetCommunityBrandingUnknown {
   padding-top: 32px;
   font-weight: bold;
--- a/modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MESSAGE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MESSAGE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -39,7 +39,7 @@
 <!--FF808081319977E50131998EB8900032-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--FF808081319977E50131998EB8900032-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF808081319977E50131998EB8900032-->  <VALUE><![CDATA[OBCQL_ActivateMessageExport]]></VALUE>
-<!--FF808081319977E50131998EB8900032-->  <MSGTEXT><![CDATA[export data]]></MSGTEXT>
+<!--FF808081319977E50131998EB8900032-->  <MSGTEXT><![CDATA[Data export capability is]]></MSGTEXT>
 <!--FF808081319977E50131998EB8900032-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
 <!--FF808081319977E50131998EB8900032-->  <AD_MODULE_ID><![CDATA[0A060B2AF1974E8EAA8DB61388E9AECC]]></AD_MODULE_ID>
 <!--FF808081319977E50131998EB8900032--></AD_MESSAGE>
--- a/modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <NAME><![CDATA[Query/List Widget]]></NAME>
-<!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <VERSION><![CDATA[1.0.13451]]></VERSION>
+<!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <VERSION><![CDATA[1.0.13698]]></VERSION>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <DESCRIPTION><![CDATA[Provides the Query/List superclass widget that allows to create widget classes that prints a grid of data based on a query.]]></DESCRIPTION>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <HELP><![CDATA[With this module you can define your own widget classes that just with simple Application Dictionary shows a grid of data based on a HQL Query.]]></HELP>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <URL><![CDATA[http://forge.openbravo.com/projects/querylistwidget]]></URL>
@@ -21,7 +21,7 @@
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <HASCHARTOFACCOUNTS><![CDATA[N]]></HASCHARTOFACCOUNTS>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
-<!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC--></AD_MODULE>
 
--- a/modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--26558497C31140BFAB067BA4BC47D799-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--26558497C31140BFAB067BA4BC47D799-->  <AD_MODULE_ID><![CDATA[0A060B2AF1974E8EAA8DB61388E9AECC]]></AD_MODULE_ID>
 <!--26558497C31140BFAB067BA4BC47D799-->  <AD_DEPENDENT_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_DEPENDENT_MODULE_ID>
-<!--26558497C31140BFAB067BA4BC47D799-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--26558497C31140BFAB067BA4BC47D799-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--26558497C31140BFAB067BA4BC47D799-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--26558497C31140BFAB067BA4BC47D799-->  <DEPENDANT_MODULE_NAME><![CDATA[My Openbravo Tab]]></DEPENDANT_MODULE_NAME>
 <!--26558497C31140BFAB067BA4BC47D799-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.querylist/web/org.openbravo.client.querylist/js/ob-querylist-widget.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.querylist/web/org.openbravo.client.querylist/js/ob-querylist-widget.js	Wed Oct 05 12:55:03 2011 +0200
@@ -117,8 +117,12 @@
     if (this.viewMode === 'widget') {
       this.setWidgetHeight();
     }
-    this.grid.invalidateCache();
-    this.grid.filterData();
+    // sometimes when removing the form, this gets called
+    // at that point this.grid is not set anymore
+    if (this.grid) {
+      this.grid.invalidateCache();
+      this.grid.filterData();
+    }
   },
 
   exportGrid: function () {
--- a/modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--FF8080812D842086012D844F3CC0003E-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--FF8080812D842086012D844F3CC0003E-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080812D842086012D844F3CC0003E-->  <NAME><![CDATA[Widgets Collection]]></NAME>
-<!--FF8080812D842086012D844F3CC0003E-->  <VERSION><![CDATA[0.0.13451]]></VERSION>
+<!--FF8080812D842086012D844F3CC0003E-->  <VERSION><![CDATA[0.0.13698]]></VERSION>
 <!--FF8080812D842086012D844F3CC0003E-->  <DESCRIPTION><![CDATA[Collection of Workspace Widgets]]></DESCRIPTION>
 <!--FF8080812D842086012D844F3CC0003E-->  <HELP><![CDATA[Collection of Workspace Widgets]]></HELP>
 <!--FF8080812D842086012D844F3CC0003E-->  <URL><![CDATA[http://forge.openbravo.com/projects/widgetscollection]]></URL>
@@ -22,7 +22,7 @@
 <!--FF8080812D842086012D844F3CC0003E-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--FF8080812D842086012D844F3CC0003E-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
 <!--FF8080812D842086012D844F3CC0003E-->  <UPDATEINFO><![CDATA[Added Currency Converter. Added Google Docs]]></UPDATEINFO>
-<!--FF8080812D842086012D844F3CC0003E-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--FF8080812D842086012D844F3CC0003E-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--FF8080812D842086012D844F3CC0003E-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--FF8080812D842086012D844F3CC0003E--></AD_MODULE>
 
--- a/modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--FF8080812D842086012D845002070046-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080812D842086012D845002070046-->  <AD_MODULE_ID><![CDATA[FF8080812D842086012D844F3CC0003E]]></AD_MODULE_ID>
 <!--FF8080812D842086012D845002070046-->  <AD_DEPENDENT_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_DEPENDENT_MODULE_ID>
-<!--FF8080812D842086012D845002070046-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--FF8080812D842086012D845002070046-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--FF8080812D842086012D845002070046-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--FF8080812D842086012D845002070046-->  <DEPENDANT_MODULE_NAME><![CDATA[Workspace & Widgets]]></DEPENDANT_MODULE_NAME>
 <!--FF8080812D842086012D845002070046-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <NAME><![CDATA[Payment Report]]></NAME>
-<!--2A5EE903D7974AC298C0504FBC4501A7-->  <VERSION><![CDATA[3.0.13451]]></VERSION>
+<!--2A5EE903D7974AC298C0504FBC4501A7-->  <VERSION><![CDATA[3.0.13698]]></VERSION>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <DESCRIPTION><![CDATA[Payment Report]]></DESCRIPTION>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <URL><![CDATA[http://forge.openbravo.com/projects/paymentreport]]></URL>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <TYPE><![CDATA[M]]></TYPE>
@@ -22,7 +22,7 @@
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <HASCHARTOFACCOUNTS><![CDATA[N]]></HASCHARTOFACCOUNTS>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
-<!--2A5EE903D7974AC298C0504FBC4501A7-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--2A5EE903D7974AC298C0504FBC4501A7-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--2A5EE903D7974AC298C0504FBC4501A7--></AD_MODULE>
 
--- a/modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <AD_MODULE_ID><![CDATA[2A5EE903D7974AC298C0504FBC4501A7]]></AD_MODULE_ID>
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <AD_DEPENDENT_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_DEPENDENT_MODULE_ID>
-<!--A3B449C4D5FE4D688CC58236FE33B802-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--A3B449C4D5FE4D688CC58236FE33B802-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <DEPENDANT_MODULE_NAME><![CDATA[Advanced Payables and Receivables Mngmt]]></DEPENDANT_MODULE_NAME>
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReport.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReport.java	Wed Oct 05 12:55:03 2011 +0200
@@ -32,12 +32,15 @@
 import org.openbravo.base.filter.ValueListFilter;
 import org.openbravo.base.secureApp.HttpSecureAppServlet;
 import org.openbravo.base.secureApp.VariablesSecureApp;
+import org.openbravo.dal.core.DalUtil;
+import org.openbravo.dal.core.OBContext;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.data.FieldProvider;
 import org.openbravo.data.Sqlc;
 import org.openbravo.erpCommon.businessUtility.WindowTabs;
 import org.openbravo.erpCommon.info.SelectorUtilityData;
 import org.openbravo.erpCommon.utility.ComboTableData;
+import org.openbravo.erpCommon.utility.DateTimeData;
 import org.openbravo.erpCommon.utility.LeftTabsBar;
 import org.openbravo.erpCommon.utility.NavigationBar;
 import org.openbravo.erpCommon.utility.OBError;
@@ -62,7 +65,7 @@
     VariablesSecureApp vars = new VariablesSecureApp(request);
 
     if (vars.commandIn("DEFAULT")) {
-      String strOrg = vars.getGlobalVariable("inpOrg", "PaymentReport|Organization", "");
+      String strOrg = vars.getGlobalVariable("inpOrg", "PaymentReport|Organization", "0");
       String strInclSubOrg = vars.getGlobalVariable("inpInclSubOrg",
           "PaymentReport|IncludeSubOrganization", "");
       String strDueDateFrom = vars.getGlobalVariable("inpDueDateFrom", "PaymentReport|DueDateFrom",
@@ -92,11 +95,18 @@
           "PaymentReport|FinancialAccountId", "", IsIDFilter.instance);
       String strcCurrency = vars.getGlobalVariable("inpcCurrencyId", "PaymentReport|Currency", "",
           IsIDFilter.instance);
-      String strConvertCurrency = vars.getGlobalVariable("inpConvertCurrencyId",
-          "PaymentReport|ConvertCurrency", "");
+      String strConvertCurrency = null;
+      strConvertCurrency = vars.getGlobalVariable("inpConvertCurrencyId",
+          "PaymentReport|ConvertCurrency",
+          (String) DalUtil.getId(OBContext.getOBContext().getCurrentClient().getCurrency()));
+      if (strConvertCurrency == null) {
+        strConvertCurrency = vars.getGlobalVariable("inpConvertCurrencyId",
+            "PaymentReport|ConvertCurrency", "");
+      }
       String strConversionDate = vars.getGlobalVariable("inpConversionDate",
-          "PaymentReport|ConversionDate", "");
-      String strPaymType = vars.getGlobalVariable("inpPaymType", "PaymentReport|PaymentType", "");
+          "PaymentReport|ConversionDate", DateTimeData.today(this));
+      String strPaymType = vars.getGlobalVariable("inpPaymType", "PaymentReport|PaymentType",
+          "FINPR_RecPay");
       String strOverdue = vars.getGlobalVariable("inpOverdue", "PaymentReport|Overdue", "");
       String strGroupCrit = vars.getGlobalVariable("inpGroupCrit", "PaymentReport|GroupCrit", "");
       String strOrdCrit = vars.getInGlobalVariable("inpShown", "PaymentReport|OrdCrit", "",
@@ -261,7 +271,7 @@
           strFinancialAccountId, strcCurrency, strConvertCurrency, strConversionDate, strPaymType,
           strOverdue, strGroupCrit, strOrdCrit);
 
-      if (data.length == 1 && data[0] == null) {
+      if (data.length == 0) {
 
         discardAL.add("sectionGroupCrit");
         discardAL.add("sectionStatus");
--- a/modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReportDao.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReportDao.java	Wed Oct 05 12:55:03 2011 +0200
@@ -91,6 +91,7 @@
     Currency transCurrency;
     BigDecimal transAmount = null;
     ConversionRate convRate = null;
+    ArrayList<FieldProvider> groupedData = new ArrayList<FieldProvider>();
 
     OBContext.setAdminMode();
     try {
@@ -142,34 +143,16 @@
       if (!strDueDateFrom.isEmpty()) {
         hsqlScript.append(" and invps.");
         hsqlScript.append(FIN_PaymentSchedule.PROPERTY_DUEDATE);
-        hsqlScript.append(" > ?");
+        hsqlScript.append(" >= ?");
         parameters.add(FIN_Utility.getDate(strDueDateFrom));
       }
       if (!strDueDateTo.isEmpty()) {
         hsqlScript.append(" and invps.");
         hsqlScript.append(FIN_PaymentSchedule.PROPERTY_DUEDATE);
-        hsqlScript.append(" < ?");
+        hsqlScript.append(" <= ?");
         parameters.add(FIN_Utility.getDate(strDueDateTo));
       }
 
-      // amount from - amount to
-      if (!strAmountFrom.isEmpty()) {
-        hsqlScript.append(" and coalesce(pay.");
-        hsqlScript.append(FIN_Payment.PROPERTY_AMOUNT);
-        hsqlScript.append(", invps.");
-        hsqlScript.append(FIN_PaymentSchedule.PROPERTY_AMOUNT);
-        hsqlScript.append(") > ");
-        hsqlScript.append(strAmountFrom);
-      }
-      if (!strAmountTo.isEmpty()) {
-        hsqlScript.append(" and coalesce(pay.");
-        hsqlScript.append(FIN_Payment.PROPERTY_AMOUNT);
-        hsqlScript.append(", invps.");
-        hsqlScript.append(FIN_PaymentSchedule.PROPERTY_AMOUNT);
-        hsqlScript.append(") < ");
-        hsqlScript.append(strAmountTo);
-      }
-
       // document date from - document date to
       if (!strDocumentDateFrom.isEmpty()) {
         hsqlScript.append(" and coalesce(inv.");
@@ -391,8 +374,16 @@
       FIN_PaymentScheduleDetail[] FIN_PaymentScheduleDetail = new FIN_PaymentScheduleDetail[0];
       FIN_PaymentScheduleDetail = obqPSDList.toArray(FIN_PaymentScheduleDetail);
 
+      FIN_PaymentDetail finPaymDetail;
+      Boolean mustGroup;
+      String previousFPSDInvoiceId = null;
+      String previousPaymentId = null;
+      BigDecimal amountSum = BigDecimal.ZERO;
+      FieldProvider previousRow = null;
+      ConversionRate previousConvRate = null;
       long milisecDayConv = (1000 * 60 * 60 * 24);
       boolean isReceipt = false;
+      boolean isAmtInLimit = false;
 
       for (int i = 0; i < data.length; i++) {
         if (FIN_PaymentScheduleDetail[i].getPaymentDetails() != null) {
@@ -486,9 +477,9 @@
             FieldProviderFactory.setField(data[i], "PROJECT", "");
           // salesPerson
           if (FIN_PaymentScheduleDetail[i].getInvoicePaymentSchedule().getInvoice()
-              .getUserContact() != null) {
+              .getSalesRepresentative() != null) {
             FieldProviderFactory.setField(data[i], "SALES_PERSON", FIN_PaymentScheduleDetail[i]
-                .getInvoicePaymentSchedule().getInvoice().getUserContact().getIdentifier());
+                .getInvoicePaymentSchedule().getInvoice().getSalesRepresentative().getIdentifier());
           } else {
             FieldProviderFactory.setField(data[i], "SALES_PERSON", "");
           }
@@ -562,6 +553,7 @@
 
         boolean sameCurrency = baseCurrency.getISOCode().equalsIgnoreCase(
             transCurrency.getISOCode());
+
         if (!sameCurrency) {
           convRate = this.getConversionRate(transCurrency, baseCurrency, strConversionDate);
 
@@ -605,28 +597,150 @@
         // baseCurrency
         FieldProviderFactory.setField(data[i], "TRANS_CURRENCY", transCurrency.getISOCode());
 
+        finPaymDetail = FIN_PaymentScheduleDetail[i].getPaymentDetails();
+
+        // Payment Schedule Detail grouping criteria
+        if (finPaymDetail != null
+            && FIN_PaymentScheduleDetail[i].getInvoicePaymentSchedule() != null) {
+          mustGroup = finPaymDetail.getFinPayment().getId().equalsIgnoreCase(previousPaymentId)
+              && FIN_PaymentScheduleDetail[i].getInvoicePaymentSchedule().getId()
+                  .equalsIgnoreCase(previousFPSDInvoiceId);
+          previousFPSDInvoiceId = FIN_PaymentScheduleDetail[i].getInvoicePaymentSchedule().getId();
+          previousPaymentId = finPaymDetail.getFinPayment().getId();
+        } else if (finPaymDetail != null
+            && FIN_PaymentScheduleDetail[i].getInvoicePaymentSchedule() == null) {
+          mustGroup = finPaymDetail.getFinPayment().getId().equalsIgnoreCase(previousPaymentId)
+              && previousFPSDInvoiceId == null;
+          previousPaymentId = finPaymDetail.getFinPayment().getId();
+          previousFPSDInvoiceId = null;
+        } else if (finPaymDetail == null
+            && FIN_PaymentScheduleDetail[i].getInvoicePaymentSchedule() != null) {
+          mustGroup = previousPaymentId == null
+              && FIN_PaymentScheduleDetail[i].getInvoicePaymentSchedule().getId()
+                  .equalsIgnoreCase(previousFPSDInvoiceId);
+          previousPaymentId = null;
+          previousFPSDInvoiceId = FIN_PaymentScheduleDetail[i].getInvoicePaymentSchedule().getId();
+        } else {
+          mustGroup = false;
+        }
+
+        if (mustGroup) {
+          amountSum = amountSum.add(transAmount);
+        } else {
+          if (previousRow != null) {
+            // The current row has nothing to do with the previous one. Because of that, the
+            // previous row has to be added to grouped data.
+            if (previousRow.getField("ISRECEIPT").equalsIgnoreCase("Y"))
+              FieldProviderFactory.setField(previousRow, "TRANS_AMOUNT", amountSum.toString());
+            else
+              FieldProviderFactory.setField(previousRow, "TRANS_AMOUNT", amountSum.negate()
+                  .toString());
+            if (previousConvRate == null) {
+              if (previousRow.getField("ISRECEIPT").equalsIgnoreCase("Y"))
+                FieldProviderFactory.setField(previousRow, "BASE_AMOUNT", amountSum.toString());
+              else
+                FieldProviderFactory.setField(previousRow, "BASE_AMOUNT", amountSum.negate()
+                    .toString());
+            } else {
+              if (previousRow.getField("ISRECEIPT").equalsIgnoreCase("Y"))
+                FieldProviderFactory.setField(previousRow, "BASE_AMOUNT",
+                    amountSum.multiply(previousConvRate.getMultipleRateBy()).toString());
+              else
+                FieldProviderFactory.setField(previousRow, "BASE_AMOUNT",
+                    amountSum.multiply(previousConvRate.getMultipleRateBy()).negate().toString());
+            }
+
+            if (strAmountFrom.isEmpty() && strAmountTo.isEmpty()) {
+              isAmtInLimit = true;
+            } else if (!strAmountFrom.isEmpty() && strAmountTo.isEmpty()) {
+              isAmtInLimit = Double.parseDouble(previousRow.getField("TRANS_AMOUNT")) >= Double
+                  .parseDouble(strAmountFrom);
+            } else if (strAmountFrom.isEmpty() && !strAmountTo.isEmpty()) {
+              isAmtInLimit = Double.parseDouble(previousRow.getField("TRANS_AMOUNT")) <= Double
+                  .parseDouble(strAmountTo);
+            } else {
+              isAmtInLimit = Double.parseDouble(previousRow.getField("TRANS_AMOUNT")) >= Double
+                  .parseDouble(strAmountFrom)
+                  && Double.parseDouble(previousRow.getField("TRANS_AMOUNT")) <= Double
+                      .parseDouble(strAmountTo);
+            }
+            if (isAmtInLimit) {
+              groupedData.add(previousRow);
+              isAmtInLimit = false;
+            }
+          }
+          previousRow = data[i];
+          previousConvRate = convRate;
+          amountSum = transAmount;
+        }
+
         // group_crit_id this is the column that has the ids of the grouping criteria selected
         if (strGroupCrit.equalsIgnoreCase("APRM_FATS_BPARTNER")) {
-          FieldProviderFactory.setField(data[i], "GROUP_CRIT_ID", data[i].getField("BPARTNER"));
-          FieldProviderFactory.setField(data[i], "GROUP_CRIT", "Business Partner");
+          FieldProviderFactory.setField(previousRow, "GROUP_CRIT_ID",
+              previousRow.getField("BPARTNER"));
+          FieldProviderFactory.setField(previousRow, "GROUP_CRIT", "Business Partner");
         } else if (strGroupCrit.equalsIgnoreCase("Project")) {
-          FieldProviderFactory.setField(data[i], "GROUP_CRIT_ID", data[i].getField("PROJECT"));
-          FieldProviderFactory.setField(data[i], "GROUP_CRIT", "Project");
+          FieldProviderFactory.setField(previousRow, "GROUP_CRIT_ID",
+              previousRow.getField("PROJECT"));
+          FieldProviderFactory.setField(previousRow, "GROUP_CRIT", "Project");
         } else if (strGroupCrit.equalsIgnoreCase("FINPR_BPartner_Category")) {
-          FieldProviderFactory.setField(data[i], "GROUP_CRIT_ID", data[i].getField("BP_GROUP"));
-          FieldProviderFactory.setField(data[i], "GROUP_CRIT", "Business Partner Category");
+          FieldProviderFactory.setField(previousRow, "GROUP_CRIT_ID",
+              previousRow.getField("BP_GROUP"));
+          FieldProviderFactory.setField(previousRow, "GROUP_CRIT", "Business Partner Category");
         } else if (strGroupCrit.equalsIgnoreCase("INS_CURRENCY")) {
-          FieldProviderFactory.setField(data[i], "GROUP_CRIT_ID",
-              data[i].getField("TRANS_CURRENCY"));
-          FieldProviderFactory.setField(data[i], "GROUP_CRIT", "Currency");
+          FieldProviderFactory.setField(previousRow, "GROUP_CRIT_ID",
+              previousRow.getField("TRANS_CURRENCY"));
+          FieldProviderFactory.setField(previousRow, "GROUP_CRIT", "Currency");
         } else {
-          FieldProviderFactory.setField(data[i], "GROUP_CRIT_ID", "");
+          FieldProviderFactory.setField(previousRow, "GROUP_CRIT_ID", "");
+        }
+
+      }
+      if (previousRow != null) {
+        // The current row has nothing to do with the previous one. Because of that, the
+        // previous row has to be added to grouped data.
+        if (previousRow.getField("ISRECEIPT").equalsIgnoreCase("Y"))
+          FieldProviderFactory.setField(previousRow, "TRANS_AMOUNT", amountSum.toString());
+        else
+          FieldProviderFactory.setField(previousRow, "TRANS_AMOUNT", amountSum.negate().toString());
+        if (previousConvRate == null) {
+          if (previousRow.getField("ISRECEIPT").equalsIgnoreCase("Y"))
+            FieldProviderFactory.setField(previousRow, "BASE_AMOUNT", amountSum.toString());
+          else
+            FieldProviderFactory
+                .setField(previousRow, "BASE_AMOUNT", amountSum.negate().toString());
+        } else {
+          if (previousRow.getField("ISRECEIPT").equalsIgnoreCase("Y"))
+            FieldProviderFactory.setField(previousRow, "BASE_AMOUNT",
+                amountSum.multiply(previousConvRate.getMultipleRateBy()).toString());
+          else
+            FieldProviderFactory.setField(previousRow, "BASE_AMOUNT",
+                amountSum.multiply(previousConvRate.getMultipleRateBy()).negate().toString());
+        }
+
+        if (strAmountFrom.isEmpty() && strAmountTo.isEmpty()) {
+          isAmtInLimit = true;
+        } else if (!strAmountFrom.isEmpty() && strAmountTo.isEmpty()) {
+          isAmtInLimit = Double.parseDouble(previousRow.getField("TRANS_AMOUNT")) >= Double
+              .parseDouble(strAmountFrom);
+        } else if (strAmountFrom.isEmpty() && !strAmountTo.isEmpty()) {
+          isAmtInLimit = Double.parseDouble(previousRow.getField("TRANS_AMOUNT")) <= Double
+              .parseDouble(strAmountTo);
+        } else {
+          isAmtInLimit = Double.parseDouble(previousRow.getField("TRANS_AMOUNT")) >= Double
+              .parseDouble(strAmountFrom)
+              && Double.parseDouble(previousRow.getField("TRANS_AMOUNT")) <= Double
+                  .parseDouble(strAmountTo);
+        }
+        if (isAmtInLimit) {
+          groupedData.add(previousRow);
+          isAmtInLimit = false;
         }
       }
     } finally {
       OBContext.restorePreviousMode();
     }
-    return data;
+    return (FieldProvider[]) groupedData.toArray(new FieldProvider[groupedData.size()]);
   }
 
   public ConversionRate getConversionRate(Currency transCurrency, Currency baseCurrency,
@@ -799,4 +913,4 @@
     }
     return bp;
   }
-}
\ No newline at end of file
+}
--- a/modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--3A3A943684D64DEF9EC39F588A656848-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <NAME><![CDATA[Orders Awaiting Delivery]]></NAME>
-<!--3A3A943684D64DEF9EC39F588A656848-->  <VERSION><![CDATA[1.1.13451]]></VERSION>
+<!--3A3A943684D64DEF9EC39F588A656848-->  <VERSION><![CDATA[1.1.13698]]></VERSION>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <DESCRIPTION><![CDATA[Report displaying sales orders not shipped.]]></DESCRIPTION>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <URL><![CDATA[http://forge.openbravo.com/projects/ordersawaitingdlivery]]></URL>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <TYPE><![CDATA[M]]></TYPE>
@@ -19,7 +19,7 @@
 <!--3A3A943684D64DEF9EC39F588A656848-->  <HASCHARTOFACCOUNTS><![CDATA[N]]></HASCHARTOFACCOUNTS>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
-<!--3A3A943684D64DEF9EC39F588A656848-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--3A3A943684D64DEF9EC39F588A656848-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--3A3A943684D64DEF9EC39F588A656848--></AD_MODULE>
 
--- a/modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <AD_MODULE_ID><![CDATA[3A3A943684D64DEF9EC39F588A656848]]></AD_MODULE_ID>
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <NAME><![CDATA[JSON Datasource]]></NAME>
-<!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <VERSION><![CDATA[2.1.13451]]></VERSION>
+<!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <VERSION><![CDATA[2.1.13698]]></VERSION>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <DESCRIPTION><![CDATA[Provides data source CRUD functionality using JSON as the data format]]></DESCRIPTION>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <HELP><![CDATA[This module implements the datasource concept. Datasources play a central role in Smartclient applications. The datasource module automatically creates a datasource for each Openbravo entity. In addition custom data source implementations can be defined.]]></HELP>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <URL><![CDATA[http://forge.openbravo.com/projects/datasourceservice]]></URL>
@@ -22,7 +22,7 @@
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <UPDATEINFO><![CDATA[Bug fixing & new development for 3.0]]></UPDATEINFO>
-<!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4--></AD_MODULE>
 
--- a/modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <AD_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_MODULE_ID>
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <AD_DEPENDENT_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_DEPENDENT_MODULE_ID>
-<!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <STARTVERSION><![CDATA[1.1.13451]]></STARTVERSION>
+<!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <STARTVERSION><![CDATA[1.1.13698]]></STARTVERSION>
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <DEPENDANT_MODULE_NAME><![CDATA[JBoss Weld]]></DEPENDANT_MODULE_NAME>
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <AD_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_MODULE_ID>
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <AD_DEPENDENT_MODULE_ID><![CDATA[F8D1B3ECB3474E8DA5C216473C840DF1]]></AD_DEPENDENT_MODULE_ID>
-<!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <STARTVERSION><![CDATA[2.0.13451]]></STARTVERSION>
+<!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <STARTVERSION><![CDATA[2.0.13698]]></STARTVERSION>
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <DEPENDANT_MODULE_NAME><![CDATA[JSON REST Webservice]]></DEPENDANT_MODULE_NAME>
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <AD_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_MODULE_ID>
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--4FCE95802A854F7E8623AFF7C33D13EE-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--4FCE95802A854F7E8623AFF7C33D13EE-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -49,7 +49,7 @@
 <!--54AF8B39C55E4E7496902893ECD82786-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--54AF8B39C55E4E7496902893ECD82786-->  <AD_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_MODULE_ID>
 <!--54AF8B39C55E4E7496902893ECD82786-->  <AD_DEPENDENT_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_DEPENDENT_MODULE_ID>
-<!--54AF8B39C55E4E7496902893ECD82786-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--54AF8B39C55E4E7496902893ECD82786-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--54AF8B39C55E4E7496902893ECD82786-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--54AF8B39C55E4E7496902893ECD82786-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Client Kernel]]></DEPENDANT_MODULE_NAME>
 <!--54AF8B39C55E4E7496902893ECD82786-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -63,7 +63,7 @@
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <AD_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_MODULE_ID>
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <AD_DEPENDENT_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_DEPENDENT_MODULE_ID>
-<!--D03C56D8A4E14F45A5466350E05C631F-->  <STARTVERSION><![CDATA[8.1.13451]]></STARTVERSION>
+<!--D03C56D8A4E14F45A5466350E05C631F-->  <STARTVERSION><![CDATA[8.1.13698]]></STARTVERSION>
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <DEPENDANT_MODULE_NAME><![CDATA[Smartclient]]></DEPENDANT_MODULE_NAME>
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.service.datasource/src/org/openbravo/service/datasource/DataSourceServlet.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.service.datasource/src/org/openbravo/service/datasource/DataSourceServlet.java	Wed Oct 05 12:55:03 2011 +0200
@@ -217,6 +217,8 @@
           if (getDataSource(request) instanceof DefaultDataSourceService) {
             QueryJSONWriterToCSV writer = new QueryJSONWriterToCSV(request, response, parameters,
                 getDataSource(request).getEntity());
+            // when exporting a OB grid, the isActive filter should not be set
+            parameters.put(JsonConstants.NO_ACTIVE_FILTER, "true");
             ((DefaultDataSourceService) getDataSource(request)).fetch(parameters, writer);
           } else {
             String result = getDataSource(request).fetch(parameters);
--- a/modules/org.openbravo.service.datasource/src/org/openbravo/service/datasource/ModelDataSourceService.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.service.datasource/src/org/openbravo/service/datasource/ModelDataSourceService.java	Wed Oct 05 12:55:03 2011 +0200
@@ -43,6 +43,7 @@
  */
 public class ModelDataSourceService extends BaseDataSourceService {
 
+  private static final String PROPERTY_FIELD = "inpproperty";
   private static final String DATASOURCE_FIELD = "modelProperty";
   private static final String FORM_FIELD = "inpadTableId";
 
@@ -65,7 +66,7 @@
   public String fetch(Map<String, String> parameters) {
 
     final Entity baseEntity = getBaseEntity(parameters);
-    String propertyPath = parameters.get(DATASOURCE_FIELD);
+    String propertyPath = parameters.get(PROPERTY_FIELD);
     if (propertyPath == null) {
       HashMap<String, String> criteria = getCriteria(parameters);
       if (criteria != null && criteria.containsKey(DATASOURCE_FIELD)) {
--- a/modules/org.openbravo.service.datasource/src/org/openbravo/service/datasource/templates/datasource.ftl	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.service.datasource/src/org/openbravo/service/datasource/templates/datasource.ftl	Wed Oct 05 12:55:03 2011 +0200
@@ -38,6 +38,7 @@
         createClassName: '${data.dataSourceClassName?js_string}',
 <#if data.getParameter("_onlyGenerateCreateStatement") == "" || data.getParameter("_create") != "">
         ID:'${data.id}',
+        potentiallyShared: true,
 </#if>
 <#if data.getParameter("_new") != "">
         _new: true,
--- a/modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MESSAGE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MESSAGE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -40,7 +40,7 @@
 <!--FF808081318528680131852B80EF000A-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--FF808081318528680131852B80EF000A-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF808081318528680131852B80EF000A-->  <VALUE><![CDATA[OBSEIG_Activate]]></VALUE>
-<!--FF808081318528680131852B80EF000A-->  <MSGTEXT><![CDATA[<a href="http://wiki.openbravo.com/wiki/Configuration_Manual/Google_Integration" target="_blank">log in to application using Google Account</a>]]></MSGTEXT>
+<!--FF808081318528680131852B80EF000A-->  <MSGTEXT><![CDATA[<a href="http://wiki.openbravo.com/wiki/Configuration_Manual/Google_Integration" target="_blank">Log in to application using Google Account</a> is a Premium Feature]]></MSGTEXT>
 <!--FF808081318528680131852B80EF000A-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
 <!--FF808081318528680131852B80EF000A-->  <AD_MODULE_ID><![CDATA[FF8080813129ADA401312CA1222A0005]]></AD_MODULE_ID>
 <!--FF808081318528680131852B80EF000A--></AD_MESSAGE>
--- a/modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--FF8080813129ADA401312CA1222A0005-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--FF8080813129ADA401312CA1222A0005-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080813129ADA401312CA1222A0005-->  <NAME><![CDATA[Integration with Google APIs]]></NAME>
-<!--FF8080813129ADA401312CA1222A0005-->  <VERSION><![CDATA[0.1.13451]]></VERSION>
+<!--FF8080813129ADA401312CA1222A0005-->  <VERSION><![CDATA[0.1.13698]]></VERSION>
 <!--FF8080813129ADA401312CA1222A0005-->  <DESCRIPTION><![CDATA[Integration with Google APIs]]></DESCRIPTION>
 <!--FF8080813129ADA401312CA1222A0005-->  <TYPE><![CDATA[M]]></TYPE>
 <!--FF8080813129ADA401312CA1222A0005-->  <LICENSE><![CDATA[Licensed under the Openbravo Public License Version 1.1.
@@ -18,7 +18,7 @@
 <!--FF8080813129ADA401312CA1222A0005-->  <HASCHARTOFACCOUNTS><![CDATA[N]]></HASCHARTOFACCOUNTS>
 <!--FF8080813129ADA401312CA1222A0005-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--FF8080813129ADA401312CA1222A0005-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
-<!--FF8080813129ADA401312CA1222A0005-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--FF8080813129ADA401312CA1222A0005-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--FF8080813129ADA401312CA1222A0005-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--FF8080813129ADA401312CA1222A0005--></AD_MODULE>
 
--- a/modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--FF8080813141B198013141BA0F7D0012-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080813141B198013141BA0F7D0012-->  <AD_MODULE_ID><![CDATA[FF8080813129ADA401312CA1222A0005]]></AD_MODULE_ID>
 <!--FF8080813141B198013141BA0F7D0012-->  <AD_DEPENDENT_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_DEPENDENT_MODULE_ID>
-<!--FF8080813141B198013141BA0F7D0012-->  <STARTVERSION><![CDATA[0.1.13451]]></STARTVERSION>
+<!--FF8080813141B198013141BA0F7D0012-->  <STARTVERSION><![CDATA[0.1.13698]]></STARTVERSION>
 <!--FF8080813141B198013141BA0F7D0012-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--FF8080813141B198013141BA0F7D0012-->  <DEPENDANT_MODULE_NAME><![CDATA[OpenID Service Integration]]></DEPENDANT_MODULE_NAME>
 <!--FF8080813141B198013141BA0F7D0012-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--FF8080813151AEE1013151C4ACE6001B-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080813151AEE1013151C4ACE6001B-->  <AD_MODULE_ID><![CDATA[FF8080813129ADA401312CA1222A0005]]></AD_MODULE_ID>
 <!--FF8080813151AEE1013151C4ACE6001B-->  <AD_DEPENDENT_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_DEPENDENT_MODULE_ID>
-<!--FF8080813151AEE1013151C4ACE6001B-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--FF8080813151AEE1013151C4ACE6001B-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--FF8080813151AEE1013151C4ACE6001B-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--FF8080813151AEE1013151C4ACE6001B-->  <DEPENDANT_MODULE_NAME><![CDATA[Openbravo 3.0 Framework]]></DEPENDANT_MODULE_NAME>
 <!--FF8080813151AEE1013151C4ACE6001B-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_REF_LIST.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<data>
+<!--FF808081321441D9013214697218000D--><AD_REF_LIST>
+<!--FF808081321441D9013214697218000D-->  <AD_REF_LIST_ID><![CDATA[FF808081321441D9013214697218000D]]></AD_REF_LIST_ID>
+<!--FF808081321441D9013214697218000D-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FF808081321441D9013214697218000D-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FF808081321441D9013214697218000D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FF808081321441D9013214697218000D-->  <VALUE><![CDATA[OBSEIG_ShowGIcon]]></VALUE>
+<!--FF808081321441D9013214697218000D-->  <NAME><![CDATA[Enable Google Button in Login Page]]></NAME>
+<!--FF808081321441D9013214697218000D-->  <DESCRIPTION><![CDATA[Shows/hides the G button in the Login page]]></DESCRIPTION>
+<!--FF808081321441D9013214697218000D-->  <AD_REFERENCE_ID><![CDATA[A26BA480E2014707B47257024C3CBFF7]]></AD_REFERENCE_ID>
+<!--FF808081321441D9013214697218000D-->  <AD_MODULE_ID><![CDATA[FF8080813129ADA401312CA1222A0005]]></AD_MODULE_ID>
+<!--FF808081321441D9013214697218000D--></AD_REF_LIST>
+
+</data>
Binary file modules/org.openbravo.service.integration.openid/lib/runtime/httpmime-4.1.jar has changed
--- a/modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--FF8080813141B198013141B86DD70003-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--FF8080813141B198013141B86DD70003-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080813141B198013141B86DD70003-->  <NAME><![CDATA[OpenID Service Integration]]></NAME>
-<!--FF8080813141B198013141B86DD70003-->  <VERSION><![CDATA[0.1.13451]]></VERSION>
+<!--FF8080813141B198013141B86DD70003-->  <VERSION><![CDATA[0.1.13698]]></VERSION>
 <!--FF8080813141B198013141B86DD70003-->  <DESCRIPTION><![CDATA[OpenID Service Integration]]></DESCRIPTION>
 <!--FF8080813141B198013141B86DD70003-->  <TYPE><![CDATA[M]]></TYPE>
 <!--FF8080813141B198013141B86DD70003-->  <LICENSE><![CDATA[Licensed under the Openbravo Public License Version 1.1.
@@ -19,7 +19,7 @@
 <!--FF8080813141B198013141B86DD70003-->  <HASCHARTOFACCOUNTS><![CDATA[N]]></HASCHARTOFACCOUNTS>
 <!--FF8080813141B198013141B86DD70003-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--FF8080813141B198013141B86DD70003-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
-<!--FF8080813141B198013141B86DD70003-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--FF8080813141B198013141B86DD70003-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--FF8080813141B198013141B86DD70003-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--FF8080813141B198013141B86DD70003--></AD_MODULE>
 
--- a/modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--FF8080813141B198013141B8B21B0006-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080813141B198013141B8B21B0006-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
 <!--FF8080813141B198013141B8B21B0006-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--FF8080813141B198013141B8B21B0006-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--FF8080813141B198013141B8B21B0006-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--FF8080813141B198013141B8B21B0006-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--FF8080813141B198013141B8B21B0006-->  <DEPENDANT_MODULE_NAME><![CDATA[Core]]></DEPENDANT_MODULE_NAME>
 <!--FF8080813141B198013141B8B21B0006-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <NAME><![CDATA[JSON REST Webservice]]></NAME>
-<!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <VERSION><![CDATA[2.0.13451]]></VERSION>
+<!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <VERSION><![CDATA[2.0.13698]]></VERSION>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <DESCRIPTION><![CDATA[Provides a JSON REST webservice for CRUD service requests]]></DESCRIPTION>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <HELP><![CDATA[Provides a JSON REST webservice for CRUD service requests. Both the servlet implementation (receiving HTTP REST requests in JSON) as the backend processing are provided.]]></HELP>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <URL><![CDATA[http://forge.openbravo.com/projects/openbravojsonrest]]></URL>
@@ -22,7 +22,7 @@
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <UPDATEINFO><![CDATA[Bug fixing & new development for 3.0]]></UPDATEINFO>
-<!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1--></AD_MODULE>
 
--- a/modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--9E3E7B42DB16405FB794496D309D7044-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--9E3E7B42DB16405FB794496D309D7044-->  <AD_MODULE_ID><![CDATA[F8D1B3ECB3474E8DA5C216473C840DF1]]></AD_MODULE_ID>
 <!--9E3E7B42DB16405FB794496D309D7044-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--9E3E7B42DB16405FB794496D309D7044-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--9E3E7B42DB16405FB794496D309D7044-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--9E3E7B42DB16405FB794496D309D7044-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--9E3E7B42DB16405FB794496D309D7044-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--9E3E7B42DB16405FB794496D309D7044-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <NAME><![CDATA[User Interface Selector]]></NAME>
-<!--5EB4F15C80684ACA904756BDC12ADBE5-->  <VERSION><![CDATA[2.1.13451]]></VERSION>
+<!--5EB4F15C80684ACA904756BDC12ADBE5-->  <VERSION><![CDATA[2.1.13698]]></VERSION>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <DESCRIPTION><![CDATA[Provides a selector with a suggestion box and popup grid window]]></DESCRIPTION>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <HELP><![CDATA[The Openbravo selector provides new selector functionality which is used inside of existing Openbravo forms. The selector is mainly used for supporting foreign key references in the user interface. The selector combines both suggestion box behavior with a popup grid.]]></HELP>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <URL><![CDATA[http://forge.openbravo.com/projects/selector]]></URL>
@@ -22,7 +22,7 @@
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <UPDATEINFO><![CDATA[Bug fixing & new development for 3.0]]></UPDATEINFO>
-<!--5EB4F15C80684ACA904756BDC12ADBE5-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--5EB4F15C80684ACA904756BDC12ADBE5-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--5EB4F15C80684ACA904756BDC12ADBE5--></AD_MODULE>
 
--- a/modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <AD_DEPENDENT_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_DEPENDENT_MODULE_ID>
-<!--38825CAED43941D38CA0C78DB04FCFA0-->  <STARTVERSION><![CDATA[8.1.13451]]></STARTVERSION>
+<!--38825CAED43941D38CA0C78DB04FCFA0-->  <STARTVERSION><![CDATA[8.1.13698]]></STARTVERSION>
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <DEPENDANT_MODULE_NAME><![CDATA[Smartclient]]></DEPENDANT_MODULE_NAME>
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <AD_DEPENDENT_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_DEPENDENT_MODULE_ID>
-<!--6DDE7B1A70174242AF82B5022FB89279-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--6DDE7B1A70174242AF82B5022FB89279-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Application]]></DEPENDANT_MODULE_NAME>
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <AD_DEPENDENT_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_DEPENDENT_MODULE_ID>
-<!--94F9CD2CB5EF4467A67475C786C984A7-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--94F9CD2CB5EF4467A67475C786C984A7-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Client Kernel]]></DEPENDANT_MODULE_NAME>
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -49,7 +49,7 @@
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <AD_DEPENDENT_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_DEPENDENT_MODULE_ID>
-<!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <STARTVERSION><![CDATA[1.1.13451]]></STARTVERSION>
+<!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <STARTVERSION><![CDATA[1.1.13698]]></STARTVERSION>
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <DEPENDANT_MODULE_NAME><![CDATA[JBoss Weld]]></DEPENDANT_MODULE_NAME>
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -63,7 +63,7 @@
 <!--C8DAC574B88649D08C9468521B343F12-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--C8DAC574B88649D08C9468521B343F12-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--C8DAC574B88649D08C9468521B343F12-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--C8DAC574B88649D08C9468521B343F12-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--C8DAC574B88649D08C9468521B343F12-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--C8DAC574B88649D08C9468521B343F12-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--C8DAC574B88649D08C9468521B343F12-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--C8DAC574B88649D08C9468521B343F12-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -77,7 +77,7 @@
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <AD_DEPENDENT_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_DEPENDENT_MODULE_ID>
-<!--F14EB17946BE4724A46F80CB1A47EC70-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--F14EB17946BE4724A46F80CB1A47EC70-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <DEPENDANT_MODULE_NAME><![CDATA[JSON Datasource]]></DEPENDANT_MODULE_NAME>
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorComponent.java	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorComponent.java	Wed Oct 05 12:55:03 2011 +0200
@@ -42,6 +42,7 @@
 import org.openbravo.client.kernel.BaseTemplateComponent;
 import org.openbravo.client.kernel.Component;
 import org.openbravo.client.kernel.ComponentProvider;
+import org.openbravo.client.kernel.KernelUtils;
 import org.openbravo.client.kernel.Template;
 import org.openbravo.client.kernel.reference.FKComboUIDefinition;
 import org.openbravo.client.kernel.reference.UIDefinition;
@@ -505,7 +506,14 @@
               if (associatedField.getTab().getId().equals(tabId)) {
                 final OutSelectorField outField = new OutSelectorField();
                 outField.setOutFieldName(getPropertyOrDataSourceField(selectorField));
-                outField.setTabFieldName(associatedField.getColumn().getName());
+                if (getParameter("isSelectorItem") != null) {
+                  final Property property = KernelUtils.getInstance().getPropertyFromColumn(
+                      associatedField.getColumn(), false);
+                  outField.setTabFieldName(property.getName());
+                } else {
+                  // classic mode
+                  outField.setTabFieldName(associatedField.getColumn().getName());
+                }
                 outField.setOutSuffix((selectorField.getSuffix() == null ? "" : selectorField
                     .getSuffix()));
                 outFields.add(outField);
--- a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/templates/selector-as-link.ftl	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/templates/selector-as-link.ftl	Wed Oct 05 12:55:03 2011 +0200
@@ -48,7 +48,13 @@
     </#list>
     },
     extraSearchFields: [${data.extraSearchFields}],
-    dataSource: ${data.dataSourceJavascript},
+    // create the datasource in the init method, this
+    // prevents too early creation, it is created when the
+    // fields on the form are actually created
+    init: function() {    
+        this.dataSource = ${data.dataSourceJavascript};
+        this.Super('init', arguments);
+    },
     whereClause : '${data.whereClause?js_string}'
 <#else>
 /* jslint */
--- a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/templates/selector.ftl	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/templates/selector.ftl	Wed Oct 05 12:55:03 2011 +0200
@@ -49,7 +49,13 @@
     </#list>
     },
     extraSearchFields: [${data.extraSearchFields}],
-    optionDataSource: ${data.dataSourceJavascript},
+    // create the datasource in the init method, this
+    // prevents too early creation, it is created when the
+    // fields on the form are actually created
+    init: function() {
+        this.optionDataSource = ${data.dataSourceJavascript};
+        this.Super('init', arguments);
+    },
     whereClause : '${data.whereClause?js_string}',
     outHiddenInputPrefix: '${data.outHiddenInputPrefix}'
 <#else>
--- a/modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js	Wed Oct 05 12:55:03 2011 +0200
@@ -33,7 +33,7 @@
     canGroupBy: false
   },
   
-  initWidget: function(){
+  initWidget: function () {
     var selectorWindow = this;
     this.setFilterEditorProperties(this.selectorGridFields);
     
@@ -250,14 +250,14 @@
       defaultFilter = {}; // Reset filter
       isc.addProperties(defaultFilter, data);
     }
-    
+
     // adds the selector id to filter used to get filter information
     defaultFilter._selectorDefinitionId = this.selector.selectorDefinitionId;
     this.defaultFilter = defaultFilter;
     this.selectorGrid.targetRecordId = this.selector.getValue();
     this.show(true);
   },
-  
+
   setValueInField: function(){
     this.selector.setValueFromRecord(this.selectorGrid.getSelectedRecord(), true);
     this.hide();
@@ -288,7 +288,11 @@
     title: OB.I18N.getLabel('OBUISC_Identifier'),
     name: OB.Constants.IDENTIFIER
   }],
-  
+
+  // Do not fetch data upon creation
+  // http://www.smartclient.com/docs/8.1/a/b/c/go.html#attr..ComboBoxItem.optionDataSource
+  fetchMissingValues: false,
+
   autoFetchData: false,
   showPickerIcon: true,
   validateOnChange: true,
@@ -379,7 +383,7 @@
       this.icons = null;
     }
     
-    if (this.showSelectorGrid) {
+    if (this.showSelectorGrid && !this.form.isPreviewForm) {
       this.selectorWindow = isc.OBSelectorPopupWindow.create({
         // solves issue: https://issues.openbravo.com/view.php?id=17268
         title: (this.form && this.form.grid ? this.form.grid.getField(this.name).title : this.title),
@@ -438,7 +442,8 @@
   },
 
   handleOutFields: function(record){
-    var i, j, outFields = this.outFields, form = this.form, item, value;
+    var i, j, outFields = this.outFields, form = this.form, grid = this.grid, item, value,
+        fields = form.fields || grid.fields;
     for (i in outFields) {
       if (outFields.hasOwnProperty(i)) {
         if (outFields[i].suffix) {
@@ -463,19 +468,17 @@
           }
         } else {
           // it does not have a suffix
-          for (j in form.fields) {
-            if (form.fields.hasOwnProperty(j)) {
-              if (form.fields[j].columnName !== "" && form.fields[j].columnName === outFields[i].fieldName) {
-                if (record) {
-                  value = record[i];
-                  if(typeof value === 'undefined') {
-                    continue;
-                  }
-                } else {
-                  value = null;
+          for (j = 0; j < fields.length; j++) {
+            if (fields[j].name !== '' && fields[j].name === outFields[i].fieldName) {
+              if (record) {
+                value = record[i];
+                if(typeof value === 'undefined') {
+                  continue;
                 }
-                form.fields[j].setValue(value);
+              } else {
+                value = null;
               }
+              fields[j].setValue(value);
             }
           }
         }
@@ -603,6 +606,15 @@
       return '';
     }
     return ret;
+  },
+
+  destroy: function () {
+    // Explicitly destroy the selector window to avoid memory leaks
+    if(this.selectorWindow) {
+      this.selectorWindow.destroy();
+      this.selectorWindow = null;
+    }
+    this.Super('destroy', arguments);
   }
 });
 
@@ -676,7 +688,8 @@
   },
   
   handleOutFields: function(record){
-    var i, j, value, outFields = this.outFields, form = this.form;
+    var i, j, outFields = this.outFields, form = this.form, grid = this.grid, item, value,
+        fields = form.fields || grid.fields;
     for (i in outFields) {
       if (outFields.hasOwnProperty(i)) {
         if (outFields[i].suffix) {
@@ -693,12 +706,10 @@
           }
         } else {
           // it does not have a suffix
-          for (j in form.fields) {
-            if (form.fields.hasOwnProperty(j)) {
-              if (form.fields[j].columnName !== "" && form.fields[j].columnName === outFields[i].fieldName) {
-                value = record ? record[i] : null;
-                form.fields[j].setValue(value);
-              }
+          for (j = 0; j < fields.length; j++) {
+            if (fields[j].name !== "" && fields[j].name === outFields[i].fieldName) {
+              value = record ? record[i] : null;
+              fields[j].setValue(value);
             }
           }
         }
@@ -751,15 +762,17 @@
       this.icons = null;
     }
     
-    this.selectorWindow = isc.OBSelectorPopupWindow.create({
-      // solves issue: https://issues.openbravo.com/view.php?id=17268
-      title: (this.form && this.form.grid ? this.form.grid.getField(this.name).title : this.title),
-      dataSource: this.dataSource,
-      selector: this,
-      valueField: this.gridValueField,
-      displayField: this.gridDisplayField,
-      selectorGridFields: isc.shallowClone(this.selectorGridFields)
-    });
+    if (!this.form.isPreviewForm) {
+      this.selectorWindow = isc.OBSelectorPopupWindow.create({
+        // solves issue: https://issues.openbravo.com/view.php?id=17268
+        title: (this.form && this.form.grid ? this.form.grid.getField(this.name).title : this.title),
+        dataSource: this.dataSource,
+        selector: this,
+        valueField: this.gridValueField,
+        displayField: this.gridDisplayField,
+        selectorGridFields: isc.shallowClone(this.selectorGridFields)
+      });
+    }
     
     return this.Super('init', arguments);
   },
@@ -772,5 +785,14 @@
       this.form.handleItemChange(this);
     }
     return ret;
+  },
+
+  destroy: function () {
+    // Explicitly destroy the selector window to avoid memory leaks
+    if(this.selectorWindow) {
+      this.selectorWindow.destroy();
+      this.selectorWindow = null;
+    }
+    this.Super('destroy', arguments);
   }
 });
--- a/modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-widget.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-widget.js	Wed Oct 05 12:55:03 2011 +0200
@@ -328,30 +328,29 @@
               changeField(this.outFields[i].fieldName, '');
             }
           }
-          return;
-        }
+        } else {
+          for (i in this.outFields) {
+            if (this.outFields.hasOwnProperty(i)) {
+              selectedObj[i] = selected[i];
+              if (!this.outFields[i]) {
+                // skip id and _identifier and other columns without
+                // associated tab field
+                continue;
+              }
 
-        for (i in this.outFields) {
-          if (this.outFields.hasOwnProperty(i)) {
-            selectedObj[i] = selected[i];
-            if (!this.outFields[i]) {
-              // skip id and _identifier and other columns without
-              // associated tab field
-              continue;
+              if (this.outFields[i].suffix) {
+                hiddenInput = this.outHiddenInputs[this.outHiddenInputPrefix + this.outFields[i].suffix];
+                if (hiddenInput) {
+                  hiddenInput.value = selected[i] ? selected[i] : '';
+                }
+              }
+
+              changeField(this.outFields[i].fieldName, selected[i]);
             }
-
-            if (this.outFields[i].suffix) {
-              hiddenInput = this.outHiddenInputs[this.outHiddenInputPrefix + this.outFields[i].suffix];
-              if (hiddenInput) {
-                hiddenInput.value = selected[i] ? selected[i] : '';
-              }
-            }
-
-            changeField(this.outFields[i].fieldName, selected[i]);
           }
         }
 
-        if (typeof setWindowEditing === 'function') {
+        if (document.getElementById('linkButtonEdition') && typeof setWindowEditing === 'function') {
           setWindowEditing(true);
         }
 
@@ -403,7 +402,7 @@
     // draw now already otherwise the filter does not work the
     // first time
     this.selectorWindow.show();
-    if (this.selectorGrid.filterEditor) {
+    if (this.selectorGrid.clearFilter) {
       this.selectorGrid.clearFilter();
     }
     this.selectorGrid.setFilterEditorCriteria(this.defaultFilter);
@@ -568,6 +567,10 @@
 
         var baseTestRegistryName = 'org.openbravo.userinterface.selector.' + this.openbravoField + '.';
 
+        // Do not destroy dataSource after creation
+        // https://issues.openbravo.com/view.php?id=18456
+        this.dataSource.potentiallyShared = true;
+
         if (this.numCols > 0 && 
             this.numCols <= isc.OBSelectorWidget.styling.widthDefinition.length) {
           this.width = isc.OBSelectorWidget.styling.widthDefinition[this.numCols - 1];
@@ -817,7 +820,9 @@
                 showFilterEditor : true,
                 sortField : this.displayField,
                 filterData : function(criteria, callback, requestProperties) {
-
+                  requestProperties = requestProperties || {};
+                  requestProperties.params = requestProperties.params | {};
+                  requestProperties.params._selectorDefinitionId = this.selectorDefinitionId;
                   if (!criteria) {
                     criteria = {};
                   }
@@ -854,6 +859,10 @@
 
                 criteria._selectorDefinitionId = this.selector.selectorDefinitionId;
                 criteria._requestType = 'Window';
+                
+                requestProperties = requestProperties || {};
+                requestProperties.params = requestProperties.params | {};
+                requestProperties.params._selectorDefinitionId = this.selectorDefinitionId;
 
                 // and call the super
                 return this.Super('fetchData', [ criteria, callback,
--- a/modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <NAME><![CDATA[2.50 to 3.00 Compatibility Skin]]></NAME>
-<!--96998CBC42744B3DBEE28AC8095C9335-->  <VERSION><![CDATA[2.0.13451]]></VERSION>
+<!--96998CBC42744B3DBEE28AC8095C9335-->  <VERSION><![CDATA[2.0.13698]]></VERSION>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <DESCRIPTION><![CDATA[Skin module to proper visualization of classic windows inside the MDI interface]]></DESCRIPTION>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <HELP><![CDATA[With this skin module the classic windows styles will display in a way more coherent with the new 3.00 styles]]></HELP>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <URL><![CDATA[www.openbravo.com]]></URL>
@@ -23,7 +23,7 @@
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <HASCHARTOFACCOUNTS><![CDATA[N]]></HASCHARTOFACCOUNTS>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
-<!--96998CBC42744B3DBEE28AC8095C9335-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--96998CBC42744B3DBEE28AC8095C9335-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--96998CBC42744B3DBEE28AC8095C9335--></AD_MODULE>
 
--- a/modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <AD_MODULE_ID><![CDATA[96998CBC42744B3DBEE28AC8095C9335]]></AD_MODULE_ID>
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--39BF75AD9AB3453698BF5DE29E727AA9-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--39BF75AD9AB3453698BF5DE29E727AA9-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.userinterface.skin.250to300Comp/web/org.openbravo.userinterface.skin.250to300Comp/skins/250to300Comp/Openbravo_ERP_250.css	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.userinterface.skin.250to300Comp/web/org.openbravo.userinterface.skin.250to300Comp/skins/250to300Comp/Openbravo_ERP_250.css	Wed Oct 05 12:55:03 2011 +0200
@@ -381,7 +381,6 @@
 }
 
 th.DataGrid_Header_LineNoCell {
-  text-align: left;
   border-top: 1px solid #000000;
   border-bottom: 1px solid #A7ABB4;
   border-right: 1px solid #A7ABB4;
@@ -853,7 +852,7 @@
   border: 0px none;
   vertical-align: top;
   text-align: left; /*~RTL   text-align: right; */
-  text-indent:3px; /*~RTL   text-indent:0px; */
+  text-indent:3px;
   border-collapse: collapse;
   padding-top: 5px;
   padding-right: 4px; /*~RTL   padding-left:4px; */
--- a/modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <NAME><![CDATA[Smartclient]]></NAME>
-<!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <VERSION><![CDATA[8.1.13451]]></VERSION>
+<!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <VERSION><![CDATA[8.1.13698]]></VERSION>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <DESCRIPTION><![CDATA[Smartclient libraries for use within Openbravo]]></DESCRIPTION>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <HELP><![CDATA[This module contains the Smartclient libraries for usage by other modules. It also contains some simple test pages to validate that Smartclient is working correctly. Also contains generic Openbravo Smartclient components]]></HELP>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <URL><![CDATA[http://forge.openbravo.com/projects/obsmartclient]]></URL>
@@ -23,7 +23,7 @@
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <UPDATEINFO><![CDATA[Bug fixing & new development for 3.0
 Update to new smartclient 8.0]]></UPDATEINFO>
-<!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9--></AD_MODULE>
 
--- a/modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--086331E18477496B8AC74D2CFEBD1307-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--086331E18477496B8AC74D2CFEBD1307-->  <AD_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_MODULE_ID>
 <!--086331E18477496B8AC74D2CFEBD1307-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--086331E18477496B8AC74D2CFEBD1307-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--086331E18477496B8AC74D2CFEBD1307-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--086331E18477496B8AC74D2CFEBD1307-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--086331E18477496B8AC74D2CFEBD1307-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--086331E18477496B8AC74D2CFEBD1307-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--DC5D4EF450244482BD2B458DAA496333-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--DC5D4EF450244482BD2B458DAA496333-->  <AD_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_MODULE_ID>
 <!--DC5D4EF450244482BD2B458DAA496333-->  <AD_DEPENDENT_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_DEPENDENT_MODULE_ID>
-<!--DC5D4EF450244482BD2B458DAA496333-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--DC5D4EF450244482BD2B458DAA496333-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--DC5D4EF450244482BD2B458DAA496333-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--DC5D4EF450244482BD2B458DAA496333-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Client Kernel]]></DEPENDANT_MODULE_NAME>
 <!--DC5D4EF450244482BD2B458DAA496333-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <AD_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_MODULE_ID>
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <AD_DEPENDENT_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_DEPENDENT_MODULE_ID>
-<!--F2AF15C0AF5540E393D96BE506E20648-->  <STARTVERSION><![CDATA[1.1.13451]]></STARTVERSION>
+<!--F2AF15C0AF5540E393D96BE506E20648-->  <STARTVERSION><![CDATA[1.1.13698]]></STARTVERSION>
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <DEPENDANT_MODULE_NAME><![CDATA[JBoss Weld]]></DEPENDANT_MODULE_NAME>
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/js/ob-smartclient.js	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/js/ob-smartclient.js	Wed Oct 05 12:55:03 2011 +0200
@@ -50,6 +50,20 @@
 
 isc.StaticTextItem.getPrototype().getCanFocus = function() {return false;};
 
+isc.Layout.addProperties({
+  
+  destroyAndRemoveMembers: function(toDestroy) {
+    var i;
+    if (!isc.isA.Array(toDestroy)) {
+      toDestroy = [toDestroy];
+    }
+    for (i = 0; i < toDestroy.length; i++) {
+      toDestroy[i].destroy();
+    }
+    this.removeMembers(toDestroy);
+  }
+});
+
 isc.TextItem.addProperties({
   // see comments in super type for useDisabledEventMask
   // http://forums.smartclient.com/showthread.php?p=70160#post70160
@@ -79,6 +93,20 @@
     this._original_init();
   },
   
+  // make sure that the datasources are also destroyed
+  _original_destroy: isc.FormItem.getPrototype().destroy,
+  destroy: function() {
+    if (this.optionDataSource && !this.optionDataSource.potentiallyShared) {
+      this.optionDataSource.destroy();
+      this.optionDataSource = null;
+    }
+    if (this.dataSource && !this.dataSource.potentiallyShared) {
+      this.dataSource.destroy();
+      this.dataSource = null;
+    }
+    this._original_destroy();
+  },
+  
   // overridden to not show if hiddenInForm is set
   _show: isc.FormItem.getPrototype().show,
   show: function (arg1) {
@@ -340,4 +368,32 @@
 //isc.Class._fireOnPause = isc.Class.fireOnPause;
 //isc.Class.fireOnPause = function(id, callback, delay, target, instanceID) {
 //  isc.Class._fireOnPause(id, callback, delay, target, instanceID);
-//};
\ No newline at end of file
+//};
+
+
+// Allow searchs (with full dataset in memory/the datasource) not distinguish
+// between accent or non-accent words
+isc.DataSource.addProperties({
+  _fieldMatchesFilter: isc.DataSource.getPrototype().fieldMatchesFilter,
+  fieldMatchesFilter: function(fieldValue, filterValue, requestProperties) {
+    if (fieldValue && typeof fieldValue === "string") {
+      fieldValue = fieldValue.replace(/á|à|ä|â/g, 'a').replace(/Á|À|Ä|Â/g, 'A');
+      fieldValue = fieldValue.replace(/é|è|ë|ê/g, 'e').replace(/É|È|Ë|Ê/g, 'E');
+      fieldValue = fieldValue.replace(/í|ì|ï|î/g, 'i').replace(/Í|Ì|Ï|Î/g, 'I');
+      fieldValue = fieldValue.replace(/ó|ò|ö|ô/g, 'o').replace(/Ó|Ò|Ö|Ô/g, 'O');
+      fieldValue = fieldValue.replace(/ú|ù|ü|û/g, 'u').replace(/Ú|Ù|Ü|Û/g, 'U');
+      fieldValue = fieldValue.replace(/ç/g, 'c').replace(/Ç/g, 'C');
+      fieldValue = fieldValue.replace(/ñ/g, 'n').replace(/Ñ/g, 'N');
+    }
+    if (filterValue && typeof filterValue === "string") {
+      filterValue = filterValue.replace(/á|à|ä|â/g, 'a').replace(/Á|À|Ä|Â/g, 'A');
+      filterValue = filterValue.replace(/é|è|ë|ê/g, 'e').replace(/É|È|Ë|Ê/g, 'E');
+      filterValue = filterValue.replace(/í|ì|ï|î/g, 'i').replace(/Í|Ì|Ï|Î/g, 'I');
+      filterValue = filterValue.replace(/ó|ò|ö|ô/g, 'o').replace(/Ó|Ò|Ö|Ô/g, 'O');
+      filterValue = filterValue.replace(/ú|ù|ü|û/g, 'u').replace(/Ú|Ù|Ü|Û/g, 'U');
+      filterValue = filterValue.replace(/ç/g, 'c').replace(/Ç/g, 'C');
+      filterValue = filterValue.replace(/ñ/g, 'n').replace(/Ñ/g, 'N');
+    }
+    return this._fieldMatchesFilter(fieldValue, filterValue, requestProperties);
+  }
+});
\ No newline at end of file
--- a/modules/org.openbravo.v3.datasets/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.v3.datasets/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <NAME><![CDATA[Standard Roles]]></NAME>
-<!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <VERSION><![CDATA[3.0.13451]]></VERSION>
+<!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <VERSION><![CDATA[3.0.13698]]></VERSION>
 <!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <DESCRIPTION><![CDATA[Pre-configured collection of standard ERP roles]]></DESCRIPTION>
 <!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <HELP><![CDATA[This dataset contains the following roles with their access to corresponding Openbravo entities - windows, reports, actions.
 * Employee - Any person of the enterprise
@@ -27,7 +27,7 @@
 <!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <HASCHARTOFACCOUNTS><![CDATA[N]]></HASCHARTOFACCOUNTS>
 <!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <HASREFERENCEDATA><![CDATA[Y]]></HASREFERENCEDATA>
-<!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--883B5872CA0548F9AF2BBBE7D2DDFA61--></AD_MODULE>
 
--- a/modules/org.openbravo.v3.datasets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.v3.datasets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--148A000EE9A04A3CA653B1296A00B8E6-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--148A000EE9A04A3CA653B1296A00B8E6-->  <AD_MODULE_ID><![CDATA[883B5872CA0548F9AF2BBBE7D2DDFA61]]></AD_MODULE_ID>
 <!--148A000EE9A04A3CA653B1296A00B8E6-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--148A000EE9A04A3CA653B1296A00B8E6-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--148A000EE9A04A3CA653B1296A00B8E6-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--148A000EE9A04A3CA653B1296A00B8E6-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--148A000EE9A04A3CA653B1296A00B8E6-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--148A000EE9A04A3CA653B1296A00B8E6-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--30F966407A6F4E15965821BAEE34D25B-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--30F966407A6F4E15965821BAEE34D25B-->  <AD_MODULE_ID><![CDATA[883B5872CA0548F9AF2BBBE7D2DDFA61]]></AD_MODULE_ID>
 <!--30F966407A6F4E15965821BAEE34D25B-->  <AD_DEPENDENT_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_DEPENDENT_MODULE_ID>
-<!--30F966407A6F4E15965821BAEE34D25B-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--30F966407A6F4E15965821BAEE34D25B-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--30F966407A6F4E15965821BAEE34D25B-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--30F966407A6F4E15965821BAEE34D25B-->  <DEPENDANT_MODULE_NAME><![CDATA[Advanced Payables and Receivables Mngmt]]></DEPENDANT_MODULE_NAME>
 <!--30F966407A6F4E15965821BAEE34D25B-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--F93CE30003B24F8F8886510B0065EECC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--F93CE30003B24F8F8886510B0065EECC-->  <AD_MODULE_ID><![CDATA[883B5872CA0548F9AF2BBBE7D2DDFA61]]></AD_MODULE_ID>
 <!--F93CE30003B24F8F8886510B0065EECC-->  <AD_DEPENDENT_MODULE_ID><![CDATA[3A3A943684D64DEF9EC39F588A656848]]></AD_DEPENDENT_MODULE_ID>
-<!--F93CE30003B24F8F8886510B0065EECC-->  <STARTVERSION><![CDATA[1.1.13451]]></STARTVERSION>
+<!--F93CE30003B24F8F8886510B0065EECC-->  <STARTVERSION><![CDATA[1.1.13698]]></STARTVERSION>
 <!--F93CE30003B24F8F8886510B0065EECC-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--F93CE30003B24F8F8886510B0065EECC-->  <DEPENDANT_MODULE_NAME><![CDATA[Orders Awaiting Delivery]]></DEPENDANT_MODULE_NAME>
 <!--F93CE30003B24F8F8886510B0065EECC-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.v3.framework/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.v3.framework/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--7E48CDD73B7E493A8BED4F7253E7C989-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--7E48CDD73B7E493A8BED4F7253E7C989-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--7E48CDD73B7E493A8BED4F7253E7C989-->  <NAME><![CDATA[Openbravo 3.0 Framework]]></NAME>
-<!--7E48CDD73B7E493A8BED4F7253E7C989-->  <VERSION><![CDATA[2.1.13451]]></VERSION>
+<!--7E48CDD73B7E493A8BED4F7253E7C989-->  <VERSION><![CDATA[2.1.13698]]></VERSION>
 <!--7E48CDD73B7E493A8BED4F7253E7C989-->  <DESCRIPTION><![CDATA[Openbravo 3.0 Framework]]></DESCRIPTION>
 <!--7E48CDD73B7E493A8BED4F7253E7C989-->  <HELP><![CDATA[Contains all the components required to run the Openbravo 3.0 framework]]></HELP>
 <!--7E48CDD73B7E493A8BED4F7253E7C989-->  <URL><![CDATA[http://forge.openbravo.com/projects/openbravov30framework]]></URL>
@@ -24,7 +24,7 @@
 <!--7E48CDD73B7E493A8BED4F7253E7C989-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--7E48CDD73B7E493A8BED4F7253E7C989-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
 <!--7E48CDD73B7E493A8BED4F7253E7C989-->  <UPDATEINFO><![CDATA[minor bugfix release to include latest client.application 2.0.1, client.myob 2.0.2 and client.kernel 2.0.1]]></UPDATEINFO>
-<!--7E48CDD73B7E493A8BED4F7253E7C989-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--7E48CDD73B7E493A8BED4F7253E7C989-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--7E48CDD73B7E493A8BED4F7253E7C989-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--7E48CDD73B7E493A8BED4F7253E7C989--></AD_MODULE>
 
--- a/modules/org.openbravo.v3.framework/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.v3.framework/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--01E1BCCEC9114DE0960538DF34E30E6F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--01E1BCCEC9114DE0960538DF34E30E6F-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--01E1BCCEC9114DE0960538DF34E30E6F-->  <AD_DEPENDENT_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_DEPENDENT_MODULE_ID>
-<!--01E1BCCEC9114DE0960538DF34E30E6F-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--01E1BCCEC9114DE0960538DF34E30E6F-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--01E1BCCEC9114DE0960538DF34E30E6F-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--01E1BCCEC9114DE0960538DF34E30E6F-->  <DEPENDANT_MODULE_NAME><![CDATA[My Openbravo Tab]]></DEPENDANT_MODULE_NAME>
 <!--01E1BCCEC9114DE0960538DF34E30E6F-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--025B181F63CA47B48A920F6983242390-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--025B181F63CA47B48A920F6983242390-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--025B181F63CA47B48A920F6983242390-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--025B181F63CA47B48A920F6983242390-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--025B181F63CA47B48A920F6983242390-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--025B181F63CA47B48A920F6983242390-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--025B181F63CA47B48A920F6983242390-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--025B181F63CA47B48A920F6983242390-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--054B4FEAF919478AA3FF27098A46D1D6-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--054B4FEAF919478AA3FF27098A46D1D6-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--054B4FEAF919478AA3FF27098A46D1D6-->  <AD_DEPENDENT_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_DEPENDENT_MODULE_ID>
-<!--054B4FEAF919478AA3FF27098A46D1D6-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--054B4FEAF919478AA3FF27098A46D1D6-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--054B4FEAF919478AA3FF27098A46D1D6-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--054B4FEAF919478AA3FF27098A46D1D6-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Application]]></DEPENDANT_MODULE_NAME>
 <!--054B4FEAF919478AA3FF27098A46D1D6-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -49,7 +49,7 @@
 <!--1FA6BAA6DC3A4434A6E62A0D1319A9D7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--1FA6BAA6DC3A4434A6E62A0D1319A9D7-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--1FA6BAA6DC3A4434A6E62A0D1319A9D7-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0A060B2AF1974E8EAA8DB61388E9AECC]]></AD_DEPENDENT_MODULE_ID>
-<!--1FA6BAA6DC3A4434A6E62A0D1319A9D7-->  <STARTVERSION><![CDATA[1.0.13451]]></STARTVERSION>
+<!--1FA6BAA6DC3A4434A6E62A0D1319A9D7-->  <STARTVERSION><![CDATA[1.0.13698]]></STARTVERSION>
 <!--1FA6BAA6DC3A4434A6E62A0D1319A9D7-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--1FA6BAA6DC3A4434A6E62A0D1319A9D7-->  <DEPENDANT_MODULE_NAME><![CDATA[Query/List Widget]]></DEPENDANT_MODULE_NAME>
 <!--1FA6BAA6DC3A4434A6E62A0D1319A9D7-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -63,7 +63,7 @@
 <!--224754C3EF674C93B0D468F47BAAB824-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--224754C3EF674C93B0D468F47BAAB824-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--224754C3EF674C93B0D468F47BAAB824-->  <AD_DEPENDENT_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_DEPENDENT_MODULE_ID>
-<!--224754C3EF674C93B0D468F47BAAB824-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--224754C3EF674C93B0D468F47BAAB824-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--224754C3EF674C93B0D468F47BAAB824-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--224754C3EF674C93B0D468F47BAAB824-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Selector]]></DEPENDANT_MODULE_NAME>
 <!--224754C3EF674C93B0D468F47BAAB824-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -77,7 +77,7 @@
 <!--5B72D24032DD4879A950194139D961B6-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--5B72D24032DD4879A950194139D961B6-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--5B72D24032DD4879A950194139D961B6-->  <AD_DEPENDENT_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_DEPENDENT_MODULE_ID>
-<!--5B72D24032DD4879A950194139D961B6-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--5B72D24032DD4879A950194139D961B6-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--5B72D24032DD4879A950194139D961B6-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--5B72D24032DD4879A950194139D961B6-->  <DEPENDANT_MODULE_NAME><![CDATA[JSON Datasource]]></DEPENDANT_MODULE_NAME>
 <!--5B72D24032DD4879A950194139D961B6-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -91,7 +91,7 @@
 <!--8730CA6A4224439D82E0DD31B3806E36-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--8730CA6A4224439D82E0DD31B3806E36-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--8730CA6A4224439D82E0DD31B3806E36-->  <AD_DEPENDENT_MODULE_ID><![CDATA[D393BE6F22BB44B7B728259B34FC795A]]></AD_DEPENDENT_MODULE_ID>
-<!--8730CA6A4224439D82E0DD31B3806E36-->  <STARTVERSION><![CDATA[1.0.13451]]></STARTVERSION>
+<!--8730CA6A4224439D82E0DD31B3806E36-->  <STARTVERSION><![CDATA[1.0.13698]]></STARTVERSION>
 <!--8730CA6A4224439D82E0DD31B3806E36-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--8730CA6A4224439D82E0DD31B3806E36-->  <DEPENDANT_MODULE_NAME><![CDATA[HTML Widget]]></DEPENDANT_MODULE_NAME>
 <!--8730CA6A4224439D82E0DD31B3806E36-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -105,7 +105,7 @@
 <!--98C47FF058F8413B8A2B26036061446E-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--98C47FF058F8413B8A2B26036061446E-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--98C47FF058F8413B8A2B26036061446E-->  <AD_DEPENDENT_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_DEPENDENT_MODULE_ID>
-<!--98C47FF058F8413B8A2B26036061446E-->  <STARTVERSION><![CDATA[8.1.13451]]></STARTVERSION>
+<!--98C47FF058F8413B8A2B26036061446E-->  <STARTVERSION><![CDATA[8.1.13698]]></STARTVERSION>
 <!--98C47FF058F8413B8A2B26036061446E-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--98C47FF058F8413B8A2B26036061446E-->  <DEPENDANT_MODULE_NAME><![CDATA[Smartclient]]></DEPENDANT_MODULE_NAME>
 <!--98C47FF058F8413B8A2B26036061446E-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -119,7 +119,7 @@
 <!--A6D7BA917B3B4DEABD7CA1BA00B01E8A-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--A6D7BA917B3B4DEABD7CA1BA00B01E8A-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--A6D7BA917B3B4DEABD7CA1BA00B01E8A-->  <AD_DEPENDENT_MODULE_ID><![CDATA[96998CBC42744B3DBEE28AC8095C9335]]></AD_DEPENDENT_MODULE_ID>
-<!--A6D7BA917B3B4DEABD7CA1BA00B01E8A-->  <STARTVERSION><![CDATA[2.0.13451]]></STARTVERSION>
+<!--A6D7BA917B3B4DEABD7CA1BA00B01E8A-->  <STARTVERSION><![CDATA[2.0.13698]]></STARTVERSION>
 <!--A6D7BA917B3B4DEABD7CA1BA00B01E8A-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--A6D7BA917B3B4DEABD7CA1BA00B01E8A-->  <DEPENDANT_MODULE_NAME><![CDATA[2.50 to 3.00 Compatibility Skin]]></DEPENDANT_MODULE_NAME>
 <!--A6D7BA917B3B4DEABD7CA1BA00B01E8A-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -133,7 +133,7 @@
 <!--A9CB99330AF34944877F889DD8A0AB3C-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--A9CB99330AF34944877F889DD8A0AB3C-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--A9CB99330AF34944877F889DD8A0AB3C-->  <AD_DEPENDENT_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_DEPENDENT_MODULE_ID>
-<!--A9CB99330AF34944877F889DD8A0AB3C-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--A9CB99330AF34944877F889DD8A0AB3C-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--A9CB99330AF34944877F889DD8A0AB3C-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--A9CB99330AF34944877F889DD8A0AB3C-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Client Kernel]]></DEPENDANT_MODULE_NAME>
 <!--A9CB99330AF34944877F889DD8A0AB3C-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -147,7 +147,7 @@
 <!--E72A053A403C4A98A189C105B850ADB0-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--E72A053A403C4A98A189C105B850ADB0-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--E72A053A403C4A98A189C105B850ADB0-->  <AD_DEPENDENT_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_DEPENDENT_MODULE_ID>
-<!--E72A053A403C4A98A189C105B850ADB0-->  <STARTVERSION><![CDATA[1.1.13451]]></STARTVERSION>
+<!--E72A053A403C4A98A189C105B850ADB0-->  <STARTVERSION><![CDATA[1.1.13698]]></STARTVERSION>
 <!--E72A053A403C4A98A189C105B850ADB0-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--E72A053A403C4A98A189C105B850ADB0-->  <DEPENDANT_MODULE_NAME><![CDATA[JBoss Weld]]></DEPENDANT_MODULE_NAME>
 <!--E72A053A403C4A98A189C105B850ADB0-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -161,7 +161,7 @@
 <!--F62443FC17DA4C0E84FBCA9F2E5B68C0-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--F62443FC17DA4C0E84FBCA9F2E5B68C0-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--F62443FC17DA4C0E84FBCA9F2E5B68C0-->  <AD_DEPENDENT_MODULE_ID><![CDATA[F8D1B3ECB3474E8DA5C216473C840DF1]]></AD_DEPENDENT_MODULE_ID>
-<!--F62443FC17DA4C0E84FBCA9F2E5B68C0-->  <STARTVERSION><![CDATA[2.0.13451]]></STARTVERSION>
+<!--F62443FC17DA4C0E84FBCA9F2E5B68C0-->  <STARTVERSION><![CDATA[2.0.13698]]></STARTVERSION>
 <!--F62443FC17DA4C0E84FBCA9F2E5B68C0-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--F62443FC17DA4C0E84FBCA9F2E5B68C0-->  <DEPENDANT_MODULE_NAME><![CDATA[JSON REST Webservice]]></DEPENDANT_MODULE_NAME>
 <!--F62443FC17DA4C0E84FBCA9F2E5B68C0-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.v3/src-db/database/configScript.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.v3/src-db/database/configScript.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -957,10 +957,6 @@
       <oldValue><![CDATA[Y]]></oldValue>
       <newValue><![CDATA[N]]></newValue>
     </columnDataChange>
-    <columnDataChange tablename="AD_FIELD" columnname="ISDISPLAYED" pkRow="6347">
-      <oldValue><![CDATA[Y]]></oldValue>
-      <newValue><![CDATA[N]]></newValue>
-    </columnDataChange>
     <columnDataChange tablename="AD_FIELD" columnname="ISDISPLAYED" pkRow="6354">
       <oldValue><![CDATA[Y]]></oldValue>
       <newValue><![CDATA[N]]></newValue>
--- a/modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -6,7 +6,7 @@
 <!--0138E7A89B5E4DC3932462252801FFBC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--0138E7A89B5E4DC3932462252801FFBC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--0138E7A89B5E4DC3932462252801FFBC-->  <NAME><![CDATA[Openbravo 3.0]]></NAME>
-<!--0138E7A89B5E4DC3932462252801FFBC-->  <VERSION><![CDATA[3.0.13451]]></VERSION>
+<!--0138E7A89B5E4DC3932462252801FFBC-->  <VERSION><![CDATA[3.0.13698]]></VERSION>
 <!--0138E7A89B5E4DC3932462252801FFBC-->  <DESCRIPTION><![CDATA[Openbravo 3.0 distribution template]]></DESCRIPTION>
 <!--0138E7A89B5E4DC3932462252801FFBC-->  <HELP><![CDATA[Openbravo 3.0 is a collection (distribution) of modules. This template is a container of all the modules and configuration changes that compose Openbravo 3.0.]]></HELP>
 <!--0138E7A89B5E4DC3932462252801FFBC-->  <URL><![CDATA[http://forge.openbravo.com/projects/vthree]]></URL>
@@ -20,7 +20,7 @@
 <!--0138E7A89B5E4DC3932462252801FFBC-->  <HASCHARTOFACCOUNTS><![CDATA[N]]></HASCHARTOFACCOUNTS>
 <!--0138E7A89B5E4DC3932462252801FFBC-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--0138E7A89B5E4DC3932462252801FFBC-->  <HASREFERENCEDATA><![CDATA[Y]]></HASREFERENCEDATA>
-<!--0138E7A89B5E4DC3932462252801FFBC-->  <VERSION_LABEL><![CDATA[MP2]]></VERSION_LABEL>
+<!--0138E7A89B5E4DC3932462252801FFBC-->  <VERSION_LABEL><![CDATA[MP3]]></VERSION_LABEL>
 <!--0138E7A89B5E4DC3932462252801FFBC-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--0138E7A89B5E4DC3932462252801FFBC--></AD_MODULE>
 
--- a/modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -7,7 +7,7 @@
 <!--4D11E3A70650475381139522373CD191-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--4D11E3A70650475381139522373CD191-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--4D11E3A70650475381139522373CD191-->  <AD_DEPENDENT_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_DEPENDENT_MODULE_ID>
-<!--4D11E3A70650475381139522373CD191-->  <STARTVERSION><![CDATA[2.1.13451]]></STARTVERSION>
+<!--4D11E3A70650475381139522373CD191-->  <STARTVERSION><![CDATA[2.1.13698]]></STARTVERSION>
 <!--4D11E3A70650475381139522373CD191-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--4D11E3A70650475381139522373CD191-->  <DEPENDANT_MODULE_NAME><![CDATA[Openbravo 3.0 Framework]]></DEPENDANT_MODULE_NAME>
 <!--4D11E3A70650475381139522373CD191-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--52CE523C40634C47A99C6EBBD9C3125C-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--52CE523C40634C47A99C6EBBD9C3125C-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--52CE523C40634C47A99C6EBBD9C3125C-->  <AD_DEPENDENT_MODULE_ID><![CDATA[2A5EE903D7974AC298C0504FBC4501A7]]></AD_DEPENDENT_MODULE_ID>
-<!--52CE523C40634C47A99C6EBBD9C3125C-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--52CE523C40634C47A99C6EBBD9C3125C-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--52CE523C40634C47A99C6EBBD9C3125C-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--52CE523C40634C47A99C6EBBD9C3125C-->  <DEPENDANT_MODULE_NAME><![CDATA[Payment Report]]></DEPENDANT_MODULE_NAME>
 <!--52CE523C40634C47A99C6EBBD9C3125C-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--60834727BB114764ACEF019F40A34562-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--60834727BB114764ACEF019F40A34562-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--60834727BB114764ACEF019F40A34562-->  <AD_DEPENDENT_MODULE_ID><![CDATA[3A3A943684D64DEF9EC39F588A656848]]></AD_DEPENDENT_MODULE_ID>
-<!--60834727BB114764ACEF019F40A34562-->  <STARTVERSION><![CDATA[1.1.13451]]></STARTVERSION>
+<!--60834727BB114764ACEF019F40A34562-->  <STARTVERSION><![CDATA[1.1.13698]]></STARTVERSION>
 <!--60834727BB114764ACEF019F40A34562-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--60834727BB114764ACEF019F40A34562-->  <DEPENDANT_MODULE_NAME><![CDATA[Orders Awaiting Delivery]]></DEPENDANT_MODULE_NAME>
 <!--60834727BB114764ACEF019F40A34562-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -49,7 +49,7 @@
 <!--8418885E97D643138B6D907671351E3D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--8418885E97D643138B6D907671351E3D-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--8418885E97D643138B6D907671351E3D-->  <AD_DEPENDENT_MODULE_ID><![CDATA[883B5872CA0548F9AF2BBBE7D2DDFA61]]></AD_DEPENDENT_MODULE_ID>
-<!--8418885E97D643138B6D907671351E3D-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--8418885E97D643138B6D907671351E3D-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--8418885E97D643138B6D907671351E3D-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--8418885E97D643138B6D907671351E3D-->  <DEPENDANT_MODULE_NAME><![CDATA[Standard Roles]]></DEPENDANT_MODULE_NAME>
 <!--8418885E97D643138B6D907671351E3D-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -63,7 +63,7 @@
 <!--A32F3279B3374FC0A6CFEA2368BB7053-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--A32F3279B3374FC0A6CFEA2368BB7053-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--A32F3279B3374FC0A6CFEA2368BB7053-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--A32F3279B3374FC0A6CFEA2368BB7053-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--A32F3279B3374FC0A6CFEA2368BB7053-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--A32F3279B3374FC0A6CFEA2368BB7053-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--A32F3279B3374FC0A6CFEA2368BB7053-->  <DEPENDANT_MODULE_NAME><![CDATA[Core]]></DEPENDANT_MODULE_NAME>
 <!--A32F3279B3374FC0A6CFEA2368BB7053-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MINOR]]></DEPENDENCY_ENFORCEMENT>
@@ -77,7 +77,7 @@
 <!--ED06CE9F2AFD4092871D9E9494AF42DD-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--ED06CE9F2AFD4092871D9E9494AF42DD-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--ED06CE9F2AFD4092871D9E9494AF42DD-->  <AD_DEPENDENT_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_DEPENDENT_MODULE_ID>
-<!--ED06CE9F2AFD4092871D9E9494AF42DD-->  <STARTVERSION><![CDATA[3.0.13451]]></STARTVERSION>
+<!--ED06CE9F2AFD4092871D9E9494AF42DD-->  <STARTVERSION><![CDATA[3.0.13698]]></STARTVERSION>
 <!--ED06CE9F2AFD4092871D9E9494AF42DD-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--ED06CE9F2AFD4092871D9E9494AF42DD-->  <DEPENDANT_MODULE_NAME><![CDATA[Advanced Payables and Receivables Mngmt]]></DEPENDANT_MODULE_NAME>
 <!--ED06CE9F2AFD4092871D9E9494AF42DD-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -91,7 +91,7 @@
 <!--FF8080813189932B013189B45B59003A-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080813189932B013189B45B59003A-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--FF8080813189932B013189B45B59003A-->  <AD_DEPENDENT_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_DEPENDENT_MODULE_ID>
-<!--FF8080813189932B013189B45B59003A-->  <STARTVERSION><![CDATA[0.1.13451]]></STARTVERSION>
+<!--FF8080813189932B013189B45B59003A-->  <STARTVERSION><![CDATA[0.1.13698]]></STARTVERSION>
 <!--FF8080813189932B013189B45B59003A-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--FF8080813189932B013189B45B59003A-->  <DEPENDANT_MODULE_NAME><![CDATA[OpenID Service Integration]]></DEPENDANT_MODULE_NAME>
 <!--FF8080813189932B013189B45B59003A-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -105,7 +105,7 @@
 <!--FF8080813189932B013189B4C00F003D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080813189932B013189B4C00F003D-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--FF8080813189932B013189B4C00F003D-->  <AD_DEPENDENT_MODULE_ID><![CDATA[FF8080813129ADA401312CA1222A0005]]></AD_DEPENDENT_MODULE_ID>
-<!--FF8080813189932B013189B4C00F003D-->  <STARTVERSION><![CDATA[0.1.13451]]></STARTVERSION>
+<!--FF8080813189932B013189B4C00F003D-->  <STARTVERSION><![CDATA[0.1.13698]]></STARTVERSION>
 <!--FF8080813189932B013189B4C00F003D-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--FF8080813189932B013189B4C00F003D-->  <DEPENDANT_MODULE_NAME><![CDATA[Integration with Google APIs]]></DEPENDANT_MODULE_NAME>
 <!--FF8080813189932B013189B4C00F003D-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -119,7 +119,7 @@
 <!--FF8081812E2F6F3C012E2F750109001C-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8081812E2F6F3C012E2F750109001C-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--FF8081812E2F6F3C012E2F750109001C-->  <AD_DEPENDENT_MODULE_ID><![CDATA[FF8080812D842086012D844F3CC0003E]]></AD_DEPENDENT_MODULE_ID>
-<!--FF8081812E2F6F3C012E2F750109001C-->  <STARTVERSION><![CDATA[0.0.13451]]></STARTVERSION>
+<!--FF8081812E2F6F3C012E2F750109001C-->  <STARTVERSION><![CDATA[0.0.13698]]></STARTVERSION>
 <!--FF8081812E2F6F3C012E2F750109001C-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--FF8081812E2F6F3C012E2F750109001C-->  <DEPENDANT_MODULE_NAME><![CDATA[Widgets Collection]]></DEPENDANT_MODULE_NAME>
 <!--FF8081812E2F6F3C012E2F750109001C-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/referencedata/sampledata/F_B_International_Group.xml	Wed Oct 05 12:11:55 2011 +0200
+++ b/referencedata/sampledata/F_B_International_Group.xml	Wed Oct 05 12:55:03 2011 +0200
@@ -1,5 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ob:Openbravo xmlns:ob="http://www.openbravo.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<?xml version="1.0" encoding="UTF-8"?><ob:Openbravo xmlns:ob="http://www.openbravo.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <FinancialMgmtMatchingAlgorithm id="F6B492F80B6C4733AA653D8B45679B6C">
     <id>F6B492F80B6C4733AA653D8B45679B6C</id>
     <client id="FF8080812AFBCB14012AFBD3E373001F"/>
@@ -10279,7 +10278,7 @@
     <description xsi:nil="true"/>
     <comments xsi:nil="true"/>
     <fixedDueDate>false</fixedDueDate>
-    <overduePaymentDaysRule>0</overduePaymentDaysRule>
+    <overduePaymentDaysRule>60</overduePaymentDaysRule>
     <maturityDate1 xsi:nil="true"/>
     <offsetMonthDue>0</offsetMonthDue>
     <nextBusinessDay>false</nextBusinessDay>
@@ -10299,7 +10298,7 @@
     <description xsi:nil="true"/>
     <comments xsi:nil="true"/>
     <fixedDueDate>false</fixedDueDate>
-    <overduePaymentDaysRule>0</overduePaymentDaysRule>
+    <overduePaymentDaysRule>60</overduePaymentDaysRule>
     <maturityDate1 xsi:nil="true"/>
     <offsetMonthDue>0</offsetMonthDue>
     <nextBusinessDay>false</nextBusinessDay>
@@ -10339,7 +10338,7 @@
     <description xsi:nil="true"/>
     <comments xsi:nil="true"/>
     <fixedDueDate>false</fixedDueDate>
-    <overduePaymentDaysRule>0</overduePaymentDaysRule>
+    <overduePaymentDaysRule>30</overduePaymentDaysRule>
     <maturityDate1 xsi:nil="true"/>
     <offsetMonthDue>0</offsetMonthDue>
     <nextBusinessDay>false</nextBusinessDay>
@@ -12006,6 +12005,24 @@
     <suffix xsi:nil="true"/>
     <restartSequenceEveryYear>false</restartSequenceEveryYear>
   </ADSequence>
+  <ADSequence id="2EADFC00DD2642D8B191BC7428A9E98C">
+    <id>2EADFC00DD2642D8B191BC7428A9E98C</id>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <name>DocumentNo_OBUIAPP_UIPersonalization</name>
+    <description>DocumentNo/Value for Table OBUIAPP_UIPersonalization</description>
+    <valueFormat xsi:nil="true"/>
+    <autoNumbering>true</autoNumbering>
+    <incrementBy>1</incrementBy>
+    <startingNo>10000000</startingNo>
+    <nextAssignedNumber>10000000</nextAssignedNumber>
+    <currentNextSystem>10000000</currentNextSystem>
+    <usedForRecordID>false</usedForRecordID>
+    <prefix xsi:nil="true"/>
+    <suffix xsi:nil="true"/>
+    <restartSequenceEveryYear>false</restartSequenceEveryYear>
+  </ADSequence>
   <ADSequence id="35FD18A869374F8C81FD70D5ECAFA9E5">
     <id>35FD18A869374F8C81FD70D5ECAFA9E5</id>
     <client id="FF8080812AFBCB14012AFBD3E373001F"/>
@@ -99557,6 +99574,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADProcessAccess>
+  <ADProcessAccess id="8E552EB16A874514816D62DB0165656F">
+    <id>8E552EB16A874514816D62DB0165656F</id>
+    <process id="800120"/>
+    <role id="43720ABF2A244050BB11E2C5AC652B5B"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADProcessAccess>
   <ADProcessAccess id="8E67DEEC24C74CB89C799EF7990B8D96">
     <id>8E67DEEC24C74CB89C799EF7990B8D96</id>
     <process id="800022"/>
@@ -99566,15 +99592,6 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADProcessAccess>
-  <ADProcessAccess id="8E552EB16A874514816D62DB0165656F">
-    <id>8E552EB16A874514816D62DB0165656F</id>
-    <process id="800120"/>
-    <role id="43720ABF2A244050BB11E2C5AC652B5B"/>
-    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
-    <organization id="0"/>
-    <active>true</active>
-    <editableField>true</editableField>
-  </ADProcessAccess>
   <ADProcessAccess id="8E78F6E208874F1680F518A75E3A74CB">
     <id>8E78F6E208874F1680F518A75E3A74CB</id>
     <process id="800176"/>
@@ -110186,6 +110203,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADProcessAccess>
+  <ADProcessAccess id="FA91993E59134FE4B60C4ADB7A2A5888">
+    <id>FA91993E59134FE4B60C4ADB7A2A5888</id>
+    <process id="800120"/>
+    <role id="D260159822F9431E99214DD016765CD3"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADProcessAccess>
   <ADProcessAccess id="FAB873CF2627490FAFE08213988198A3">
     <id>FAB873CF2627490FAFE08213988198A3</id>
     <process id="166"/>
@@ -111185,15 +111211,6 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADProcessAccess>
-  <ADProcessAccess id="FA91993E59134FE4B60C4ADB7A2A5888">
-    <id>FA91993E59134FE4B60C4ADB7A2A5888</id>
-    <process id="800120"/>
-    <role id="D260159822F9431E99214DD016765CD3"/>
-    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
-    <organization id="0"/>
-    <active>true</active>
-    <editableField>true</editableField>
-  </ADProcessAccess>
   <ADWindowAccess id="0036D372487847048494785E9AD2755E">
     <id>0036D372487847048494785E9AD2755E</id>
     <window id="800018"/>
@@ -111437,6 +111454,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="058726E9D2A14B8FBE01204D31AE511C">
+    <id>058726E9D2A14B8FBE01204D31AE511C</id>
+    <window id="FF8081813157AED2013157BE93460020"/>
+    <role id="808C1DC2670B40B8985F3948D22D339C"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="059EA03E23EE416C99929F139B4EC34E">
     <id>059EA03E23EE416C99929F139B4EC34E</id>
     <window id="24DDE1DDF13942D78B6D6F216979E56A"/>
@@ -111887,6 +111913,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="0C8E6802E1714A89AA047FE85B08145D">
+    <id>0C8E6802E1714A89AA047FE85B08145D</id>
+    <window id="FF8080813161A3D301316208017A0011"/>
+    <role id="9E980E565D804FBDA90453DD1B601BF3"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="0CBA37CF8C6B46798E8596A47A349532">
     <id>0CBA37CF8C6B46798E8596A47A349532</id>
     <window id="170"/>
@@ -112553,6 +112588,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="15A3416F62D146708F0E625475135324">
+    <id>15A3416F62D146708F0E625475135324</id>
+    <window id="FF8081813157AED2013157BE93460020"/>
+    <role id="5E7548CC7E0543D985D6C27C484F9256"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="15AE6A433F244D1E9AC3734ACC6A07EB">
     <id>15AE6A433F244D1E9AC3734ACC6A07EB</id>
     <window id="800096"/>
@@ -112634,6 +112678,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="178CE8AE45C6479D825EFFC593B7BF3B">
+    <id>178CE8AE45C6479D825EFFC593B7BF3B</id>
+    <window id="FF8080813161A3D301316208017A0011"/>
+    <role id="5E7548CC7E0543D985D6C27C484F9256"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="17B6F52474A74D7ABAABF40E9EF89415">
     <id>17B6F52474A74D7ABAABF40E9EF89415</id>
     <window id="FEB8679CAA0D47E5978F10E22566FCEA"/>
@@ -112886,6 +112939,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="1C06B69D2A194A958A04623B08E6CCA5">
+    <id>1C06B69D2A194A958A04623B08E6CCA5</id>
+    <window id="FF8081813157AED2013157BE93460020"/>
+    <role id="5CDB22F60411492E8716401BF5203770"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="1C1602EED2A242D3A9E4A8D20E29CBDC">
     <id>1C1602EED2A242D3A9E4A8D20E29CBDC</id>
     <window id="235"/>
@@ -114542,6 +114604,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="361725EAD3C04457A8C04E28C4225889">
+    <id>361725EAD3C04457A8C04E28C4225889</id>
+    <window id="FF8080813161A3D301316208017A0011"/>
+    <role id="43720ABF2A244050BB11E2C5AC652B5B"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="3697234E82E7430A9EBFC2B9A7A8D681">
     <id>3697234E82E7430A9EBFC2B9A7A8D681</id>
     <window id="800081"/>
@@ -114956,6 +115027,42 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="4028E6C731B3814F0131B39B1D64000E">
+    <id>4028E6C731B3814F0131B39B1D64000E</id>
+    <window id="800092"/>
+    <role id="FF8081812250326E012250353BDE0006"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>false</editableField>
+  </ADWindowAccess>
+  <ADWindowAccess id="4028E6C731B3814F0131B39CC848001A">
+    <id>4028E6C731B3814F0131B39CC848001A</id>
+    <window id="800092"/>
+    <role id="FF808181259DADEB01259DDDA4C201E7"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>false</editableField>
+  </ADWindowAccess>
+  <ADWindowAccess id="4028E6C731B3814F0131B39F21A50022">
+    <id>4028E6C731B3814F0131B39F21A50022</id>
+    <window id="800092"/>
+    <role id="0AD9EDA68B4E4542A5211CF5107514FE"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>false</editableField>
+  </ADWindowAccess>
+  <ADWindowAccess id="4028E6C731B3814F0131B39F6D870026">
+    <id>4028E6C731B3814F0131B39F6D870026</id>
+    <window id="800092"/>
+    <role id="03552A00BDFD40839E68AB9EF76E0263"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>false</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="40367FABEF3A461F824F002FFF02D291">
     <id>40367FABEF3A461F824F002FFF02D291</id>
     <window id="123"/>
@@ -116441,6 +116548,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="5CAB4C64AE4F483BA8D8920812166232">
+    <id>5CAB4C64AE4F483BA8D8920812166232</id>
+    <window id="FF8081813157AED2013157BE93460020"/>
+    <role id="FF8080812AFBCB14012AFBD3E4340031"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="5CBF1DB997C1424082AB394C81BCC3E6">
     <id>5CBF1DB997C1424082AB394C81BCC3E6</id>
     <window id="800030"/>
@@ -118295,6 +118411,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="7F4EDC1C2BE74CC081B7C6CB507D6F76">
+    <id>7F4EDC1C2BE74CC081B7C6CB507D6F76</id>
+    <window id="FF8080813161A3D301316208017A0011"/>
+    <role id="FF8080812AFBCB14012AFBD3E4340031"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="7F7967796FD54DE88355C643840C2CD7">
     <id>7F7967796FD54DE88355C643840C2CD7</id>
     <window id="800017"/>
@@ -118322,6 +118447,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="7F906DD0982B4662A839953B7AF8DF9C">
+    <id>7F906DD0982B4662A839953B7AF8DF9C</id>
+    <window id="FF8080813161A3D301316208017A0011"/>
+    <role id="D260159822F9431E99214DD016765CD3"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="7FA302F9C0E349E9A09AF875FF6715FB">
     <id>7FA302F9C0E349E9A09AF875FF6715FB</id>
     <window id="228"/>
@@ -119483,6 +119617,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="95E74A8356D24D09A668363962BF6AFD">
+    <id>95E74A8356D24D09A668363962BF6AFD</id>
+    <window id="FF8081813157AED2013157BE93460020"/>
+    <role id="43720ABF2A244050BB11E2C5AC652B5B"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="95F33C4D91504F688462DA623CD843CF">
     <id>95F33C4D91504F688462DA623CD843CF</id>
     <window id="130"/>
@@ -119555,6 +119698,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="969369FE24774DFCB0BAE0C69102530C">
+    <id>969369FE24774DFCB0BAE0C69102530C</id>
+    <window id="FF8081813157AED2013157BE93460020"/>
+    <role id="9E980E565D804FBDA90453DD1B601BF3"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="96D871676266421B9EFF273112EE8FD9">
     <id>96D871676266421B9EFF273112EE8FD9</id>
     <window id="135"/>
@@ -119960,6 +120112,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="9D667AD1D91D4A6F92FB07267A25404C">
+    <id>9D667AD1D91D4A6F92FB07267A25404C</id>
+    <window id="FF8081813157AED2013157BE93460020"/>
+    <role id="0216E47FFEEC4049BF3FD35F6476D0C2"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="9D81102DB1A640869F9FDE3E4146A1B9">
     <id>9D81102DB1A640869F9FDE3E4146A1B9</id>
     <window id="3CAAC7D54593489384452416ACF356DD"/>
@@ -120005,6 +120166,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="9EB7E7FB21BA427D932A68CC96B4DAC5">
+    <id>9EB7E7FB21BA427D932A68CC96B4DAC5</id>
+    <window id="FF8080813161A3D301316208017A0011"/>
+    <role id="D14389DC0EE74A22AE41C4F9060B24E5"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="9EF3308E55B44DAF90AAC8A35C464569">
     <id>9EF3308E55B44DAF90AAC8A35C464569</id>
     <window id="158"/>
@@ -120419,6 +120589,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="A5E3F3E51C2C459F8261D809F7DD0945">
+    <id>A5E3F3E51C2C459F8261D809F7DD0945</id>
+    <window id="FF8081813157AED2013157BE93460020"/>
+    <role id="1700BE6E97C947A0A765C68976366234"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="A5F4CFF0F17B4B6783869BB2BE519375">
     <id>A5F4CFF0F17B4B6783869BB2BE519375</id>
     <window id="147"/>
@@ -121454,6 +121633,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="BC5AC35FD6494B34ACEF01BC2235AC94">
+    <id>BC5AC35FD6494B34ACEF01BC2235AC94</id>
+    <window id="FF8080813161A3D301316208017A0011"/>
+    <role id="5CDB22F60411492E8716401BF5203770"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="BC5CB8C3175B446BB47D076F3999FED4">
     <id>BC5CB8C3175B446BB47D076F3999FED4</id>
     <window id="181"/>
@@ -122597,6 +122785,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="D21D25FE3A084B0391FE1B8C9321B93C">
+    <id>D21D25FE3A084B0391FE1B8C9321B93C</id>
+    <window id="FF8080813161A3D301316208017A0011"/>
+    <role id="0216E47FFEEC4049BF3FD35F6476D0C2"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="D22283BCEB89465CB1B39E41D00E6B10">
     <id>D22283BCEB89465CB1B39E41D00E6B10</id>
     <window id="282"/>
@@ -123191,6 +123388,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="DE75111483E64F2D9C6B08C0928D4FB1">
+    <id>DE75111483E64F2D9C6B08C0928D4FB1</id>
+    <window id="FF8080813161A3D301316208017A0011"/>
+    <role id="1700BE6E97C947A0A765C68976366234"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="DE799E1F03414FD289D757BAE06BEB10">
     <id>DE799E1F03414FD289D757BAE06BEB10</id>
     <window id="EF3E837705944F4DBF398D683D36ACE0"/>
@@ -123857,6 +124063,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="EE133E580A7F4F4BA9F104552E29B92E">
+    <id>EE133E580A7F4F4BA9F104552E29B92E</id>
+    <window id="FF8080813161A3D301316208017A0011"/>
+    <role id="808C1DC2670B40B8985F3948D22D339C"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="EE18BDFCCBE14C4AB27D4C94396B3FB9">
     <id>EE18BDFCCBE14C4AB27D4C94396B3FB9</id>
     <window id="800001"/>
@@ -124046,6 +124261,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="F14C2EE3178247848BA5ED49A6EC91F4">
+    <id>F14C2EE3178247848BA5ED49A6EC91F4</id>
+    <window id="FF8081813157AED2013157BE93460020"/>
+    <role id="D260159822F9431E99214DD016765CD3"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="F172CCA262B34C5590407D780295E384">
     <id>F172CCA262B34C5590407D780295E384</id>
     <window id="E547CE89D4C04429B6340FFA44E70716"/>
@@ -124091,6 +124315,15 @@
     <active>true</active>
     <editableField>true</editableField>
   </ADWindowAccess>
+  <ADWindowAccess id="F279E82CCF4F4D38A330A9863DDD7215">
+    <id>F279E82CCF4F4D38A330A9863DDD7215</id>
+    <window id="FF8081813157AED2013157BE93460020"/>
+    <role id="D14389DC0EE74A22AE41C4F9060B24E5"/>
+    <client id="FF8080812AFBCB14012AFBD3E373001F"/>
+    <organization id="0"/>
+    <active>true</active>
+    <editableField>true</editableField>
+  </ADWindowAccess>
   <ADWindowAccess id="F27A79830CA749EE8F8B3B4ADDD04DDE">
     <id>F27A79830CA749EE8F8B3B4ADDD04DDE</id>
     <window id="3CAAC7D54593489384452416ACF356DD"/>
@@ -130776,6 +131009,14 @@
     <payment xsi:nil="true"/>
     <withholding xsi:nil="true"/>
     <tax xsi:nil="true"/>
+    <stDimension xsi:nil="true"/>
+    <ndDimension xsi:nil="true"/>
+    <salesCampaign xsi:nil="true"/>
+    <project xsi:nil="true"/>
+    <activity xsi:nil="true"/>
+    <salesRegion xsi:nil="true"/>
+    <product xsi:nil="true"/>
+    <businessPartner xsi:nil="true"/>
   </FinancialMgmtGLJournalLine>
   <FinancialMgmtGLJournalLine id="4B68EBD247DD489AB636C0C4CBA49C91">
     <id>4B68EBD247DD489AB636C0C4CBA49C91</id>
@@ -130800,6 +131041,14 @@
     <payment xsi:nil="true"/>
     <withholding xsi:nil="true"/>
     <tax xsi:nil="true"/>
+    <stDimension xsi:nil="true"/>
+    <ndDimension xsi:nil="true"/>
+    <salesCampaign xsi:nil="true"/>
+    <project xsi:nil="true"/>
+    <activity xsi:nil="true"/>
+    <salesRegion xsi:nil="true"/>
+    <product xsi:nil="true"/>
+    <businessPartner xsi:nil="true"/>
   </FinancialMgmtGLJournalLine>
   <FinancialMgmtGLJournalLine id="5F3EA3F1F0664C80A0310FAA13D09065">
     <id>5F3EA3F1F0664C80A0310FAA13D09065</id>
@@ -130824,6 +131073,14 @@
     <payment xsi:nil="true"/>
     <withholding xsi:nil="true"/>
     <tax xsi:nil="true"/>
+    <stDimension xsi:nil="true"/>
+    <ndDimension xsi:nil="true"/>
+    <salesCampaign xsi:nil="true"/>
+    <project xsi:nil="true"/>
+    <activity xsi:nil="true"/>
+    <salesRegion xsi:nil="true"/>
+    <product xsi:nil="true"/>
+    <businessPartner xsi:nil="true"/>
   </FinancialMgmtGLJournalLine>
   <FinancialMgmtGLJournalLine id="71B2F0891F5B4F588C0E2E47D223542F">
     <id>71B2F0891F5B4F588C0E2E47D223542F</id>
@@ -130848,6 +131105,14 @@
     <payment xsi:nil="true"/>
     <withholding xsi:nil="true"/>
     <tax xsi:nil="true"/>
+    <stDimension xsi:nil="true"/>
+    <ndDimension xsi:nil="true"/>
+    <salesCampaign xsi:nil="true"/>
+    <project xsi:nil="true"/>
+    <activity xsi:nil="true"/>
+    <salesRegion xsi:nil="true"/>
+    <product xsi:nil="true"/>
+    <businessPartner xsi:nil="true"/>
   </FinancialMgmtGLJournalLine>
   <FinancialMgmtGLJournalLine id="7479BD0596104E3C9090809C76099069">
     <id>7479BD0596104E3C9090809C76099069</id>
@@ -130872,6 +131137,14 @@
     <payment xsi:nil="true"/>
     <withholding xsi:nil="true"/>
     <tax xsi:nil="true"/>
+    <stDimension xsi:nil="true"/>
+    <ndDimension xsi:nil="true"/>
+    <salesCampaign xsi:nil="true"/>
+    <project xsi:nil="true"/>
+    <activity xsi:nil="true"/>
+    <salesRegion xsi:nil="true"/>
+    <product xsi:nil="true"/>
+    <businessPartner xsi:nil="true"/>
   </FinancialMgmtGLJournalLine>
   <FinancialMgmtGLJournalLine id="80D5DA08DF994DE4A4A68B8C622DC7E1">
     <id>80D5DA08DF994DE4A4A68B8C622DC7E1</id>
@@ -130896,6 +131169,14 @@
     <payment xsi:nil="true"/>
     <withholding xsi:nil="true"/>
     <tax xsi:nil="true"/>
+    <stDimension xsi:nil="true"/>
+    <ndDimension xsi:nil="true"/>
+    <salesCampaign xsi:nil="true"/>
+    <project xsi:nil="true"/>
+    <activity xsi:nil="true"/>
+    <salesRegion xsi:nil="true"/>
+    <product xsi:nil="true"/>
+    <businessPartner xsi:nil="true"/>
   </FinancialMgmtGLJournalLine>
   <FinancialMgmtGLJournalLine id="977452C2F45B4AA68E10152810E1CFB2">
     <id>977452C2F45B4AA68E10152810E1CFB2</id>
@@ -130920,6 +131201,14 @@
     <payment xsi:nil="true"/>
     <withholding xsi:nil="true"/>
     <tax xsi:nil="true"/>
+    <stDimension xsi:nil="true"/>
+    <ndDimension xsi:nil="true"/>
+    <salesCampaign xsi:nil="true"/>
+    <project xsi:nil="true"/>
+    <activity xsi:nil="true"/>
+    <salesRegion xsi:nil="true"/>
+    <product xsi:nil="true"/>
+    <businessPartner xsi:nil="true"/>
   </FinancialMgmtGLJournalLine>
   <FinancialMgmtGLJournalLine id="A99B5C78603B465F9A5F9EC101EA08AD">
     <id>A99B5C78603B465F9A5F9EC101EA08AD</id>
@@ -130944,6 +131233,14 @@
     <payment xsi:nil="true"/>
     <withholding xsi:nil="true"/>
     <tax xsi:nil="true"/>
+    <stDimension xsi:nil="true"/>
+    <ndDimension xsi:nil="true"/>
+    <salesCampaign xsi:nil="true"/>
+    <project xsi:nil="true"/>
+    <activity xsi:nil="true"/>
+    <salesRegion xsi:nil="true"/>
+    <product xsi:nil="true"/>
+    <businessPartner xsi:nil="true"/>
   </FinancialMgmtGLJournalLine>
   <FinancialMgmtGLJournalLine id="B8148254C9D240D8B5CFBD6D65E12E0E">
     <id>B8148254C9D240D8B5CFBD6D65E12E0E</id>
@@ -130968,6 +131265,14 @@
     <payment xsi:nil="true"/>
     <withholding xsi:nil="true"/>
     <tax xsi:nil="true"/>
+    <stDimension xsi:nil="true"/>
+    <ndDimension xsi:nil="true"/>
+    <salesCampaign xsi:nil="true"/>
+    <project xsi:nil="true"/>
+    <activity xsi:nil="true"/>
+    <salesRegion xsi:nil="true"/>
+    <product xsi:nil="true"/>
+    <businessPartner xsi:nil="true"/>
   </FinancialMgmtGLJournalLine>
   <FinancialMgmtGLJournalLine id="BC554DB84CF44188B6DA6E596306C3EC">
     <id>BC554DB84CF44188B6DA6E596306C3EC</id>
@@ -130992,6 +131297,14 @@
     <payment xsi:nil="true"/>
     <withholding xsi:nil="true"/>
     <tax xsi:nil="true"/>
+    <stDimension xsi:nil="true"/>
+    <ndDimension xsi:nil="true"/>
+    <salesCampaign xsi:nil="true"/>
+    <project xsi:nil="true"/>
+    <activity xsi:nil="true"/>
+    <salesRegion xsi:nil="true"/>
+    <product xsi:nil="true"/>
+    <businessPartner xsi:nil="true"/>
   </FinancialMgmtGLJournalLine>
   <ClientInformation id="FF8080812AFBCB14012AFBD3E373001F">
     <id>FF8080812AFBCB14012AFBD3E373001F</id>
@@ -131040,6 +131353,8 @@
     <referenceOrder>false</referenceOrder>
     <yourCompanyDocumentImage id="FF8080812AFBCB14012AFC4D0D571944"/>
     <automaticWriteoffAmt xsi:nil="true"/>
+    <userContact xsi:nil="true"/>
+    <aPRMPaymentDescription>Invoice Document Number</aPRMPaymentDescription>
     <organization id="0D8E225ADA6E425E98EAA0F34E5912D7"/>
   </OrganizationInformation>
   <OrganizationInformation id="378AF0EAE1A2479EAAA33436645E9433">
@@ -131056,6 +131371,8 @@
     <referenceOrder>false</referenceOrder>
     <yourCompanyDocumentImage id="FF8080812AFBCB14012AFC4B696E1941"/>
     <automaticWriteoffAmt xsi:nil="true"/>
+    <userContact xsi:nil="true"/>
+    <aPRMPaymentDescription>Invoice Document Number</aPRMPaymentDescription>
     <organization id="378AF0EAE1A2479EAAA33436645E9433"/>
   </OrganizationInformation>
   <OrganizationInformation id="3C816D72B14D4BBCB8571404B794AB84">
@@ -131072,6 +131389,8 @@
     <referenceOrder>false</referenceOrder>
     <yourCompanyDocumentImage id="FF8080812AFBCB14012AFBDAA7A717C3"/>
     <automaticWriteoffAmt xsi:nil="true"/>
+    <userContact xsi:nil="true"/>
+    <aPRMPaymentDescription>Invoice Document Number</aPRMPaymentDescription>
     <organization id="3C816D72B14D4BBCB8571404B794AB84"/>
   </OrganizationInformation>
   <OrganizationInformation id="4F68EB1C1B734E79B27DE9D2DF56089F">
@@ -131088,6 +131407,8 @@
     <referenceOrder>false</referenceOrder>
     <yourCompanyDocumentImage id="FF8080812AFBCB14012AFBE146C217C5"/>
     <automaticWriteoffAmt xsi:nil="true"/>
+    <userContact xsi:nil="true"/>
+    <aPRMPaymentDescription>Invoice Document Number</aPRMPaymentDescription>
     <organization id="4F68EB1C1B734E79B27DE9D2DF56089F"/>
   </OrganizationInformation>
   <OrganizationInformation id="7A8E888A4B4C4E638CD5EB3A41A3289A">
@@ -131104,6 +131425,8 @@
     <referenceOrder>false</referenceOrder>
     <yourCompanyDocumentImage id="FF8080812AFBCB14012AFC4CBC771943"/>
     <automaticWriteoffAmt xsi:nil="true"/>
+    <userContact xsi:nil="true"/>
+    <aPRMPaymentDescription>Invoice Document Number</aPRMPaymentDescription>
     <organization id="7A8E888A4B4C4E638CD5EB3A41A3289A"/>
   </OrganizationInformation>
   <OrganizationInformation id="90A1F59849E84AFABD04814B3D15A691">
@@ -131120,6 +131443,8 @@
     <referenceOrder>false</referenceOrder>
     <yourCompanyDocumentImage id="FF8080812AFBCB14012AFC4BC5471942"/>
     <automaticWriteoffAmt xsi:nil="true"/>
+    <userContact xsi:nil="true"/>
+    <aPRMPaymentDescription>Invoice Document Number</aPRMPaymentDescription>
     <organization id="90A1F59849E84AFABD04814B3D15A691"/>
   </OrganizationInformation>
   <OrganizationInformation id="B9C7088AB859483A9B1FB342AC2BE17A">
@@ -131136,6 +131461,8 @@
     <referenceOrder>false</referenceOrder>
     <yourCompanyDocumentImage id="FF8080812AFBCB14012AFBDD75B017C4"/>
     <automaticWriteoffAmt xsi:nil="true"/>
+    <userContact xsi:nil="true"/>
+    <aPRMPaymentDescription>Invoice Document Number</aPRMPaymentDescription>
     <organization id="B9C7088AB859483A9B1FB342AC2BE17A"/>
   </OrganizationInformation>
   <FinancialMgmtPeriodControl id="1A3481FC18E84C129DE6BC24608AFA56">
@@ -283781,6 +284108,7 @@
     <vendorPrepayment xsi:nil="true"/>
     <paymentDiscountExpense xsi:nil="true"/>
     <writeoff id="90520B6FD50C49DDA03D3CDAAE8CD4CD"/>
+    <writeoffRevenue xsi:nil="true"/>
     <paymentDiscountRevenue xsi:nil="true"/>
     <unrealizedGainsAcct xsi:nil="true"/>
     <unrealizedLossesAcct xsi:nil="true"/>
@@ -283850,6 +284178,7 @@
     <vendorPrepayment xsi:nil="true"/>
     <paymentDiscountExpense xsi:nil="true"/>
     <writeoff id="FF8080812AFBCB14012AFBD44F6708B8"/>
+    <writeoffRevenue xsi:nil="true"/>
     <paymentDiscountRevenue xsi:nil="true"/>
     <unrealizedGainsAcct xsi:nil="true"/>
     <unrealizedLossesAcct xsi:nil="true"/>
@@ -309031,6 +309360,7 @@
     <processNow xsi:nil="true"/>
     <id>09B721C0A0CA4FA7B63912132C6DFDA2</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <BusinessPartnerCategoryAccount id="0ECFF62E864246DE9BDE97088FF37BF0">
     <accountingSchema id="FF8080812AFBCB14012AFBD43E0B089A"/>
@@ -309057,6 +309387,7 @@
     <processNow xsi:nil="true"/>
     <id>0ECFF62E864246DE9BDE97088FF37BF0</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <BusinessPartnerCategoryAccount id="10E39FC94E4C41EC9E2F553B18002377">
     <accountingSchema id="39BC4AF26E854FDF80AD7B9C5994148B"/>
@@ -309083,6 +309414,7 @@
     <processNow xsi:nil="true"/>
     <id>10E39FC94E4C41EC9E2F553B18002377</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <BusinessPartnerCategoryAccount id="1533A20B74CA4F12B50291EDC493877F">
     <accountingSchema id="FF8080812AFBCB14012AFBD43E0B089A"/>
@@ -309109,6 +309441,7 @@
     <processNow xsi:nil="true"/>
     <id>1533A20B74CA4F12B50291EDC493877F</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <BusinessPartnerCategoryAccount id="19D92A96E9D04502B34AEC1B67B11B51">
     <accountingSchema id="FF8080812AFBCB14012AFBD43E0B089A"/>
@@ -309135,6 +309468,7 @@
     <processNow xsi:nil="true"/>
     <id>19D92A96E9D04502B34AEC1B67B11B51</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <BusinessPartnerCategoryAccount id="24BF5CC5210D459E88B7EF119CC9C430">
     <accountingSchema id="FF8080812AFBCB14012AFBD43E0B089A"/>
@@ -309161,6 +309495,7 @@
     <processNow xsi:nil="true"/>
     <id>24BF5CC5210D459E88B7EF119CC9C430</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <BusinessPartnerCategoryAccount id="2644147E825F472094134CEDB33ADD61">
     <accountingSchema id="FF8080812AFBCB14012AFBD43E0B089A"/>
@@ -309187,6 +309522,7 @@
     <processNow xsi:nil="true"/>
     <id>2644147E825F472094134CEDB33ADD61</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <BusinessPartnerCategoryAccount id="3756105EEED8461B9151F9C310C5A1A0">
     <accountingSchema id="FF8080812AFBCB14012AFBD43E0B089A"/>
@@ -309213,6 +309549,7 @@
     <processNow xsi:nil="true"/>
     <id>3756105EEED8461B9151F9C310C5A1A0</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <BusinessPartnerCategoryAccount id="430E4B3806F14A10B63DF9D63257D780">
     <accountingSchema id="FF8080812AFBCB14012AFBD43E0B089A"/>
@@ -309239,6 +309576,7 @@
     <processNow xsi:nil="true"/>
     <id>430E4B3806F14A10B63DF9D63257D780</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <BusinessPartnerCategoryAccount id="567E2234B96F4EE9964719F94733E0B4">
     <accountingSchema id="FF8080812AFBCB14012AFBD43E0B089A"/>
@@ -309265,6 +309603,7 @@
     <processNow xsi:nil="true"/>
     <id>567E2234B96F4EE9964719F94733E0B4</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <BusinessPartnerCategoryAccount id="67FA9DE07775499D9481490AB69040AD">
     <accountingSchema id="FF8080812AFBCB14012AFBD43E0B089A"/>
@@ -309291,6 +309630,7 @@
     <processNow xsi:nil="true"/>
     <id>67FA9DE07775499D9481490AB69040AD</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <BusinessPartnerCategoryAccount id="69C05D107E6446DA8901C6DC81F6103F">
     <accountingSchema id="39BC4AF26E854FDF80AD7B9C5994148B"/>
@@ -309317,6 +309657,7 @@
     <processNow xsi:nil="true"/>
     <id>69C05D107E6446DA8901C6DC81F6103F</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <BusinessPartnerCategoryAccount id="82F63150BC1D47309E3F3B7F755A94EA">
     <accountingSchema id="FF8080812AFBCB14012AFBD43E0B089A"/>
@@ -309343,6 +309684,7 @@
     <processNow xsi:nil="true"/>
     <id>82F63150BC1D47309E3F3B7F755A94EA</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <BusinessPartnerCategoryAccount id="8B2F8735215C42EDAFEB1779EB33B432">
     <accountingSchema id="39BC4AF26E854FDF80AD7B9C5994148B"/>
@@ -309369,6 +309711,7 @@
     <processNow xsi:nil="true"/>
     <id>8B2F8735215C42EDAFEB1779EB33B432</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <BusinessPartnerCategoryAccount id="B31A6CF5528A41A99E25D9EA53207A11">
     <accountingSchema id="39BC4AF26E854FDF80AD7B9C5994148B"/>
@@ -309395,6 +309738,7 @@
     <processNow xsi:nil="true"/>
     <id>B31A6CF5528A41A99E25D9EA53207A11</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <BusinessPartnerCategoryAccount id="B8C6616C7ED344558E5551B1A1E285EF">
     <accountingSchema id="39BC4AF26E854FDF80AD7B9C5994148B"/>
@@ -309421,6 +309765,7 @@
     <processNow xsi:nil="true"/>
     <id>B8C6616C7ED344558E5551B1A1E285EF</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <BusinessPartnerCategoryAccount id="BDB5CCECE8CC4091847BFFB733817003">
     <accountingSchema id="FF8080812AFBCB14012AFBD43E0B089A"/>
@@ -309447,6 +309792,7 @@
     <processNow xsi:nil="true"/>
     <id>BDB5CCECE8CC4091847BFFB733817003</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <BusinessPartnerCategoryAccount id="C3D896E125E2437E9C27F8311B9AB8C4">
     <accountingSchema id="FF8080812AFBCB14012AFBD43E0B089A"/>
@@ -309473,6 +309819,7 @@
     <processNow xsi:nil="true"/>
     <id>C3D896E125E2437E9C27F8311B9AB8C4</id>
     <status xsi:nil="true"/>
+    <writeoffRevAcct xsi:nil="true"/>
   </BusinessPartnerCategoryAccount>
   <FinancialMgmtTaxRateAccounts id="00AEE00540F94D6693C0100549B6CADD">
     <id>00AEE00540F94D6693C0100549B6CADD</id>
@@ -315042,6 +315389,9 @@
     <name>Image</name>
     <imageURL xsi:nil="true"/>
     <bindaryData>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</bindaryData>
+    <width xsi:nil="true"/>
+    <height xsi:nil="true"/>
+    <mimetype xsi:nil="true"/>
   </ADImage>
   <ADImage id="402880E92E2F838E012E3077BCDA0109">
     <id>402880E92E2F838E012E3077BCDA0109</id>
@@ -315051,6 +315401,9 @@
     <name>Image</name>
     <imageURL xsi:nil="true"/>
     <bindaryData>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</bindaryData>
+    <width xsi:nil="true"/>
+    <height xsi:nil="true"/>
+    <mimetype>image/png</mimetype>
   </ADImage>
   <ADImage id="FF8080812AFBCB14012AFBD3E417002E">
     <id>FF8080812AFBCB14012AFBD3E417002E</id>
@@ -315060,6 +315413,9 @@
     <name>Image</name>
     <imageURL xsi:nil="true"/>
     <bindaryData>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</bindaryData>
+    <width xsi:nil="true"/>
+    <height xsi:nil="true"/>
+    <mimetype xsi:nil="true"/>
   </ADImage>
   <ADImage id="FF8080812AFBCB14012AFBD3E424002F">
     <id>FF8080812AFBCB14012AFBD3E424002F</id>
@@ -315069,6 +315425,9 @@
     <name>Image</name>
     <imageURL xsi:nil="true"/>
     <bindaryData>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</bindaryData>
+    <width xsi:nil="true"/>
+    <height xsi:nil="true"/>
+    <mimetype xsi:nil="true"/>
   </ADImage>
   <ADImage id="FF8080812AFBCB14012AFBDAA7A717C3">
     <id>FF8080812AFBCB14012AFBDAA7A717C3</id>
@@ -315078,6 +315437,9 @@
     <name>Image</name>
     <imageURL xsi:nil="true"/>
     <bindaryData>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</bindaryData>
+    <width xsi:nil="true"/>
+    <height xsi:nil="true"/>
+    <mimetype xsi:nil="true"/>
   </ADImage>
   <ADImage id="FF8080812AFBCB14012AFBDD75B017C4">
     <id>FF8080812AFBCB14012AFBDD75B017C4</id>
@@ -315087,6 +315449,9 @@
     <name>Image</name>
     <imageURL xsi:nil="true"/>
     <bindaryData>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</bindaryData>
+    <width xsi:nil="true"/>
+    <height xsi:nil="true"/>
+    <mimetype xsi:nil="true"/>
   </ADImage>
   <ADImage id="FF8080812AFBCB14012AFBE146C217C5">
     <id>FF8080812AFBCB14012AFBE146C217C5</id>
@@ -315096,6 +315461,9 @@
     <name>Image</name>
     <imageURL xsi:nil="true"/>
     <bindaryData>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</bindaryData>
+    <width xsi:nil="true"/>
+    <height xsi:nil="true"/>
+    <mimetype xsi:nil="true"/>
   </ADImage>
   <ADImage id="FF8080812AFBCB14012AFC4B696E1941">
     <id>FF8080812AFBCB14012AFC4B696E1941</id>
@@ -315105,6 +315473,9 @@
     <name>Image</name>
     <imageURL xsi:nil="true"/>
     <bindaryData>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</bindaryData>
+    <width xsi:nil="true"/>
+    <height xsi:nil="true"/>
+    <mimetype xsi:nil="true"/>
   </ADImage>
   <ADImage id="FF8080812AFBCB14012AFC4BC5471942">
     <id>FF8080812AFBCB14012AFC4BC5471942</id>
@@ -315114,6 +315485,9 @@
     <name>Image</name>
     <imageURL xsi:nil="true"/>
     <bindaryData>iVBORw0KGgoAAAANSUhEUgAAAKkAAAA3CAYAAAB3uWocAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSA