Commit 3b9c0f3e authored by Jérome Perrin's avatar Jérome Perrin

update rules for use with the DeliveryBuilder API


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@3401 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 5ce62250
......@@ -121,19 +121,22 @@ class InvoiceRule(Rule):
new_id = invoice_line_object.getId() + '_' + c.getId()
#LOG('Create Cell', 0, str(new_id))
applied_rule.newContent(id=new_id
, portal_type=invoice_line_type
, delivery_value=c
, deliverable=1
, portal_type = invoice_line_type
, resource = c.price_currency
, delivery_value = c
, deliverable = 1
)
#LOG('After Create Cell', 0, str(new_id))
else:
if invoice_line_object.getUid() not in existing_uid_list:
new_id = invoice_line_object.getId()
#LOG('Create Line', 0, str(new_id))
applied_rule.newContent(id=new_id
, portal_type=invoice_line_type
, delivery_value=invoice_line_object
, deliverable=1
applied_rule.newContent(
id = new_id
, portal_type = invoice_line_type
, delivery_value = invoice_line_object
, resource = c.price_currency
, deliverable = 1
)
#LOG('After Create Line', 0, str(new_id))
# Source, Destination, Quantity, Date, etc. are
......
......@@ -73,7 +73,7 @@ class InvoiceTransactionRule(Rule, XMLMatrix):
return cell
return None
def _getMatchingCell1(self, movement):
def _getMatchingCell_AlternateImpl(self, movement):
"""
Browse all predicates and make sur all dimensions match
An alternate implementation left as example
......@@ -157,11 +157,12 @@ class InvoiceTransactionRule(Rule, XMLMatrix):
else :
simulation_movement = applied_rule.newContent(id=transaction_line.getId()
, portal_type=invoice_transaction_line_type)
#LOG('InvoiceTransactionRule.expand :', 0, repr(( 'movement', simulation_movement, transaction_line.getSource(), transaction_line.getDestination(), (my_invoice_line_simulation.getQuantity() * my_invoice_line_simulation.getPrice()) * transaction_line.getQuantity() )))
simulation_movement._edit(source = transaction_line.getSource()
simulation_movement._edit(
source = transaction_line.getSource()
, destination = transaction_line.getDestination()
, source_section = my_invoice_line_simulation.getSourceSection()
, destination_section = my_invoice_line_simulation.getDestinationSection()
, resource = my_invoice_line_simulation.getResource()
, quantity = (my_invoice_line_simulation.getQuantity() * my_invoice_line_simulation.getPrice())
* transaction_line.getQuantity()
# calculate (quantity * price) * cell_quantity
......
......@@ -66,9 +66,10 @@ class PaymentRule(Rule):
"""
Tests if the rule (still) applies
"""
if 'receivable' in movement.getId() :
if 'receivable' in movement.getId() : ### TODO: expand 'payable' too
parent = movement.getParent()
if parent.getPortalType()=='Applied Rule' and parent.getSpecialiseId()=='default_invoice_transaction_rule':
if parent.getPortalType()=='Applied Rule' \
and parent.getSpecialiseId()=='default_invoice_transaction_rule':
#LOG('PaymentRule.test :', 0, repr(( 'applies with', movement, parent )))
return 1
return 0
......@@ -102,15 +103,19 @@ class PaymentRule(Rule):
receivable_movement = applied_rule.newContent(
type_name = payment_line_type,
id = receivable_id)
# TODO: specify this using a rule in portal_rules
# TODO: generate many movement according to different trade conditions
bank_movement.edit(
resource = my_parent_movement.getResource(),
quantity = my_parent_movement.getQuantity(),
source = 'account/banques_etablissements_financiers', # XXX Not Generic
destination = 'account/banques_etablissements_financiers', # XXX Not Generic
source_section = my_parent_movement.getSourceSection(),
destination_section = my_parent_movement.getDestinationSection(),
)
)
receivable_movement.edit(
resource = my_parent_movement.getResource(),
quantity = - my_parent_movement.getQuantity(),
source = 'account/creance_client', # XXX Not Generic
destination = 'account/dette_fournisseur', # XXX Not Generic
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment