details: https://code.openbravo.com/erp/devel/pi/rev/e00a853ba5c9
changeset: 22656:e00a853ba5c9
user: Salvador Zapata <salvador.zapata <at> gmail.com>
date: Sat Mar 08 15:28:03 2014 -0300
summary: Fixed issue 25739: Price adjustment for multiples
diffstat:
src-db/database/model/functions/M_PROMOTION_ADJUSTMENT.xml | 10 +-
src-db/database/model/tables/M_OFFER.xml | 8 +
src-db/database/sourcedata/AD_COLUMN.xml | 71
++++++++++
src-db/database/sourcedata/AD_ELEMENT.xml | 28 +++
src-db/database/sourcedata/AD_FIELD.xml | 57 ++++++++
src/org/openbravo/erpCommon/businessUtility/PriceAdjustment.java | 37 +++-
6 files changed, 196 insertions(+), 15 deletions(-)
diffs (truncated from 326 to 300 lines):
diff -r aa84f9dc3836 -r e00a853ba5c9
src-db/database/model/functions/M_PROMOTION_ADJUSTMENT.xml
--- a/src-db/database/model/functions/M_PROMOTION_ADJUSTMENT.xml Fri Mar
07 16:42:12 2014 +0000
+++ b/src-db/database/model/functions/M_PROMOTION_ADJUSTMENT.xml Sat Mar
08 15:28:03 2014 -0300
@@ -34,7 +34,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) 2012 Openbravo SLU
+* All portions are Copyright (C) 2014 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************/
@@ -57,11 +57,13 @@
v_origGrossAmt NUMBER;
v_origLineNetAmt NUMBER;
v_totalPromotion NUMBER;
+ v_ismultiple CHAR(1);
+ v_multiple NUMBER;
BEGIN
select fixed, coalesce(addamt, 0), coalesce(discount, 0),
- qty_From, qty_To, apply_next
+ qty_From, qty_To, apply_next, ismultiple, multiple
into v_fixed, v_add, v_discount,
- v_qty_From, v_qty_To, v_apply_next
+ v_qty_From, v_qty_To, v_apply_next, v_ismultiple, v_multiple
from m_offer
where m_offer_id = p_rule_id;
@@ -81,7 +83,7 @@
where c_invoiceline_id = p_line_id;
end if;
- if (v_qty_From is not null and v_qty < v_qty_From) or (v_qty_To is not null
and v_qty > v_qty_To) then
+ if (v_qty_From is not null and v_qty < v_qty_From) or (v_qty_To is not null
and v_qty > v_qty_To) or (v_ismultiple = 'Y' and ((v_multiple is null) or
(v_qty % v_multiple <> 0))) then
return 'Y'; -- rule not applied, apply next one if present
end if;
diff -r aa84f9dc3836 -r e00a853ba5c9 src-db/database/model/tables/M_OFFER.xml
--- a/src-db/database/model/tables/M_OFFER.xml Fri Mar 07 16:42:12 2014 +0000
+++ b/src-db/database/model/tables/M_OFFER.xml Sat Mar 08 15:28:03 2014 -0300
@@ -109,6 +109,14 @@
<default><![CDATA[Y]]></default>
<onCreateDefault><![CDATA['Y']]></onCreateDefault>
</column>
+ <column name="ISMULTIPLE" primaryKey="false" required="true" type="CHAR"
size="1" autoIncrement="false">
+ <default><![CDATA[N]]></default>
+ <onCreateDefault><![CDATA['N']]></onCreateDefault>
+ </column>
+ <column name="MULTIPLE" primaryKey="false" required="false"
type="DECIMAL" autoIncrement="false">
+ <default/>
+ <onCreateDefault/>
+ </column>
<foreign-key foreignTable="AD_CLIENT" name="M_OFFER_AD_CLIENT">
<reference local="AD_CLIENT_ID" foreign="AD_CLIENT_ID"/>
</foreign-key>
diff -r aa84f9dc3836 -r e00a853ba5c9 src-db/database/sourcedata/AD_COLUMN.xml
--- a/src-db/database/sourcedata/AD_COLUMN.xml Fri Mar 07 16:42:12 2014 +0000
+++ b/src-db/database/sourcedata/AD_COLUMN.xml Sat Mar 08 15:28:03 2014 -0300
@@ -231782,6 +231782,41 @@
<!--38820DA540974B4DBA6B63A411A73045-->
<ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
<!--38820DA540974B4DBA6B63A411A73045--></AD_COLUMN>
+<!--388B7AE3A72344F697617991820394FC--><AD_COLUMN>
+<!--388B7AE3A72344F697617991820394FC-->
<AD_COLUMN_ID><![CDATA[388B7AE3A72344F697617991820394FC]]></AD_COLUMN_ID>
+<!--388B7AE3A72344F697617991820394FC-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--388B7AE3A72344F697617991820394FC--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--388B7AE3A72344F697617991820394FC--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--388B7AE3A72344F697617991820394FC--> <NAME><![CDATA[Multiple]]></NAME>
+<!--388B7AE3A72344F697617991820394FC--> <DESCRIPTION><![CDATA[Units per
package]]></DESCRIPTION>
+<!--388B7AE3A72344F697617991820394FC--> <HELP><![CDATA[Units per
package]]></HELP>
+<!--388B7AE3A72344F697617991820394FC-->
<COLUMNNAME><![CDATA[Multiple]]></COLUMNNAME>
+<!--388B7AE3A72344F697617991820394FC-->
<AD_TABLE_ID><![CDATA[800062]]></AD_TABLE_ID>
+<!--388B7AE3A72344F697617991820394FC-->
<AD_REFERENCE_ID><![CDATA[29]]></AD_REFERENCE_ID>
+<!--388B7AE3A72344F697617991820394FC-->
<FIELDLENGTH><![CDATA[6]]></FIELDLENGTH>
+<!--388B7AE3A72344F697617991820394FC--> <ISKEY><![CDATA[N]]></ISKEY>
+<!--388B7AE3A72344F697617991820394FC--> <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--388B7AE3A72344F697617991820394FC-->
<ISMANDATORY><![CDATA[N]]></ISMANDATORY>
+<!--388B7AE3A72344F697617991820394FC-->
<ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--388B7AE3A72344F697617991820394FC-->
<ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--388B7AE3A72344F697617991820394FC--> <SEQNO><![CDATA[290]]></SEQNO>
+<!--388B7AE3A72344F697617991820394FC-->
<ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--388B7AE3A72344F697617991820394FC-->
<ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--388B7AE3A72344F697617991820394FC-->
<ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--388B7AE3A72344F697617991820394FC-->
<AD_ELEMENT_ID><![CDATA[D4911000E900492DBFA9CABBBFDFD849]]></AD_ELEMENT_ID>
+<!--388B7AE3A72344F697617991820394FC-->
<ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--388B7AE3A72344F697617991820394FC-->
<ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--388B7AE3A72344F697617991820394FC-->
<ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--388B7AE3A72344F697617991820394FC-->
<DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--388B7AE3A72344F697617991820394FC-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--388B7AE3A72344F697617991820394FC--> <POSITION><![CDATA[29]]></POSITION>
+<!--388B7AE3A72344F697617991820394FC-->
<ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--388B7AE3A72344F697617991820394FC--> <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--388B7AE3A72344F697617991820394FC-->
<VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--388B7AE3A72344F697617991820394FC-->
<IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION>
+<!--388B7AE3A72344F697617991820394FC-->
<ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
+<!--388B7AE3A72344F697617991820394FC--></AD_COLUMN>
+
<!--390B5858EEB44D1CA30EE290D277118A--><AD_COLUMN>
<!--390B5858EEB44D1CA30EE290D277118A-->
<AD_COLUMN_ID><![CDATA[390B5858EEB44D1CA30EE290D277118A]]></AD_COLUMN_ID>
<!--390B5858EEB44D1CA30EE290D277118A-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -262532,6 +262567,42 @@
<!--739A9DDF905A8F87E040007F010123C7-->
<ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
<!--739A9DDF905A8F87E040007F010123C7--></AD_COLUMN>
+<!--73E2F737D5B24CB4AA2CB06A82A07116--><AD_COLUMN>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<AD_COLUMN_ID><![CDATA[73E2F737D5B24CB4AA2CB06A82A07116]]></AD_COLUMN_ID>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--73E2F737D5B24CB4AA2CB06A82A07116--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--73E2F737D5B24CB4AA2CB06A82A07116--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--73E2F737D5B24CB4AA2CB06A82A07116--> <NAME><![CDATA[Ismultiple]]></NAME>
+<!--73E2F737D5B24CB4AA2CB06A82A07116--> <DESCRIPTION><![CDATA[The discount
will be applied only if the quantity ordered fits to the specified package
quantity or a multiple.]]></DESCRIPTION>
+<!--73E2F737D5B24CB4AA2CB06A82A07116--> <HELP><![CDATA[The discount will be
applied only if the quantity ordered fits to the specified package quantity or
a multiple.]]></HELP>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<COLUMNNAME><![CDATA[Ismultiple]]></COLUMNNAME>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<AD_TABLE_ID><![CDATA[800062]]></AD_TABLE_ID>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<AD_REFERENCE_ID><![CDATA[20]]></AD_REFERENCE_ID>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<FIELDLENGTH><![CDATA[1]]></FIELDLENGTH>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<DEFAULTVALUE><![CDATA[N]]></DEFAULTVALUE>
+<!--73E2F737D5B24CB4AA2CB06A82A07116--> <ISKEY><![CDATA[N]]></ISKEY>
+<!--73E2F737D5B24CB4AA2CB06A82A07116--> <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--73E2F737D5B24CB4AA2CB06A82A07116--> <SEQNO><![CDATA[280]]></SEQNO>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<AD_ELEMENT_ID><![CDATA[D0B3E728B5D44C7AAB3F86F655D1748F]]></AD_ELEMENT_ID>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--73E2F737D5B24CB4AA2CB06A82A07116--> <POSITION><![CDATA[28]]></POSITION>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--73E2F737D5B24CB4AA2CB06A82A07116--> <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION>
+<!--73E2F737D5B24CB4AA2CB06A82A07116-->
<ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
+<!--73E2F737D5B24CB4AA2CB06A82A07116--></AD_COLUMN>
+
<!--742C9B76016A451BA89DFD20AA20E562--><AD_COLUMN>
<!--742C9B76016A451BA89DFD20AA20E562-->
<AD_COLUMN_ID><![CDATA[742C9B76016A451BA89DFD20AA20E562]]></AD_COLUMN_ID>
<!--742C9B76016A451BA89DFD20AA20E562-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r aa84f9dc3836 -r e00a853ba5c9 src-db/database/sourcedata/AD_ELEMENT.xml
--- a/src-db/database/sourcedata/AD_ELEMENT.xml Fri Mar 07 16:42:12 2014 +0000
+++ b/src-db/database/sourcedata/AD_ELEMENT.xml Sat Mar 08 15:28:03 2014 -0300
@@ -31091,6 +31091,20 @@
<!--CFC26B01D54049058E894AE34168EA34--> <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
<!--CFC26B01D54049058E894AE34168EA34--></AD_ELEMENT>
+<!--D0B3E728B5D44C7AAB3F86F655D1748F--><AD_ELEMENT>
+<!--D0B3E728B5D44C7AAB3F86F655D1748F-->
<AD_ELEMENT_ID><![CDATA[D0B3E728B5D44C7AAB3F86F655D1748F]]></AD_ELEMENT_ID>
+<!--D0B3E728B5D44C7AAB3F86F655D1748F-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--D0B3E728B5D44C7AAB3F86F655D1748F--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--D0B3E728B5D44C7AAB3F86F655D1748F--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--D0B3E728B5D44C7AAB3F86F655D1748F-->
<COLUMNNAME><![CDATA[Ismultiple]]></COLUMNNAME>
+<!--D0B3E728B5D44C7AAB3F86F655D1748F--> <NAME><![CDATA[Is multiple]]></NAME>
+<!--D0B3E728B5D44C7AAB3F86F655D1748F--> <PRINTNAME><![CDATA[Is
multiple]]></PRINTNAME>
+<!--D0B3E728B5D44C7AAB3F86F655D1748F--> <DESCRIPTION><![CDATA[The discount
will be applied only if the quantity ordered fits to the specified package
quantity or a multiple.]]></DESCRIPTION>
+<!--D0B3E728B5D44C7AAB3F86F655D1748F--> <HELP><![CDATA[The discount will be
applied only if the quantity ordered fits to the specified package quantity or
a multiple.]]></HELP>
+<!--D0B3E728B5D44C7AAB3F86F655D1748F-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--D0B3E728B5D44C7AAB3F86F655D1748F--> <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
+<!--D0B3E728B5D44C7AAB3F86F655D1748F--></AD_ELEMENT>
+
<!--D152C5117B69491DA37A6EA93FDCA628--><AD_ELEMENT>
<!--D152C5117B69491DA37A6EA93FDCA628-->
<AD_ELEMENT_ID><![CDATA[D152C5117B69491DA37A6EA93FDCA628]]></AD_ELEMENT_ID>
<!--D152C5117B69491DA37A6EA93FDCA628-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -31199,6 +31213,20 @@
<!--D3F8A2A80BDA45B68317DAE306AA077E--> <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
<!--D3F8A2A80BDA45B68317DAE306AA077E--></AD_ELEMENT>
+<!--D4911000E900492DBFA9CABBBFDFD849--><AD_ELEMENT>
+<!--D4911000E900492DBFA9CABBBFDFD849-->
<AD_ELEMENT_ID><![CDATA[D4911000E900492DBFA9CABBBFDFD849]]></AD_ELEMENT_ID>
+<!--D4911000E900492DBFA9CABBBFDFD849-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--D4911000E900492DBFA9CABBBFDFD849--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--D4911000E900492DBFA9CABBBFDFD849--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--D4911000E900492DBFA9CABBBFDFD849-->
<COLUMNNAME><![CDATA[Multiple]]></COLUMNNAME>
+<!--D4911000E900492DBFA9CABBBFDFD849--> <NAME><![CDATA[Units per
package]]></NAME>
+<!--D4911000E900492DBFA9CABBBFDFD849-->
<PRINTNAME><![CDATA[Multiple]]></PRINTNAME>
+<!--D4911000E900492DBFA9CABBBFDFD849--> <DESCRIPTION><![CDATA[Units per
package]]></DESCRIPTION>
+<!--D4911000E900492DBFA9CABBBFDFD849--> <HELP><![CDATA[Units per
package]]></HELP>
+<!--D4911000E900492DBFA9CABBBFDFD849-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--D4911000E900492DBFA9CABBBFDFD849--> <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
+<!--D4911000E900492DBFA9CABBBFDFD849--></AD_ELEMENT>
+
<!--D498E8A6CB6711DDBAC06BA41F5FDE11--><AD_ELEMENT>
<!--D498E8A6CB6711DDBAC06BA41F5FDE11-->
<AD_ELEMENT_ID><![CDATA[D498E8A6CB6711DDBAC06BA41F5FDE11]]></AD_ELEMENT_ID>
<!--D498E8A6CB6711DDBAC06BA41F5FDE11-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r aa84f9dc3836 -r e00a853ba5c9 src-db/database/sourcedata/AD_FIELD.xml
--- a/src-db/database/sourcedata/AD_FIELD.xml Fri Mar 07 16:42:12 2014 +0000
+++ b/src-db/database/sourcedata/AD_FIELD.xml Sat Mar 08 15:28:03 2014 -0300
@@ -192084,6 +192084,34 @@
<!--383FA46EEEE84253B00652BDBF6D8975-->
<EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
<!--383FA46EEEE84253B00652BDBF6D8975--></AD_FIELD>
+<!--3846B544FCE14364B39D309A04EC3994--><AD_FIELD>
+<!--3846B544FCE14364B39D309A04EC3994-->
<AD_FIELD_ID><![CDATA[3846B544FCE14364B39D309A04EC3994]]></AD_FIELD_ID>
+<!--3846B544FCE14364B39D309A04EC3994-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--3846B544FCE14364B39D309A04EC3994--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--3846B544FCE14364B39D309A04EC3994--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--3846B544FCE14364B39D309A04EC3994--> <NAME><![CDATA[Is multiple]]></NAME>
+<!--3846B544FCE14364B39D309A04EC3994--> <DESCRIPTION><![CDATA[The discount
will be applied only if the quantity ordered fits to the specified package
quantity or a multiple.]]></DESCRIPTION>
+<!--3846B544FCE14364B39D309A04EC3994--> <HELP><![CDATA[The discount will be
applied only if the quantity ordered fits to the specified package quantity or
a multiple.]]></HELP>
+<!--3846B544FCE14364B39D309A04EC3994-->
<ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--3846B544FCE14364B39D309A04EC3994-->
<AD_TAB_ID><![CDATA[800079]]></AD_TAB_ID>
+<!--3846B544FCE14364B39D309A04EC3994-->
<AD_COLUMN_ID><![CDATA[73E2F737D5B24CB4AA2CB06A82A07116]]></AD_COLUMN_ID>
+<!--3846B544FCE14364B39D309A04EC3994-->
<IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
+<!--3846B544FCE14364B39D309A04EC3994-->
<ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--3846B544FCE14364B39D309A04EC3994-->
<DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
+<!--3846B544FCE14364B39D309A04EC3994--> <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--3846B544FCE14364B39D309A04EC3994--> <SEQNO><![CDATA[210]]></SEQNO>
+<!--3846B544FCE14364B39D309A04EC3994--> <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--3846B544FCE14364B39D309A04EC3994-->
<ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--3846B544FCE14364B39D309A04EC3994-->
<ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--3846B544FCE14364B39D309A04EC3994-->
<SHOWINRELATION><![CDATA[N]]></SHOWINRELATION>
+<!--3846B544FCE14364B39D309A04EC3994-->
<ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--3846B544FCE14364B39D309A04EC3994-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--3846B544FCE14364B39D309A04EC3994-->
<STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--3846B544FCE14364B39D309A04EC3994-->
<STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--3846B544FCE14364B39D309A04EC3994-->
<ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--3846B544FCE14364B39D309A04EC3994-->
<EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
+<!--3846B544FCE14364B39D309A04EC3994--></AD_FIELD>
+
<!--385EEC17D494423CA7009AD3D3268B4C--><AD_FIELD>
<!--385EEC17D494423CA7009AD3D3268B4C-->
<AD_FIELD_ID><![CDATA[385EEC17D494423CA7009AD3D3268B4C]]></AD_FIELD_ID>
<!--385EEC17D494423CA7009AD3D3268B4C-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -261348,6 +261376,35 @@
<!--C27EF9532A9D41F98AAF8541007CB9B0-->
<EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
<!--C27EF9532A9D41F98AAF8541007CB9B0--></AD_FIELD>
+<!--C29E2A113DF64716AF59941C87BEE5A1--><AD_FIELD>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<AD_FIELD_ID><![CDATA[C29E2A113DF64716AF59941C87BEE5A1]]></AD_FIELD_ID>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--C29E2A113DF64716AF59941C87BEE5A1--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--C29E2A113DF64716AF59941C87BEE5A1--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--C29E2A113DF64716AF59941C87BEE5A1--> <NAME><![CDATA[Units per
package]]></NAME>
+<!--C29E2A113DF64716AF59941C87BEE5A1--> <DESCRIPTION><![CDATA[Units per
package]]></DESCRIPTION>
+<!--C29E2A113DF64716AF59941C87BEE5A1--> <HELP><![CDATA[Units per
package]]></HELP>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<AD_TAB_ID><![CDATA[800079]]></AD_TAB_ID>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<AD_COLUMN_ID><![CDATA[388B7AE3A72344F697617991820394FC]]></AD_COLUMN_ID>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<DISPLAYLOGIC><![CDATA[@Ismultiple@='Y']]></DISPLAYLOGIC>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<DISPLAYLENGTH><![CDATA[2]]></DISPLAYLENGTH>
+<!--C29E2A113DF64716AF59941C87BEE5A1--> <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--C29E2A113DF64716AF59941C87BEE5A1--> <SEQNO><![CDATA[220]]></SEQNO>
+<!--C29E2A113DF64716AF59941C87BEE5A1--> <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<SHOWINRELATION><![CDATA[N]]></SHOWINRELATION>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--C29E2A113DF64716AF59941C87BEE5A1-->
<EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
+<!--C29E2A113DF64716AF59941C87BEE5A1--></AD_FIELD>
+
<!--C29FFBD81441464C9060F1DDB22A31BE--><AD_FIELD>
<!--C29FFBD81441464C9060F1DDB22A31BE-->
<AD_FIELD_ID><![CDATA[C29FFBD81441464C9060F1DDB22A31BE]]></AD_FIELD_ID>
<!--C29FFBD81441464C9060F1DDB22A31BE-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r aa84f9dc3836 -r e00a853ba5c9
src/org/openbravo/erpCommon/businessUtility/PriceAdjustment.java
--- a/src/org/openbravo/erpCommon/businessUtility/PriceAdjustment.java Fri Mar
07 16:42:12 2014 +0000
+++ b/src/org/openbravo/erpCommon/businessUtility/PriceAdjustment.java Sat Mar
08 15:28:03 2014 -0300
@@ -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) 2013 Openbravo SLU
+ * All portions are Copyright (C) 2014 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************
@@ -56,15 +56,22 @@
for (org.openbravo.model.pricing.priceadjustment.PriceAdjustment promo :
getApplicablePriceAdjustments(
orderOrInvoice, qty, product, false)) {
log.debug("promo: " + promo + "- " + promo.getDiscount());
- if (promo.getFixedPrice() != null) {
+ boolean applyDiscount = true;
+ if (promo.isMultiple() && promo.getMultiple() != null
+ && qty.remainder(promo.getMultiple()).compareTo(BigDecimal.ZERO)
!= 0) {
+ applyDiscount = false;
+ }
+ if (promo.getFixedPrice() != null && applyDiscount) {
priceActual = promo.getFixedPrice();
} else {
- priceActual = priceActual
- .subtract(promo.getDiscountAmount())
- .multiply(
-
BigDecimal.ONE.subtract(promo.getDiscount().divide(BigDecimal.valueOf(100),
- precision, BigDecimal.ROUND_HALF_UP)))
- .setScale(precision, BigDecimal.ROUND_HALF_UP);
+ if (applyDiscount) {
+ priceActual = priceActual
+ .subtract(promo.getDiscountAmount())
+ .multiply(
+
BigDecimal.ONE.subtract(promo.getDiscount().divide(BigDecimal.valueOf(100),
+ precision, BigDecimal.ROUND_HALF_UP)))
+ .setScale(precision, BigDecimal.ROUND_HALF_UP);
------------------------------------------------------------------------------
Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works.
Faster operations. Version large binaries. Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits