details:   https://code.openbravo.com/erp/devel/pi/rev/1c7cc06530d5
changeset: 15152:1c7cc06530d5
user:      Javier Etxarri <javier.echarri <at> openbravo.com>
date:      Mon Jan 16 13:10:38 2012 +0100
summary:   Fixes issue 17395, Fixes issue 19463: Read Only Logic for columns is 
applied incorrectly.
Now the readonlylogic expression is not going to be applied until the 
application check if the field is defined as read only

details:   https://code.openbravo.com/erp/devel/pi/rev/4ee9c3f3b27d
changeset: 15153:4ee9c3f3b27d
user:      Javier Etxarri <javier.echarri <at> openbravo.com>
date:      Mon Jan 16 13:11:53 2012 +0100
summary:   Fixes issue 19225: Data of payment plan are not updated if you close 
the order

details:   https://code.openbravo.com/erp/devel/pi/rev/9595db5e51d2
changeset: 15154:9595db5e51d2
user:      Javier Etxarri <javier.echarri <at> openbravo.com>
date:      Mon Jan 16 08:53:40 2012 +0100
summary:   Fixes issue 19394: Fiscal Year regularization process,
do not take into account all the accounting dimensions

diffstat:

 
modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_ORD.xml
        |  55 ++++++++-
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java
 |   4 +-
 src/org/openbravo/erpCommon/ad_actionButton/CreateRegFactAcct.java             
                              |  36 ++++--
 src/org/openbravo/erpCommon/ad_actionButton/CreateRegFactAcct_data.xsql        
                              |  18 ++-
 4 files changed, 85 insertions(+), 28 deletions(-)

diffs (209 lines):

diff -r 75f2392d1dd1 -r 9595db5e51d2 
modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_ORD.xml
--- 
a/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_ORD.xml
     Fri Jan 13 09:14:37 2012 +0100
+++ 
b/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_ORD.xml
     Mon Jan 16 08:53:40 2012 +0100
@@ -39,6 +39,11 @@
 v_docSubType c_doctype.docsubtypeso%TYPE;
 v_PaymentPriority VARCHAR(32);
 
+v_Outstandingamt NUMBER;
+v_Paidamt NUMBER;
+v_Amount NUMBER;
+v_FinPaymentScheduleId VARCHAR2(32);
+
 TYPE RECORD IS REF CURSOR;
 Cur_Params RECORD;
 
@@ -199,19 +204,49 @@
     END;
   ELSIF (p_docaction = 'CL') THEN
     DECLARE
-      v_difference NUMBER;
+      v_OldGrandTotal NUMBER;
     BEGIN
-      SELECT sum(amount) - v_grandtotal INTO v_difference
+      SELECT sum(amount) INTO v_OldGrandTotal
       FROM fin_payment_schedule
       WHERE c_order_id = p_record_id;
-      IF (v_difference <> 0) THEN
-        UPDATE fin_payment_schedule
-        SET amount = amount - v_difference,
-        outstandingamt = outstandingamt - v_difference,
-        updated = now(),
-        updatedby = p_user
-        WHERE c_order_id = p_record_id
-          AND outstandingamt > v_difference;
+      --IF (v_difference <> 0) THEN
+      --  UPDATE fin_payment_schedule
+      --  SET amount = amount - v_difference,
+      --  outstandingamt = outstandingamt - v_difference,
+      --  updated = TO_DATE(NOW()),
+      --  updatedby = p_user
+      --  WHERE c_order_id = p_record_id
+      --    AND outstandingamt > v_difference;
+      --END IF;
+      --This part of code Update the tables fin_payment_schedule and 
fin_payment_scheduledetail when one order is closed and the pyment is not
+      --the same of the expected amount when the order is closed
+      SELECT 
co.grandtotal,fps.outstandingamt,fps.paidamt,fps.amount,fps.fin_payment_schedule_id
+      INTO 
v_GrandTotal,v_Outstandingamt,v_Paidamt,v_Amount,v_FinPaymentScheduleId
+      FROM c_order co LEFT JOIN c_orderline col ON co.c_order_id=col.c_order_id
+      LEFT JOIN fin_payment_schedule fps ON fps.c_order_id = col.c_order_id
+      WHERE co.C_Order_ID=p_record_id
+      GROUP BY 
co.c_order_id,co.grandtotal,fps.outstandingamt,fps.paidamt,fps.amount,fps.fin_payment_schedule_id;
+
+      IF (v_OldGrandTotal <> v_GrandTotal) THEN
+         IF (v_Paidamt < v_OldGrandTotal) THEN
+            UPDATE fin_payment_scheduledetail set amount = v_GrandTotal - 
v_Paidamt where fin_payment_detail_id IS NULL
+            AND fin_payment_schedule_order = v_FinPaymentScheduleId;
+         ELSE
+            INSERT INTO fin_payment_scheduledetail (
+            
fin_payment_scheduledetail_id,ad_client_id,ad_org_id,created,createdby,updated,updatedby,
+            
fin_payment_detail_id,fin_payment_schedule_order,fin_payment_schedule_invoice,amount,
+            isactive,writeoffamt,iscanceled,c_bpartner_id, 
c_activity_id,m_product_id,c_campaign_id,
+            c_project_id,c_salesregion_id
+            )
+            VALUES(
+            get_uuid(),v_Client_ID,v_Org_ID,now(),p_user,now(),p_user,
+            null,v_FinPaymentScheduleId,null,v_GrandTotal-v_OldGrandTotal,
+            'Y',0 ,'N',v_bpartner_id, null,null,null,
+            null,null
+            );
+        END IF;
+        UPDATE fin_payment_schedule SET amount = v_GrandTotal,outstandingamt = 
v_GrandTotal-v_Paidamt
+        WHERE fin_payment_schedule_id = v_FinPaymentScheduleId;
       END IF;
     END;
   END IF;
diff -r 75f2392d1dd1 -r 9595db5e51d2 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java
      Fri Jan 13 09:14:37 2012 +0100
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java
      Mon Jan 16 08:53:40 2012 +0100
@@ -1259,7 +1259,9 @@
     }
 
     public void setReadOnlyIf(String readOnlyExpression) {
-      this.readOnlyIf = readOnlyExpression;
+      if (!this.getReadOnly()) {
+        this.readOnlyIf = readOnlyExpression;
+      }
     }
 
     public String getReadOnlyIf() {
diff -r 75f2392d1dd1 -r 9595db5e51d2 
src/org/openbravo/erpCommon/ad_actionButton/CreateRegFactAcct.java
--- a/src/org/openbravo/erpCommon/ad_actionButton/CreateRegFactAcct.java        
Fri Jan 13 09:14:37 2012 +0100
+++ b/src/org/openbravo/erpCommon/ad_actionButton/CreateRegFactAcct.java        
Mon Jan 16 08:53:40 2012 +0100
@@ -182,7 +182,9 @@
             expense[i].totalamtcr, expense[i].totalamtdr, 
expense[i].totalamtcr,
             Fact_Acct_Group_ID, Integer.toString((i + 3) * 10), 
expense[i].acctdescription,
             expense[i].acctvalue, expense[i].cBpartnerId, expense[i].recordId2,
-            expense[i].mProductId, expense[i].aAssetId, strRegEntry);
+            expense[i].mProductId, expense[i].aAssetId, strRegEntry, 
expense[i].cTaxId,
+            expense[i].cProjectId, expense[i].cActivityId, expense[i].user1Id, 
expense[i].user2Id,
+            expense[i].cCampaignId, expense[i].cSalesregionId);
     }
     for (int j = 0; j < revenue.length; j++) {
       BigDecimal totalRevenueAmountDr = new BigDecimal(revenue[j].totalamtdr);
@@ -200,21 +202,27 @@
             revenue[j].totalamtcr, revenue[j].totalamtdr, 
revenue[j].totalamtcr,
             Fact_Acct_Group_ID, Integer.toString((i + j + 3) * 10), 
revenue[j].acctdescription,
             revenue[j].acctvalue, revenue[j].cBpartnerId, revenue[j].recordId2,
-            revenue[j].mProductId, revenue[j].aAssetId, strRegEntry);
+            revenue[j].mProductId, revenue[j].aAssetId, strRegEntry, 
revenue[i].cTaxId,
+            revenue[i].cProjectId, revenue[i].cActivityId, revenue[i].user1Id, 
revenue[i].user2Id,
+            revenue[i].cCampaignId, revenue[i].cSalesregionId);
     }
     CreateRegFactAcctData[] account = 
