[Erp5-report] r39021 jerome - in /erp5/trunk/products/ERP5: Document/ tests/
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Oct 11 13:43:12 CEST 2010
Author: jerome
Date: Mon Oct 11 13:43:11 2010
New Revision: 39021
URL: http://svn.erp5.org?rev=39021&view=rev
Log:
support setting asset_debit and asset_credit if one of them is empty
Modified:
erp5/trunk/products/ERP5/Document/Movement.py
erp5/trunk/products/ERP5/tests/testAmount.py
Modified: erp5/trunk/products/ERP5/Document/Movement.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Movement.py?rev=39021&r1=39020&r2=39021&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Movement.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/Movement.py [utf8] Mon Oct 11 13:43:11 2010
@@ -865,6 +865,20 @@ class Movement(XMLObject, Amount, Compos
quantity += (destination_debit - destination_credit)
kw['quantity'] = quantity
kw['cancellation_amount'] = (destination_credit < 0 or destination_debit < 0)
+
+ # If both asset debit and asset credit are passed, we have to take care not
+ # to erase the asset price if one of them is unset.
+ if kw.get('source_asset_debit') or kw.get('source_asset_credit'):
+ if kw.get('source_asset_debit') in (None, ''):
+ kw.pop('source_asset_debit', None)
+ if kw.get('source_asset_credit') in (None, ''):
+ kw.pop('source_asset_credit', None)
+ if kw.get('destination_asset_debit') or kw.get('destination_asset_credit'):
+ if kw.get('destination_asset_debit') in (None, ''):
+ kw.pop('destination_asset_debit', None)
+ if kw.get('destination_asset_credit') in (None, ''):
+ kw.pop('destination_asset_credit', None)
+
if not edit_order:
edit_order = ('variation_category_list', )
return XMLObject._edit(self, edit_order=edit_order, **kw)
Modified: erp5/trunk/products/ERP5/tests/testAmount.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testAmount.py?rev=39021&r1=39020&r2=39021&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testAmount.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testAmount.py [utf8] Mon Oct 11 13:43:11 2010
@@ -355,6 +355,17 @@ class TestMovement(ERP5TypeTestCase):
self.assertEquals(0.0, mvt.getSourceAssetDebit())
self.assertEquals(200, mvt.getSourceDebit())
+ def testEditSourceAssetDebitAndCredit(self):
+ mvt = self._makeOne('mvt')
+ mvt.edit(source_asset_debit=100, source_asset_credit=None)
+ self.assertEquals(100, mvt.getSourceAssetDebit())
+ mvt.edit(source_asset_debit=None, source_asset_credit=100)
+ self.assertEquals(100, mvt.getSourceAssetCredit())
+ mvt.edit(source_asset_debit=100, source_asset_credit='')
+ self.assertEquals(100, mvt.getSourceAssetDebit())
+ mvt.edit(source_asset_debit='', source_asset_credit=100)
+ self.assertEquals(100, mvt.getSourceAssetCredit())
+
def testDestinationAssetCredit(self):
mvt = self._makeOne('mvt')
mvt.edit(destination_asset_credit=100)
@@ -381,6 +392,17 @@ class TestMovement(ERP5TypeTestCase):
self.assertEquals(0.0, mvt.getDestinationAssetDebit())
self.assertEquals(200, mvt.getDestinationDebit())
+ def testEditDestinationAssetDebitAndCredit(self):
+ mvt = self._makeOne('mvt')
+ mvt.edit(destination_asset_debit=100, destination_asset_credit=None)
+ self.assertEquals(100, mvt.getDestinationAssetDebit())
+ mvt.edit(destination_asset_debit=None, destination_asset_credit=100)
+ self.assertEquals(100, mvt.getDestinationAssetCredit())
+ mvt.edit(destination_asset_debit=100, destination_asset_credit='')
+ self.assertEquals(100, mvt.getDestinationAssetDebit())
+ mvt.edit(destination_asset_debit='', destination_asset_credit=100)
+ self.assertEquals(100, mvt.getDestinationAssetCredit())
+
def testCancellationAmountGetDestinationCredit(self):
mvt = self._makeOne('mvt')
mvt.setCancellationAmount(True)
More information about the Erp5-report
mailing list