details: https://code.openbravo.com/erp/devel/pi/rev/64a204bee813 changeset: 21438:64a204bee813 user: Pandeeswari Ramakrishnan <pandeeswari.ramakrishnan <at> openbravo.com> date: Wed Nov 13 20:44:30 2013 +0530 summary: Fixes Issue 24868: Create order process in sales quotation recalculates taxes When creating order from sales quotation the selected taxes of the lines should be maintained instead of recalculating the taxes
details: https://code.openbravo.com/erp/devel/pi/rev/6127b98389d4 changeset: 21439:6127b98389d4 user: Pandeeswari Ramakrishnan <pandeeswari.ramakrishnan <at> openbravo.com> date: Wed Nov 13 18:52:43 2013 +0530 summary: Fixes Issue 24885: The application should not allow to change the product When an invoice line is linked with other document, the product should not be allowed to be updated diffstat: src-db/database/model/triggers/C_INVLINE_CHK_RESTRICTIONS_TRG.xml | 17 ++++++++- src-db/database/sourcedata/AD_MESSAGE.xml | 12 +++++++ src/org/openbravo/erpCommon/ad_process/ConvertQuotationIntoOrder.java | 17 +-------- 3 files changed, 29 insertions(+), 17 deletions(-) diffs (131 lines): diff -r 80b7e9915544 -r 6127b98389d4 src-db/database/model/triggers/C_INVLINE_CHK_RESTRICTIONS_TRG.xml --- a/src-db/database/model/triggers/C_INVLINE_CHK_RESTRICTIONS_TRG.xml Wed Nov 13 17:45:24 2013 +0530 +++ b/src-db/database/model/triggers/C_INVLINE_CHK_RESTRICTIONS_TRG.xml Wed Nov 13 18:52:43 2013 +0530 @@ -29,6 +29,7 @@ v_Currency VARCHAR2(32); v_productname m_product.name%TYPE; v_isgeneric CHAR(1); + v_Issotrx CHAR(1); BEGIN @@ -42,9 +43,9 @@ v_C_INVOICE_ID:=:OLD.C_INVOICE_ID; END IF; SELECT PROCESSED, POSTED, - C_CURRENCY_ID + C_CURRENCY_ID, Issotrx INTO v_Processed, v_Posted, - v_Currency + v_Currency, v_Issotrx FROM C_INVOICE WHERE C_INVOICE_ID=v_C_INVOICE_ID; IF UPDATING THEN @@ -82,6 +83,18 @@ )) THEN RAISE_APPLICATION_ERROR(-20000, '@20501@') ; END IF; + + IF(:NEW.M_Product_ID <> :OLD.M_Product_ID) THEN + IF(:NEW.C_OrderLine_ID IS NOT NULL) THEN + RAISE_APPLICATION_ERROR(-20000, '@ProductDefinedByOrder@') ; + ELSE IF(:NEW.M_InOutLine_ID IS NOT NULL AND v_Issotrx = 'N') THEN + RAISE_APPLICATION_ERROR(-20000, '@20206@') ; + ELSE IF(:NEW.M_InOutLine_ID IS NOT NULL AND v_Issotrx = 'Y') THEN + RAISE_APPLICATION_ERROR(-20000, '@20207@') ; + END IF; + END IF; + END IF; + END IF; END IF; IF((DELETING OR INSERTING) AND v_Processed='Y') THEN RAISE_APPLICATION_ERROR(-20000, '@20501@') ; diff -r 80b7e9915544 -r 6127b98389d4 src-db/database/sourcedata/AD_MESSAGE.xml --- a/src-db/database/sourcedata/AD_MESSAGE.xml Wed Nov 13 17:45:24 2013 +0530 +++ b/src-db/database/sourcedata/AD_MESSAGE.xml Wed Nov 13 18:52:43 2013 +0530 @@ -22144,6 +22144,18 @@ <!--ADAF53CF368D4956BDFF326A9361C750--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N> <!--ADAF53CF368D4956BDFF326A9361C750--></AD_MESSAGE> +<!--ADB89FC2141C45EA91BC13C5D4F07A64--><AD_MESSAGE> +<!--ADB89FC2141C45EA91BC13C5D4F07A64--> <AD_MESSAGE_ID><![CDATA[ADB89FC2141C45EA91BC13C5D4F07A64]]></AD_MESSAGE_ID> +<!--ADB89FC2141C45EA91BC13C5D4F07A64--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--ADB89FC2141C45EA91BC13C5D4F07A64--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--ADB89FC2141C45EA91BC13C5D4F07A64--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--ADB89FC2141C45EA91BC13C5D4F07A64--> <VALUE><![CDATA[20207]]></VALUE> +<!--ADB89FC2141C45EA91BC13C5D4F07A64--> <MSGTEXT><![CDATA[You cannot change the product beacuse it has Good Shipments.]]></MSGTEXT> +<!--ADB89FC2141C45EA91BC13C5D4F07A64--> <MSGTYPE><![CDATA[E]]></MSGTYPE> +<!--ADB89FC2141C45EA91BC13C5D4F07A64--> <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID> +<!--ADB89FC2141C45EA91BC13C5D4F07A64--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N> +<!--ADB89FC2141C45EA91BC13C5D4F07A64--></AD_MESSAGE> + <!--ADF79F75D79A4556900B1C1C8F86BCBA--><AD_MESSAGE> <!--ADF79F75D79A4556900B1C1C8F86BCBA--> <AD_MESSAGE_ID><![CDATA[ADF79F75D79A4556900B1C1C8F86BCBA]]></AD_MESSAGE_ID> <!--ADF79F75D79A4556900B1C1C8F86BCBA--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> diff -r 80b7e9915544 -r 6127b98389d4 src/org/openbravo/erpCommon/ad_process/ConvertQuotationIntoOrder.java --- a/src/org/openbravo/erpCommon/ad_process/ConvertQuotationIntoOrder.java Wed Nov 13 17:45:24 2013 +0530 +++ b/src/org/openbravo/erpCommon/ad_process/ConvertQuotationIntoOrder.java Wed Nov 13 18:52:43 2013 +0530 @@ -20,7 +20,6 @@ package org.openbravo.erpCommon.ad_process; import java.math.BigDecimal; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -35,13 +34,11 @@ import org.openbravo.base.exception.OBException; import org.openbravo.base.provider.OBProvider; import org.openbravo.base.secureApp.VariablesSecureApp; -import org.openbravo.base.session.OBPropertiesProvider; import org.openbravo.client.kernel.RequestContext; import org.openbravo.dal.core.DalUtil; import org.openbravo.dal.core.OBContext; import org.openbravo.dal.service.OBDal; import org.openbravo.dal.service.OBQuery; -import org.openbravo.erpCommon.businessUtility.Tax; import org.openbravo.erpCommon.utility.OBError; import org.openbravo.erpCommon.utility.OBErrorBuilder; import org.openbravo.erpCommon.utility.OBMessageUtils; @@ -54,7 +51,6 @@ import org.openbravo.model.financialmgmt.payment.FIN_PaymentScheduleDetail; import org.openbravo.model.financialmgmt.tax.TaxRate; import org.openbravo.model.pricing.pricelist.PriceListVersion; -import org.openbravo.model.project.Project; import org.openbravo.scheduling.ProcessBundle; import org.openbravo.service.db.CallStoredProcedure; import org.openbravo.service.db.DalBaseProcess; @@ -65,9 +61,6 @@ @Override public void doExecute(ProcessBundle bundle) throws Exception { - String dateFormatString = OBPropertiesProvider.getInstance().getOpenbravoProperties() - .getProperty("dateFormat.java"); - SimpleDateFormat dateFormat = new SimpleDateFormat(dateFormatString); HttpServletRequest request = RequestContext.get().getRequest(); VariablesSecureApp vars = new VariablesSecureApp(request); boolean recalculatePrices = "N".equals(vars.getStringParameter("inprecalculateprices", false, @@ -137,13 +130,8 @@ // Copy line to the new Sales Order OrderLine objCloneOrdLine = (OrderLine) DalUtil.copy(ordLine, false); - Project project = objOrder.getProject(); - String strProjectID = project == null ? "" : project.getId(); - // Recalculate Taxes - String strCTaxID = Tax.get(new DalConnectionProvider(false), ordLine.getProduct().getId(), - dateFormat.format(new Date()), ordLine.getOrganization().getId(), ordLine - .getWarehouse().getId(), ordLine.getSalesOrder().getInvoiceAddress().getId(), - ordLine.getSalesOrder().getPartnerAddress().getId(), strProjectID, true); + + String strCTaxID = objCloneOrdLine.getTax().getId(); TaxRate lineTax = OBDal.getInstance().get(TaxRate.class, strCTaxID); if (lineTax == null) { @@ -152,7 +140,6 @@ } strMessage = strMessage.append(lineNo); } - objCloneOrdLine.setTax(lineTax); // Update the HashMap of the Taxes. HashMap<TaxId, TotalAmount> BigDecimal price = BigDecimal.ZERO; ------------------------------------------------------------------------------ DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk _______________________________________________ Openbravo-commits mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openbravo-commits
