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

Reply via email to