CreateRegFactAcctData.incomesummary(this, strAcctSchema);
     if 
(ExpenseAmtDr.add(RevenueAmtDr).subtract(RevenueAmtCr).subtract(ExpenseAmtCr).signum()
 > 0) {
       Fact_Acct_ID = SequenceIdData.getUUID();
-      CreateRegFactAcctData.insert(conn, this, Fact_Acct_ID, vars.getClient(), 
stradOrgId,
-          vars.getUser(), strAcctSchema, account[0].accountId,
-          CreateRegFactAcctData.getEndDate(this, strPediodId), strPediodId,
-          CreateRegFactAcctData.adTableId(this), "A",
-          CreateRegFactAcctData.cCurrencyId(this, strAcctSchema), "0",
-          
ExpenseAmtDr.add(RevenueAmtDr).subtract(RevenueAmtCr).subtract(ExpenseAmtCr).toString(),
-          "0", 
ExpenseAmtDr.add(RevenueAmtDr).subtract(RevenueAmtCr).subtract(ExpenseAmtCr)
-              .toString(), Fact_Acct_Group_ID, "10", account[0].name, 
account[0].value,
-          account[0].cBpartnerId, account[0].recordId2, account[0].mProductId, 
account[0].aAssetId,
-          strRegEntry);
+      CreateRegFactAcctData
+          .insert(conn, this, Fact_Acct_ID, vars.getClient(), stradOrgId, 
vars.getUser(),
+              strAcctSchema, account[0].accountId,
+              CreateRegFactAcctData.getEndDate(this, strPediodId), strPediodId,
+              CreateRegFactAcctData.adTableId(this), "A",
+              CreateRegFactAcctData.cCurrencyId(this, strAcctSchema), "0",
+              
ExpenseAmtDr.add(RevenueAmtDr).subtract(RevenueAmtCr).subtract(ExpenseAmtCr)
+                  .toString(), "0",
+              
ExpenseAmtDr.add(RevenueAmtDr).subtract(RevenueAmtCr).subtract(ExpenseAmtCr)
+                  .toString(), Fact_Acct_Group_ID, "10", account[0].name, 
account[0].value,
+              account[0].cBpartnerId, account[0].recordId2, 
account[0].mProductId,
+              account[0].aAssetId, strRegEntry, account[0].cTaxId, 
account[0].cProjectId,
+              account[0].cActivityId, account[0].user1Id, account[0].user2Id,
+              account[0].cCampaignId, account[0].cSalesregionId);
     } else if 
(ExpenseAmtDr.add(RevenueAmtDr).subtract(RevenueAmtCr).subtract(ExpenseAmtCr)
         .signum() < 0) {
       Fact_Acct_ID = SequenceIdData.getUUID();
@@ -226,7 +234,9 @@
               .subtract(RevenueAmtDr).subtract(ExpenseAmtDr).toString(), "0",
           
ExpenseAmtCr.add(RevenueAmtCr).subtract(RevenueAmtDr).subtract(ExpenseAmtDr).toString(),
           "0", Fact_Acct_Group_ID, "10", account[0].name, account[0].value, 
account[0].cBpartnerId,
-          account[0].recordId2, account[0].mProductId, account[0].aAssetId, 
strRegEntry);
+          account[0].recordId2, account[0].mProductId, account[0].aAssetId, 
strRegEntry,
+          account[0].cTaxId, account[0].cProjectId, account[0].cActivityId, 
account[0].user1Id,
+          account[0].user2Id, account[0].cCampaignId, 
account[0].cSalesregionId);
     }
     return "Success";
   }
