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
