From d838b301c45d44b6fb3e06b2ea7f102a6e98b229 Mon Sep 17 00:00:00 2001 From: Romain Courteaud <romain@nexedi.com> Date: Thu, 1 Sep 2005 13:32:03 +0000 Subject: [PATCH] InvoiceRule and DeliveryRule seems to be identical. Keep it for compatibility only. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@3719 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5/Document/InvoiceRule.py | 81 +++------------------------- 1 file changed, 8 insertions(+), 73 deletions(-) diff --git a/product/ERP5/Document/InvoiceRule.py b/product/ERP5/Document/InvoiceRule.py index 461d424183..ae3071a93d 100755 --- a/product/ERP5/Document/InvoiceRule.py +++ b/product/ERP5/Document/InvoiceRule.py @@ -36,9 +36,8 @@ from zLOG import LOG class InvoiceRule(DeliveryRule): """ - Invoice Rule object make sure an Invoice in the simulation - is consistent with the real invoice - WARNING: what to do with movement split ? + InvoiceRule and DeliveryRule seems to be identical. + Keep it for compatibility only. """ # CMF Type Definition @@ -61,75 +60,11 @@ class InvoiceRule(DeliveryRule): # Simulation workflow security.declareProtected(Permissions.ModifyPortalContent, 'expand') - def expand(self, applied_rule, **kw): + def expand(self, applied_rule, + movement_type_method='getPortalInvoiceMovementTypeList', **kw): """ - Expands the current movement downward. - - -> new status -> expanded - - An applied rule can be expanded only if its parent movement - is expanded. + Call expand defined on DeliveryRule. """ - invoice_line_type = 'Simulation Movement' - # Get the invoice where we come from - my_invoice = applied_rule.getDefaultCausalityValue() - # Only expand if my_invoice is not None and - # state is not 'confirmed' - if my_invoice is not None: - # First, check each contained movement and make - # a list of invoice_line ids which do not need to be copied - # eventually delete movement which do not exist anylonger - existing_uid_list = [] - movement_type_list = applied_rule.getPortalMovementTypeList() - # non generic - invoice_movement_type_list = \ - applied_rule.getPortalInvoiceMovementTypeList() - for movement in applied_rule.contentValues( - filter={'portal_type':movement_type_list}): - invoice_element = movement.getDeliveryValue( - portal_type=invoice_movement_type_list) - - if (invoice_element is None) or\ - (invoice_element.hasCellContent()) or\ - (len(invoice_element.getDeliveryRelatedValueList()) > 1): - # Our invoice_element is already related - # to another simulation movement - # Delete ourselve - # movement.flushActivity(invoke=0) - # XXX Make sure this is not deleted if already in delivery - applied_rule._delObject(movement.getId()) - else: - existing_uid_list_append(invoice_element.getUid()) - # Copy each movement (line or cell) from the invoice - # non generic - for invoice_line_object in my_delivery.getMovementList( - portal_type=self.getPortalInvoiceMovementTypeList()): - try: - # Only create if orphaned movement - if invoice_line_object.getUid() not in existing_uid_list: - # Generate a nicer ID - if invoice_line_object.getParentUid() ==\ - invoice_line_object.getExplanationUid(): - # We are on a line - new_id = invoice_line_object.getId() - else: - # On a cell - new_id = "%s_%s" % (invoice_line_object.getParentId(), - invoice_line_object.getId()) - # Generate the simulation movement - new_sim_mvt = applied_rule.newContent( - portal_type=invoice_line_type, - id=new_id, - order_value=invoice_line_object, - delivery_value=invoice_line_object, - # XXX Do we need to copy the quantity - # Why not the resource, the variation,... - quantity=invoice_line_object.getQuantity(), - delivery_ratio=1, - deliverable=1) - except AttributeError: - LOG('ERP5: WARNING', 0, - 'AttributeError during expand on invoice line %s' \ - % invoice_line_object.absolute_url()) - # Pass to base class - Rule.expand(self, applied_rule, **kw) + DeliveryRule.expand(self, applied_rule, + movement_type_method=movement_type_method, + **kw) -- 2.30.9