details: https://code.openbravo.com/erp/devel/pi/rev/ea1e6b9dbf58 changeset: 17869:ea1e6b9dbf58 user: Javier Etxarri <javier.echarri <at> openbravo.com> date: Mon Sep 03 15:25:27 2012 +0200 summary: Fixes issue 21333: Error creating an invoice line of a product with 'price adjustment' and price 0
details: https://code.openbravo.com/erp/devel/pi/rev/2b345d66a957 changeset: 17870:2b345d66a957 user: Javier Etxarri <javier.echarri <at> openbravo.com> date: Tue Sep 04 10:38:42 2012 +0200 summary: Fixes issue 21503: The create lines from pop-up of Goods Receipt do not show the value of the attribute in invoice line details: https://code.openbravo.com/erp/devel/pi/rev/772c1d37becd changeset: 17871:772c1d37becd user: Javier Etxarri <javier.echarri <at> openbravo.com> date: Tue Sep 04 13:46:25 2012 +0200 summary: Fixes issue 21492: "Insert Orphan Line" functionality is not properly working when using PIT pricelist details: https://code.openbravo.com/erp/devel/pi/rev/d3ec564f609b changeset: 17872:d3ec564f609b user: Javier Etxarri <javier.echarri <at> openbravo.com> date: Tue Sep 04 16:50:12 2012 +0200 summary: Fixes issue 21543: Generate Invoice from Receipt shows all price lists details: https://code.openbravo.com/erp/devel/pi/rev/19529696b806 changeset: 17873:19529696b806 user: Javier Etxarri <javier.echarri <at> openbravo.com> date: Thu Sep 06 16:17:21 2012 +0200 summary: Fixes issue 21562: SE_Order_BPartner callout needs to be adapted as Business Partner selector has been changed details: https://code.openbravo.com/erp/devel/pi/rev/5d92fcb2d39f changeset: 17874:5d92fcb2d39f user: Javier Etxarri <javier.echarri <at> openbravo.com> date: Fri Sep 07 10:41:55 2012 +0200 summary: FIxes issue 21575: The function m_inout_create can create a number with a big qty of decimals diffstat: src-db/database/model/functions/M_GET_OFFER_STD_PRICE.xml | 7 +- src-db/database/model/functions/M_INOUT_CREATE.xml | 6 +- src-db/database/sourcedata/AD_PROCESS_PARA.xml | 1 + src-db/database/sourcedata/AD_VAL_RULE.xml | 12 + src/org/openbravo/erpCommon/ad_actionButton/CreateFrom_Shipment_data.xsql | 13 +- src/org/openbravo/erpCommon/ad_actionButton/RMInsertOrphanLine.java | 9 + src/org/openbravo/erpCommon/ad_callouts/SE_Order_BPartner.java | 71 +--------- 7 files changed, 48 insertions(+), 71 deletions(-) diffs (260 lines): diff -r 37976c35e0cb -r 5d92fcb2d39f src-db/database/model/functions/M_GET_OFFER_STD_PRICE.xml --- a/src-db/database/model/functions/M_GET_OFFER_STD_PRICE.xml Fri Sep 07 11:03:34 2012 +0200 +++ b/src-db/database/model/functions/M_GET_OFFER_STD_PRICE.xml Fri Sep 07 10:41:55 2012 +0200 @@ -29,9 +29,11 @@ v_Discount NUMBER; BEGIN v_Price := p_PriceActual; + IF v_Price IS NULL THEN v_Price := 0; END IF; + IF p_Offer_ID IS NOT NULL THEN SELECT FIXED, COALESCE(ADDAMT, 0), @@ -41,10 +43,13 @@ v_Discount FROM M_OFFER WHERE M_OFFER_ID = p_Offer_ID; + IF v_Fixed IS NOT NULL THEN v_Price := v_Fixed; + ELSIF (v_Discount = 100) THEN + v_Price := v_AddAmt; ELSE - v_Price := v_AddAmt +(p_PriceActual/(1-v_Discount/100)) ; + v_Price := v_AddAmt + (p_PriceActual/(1-v_Discount/100)); END IF; END IF; RETURN v_Price; diff -r 37976c35e0cb -r 5d92fcb2d39f src-db/database/model/functions/M_INOUT_CREATE.xml --- a/src-db/database/model/functions/M_INOUT_CREATE.xml Fri Sep 07 11:03:34 2012 +0200 +++ b/src-db/database/model/functions/M_INOUT_CREATE.xml Fri Sep 07 10:41:55 2012 +0200 @@ -60,6 +60,7 @@ v_ResultStr VARCHAR2(2000):=''; v_result NUMBER(1):=1; v_PostResult NUMBER; + v_stdPrecision NUMBER:=2; v_logLines NUMBER:=0; v_isWholeLog BOOLEAN := true; v_Message VARCHAR2(2000):=''; @@ -364,14 +365,15 @@ --MODIFIED BY F.IRIAZABAL v_QtyOrder:=0; IF(ol.M_Product_UOM_ID IS NOT NULL) THEN - SELECT M_PRODUCT_UOM.C_UOM_ID INTO v_ProductUOM + SELECT M_PRODUCT_UOM.C_UOM_ID, C_UOM.stdprecision + INTO v_ProductUOM, v_stdPrecision FROM M_PRODUCT_UOM, C_UOM WHERE M_PRODUCT_UOM.C_UOM_ID=C_UOM.C_UOM_ID AND M_Product_UOM_ID=ol.M_Product_UOM_ID; IF(ol.QtyDelivered=0) THEN v_QtyOrder:=ol.QuantityOrder; ELSIF(v_ProductUOM IS NOT NULL) THEN - v_QtyOrder:=ol.QuantityOrder*v_Qty/ol.QtyOrdered; + v_QtyOrder:=ROUND(ol.QuantityOrder*v_Qty/ol.QtyOrdered,v_stdPrecision); --v_QtyOrder:=C_Uom_Convert(v_Qty, ol.C_UOM_ID, v_ProductUOM, 'Y') ; ELSE v_QtyOrder:=NULL; diff -r 37976c35e0cb -r 5d92fcb2d39f src-db/database/sourcedata/AD_PROCESS_PARA.xml --- a/src-db/database/sourcedata/AD_PROCESS_PARA.xml Fri Sep 07 11:03:34 2012 +0200 +++ b/src-db/database/sourcedata/AD_PROCESS_PARA.xml Fri Sep 07 10:41:55 2012 +0200 @@ -741,6 +741,7 @@ <!--183--> <AD_PROCESS_ID><![CDATA[154]]></AD_PROCESS_ID> <!--183--> <SEQNO><![CDATA[10]]></SEQNO> <!--183--> <AD_REFERENCE_ID><![CDATA[19]]></AD_REFERENCE_ID> +<!--183--> <AD_VAL_RULE_ID><![CDATA[26D8602C48004E1182B46310DF7015AE]]></AD_VAL_RULE_ID> <!--183--> <COLUMNNAME><![CDATA[M_PriceList_Version_ID]]></COLUMNNAME> <!--183--> <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED> <!--183--> <FIELDLENGTH><![CDATA[0]]></FIELDLENGTH> diff -r 37976c35e0cb -r 5d92fcb2d39f src-db/database/sourcedata/AD_VAL_RULE.xml --- a/src-db/database/sourcedata/AD_VAL_RULE.xml Fri Sep 07 11:03:34 2012 +0200 +++ b/src-db/database/sourcedata/AD_VAL_RULE.xml Fri Sep 07 10:41:55 2012 +0200 @@ -1268,6 +1268,18 @@ <!--16C9E72407D94B93968D1E81F32D537D--> <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID> <!--16C9E72407D94B93968D1E81F32D537D--></AD_VAL_RULE> +<!--26D8602C48004E1182B46310DF7015AE--><AD_VAL_RULE> +<!--26D8602C48004E1182B46310DF7015AE--> <AD_VAL_RULE_ID><![CDATA[26D8602C48004E1182B46310DF7015AE]]></AD_VAL_RULE_ID> +<!--26D8602C48004E1182B46310DF7015AE--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--26D8602C48004E1182B46310DF7015AE--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--26D8602C48004E1182B46310DF7015AE--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--26D8602C48004E1182B46310DF7015AE--> <NAME><![CDATA[Price List Version IsSotrx]]></NAME> +<!--26D8602C48004E1182B46310DF7015AE--> <DESCRIPTION><![CDATA[Price List Version IsSotrx]]></DESCRIPTION> +<!--26D8602C48004E1182B46310DF7015AE--> <TYPE><![CDATA[S]]></TYPE> +<!--26D8602C48004E1182B46310DF7015AE--> <CODE><![CDATA[M_PriceList_version_id in (select M_PriceList_version_id from M_PriceList_version lv left join M_PriceList l on l.M_PriceList_id = lv.M_PriceList_id where l.issopricelist = @isSOTrx@ and ad_isorgincluded(@AD_ORG_ID@,l.ad_org_id,@AD_CLIENT_ID@) <> -1)]]></CODE> +<!--26D8602C48004E1182B46310DF7015AE--> <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID> +<!--26D8602C48004E1182B46310DF7015AE--></AD_VAL_RULE> + <!--299FA667CF374AC5ACC74739C3251134--><AD_VAL_RULE> <!--299FA667CF374AC5ACC74739C3251134--> <AD_VAL_RULE_ID><![CDATA[299FA667CF374AC5ACC74739C3251134]]></AD_VAL_RULE_ID> <!--299FA667CF374AC5ACC74739C3251134--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> diff -r 37976c35e0cb -r 5d92fcb2d39f src/org/openbravo/erpCommon/ad_actionButton/CreateFrom_Shipment_data.xsql --- a/src/org/openbravo/erpCommon/ad_actionButton/CreateFrom_Shipment_data.xsql Fri Sep 07 11:03:34 2012 +0200 +++ b/src/org/openbravo/erpCommon/ad_actionButton/CreateFrom_Shipment_data.xsql Fri Sep 07 10:41:55 2012 +0200 @@ -279,7 +279,8 @@ AND C_UOM_CONVERSION.C_UOM_TO_ID = (SELECT C_UOM.C_UOM_ID FROM M_PRODUCT_UOM, C_UOM WHERE M_PRODUCT_UOM_ID = l.M_PRODUCT_UOM_ID AND M_PRODUCT_UOM.C_UOM_ID = C_UOM.C_UOM_ID)))) as SECQTY, l.M_PRODUCT_UOM_ID as SEC_PRODUCT_UOM_ID, (SELECT C_UOM.NAME FROM M_PRODUCT_UOM, C_UOM WHERE M_PRODUCT_UOM_ID = l.M_PRODUCT_UOM_ID AND M_PRODUCT_UOM.C_UOM_ID = C_UOM.C_UOM_ID) as SECUOMSYMBOL, - COALESCE(l.M_PRODUCT_UOM_ID,null,'0') as HAVESEC,'' as HAVESECUOM,'' AS LOCATOR + COALESCE(l.M_PRODUCT_UOM_ID,null,'0') as HAVESEC,'' as HAVESECUOM,'' AS LOCATOR,l.M_ATTRIBUTESETINSTANCE_ID AS M_ATTRIBUTESETINSTANCE_ID, + (SELECT M_ATTRIBUTESETINSTANCE.DESCRIPTION FROM M_ATTRIBUTESETINSTANCE WHERE l.M_ATTRIBUTESETINSTANCE_ID = M_ATTRIBUTESETINSTANCE.M_ATTRIBUTESETINSTANCE_ID) as ATTRIBUTESETINSTANCENAME FROM C_INVOICELINE l left join M_MATCHINV mi on l.C_InvoiceLine_ID=mi.C_InvoiceLine_ID, C_INVOICE i, C_UOM uom, M_PRODUCT p WHERE i.C_INVOICE_ID = l.C_INVOICE_ID @@ -291,7 +292,7 @@ AND l.M_Product_ID=p.M_Product_ID AND l.C_Invoice_ID = ? GROUP BY i.C_Invoice_ID, i.DocumentNo, DateInvoiced, GrandTotal, l.QtyInvoiced, - l.C_UOM_ID,uom.UOMSymbol,l.M_Product_ID,p.NAME, l.C_InvoiceLine_ID,l.Line,l.C_OrderLine_ID, l.DESCRIPTION,l.QUANTITYORDER, l.M_PRODUCT_UOM_ID + l.C_UOM_ID,uom.UOMSymbol,l.M_Product_ID,p.NAME, l.C_InvoiceLine_ID,l.Line,l.C_OrderLine_ID, l.DESCRIPTION,l.QUANTITYORDER, l.M_PRODUCT_UOM_ID,l.M_ATTRIBUTESETINSTANCE_ID HAVING (l.QtyInvoiced-SUM(COALESCE(mi.Qty,0))) <> 0 ORDER BY NAME, l.Line ]]> @@ -396,7 +397,10 @@ AND C_UOM_CONVERSION.C_UOM_TO_ID = (SELECT C_UOM.C_UOM_ID FROM M_PRODUCT_UOM, C_UOM WHERE M_PRODUCT_UOM_ID = l.M_PRODUCT_UOM_ID AND M_PRODUCT_UOM.C_UOM_ID = C_UOM.C_UOM_ID)))) as SECQTY, l.M_PRODUCT_UOM_ID as SEC_PRODUCT_UOM_ID, (SELECT C_UOM.NAME FROM M_PRODUCT_UOM, C_UOM WHERE M_PRODUCT_UOM_ID = l.M_PRODUCT_UOM_ID AND M_PRODUCT_UOM.C_UOM_ID = C_UOM.C_UOM_ID) as SECUOMSYMBOL, - COALESCE(l.M_PRODUCT_UOM_ID,null,'0') as HAVESEC,'' as HAVESECUOM,'' AS LOCATOR + COALESCE(l.M_PRODUCT_UOM_ID,null,'0') as HAVESEC,'' as HAVESECUOM,'' AS LOCATOR, + l.M_ATTRIBUTESETINSTANCE_ID AS M_ATTRIBUTESETINSTANCE_ID, + (SELECT M_ATTRIBUTESETINSTANCE.DESCRIPTION FROM M_ATTRIBUTESETINSTANCE + WHERE l.M_ATTRIBUTESETINSTANCE_ID = M_ATTRIBUTESETINSTANCE.M_ATTRIBUTESETINSTANCE_ID) as ATTRIBUTESETINSTANCENAME FROM C_UOM uom left join C_UOM_TRL uomt on uom.C_UOM_ID = uomt.C_UOM_ID AND uomt.AD_Language = ?, C_INVOICELINE l left join M_MATCHINV mi on l.C_InvoiceLine_ID=mi.C_InvoiceLine_ID, @@ -410,7 +414,8 @@ AND l.M_Product_ID=p.M_Product_ID AND l.C_Invoice_ID = ? GROUP BY i.C_Invoice_ID, i.DocumentNo, DateInvoiced, GrandTotal, l.QtyInvoiced, - l.C_UOM_ID,uom.UOMSymbol, uomt.UOMSymbol,l.M_Product_ID,p.NAME, l.C_InvoiceLine_ID,l.Line,l.C_OrderLine_ID, l.DESCRIPTION, l.QUANTITYORDER, l.M_PRODUCT_UOM_ID + l.C_UOM_ID,uom.UOMSymbol, uomt.UOMSymbol,l.M_Product_ID,p.NAME, l.C_InvoiceLine_ID,l.Line,l.C_OrderLine_ID, + l.DESCRIPTION, l.QUANTITYORDER, l.M_PRODUCT_UOM_ID,l.M_ATTRIBUTESETINSTANCE_ID HAVING (l.QtyInvoiced-SUM(COALESCE(mi.Qty,0))) <> 0 ORDER BY NAME, l.Line ]]> diff -r 37976c35e0cb -r 5d92fcb2d39f src/org/openbravo/erpCommon/ad_actionButton/RMInsertOrphanLine.java --- a/src/org/openbravo/erpCommon/ad_actionButton/RMInsertOrphanLine.java Fri Sep 07 11:03:34 2012 +0200 +++ b/src/org/openbravo/erpCommon/ad_actionButton/RMInsertOrphanLine.java Fri Sep 07 10:41:55 2012 +0200 @@ -86,12 +86,21 @@ newOrderLine.setListPrice(productPrice.getListPrice()); newOrderLine.setPriceLimit(productPrice.getPriceLimit()); newOrderLine.setStandardPrice(productPrice.getStandardPrice()); + if (order.getPriceList().isPriceIncludesTax()) { + newOrderLine.setGrossUnitPrice(productPrice.getStandardPrice()); + newOrderLine.setLineGrossAmount(productPrice.getStandardPrice().multiply(returnedQty) + .negate()); + } } else { BigDecimal unitPrice = new BigDecimal(strUnitPrice); newOrderLine.setUnitPrice(unitPrice); newOrderLine.setListPrice(unitPrice); newOrderLine.setPriceLimit(unitPrice); newOrderLine.setStandardPrice(unitPrice); + if (order.getPriceList().isPriceIncludesTax()) { + newOrderLine.setGrossUnitPrice(unitPrice); + newOrderLine.setLineGrossAmount(unitPrice.multiply(returnedQty).negate()); + } } // tax TaxRate tax = null; diff -r 37976c35e0cb -r 5d92fcb2d39f src/org/openbravo/erpCommon/ad_callouts/SE_Order_BPartner.java --- a/src/org/openbravo/erpCommon/ad_callouts/SE_Order_BPartner.java Fri Sep 07 11:03:34 2012 +0200 +++ b/src/org/openbravo/erpCommon/ad_callouts/SE_Order_BPartner.java Fri Sep 07 10:41:55 2012 +0200 @@ -103,38 +103,12 @@ // BPartner Location FieldProvider[] tdv = null; - int nLocations = 0; - try { - ComboTableData comboTableData = new ComboTableData(info.vars, this, "TABLEDIR", - "C_BPartner_Location_ID", "", "C_BPartner Location - Ship To", Utility.getContext(this, - info.vars, "#AccessibleOrgTree", info.getWindowId()), Utility.getContext(this, - info.vars, "#User_Client", info.getWindowId()), 0); - Utility.fillSQLParameters(this, info.vars, null, comboTableData, info.getWindowId(), ""); - tdv = comboTableData.select(false); - nLocations = tdv.length; - comboTableData = null; - } catch (Exception ex) { - throw new ServletException(ex); + + String strLocation = info.vars.getStringParameter("inpcBpartnerId_LOC"); + if (strLocation != null) { + info.addResult("inpcBpartnerLocationId", strLocation); } - String strLocation = info.vars.getStringParameter("inpcBpartnerId_LOC"); - if (tdv != null && tdv.length > 0) { - info.addSelect("inpcBpartnerLocationId"); - if (strLocation.isEmpty()) { - // If no location is provided, the first one is selected - info.addSelectResult(tdv[0].getField("id"), tdv[0].getField("name"), true); - for (int i = 1; i < tdv.length; i++) { - info.addSelectResult(tdv[i].getField("id"), tdv[i].getField("name"), false); - } - } else { - // If a location is provided, it is selected - for (int i = 0; i < tdv.length; i++) { - info.addSelectResult(tdv[i].getField("id"), tdv[i].getField("name"), tdv[i] - .getField("id").equalsIgnoreCase(strLocation)); - } - } - info.endSelect(); - } // Warehouses FieldProvider[] td = null; @@ -243,38 +217,11 @@ } // Bill to - FieldProvider[] tlv = null; - try { - ComboTableData comboTableData = new ComboTableData(info.vars, this, "TABLE", "", - "C_BPartner Location", "C_BPartner Location - Bill To", Utility.getContext(this, - info.vars, "#AccessibleOrgTree", info.getWindowId()), Utility.getContext(this, - info.vars, "#User_Client", info.getWindowId()), 0); - Utility.fillSQLParameters(this, info.vars, null, comboTableData, info.getWindowId(), ""); - tlv = comboTableData.select(false); - comboTableData = null; - } catch (Exception ex) { - throw new ServletException(ex); + + if (strLocation != null) { + info.addResult("inpbilltoId", strLocation); } - if (tlv != null && tlv.length > 0) { - info.addSelect("inpbilltoId"); - if (strLocation.isEmpty()) { - // If no location is provided, the first one is selected - info.addSelectResult(tlv[0].getField("id"), tlv[0].getField("name"), true); - for (int i = 0; i < tlv.length; i++) { - info.addSelectResult(tlv[i].getField("id"), tlv[i].getField("name"), false); - } - } else { - // If a location is provided, it is selected - for (int i = 0; i < tlv.length; i++) { - info.addSelectResult(tlv[i].getField("id"), tlv[i].getField("name"), tlv[i] - .getField("id").equalsIgnoreCase(strLocation)); - } - } - info.endSelect(); - } else { - info.addResult("inpbilltoId", null); - } // Payment rule info.addResult("inppaymentrule", strPaymentrule); @@ -366,10 +313,6 @@ StringBuilder message = new StringBuilder(); - if (nLocations == 0) { - message.append(Utility.messageBD(this, "NoBPLocation", info.vars.getLanguage())); - } - if (data != null && data.length > 0 && new BigDecimal(data[0].creditavailable).compareTo(BigDecimal.ZERO) < 0 && strIsSOTrx.equals("Y")) { ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Openbravo-commits mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openbravo-commits