diff -r 75f2392d1dd1 -r 9595db5e51d2 
src/org/openbravo/erpCommon/ad_actionButton/CreateRegFactAcct_data.xsql
--- a/src/org/openbravo/erpCommon/ad_actionButton/CreateRegFactAcct_data.xsql   
Fri Jan 13 09:14:37 2012 +0100
+++ b/src/org/openbravo/erpCommon/ad_actionButton/CreateRegFactAcct_data.xsql   
Mon Jan 16 08:53:40 2012 +0100
@@ -54,7 +54,7 @@
       <![CDATA[
         SELECT (CASE SIGN(SUM(AMTACCTDR)-SUM(AMTACCTCR)) WHEN -1 THEN 0 ELSE 
(SUM(AMTACCTDR)-SUM(AMTACCTCR)) END) AS TOTALAMTCR,
         (CASE SIGN(SUM(AMTACCTCR)-SUM(AMTACCTDR)) WHEN -1 THEN 0 ELSE 
(SUM(AMTACCTCR)-SUM(AMTACCTDR)) END) AS TOTALAMTDR, ACCOUNT_ID, 
ACCTDESCRIPTION, ACCTVALUE,
-        RECORD_ID2, C_BPARTNER_ID, M_PRODUCT_ID, A_ASSET_ID
+        RECORD_ID2, C_BPARTNER_ID, M_PRODUCT_ID, 
A_ASSET_ID,C_TAX_ID,C_PROJECT_ID,C_ACTIVITY_ID,USER1_ID,USER2_ID,C_CAMPAIGN_ID,C_SALESREGION_ID
         FROM FACT_ACCT
         WHERE EXISTS (SELECT 1 FROM C_PERIOD P
                       WHERE P.C_YEAR_ID = ?
@@ -64,7 +64,8 @@
                 WHERE C_ELEMENTVALUE.ACCOUNTTYPE = ?)
         AND AD_ORG_ID = ?
         AND C_ACCTSCHEMA_ID = ?
-        GROUP BY ACCOUNT_ID, ACCTDESCRIPTION, ACCTVALUE, RECORD_ID2, 
C_BPARTNER_ID, M_PRODUCT_ID, A_ASSET_ID
+        GROUP BY ACCOUNT_ID, ACCTDESCRIPTION, ACCTVALUE, RECORD_ID2, 
C_BPARTNER_ID, M_PRODUCT_ID, A_ASSET_ID,
+                 
C_TAX_ID,C_PROJECT_ID,C_ACTIVITY_ID,USER1_ID,USER2_ID,C_CAMPAIGN_ID,C_SALESREGION_ID
       ]]>
     </Sql>
     <Parameter name="c_year_id"/>
@@ -112,7 +113,8 @@
            FACT_ACCT_GROUP_ID,SEQNO, FACTACCTTYPE,
            ACCTDESCRIPTION, ACCTVALUE, C_BPARTNER_ID,
            RECORD_ID2, M_PRODUCT_ID, A_ASSET_ID,
-           DESCRIPTION)
+           DESCRIPTION,C_TAX_ID,C_PROJECT_ID,C_ACTIVITY_ID,
+           USER1_ID,USER2_ID,C_CAMPAIGN_ID,C_SALESREGION_ID)
         VALUES
           ( ?,?,?,
            'Y',now(),?,now(),?,
@@ -123,7 +125,8 @@
            ?,TO_NUMBER(?), 'R',
            ?, ?, ?,
            ?, ?, ?,
-           ?)
+           ?,?,?,?,
+           ?,?,?,?)
       ]]>
     </Sql>
     <Parameter name="fact_acct_id"/>
@@ -153,6 +156,13 @@
     <Parameter name="product"/>
     <Parameter name="asset"/>
     <Parameter name="description"/>
+    <Parameter name="c_tax_id"/>
+    <Parameter name="c_project_id"/>
+    <Parameter name="c_activity_id"/>
+    <Parameter name="user1_id"/>
+    <Parameter name="user2_id"/>
+    <Parameter name="c_campaign_id"/>
+    <Parameter name="c_salesregion_id"/>
   </SqlMethod>
   <SqlMethod name="getEndDate" type="preparedStatement" return="Date">
     <SqlMethodComment></SqlMethodComment>

------------------------------------------------------------------------------
RSA(R) Conference 2012
Mar 27 - Feb 2
Save $400 by Jan. 27
Register now!
http://p.sf.net/sfu/rsa-sfdev2dev2
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to