details: https://code.openbravo.com/erp/devel/pi/rev/aed4d4a47cd1 changeset: 35473:aed4d4a47cd1 user: Álvaro Ferraz <alvaro.ferraz <at> openbravo.com> date: Wed Feb 27 10:31:10 2019 +0100 summary: Fixes issue 40257: Cross Store payments & returns project
Disable client/org check in AdvPaymentMngtDao.getNewPaymentDetail() to enable Cross Store payments. Do not check AD_Org_ID and M_Warehouse_ID relation in C_ORDER_POST1 and M_INOUT_POST as this should be managed by the warehouse selector. Enable crossOrgReference in some columns: C_Order.M_Warehouse_ID C_OrderLine.M_Warehouse_ID M_InOut.M_Warehouse_ID C_Order.SalesRep_ID M_InOut.SalesRep_ID C_Invoice.SalesRep_ID diffstat: modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java | 9 +- src-db/database/model/functions/C_ORDER_POST1.xml | 23 +------- src-db/database/model/functions/M_INOUT_POST.xml | 28 +-------- src-db/database/sourcedata/AD_COLUMN.xml | 12 ++-- 4 files changed, 15 insertions(+), 57 deletions(-) diffs (210 lines): diff -r f3bf74e65781 -r aed4d4a47cd1 modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java --- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java Wed Feb 27 12:35:21 2019 +0100 +++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java Wed Feb 27 10:31:10 2019 +0100 @@ -11,7 +11,7 @@ * under the License. * The Original Code is Openbravo ERP. * The Initial Developer of the Original Code is Openbravo SLU - * All portions are Copyright (C) 2010-2018 Openbravo SLU + * All portions are Copyright (C) 2010-2019 Openbravo SLU * All Rights Reserved. * Contributor(s): Enterprise Intelligence Systems (http://www.eintel.com.au). ************************************************************************* @@ -560,7 +560,8 @@ BigDecimal writeoffAmount, boolean isRefund, GLItem glitem, boolean doFlush, String paymentId) { try { - OBContext.setAdminMode(true); + // Don't check organization access to allow Cross Store payments + OBContext.setAdminMode(false); final FIN_PaymentDetail newPaymentDetail = OBProvider.getInstance() .get(FIN_PaymentDetail.class); if (paymentId != null) { @@ -2017,7 +2018,7 @@ boolean isReceipt, Currency currency) { try { - OBContext.setAdminMode(true); + OBContext.setAdminMode(false); final Organization legalEntity = FIN_Utility.getLegalEntityOrg(org); Set<String> orgIds = OBContext.getOBContext() @@ -2137,7 +2138,7 @@ final BusinessPartner businessPartner, final BigDecimal amount, final Currency currency, final boolean isReceipt, final Date toDate) { try { - OBContext.setAdminMode(true); + OBContext.setAdminMode(false); OBCriteria<FIN_Payment> obcFinPayment = OBDal.getInstance().createCriteria(FIN_Payment.class); obcFinPayment.add(Restrictions.eq(FIN_Payment.PROPERTY_PROCESSED, true)); obcFinPayment.add(Restrictions.eq(FIN_Payment.PROPERTY_BUSINESSPARTNER, businessPartner)); diff -r f3bf74e65781 -r aed4d4a47cd1 src-db/database/model/functions/C_ORDER_POST1.xml --- a/src-db/database/model/functions/C_ORDER_POST1.xml Wed Feb 27 12:35:21 2019 +0100 +++ b/src-db/database/model/functions/C_ORDER_POST1.xml Wed Feb 27 10:31:10 2019 +0100 @@ -22,7 +22,7 @@ * under the License. * The Original Code is Openbravo ERP. * The Initial Developer of the Original Code is Openbravo SLU -* All portions are Copyright (C) 2001-2018 Openbravo SLU +* All portions are Copyright (C) 2001-2019 Openbravo SLU * All Rights Reserved. * Contributor(s): ______________________________________. ************************************************************************/ @@ -45,7 +45,6 @@ -- Record Info v_Client_ID VARCHAR2(32); v_Org_ID VARCHAR2(32); - v_Warehouse_Org VARCHAR2(32); v_Org_Name VARCHAR2(60); v_UpdatedBy VARCHAR2(32); v_DocAction VARCHAR(60) ; @@ -307,26 +306,6 @@ END; END IF; - --Check whether warehouse belongs to the organization. - SELECT count(AD_ORG_ID) - INTO v_count - FROM AD_Org_Warehouse - WHERE M_Warehouse_ID=v_M_Warehouse_ID - AND AD_Org_ID = v_Org_ID; - - IF v_count = 0 AND v_IsSOTrx = 'Y' THEN - RAISE_APPLICATION_ERROR(-20000,'@WrongWarehouse@') ; - END IF; - - SELECT AD_Org_ID - INTO v_Warehouse_Org - FROM M_Warehouse - WHERE M_Warehouse_ID = v_M_Warehouse_ID; - - IF(ad_org_isinnaturaltree(v_Warehouse_Org, v_Org_ID, v_Client_ID) = 'N' AND v_isSoTrx = 'N') THEN - RAISE_APPLICATION_ERROR(-20000,'@WrongWarehouse@'); - END IF; - SELECT CASE WHEN (m.ISSOTRX='Y') THEN customer_blocking ELSE vendor_blocking END , CASE WHEN (m.ISSOTRX='Y') THEN so_order_blocking ELSE po_order_blocking END, name, DocAction INTO v_bpartner_blocked, v_orderBlocking, v_bpartner_name, v_DocAction diff -r f3bf74e65781 -r aed4d4a47cd1 src-db/database/model/functions/M_INOUT_POST.xml --- a/src-db/database/model/functions/M_INOUT_POST.xml Wed Feb 27 12:35:21 2019 +0100 +++ b/src-db/database/model/functions/M_INOUT_POST.xml Wed Feb 27 10:31:10 2019 +0100 @@ -22,7 +22,7 @@ * parts created by ComPiere are Copyright (C) ComPiere, Inc.; * All Rights Reserved. * Contributor(s): Openbravo SLU - * Contributions are Copyright (C) 2001-2018 Openbravo, S.L.U. + * Contributions are Copyright (C) 2001-2019 Openbravo, S.L.U. * * Specifically, this derivative work is based upon the following Compiere * file and version. @@ -73,7 +73,6 @@ -- v_Result NUMBER:=1; v_AD_Org_ID VARCHAR2(32); - v_Warehouse_Org VARCHAR2(32); v_AD_Client_ID VARCHAR2(32); v_NextNo VARCHAR2(32); v_Qty NUMBER; @@ -96,7 +95,6 @@ v_ProductName M_Product.name%TYPE; v_reservation_id VARCHAR2(32); v_reservationstock_id VARCHAR2(32); - v_M_Warehouse_ID VARCHAR2(32); v_voidmovementdate M_Inout.MovementDate%TYPE; v_voiddate_acct M_Inout.DateAcct%TYPE; v_bpartner_blocked VARCHAR2(1):='N'; @@ -167,8 +165,8 @@ BEGIN --BODY IF(NOT FINISH_PROCESS) THEN v_PUser:=v_User; - SELECT io.AD_Client_ID, io.AD_Org_ID, io.CreatedBy, io.C_DocType_ID, io.DateAcct, dt.isreturn, io.m_warehouse_id, io.issotrx,docaction - INTO v_AD_Client_ID, v_AD_Org_ID, v_User, v_DocType_ID, v_DateAcct, v_isreturndoctype, v_M_Warehouse_ID, v_isSoTrx,v_DocAction + SELECT io.AD_Client_ID, io.AD_Org_ID, io.CreatedBy, io.C_DocType_ID, io.DateAcct, dt.isreturn, io.issotrx,docaction + INTO v_AD_Client_ID, v_AD_Org_ID, v_User, v_DocType_ID, v_DateAcct, v_isreturndoctype, v_isSoTrx,v_DocAction FROM M_InOut io JOIN c_doctype dt ON io.c_doctype_id = dt.c_doctype_id WHERE io.M_InOut_ID=v_Record_ID; IF(v_PUser IS NOT NULL) THEN @@ -324,26 +322,6 @@ RAISE_APPLICATION_ERROR(-20000, '@InActiveBusinessPartner@'); END IF; - --Check whether warehouse belongs to the organization. - SELECT count(AD_ORG_ID) - INTO v_count - FROM AD_Org_Warehouse - WHERE M_Warehouse_ID=v_M_Warehouse_ID - AND AD_Org_ID = v_AD_Org_ID; - - IF v_count = 0 AND v_isSoTrx = 'Y' THEN - RAISE_APPLICATION_ERROR(-20000,'@WrongWarehouse@'); - END IF; - - SELECT AD_Org_ID - INTO v_Warehouse_Org - FROM M_Warehouse - WHERE M_Warehouse_ID = v_M_Warehouse_ID; - - IF(ad_org_isinnaturaltree(v_Warehouse_Org, v_AD_Org_ID, v_AD_Client_ID) = 'N' AND v_isSoTrx = 'N') THEN - RAISE_APPLICATION_ERROR(-20000,'@WrongWarehouse@'); - END IF; - SELECT CASE WHEN (m.ISSOTRX='Y') THEN customer_blocking ELSE vendor_blocking END, CASE WHEN (m.ISSOTRX='Y') THEN so_goods_blocking ELSE po_goods_blocking END, name, DocAction INTO v_bpartner_blocked, v_goods_blocked, v_bpartner_name, v_DocAction diff -r f3bf74e65781 -r aed4d4a47cd1 src-db/database/sourcedata/AD_COLUMN.xml --- a/src-db/database/sourcedata/AD_COLUMN.xml Wed Feb 27 12:35:21 2019 +0100 +++ b/src-db/database/sourcedata/AD_COLUMN.xml Wed Feb 27 10:31:10 2019 +0100 @@ -32616,7 +32616,7 @@ <!--2186--> <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE> <!--2186--> <ALLOWSORTING><![CDATA[Y]]></ALLOWSORTING> <!--2186--> <ALLOWFILTERING><![CDATA[Y]]></ALLOWFILTERING> -<!--2186--> <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK> +<!--2186--> <ALLOWED_CROSS_ORG_LINK><![CDATA[Y]]></ALLOWED_CROSS_ORG_LINK> <!--2186--></AD_COLUMN> <!--2187--><AD_COLUMN> @@ -33041,7 +33041,7 @@ <!--2202--> <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE> <!--2202--> <ALLOWSORTING><![CDATA[Y]]></ALLOWSORTING> <!--2202--> <ALLOWFILTERING><![CDATA[Y]]></ALLOWFILTERING> -<!--2202--> <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK> +<!--2202--> <ALLOWED_CROSS_ORG_LINK><![CDATA[Y]]></ALLOWED_CROSS_ORG_LINK> <!--2202--></AD_COLUMN> <!--2204--><AD_COLUMN> @@ -33772,7 +33772,7 @@ <!--2223--> <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE> <!--2223--> <ALLOWSORTING><![CDATA[Y]]></ALLOWSORTING> <!--2223--> <ALLOWFILTERING><![CDATA[Y]]></ALLOWFILTERING> -<!--2223--> <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK> +<!--2223--> <ALLOWED_CROSS_ORG_LINK><![CDATA[Y]]></ALLOWED_CROSS_ORG_LINK> <!--2223--></AD_COLUMN> <!--2224--><AD_COLUMN> @@ -60405,7 +60405,7 @@ <!--3512--> <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE> <!--3512--> <ALLOWSORTING><![CDATA[Y]]></ALLOWSORTING> <!--3512--> <ALLOWFILTERING><![CDATA[Y]]></ALLOWFILTERING> -<!--3512--> <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK> +<!--3512--> <ALLOWED_CROSS_ORG_LINK><![CDATA[Y]]></ALLOWED_CROSS_ORG_LINK> <!--3512--></AD_COLUMN> <!--3513--><AD_COLUMN> @@ -66816,7 +66816,7 @@ <!--3798--> <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE> <!--3798--> <ALLOWSORTING><![CDATA[Y]]></ALLOWSORTING> <!--3798--> <ALLOWFILTERING><![CDATA[Y]]></ALLOWFILTERING> -<!--3798--> <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK> +<!--3798--> <ALLOWED_CROSS_ORG_LINK><![CDATA[Y]]></ALLOWED_CROSS_ORG_LINK> <!--3798--></AD_COLUMN> <!--3799--><AD_COLUMN> @@ -121596,7 +121596,7 @@ <!--8771--> <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE> <!--8771--> <ALLOWSORTING><![CDATA[Y]]></ALLOWSORTING> <!--8771--> <ALLOWFILTERING><![CDATA[Y]]></ALLOWFILTERING> -<!--8771--> <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK> +<!--8771--> <ALLOWED_CROSS_ORG_LINK><![CDATA[Y]]></ALLOWED_CROSS_ORG_LINK> <!--8771--></AD_COLUMN> <!--8772--><AD_COLUMN> _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits