Commit 2b76f25e authored by Yoshinori Okuji's avatar Yoshinori Okuji

Use portal methods instead of global variables.


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@1836 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 184792eb
...@@ -32,7 +32,6 @@ from AccessControl import ClassSecurityInfo ...@@ -32,7 +32,6 @@ from AccessControl import ClassSecurityInfo
from Products.CMFCore.WorkflowCore import WorkflowAction from Products.CMFCore.WorkflowCore import WorkflowAction
from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
from Products.ERP5.Document.DeliveryLine import DeliveryLine from Products.ERP5.Document.DeliveryLine import DeliveryLine
from Products.ERP5.ERP5Globals import balance_transaction_line_type_list
from Products.ERP5.Document.Amount import Amount from Products.ERP5.Document.Amount import Amount
from zLOG import LOG from zLOG import LOG
...@@ -202,7 +201,7 @@ Une ligne tarifaire.""" ...@@ -202,7 +201,7 @@ Une ligne tarifaire."""
security.declarePrivate('_setSource') security.declarePrivate('_setSource')
def _setSource(self, value): def _setSource(self, value):
self._setCategoryMembership('source', value, base=0) self._setCategoryMembership('source', value, base=0)
if self.getPortalType() not in balance_transaction_line_type_list: if self.getPortalType() not in self.getPortalBalanceTransactionLineTypeList():
source = self.restrictedTraverse(value) source = self.restrictedTraverse(value)
destination = self.getDestination() destination = self.getDestination()
mirror_list = source.getDestinationList() mirror_list = source.getDestinationList()
...@@ -220,7 +219,7 @@ Une ligne tarifaire.""" ...@@ -220,7 +219,7 @@ Une ligne tarifaire."""
security.declarePrivate('_setDestination') security.declarePrivate('_setDestination')
def _setDestination(self, value): def _setDestination(self, value):
if self.getPortalType() not in balance_transaction_line_type_list: if self.getPortalType() not in self.getPortalBalanceTransactionLineTypeList():
self._setCategoryMembership('destination', value, base=0) self._setCategoryMembership('destination', value, base=0)
destination = self.restrictedTraverse(value) destination = self.restrictedTraverse(value)
source = self.getSource() source = self.getSource()
......
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
from AccessControl import ClassSecurityInfo from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
from Products.ERP5.Document.Rule import Rule from Products.ERP5.Document.Rule import Rule
from Products.ERP5.ERP5Globals import movement_type_list, order_movement_type_list, reserved_inventory_state_list, current_inventory_state_list, draft_order_state
from DateTime import DateTime from DateTime import DateTime
from copy import deepcopy from copy import deepcopy
from string import lower from string import lower
...@@ -462,6 +461,6 @@ An ERP5 Rule...""" ...@@ -462,6 +461,6 @@ An ERP5 Rule..."""
def isDeliverable(self, m): def isDeliverable(self, m):
return 1 return 1
# XXX ? # XXX ?
if m.getSimulationState() in draft_order_state: if m.getSimulationState() in self.getPortalDraftOrderStateList():
return 0 return 0
return 1 return 1
...@@ -38,8 +38,7 @@ from Products.ERP5Type.Base import TempBase ...@@ -38,8 +38,7 @@ from Products.ERP5Type.Base import TempBase
from Products.ERP5.Document.Amount import Amount from Products.ERP5.Document.Amount import Amount
from Products.ERP5.ERP5Globals import resource_type_list, variation_type_list, \ from Products.CMFCore.Expression import Expression
column_base_category_list, line_base_category_list, tab_base_category_list
from zLOG import LOG from zLOG import LOG
...@@ -141,7 +140,7 @@ class AssortedResource(TransformedResource): ...@@ -141,7 +140,7 @@ class AssortedResource(TransformedResource):
'description' : "", 'description' : "",
'type' : 'tokens', 'type' : 'tokens',
'acquisition_base_category' : ('resource',), 'acquisition_base_category' : ('resource',),
'acquisition_portal_type' : resource_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalResourceTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 0, 'acquisition_mask_value' : 0,
'acquisition_sync_value' : 0, 'acquisition_sync_value' : 0,
...@@ -252,14 +251,14 @@ identify a bank account.""" ...@@ -252,14 +251,14 @@ identify a bank account."""
column = None column = None
line = None line = None
sorted_list = [None, None] sorted_list = [None, None]
for category in column_base_category_list: for category in self.getPortalColumnBaseCategoryList():
if category in base_category_list: if category in base_category_list:
if column is None: if column is None:
column = category column = category
else: else:
sorted_list.append(category) sorted_list.append(category)
base_category_list.remove(category) base_category_list.remove(category)
for category in line_base_category_list: for category in self.getPortalLineBaseCategoryList():
if category in base_category_list: if category in base_category_list:
if line is None: if line is None:
line = category line = category
...@@ -640,7 +639,7 @@ identify a bank account.""" ...@@ -640,7 +639,7 @@ identify a bank account."""
variation_base_category_list, variation, base=1) variation_base_category_list, variation, base=1)
# and update the price with the variation price if necessary # and update the price with the variation price if necessary
for resource_variation in self.getValueList( for resource_variation in self.getValueList(
variation_base_category_list, portal_type=variation_type_list): variation_base_category_list, portal_type=self.getPortalVariationTypeList()):
if resource_variation.hasDefaultBasePrice(): if resource_variation.hasDefaultBasePrice():
new_base_price = resource_variation.getBasePrice() new_base_price = resource_variation.getBasePrice()
try: try:
...@@ -713,7 +712,7 @@ identify a bank account.""" ...@@ -713,7 +712,7 @@ identify a bank account."""
self.portal_categories.setCategoryMembership(line_item, base_category_list, self.portal_categories.setCategoryMembership(line_item, base_category_list,
mapped_value.getCategoryMembershipList(base_category_list, base=1), base=1) mapped_value.getCategoryMembershipList(base_category_list, base=1), base=1)
for resource_variation in mapped_value.getValueList(base_category_list, for resource_variation in mapped_value.getValueList(base_category_list,
portal_type=variation_type_list): portal_type=self.getPortalVariationTypeList()):
if resource_variation.hasDefaultBasePrice(): if resource_variation.hasDefaultBasePrice():
new_base_price = resource_variation.getBasePrice() new_base_price = resource_variation.getBasePrice()
try: try:
......
This diff is collapsed.
...@@ -34,7 +34,6 @@ from Products.CMFCore.WorkflowCore import WorkflowAction ...@@ -34,7 +34,6 @@ from Products.CMFCore.WorkflowCore import WorkflowAction
from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
from Products.ERP5Type.Base import Base from Products.ERP5Type.Base import Base
from Products.ERP5.ERP5Globals import current_inventory_state_list, target_inventory_state_list
from Products.ERP5.Document.OrderLine import OrderLine from Products.ERP5.Document.OrderLine import OrderLine
from Products.ERP5.Document.Movement import Movement from Products.ERP5.Document.Movement import Movement
from Products.ERP5.Document.SetMappedValue import SetMappedValue from Products.ERP5.Document.SetMappedValue import SetMappedValue
...@@ -305,7 +304,7 @@ Une ligne tarifaire.""" ...@@ -305,7 +304,7 @@ Une ligne tarifaire."""
""" """
Take into account efficiency in converted target quantity Take into account efficiency in converted target quantity
""" """
if self.getSimulationState() in target_inventory_state_list: if self.getSimulationState() in self.getPortalTargetInventoryStateList():
# When an order is delivered, the target quantity should be considered # When an order is delivered, the target quantity should be considered
# rather than the quantity # rather than the quantity
return Movement.getNetConvertedTargetQuantity(self) return Movement.getNetConvertedTargetQuantity(self)
...@@ -317,7 +316,7 @@ Une ligne tarifaire.""" ...@@ -317,7 +316,7 @@ Une ligne tarifaire."""
""" """
Take into account efficiency in converted target quantity Take into account efficiency in converted target quantity
""" """
if self.getSimulationState() in current_inventory_state_list: if self.getSimulationState() in self.getPortalCurrentInventoryStateList():
# When an order is delivered, the target quantity should be considered # When an order is delivered, the target quantity should be considered
# rather than the quantity # rather than the quantity
return Movement.getTargetStartDate(self) return Movement.getTargetStartDate(self)
...@@ -329,7 +328,7 @@ Une ligne tarifaire.""" ...@@ -329,7 +328,7 @@ Une ligne tarifaire."""
""" """
Take into account efficiency in converted target quantity Take into account efficiency in converted target quantity
""" """
if self.getSimulationState() in current_inventory_state_list: if self.getSimulationState() in self.getPortalCurrentInventoryStateList():
# When an order is delivered, the target quantity should be considered # When an order is delivered, the target quantity should be considered
# rather than the quantity # rather than the quantity
return Movement.getTargetStopDate(self) return Movement.getTargetStopDate(self)
......
...@@ -36,7 +36,6 @@ from Products.ERP5Type.XMLMatrix import XMLMatrix ...@@ -36,7 +36,6 @@ from Products.ERP5Type.XMLMatrix import XMLMatrix
from Products.ERP5Type.XMLObject import XMLObject from Products.ERP5Type.XMLObject import XMLObject
from Products.ERP5Type.Base import Base from Products.ERP5Type.Base import Base
from Products.ERP5.ERP5Globals import current_inventory_state_list, target_inventory_state_list
from Products.ERP5.Document.Movement import Movement from Products.ERP5.Document.Movement import Movement
from Products.ERP5.Variated import Variated from Products.ERP5.Variated import Variated
...@@ -378,7 +377,7 @@ Une ligne tarifaire.""" ...@@ -378,7 +377,7 @@ Une ligne tarifaire."""
Take into account efficiency in converted target quantity Take into account efficiency in converted target quantity
Maybe we should only use target if isDivergent Maybe we should only use target if isDivergent
""" """
if self.getSimulationState() in target_inventory_state_list: if self.getSimulationState() in self.getPortalTargetInventoryStateList():
# When an order is delivered, the target quantity should be considered # When an order is delivered, the target quantity should be considered
# rather than the quantity # rather than the quantity
return Movement.getNetConvertedTargetQuantity(self) return Movement.getNetConvertedTargetQuantity(self)
...@@ -390,7 +389,7 @@ Une ligne tarifaire.""" ...@@ -390,7 +389,7 @@ Une ligne tarifaire."""
""" """
Take into account efficiency in converted target quantity Take into account efficiency in converted target quantity
""" """
if self.getSimulationState() in current_inventory_state_list: if self.getSimulationState() in self.getPortalCurrentInventoryStateList():
# When an order is delivered, the target quantity should be considered # When an order is delivered, the target quantity should be considered
# rather than the quantity # rather than the quantity
return Movement.getTargetStartDate(self) return Movement.getTargetStartDate(self)
...@@ -402,7 +401,7 @@ Une ligne tarifaire.""" ...@@ -402,7 +401,7 @@ Une ligne tarifaire."""
""" """
Take into account efficiency in converted target quantity Take into account efficiency in converted target quantity
""" """
if self.getSimulationState() in current_inventory_state_list: if self.getSimulationState() in self.getPortalCurrentInventoryStateList():
# When an order is delivered, the target quantity should be considered # When an order is delivered, the target quantity should be considered
# rather than the quantity # rather than the quantity
return Movement.getTargetStopDate(self) return Movement.getTargetStopDate(self)
......
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
from AccessControl import ClassSecurityInfo from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
from Products.ERP5.Document.Rule import Rule from Products.ERP5.Document.Rule import Rule
from Products.ERP5.ERP5Globals import movement_type_list, order_movement_type_list, draft_order_state
from zLOG import LOG from zLOG import LOG
...@@ -143,8 +142,8 @@ An ERP5 Rule...""" ...@@ -143,8 +142,8 @@ An ERP5 Rule..."""
# a list of delivery ids which do not need to be copied # a list of delivery ids which do not need to be copied
# eventually delete movement which do not exist anylonger # eventually delete movement which do not exist anylonger
existing_uid_list = [] existing_uid_list = []
for movement in applied_rule.contentValues(filter={'portal_type':movement_type_list}): for movement in applied_rule.contentValues(filter={'portal_type':applied_rule.getPortalMovementTypeList()}):
delivery_value = movement.getDeliveryValue(portal_type=order_movement_type_list) delivery_value = movement.getDeliveryValue(portal_type=applied_rule.getPortalOrderMovementTypeList())
if delivery_value is None: if delivery_value is None:
movement.flushActivity(invoke=0) movement.flushActivity(invoke=0)
applied_rule._delObject(movement.getId()) # XXXX Make sure this is not deleted if already in delivery applied_rule._delObject(movement.getId()) # XXXX Make sure this is not deleted if already in delivery
...@@ -171,7 +170,7 @@ An ERP5 Rule...""" ...@@ -171,7 +170,7 @@ An ERP5 Rule..."""
existing_uid_list += [delivery_value.getUid()] existing_uid_list += [delivery_value.getUid()]
# Copy each movement (line or cell) from the delivery is that # Copy each movement (line or cell) from the delivery is that
for delivery_line_object in my_delivery.contentValues(filter={'portal_type':movement_type_list}): for delivery_line_object in my_delivery.contentValues(filter={'portal_type':applied_rule.getPortalMovementTypeList()}):
try: try:
if delivery_line_object.hasCellContent(): if delivery_line_object.hasCellContent():
for c in delivery_line_object.getCellValueList(): for c in delivery_line_object.getCellValueList():
...@@ -267,6 +266,6 @@ An ERP5 Rule...""" ...@@ -267,6 +266,6 @@ An ERP5 Rule..."""
return 1 return 1
def isDeliverable(self, m): def isDeliverable(self, m):
if m.getSimulationState() in draft_order_state: if m.getSimulationState() in m.getPortalDraftOrderState():
return 0 return 0
return 1 return 1
...@@ -30,8 +30,6 @@ from Globals import InitializeClass, PersistentMapping ...@@ -30,8 +30,6 @@ from Globals import InitializeClass, PersistentMapping
from Acquisition import aq_base, aq_inner, aq_parent, aq_self from Acquisition import aq_base, aq_inner, aq_parent, aq_self
from AccessControl import ClassSecurityInfo from AccessControl import ClassSecurityInfo
from Products.ERP5.ERP5Globals import current_inventory_state_list
from Products.CMFCore.WorkflowCore import WorkflowAction from Products.CMFCore.WorkflowCore import WorkflowAction
from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
...@@ -195,7 +193,7 @@ Une ligne tarifaire.""" ...@@ -195,7 +193,7 @@ Une ligne tarifaire."""
variation_text = self.getVariationText(), variation_text = self.getVariationText(),
node = self.getDestination(), node = self.getDestination(),
section_category = self.getDestinationSection(), # We want to consolidate section_category = self.getDestinationSection(), # We want to consolidate
simulation_state = current_inventory_state_list) simulation_state = self.getPortalCurrentInventoryStateList())
inventory = self.getInventory() inventory = self.getInventory()
if current_inventory in (None, ''): if current_inventory in (None, ''):
current_inventory = 0.0 current_inventory = 0.0
......
...@@ -30,8 +30,6 @@ from Globals import InitializeClass, PersistentMapping ...@@ -30,8 +30,6 @@ from Globals import InitializeClass, PersistentMapping
from AccessControl import ClassSecurityInfo from AccessControl import ClassSecurityInfo
from Acquisition import aq_base, aq_inner, aq_parent, aq_self from Acquisition import aq_base, aq_inner, aq_parent, aq_self
from Products.ERP5.ERP5Globals import current_inventory_state_list
from Products.CMFCore.WorkflowCore import WorkflowAction from Products.CMFCore.WorkflowCore import WorkflowAction
from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
from Products.ERP5Type.XMLMatrix import XMLMatrix from Products.ERP5Type.XMLMatrix import XMLMatrix
...@@ -183,7 +181,7 @@ Une ligne tarifaire.""" ...@@ -183,7 +181,7 @@ Une ligne tarifaire."""
variation_text = self.getVariationText(), variation_text = self.getVariationText(),
node = self.getDestination(), node = self.getDestination(),
section_category = self.getDestinationSection(), section_category = self.getDestinationSection(),
simulation_state = current_inventory_state_list) simulation_state = self.getPortalCurrentInventoryStateList())
inventory = self.getInventory() inventory = self.getInventory()
if current_inventory in (None, ''): if current_inventory in (None, ''):
current_inventory = 0.0 current_inventory = 0.0
......
...@@ -43,7 +43,6 @@ from Products.CMFCore.WorkflowCore import WorkflowMethod ...@@ -43,7 +43,6 @@ from Products.CMFCore.WorkflowCore import WorkflowMethod
from Products.CMFCore.utils import getToolByName from Products.CMFCore.utils import getToolByName
from Products.ERP5.Document.Immobilisation import Immobilisation from Products.ERP5.Document.Immobilisation import Immobilisation
#from Products.ERP5.Document.AmortisationRule import AmortisationRule #from Products.ERP5.Document.AmortisationRule import AmortisationRule
from Products.ERP5.ERP5Globals import movement_type_list
from zLOG import LOG from zLOG import LOG
...@@ -688,7 +687,7 @@ Items in ERP5 are intended to provide a way to track objects.""" ...@@ -688,7 +687,7 @@ Items in ERP5 are intended to provide a way to track objects."""
raw_list = self.getAggregateRelatedValueList() raw_list = self.getAggregateRelatedValueList()
delivery_list = [] delivery_list = []
for movement in raw_list: for movement in raw_list:
if movement.getPortalType() in movement_type_list: if movement.getPortalType() in self.getPortalMovementTypeList():
date = movement.getStopDate() date = movement.getStopDate()
if date is None: if date is None:
try: try:
......
...@@ -32,7 +32,6 @@ from Products.CMFCore.utils import getToolByName ...@@ -32,7 +32,6 @@ from Products.CMFCore.utils import getToolByName
from Products.CMFCore.WorkflowCore import WorkflowMethod from Products.CMFCore.WorkflowCore import WorkflowMethod
from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
from Products.ERP5Type.Base import Base from Products.ERP5Type.Base import Base
from Products.ERP5.ERP5Globals import movement_type_list, draft_order_state, planned_order_state
from Products.ERP5.Document.Delivery import Delivery from Products.ERP5.Document.Delivery import Delivery
...@@ -120,11 +119,11 @@ An order...""" ...@@ -120,11 +119,11 @@ An order..."""
def _edit(self, REQUEST=None, force_update = 0, **kw): def _edit(self, REQUEST=None, force_update = 0, **kw):
Delivery._edit(self, REQUEST=REQUEST, force_update = force_update, **kw) Delivery._edit(self, REQUEST=REQUEST, force_update = force_update, **kw)
# We must expand our applied rule only if not confirmed # We must expand our applied rule only if not confirmed
if self.getSimulationState() in planned_order_state: if self.getSimulationState() in self.getPortalPlannedOrderStateList():
self.updateAppliedRule() # This should be implemented with the interaction tool rather than with this hard coding self.updateAppliedRule() # This should be implemented with the interaction tool rather than with this hard coding
def updateAppliedRule(self): def updateAppliedRule(self):
if self.getSimulationState() not in draft_order_state: if self.getSimulationState() not in self.getPortalDraftOrderStateList():
# Nothing to do # Nothing to do
self._createOrderRule() self._createOrderRule()
...@@ -288,7 +287,7 @@ An order...""" ...@@ -288,7 +287,7 @@ An order..."""
portal_type = 'Simulation Movement'): portal_type = 'Simulation Movement'):
# And apply # And apply
getattr(my_simulation_movement, method_id)() getattr(my_simulation_movement, method_id)()
for m in self.contentValues(filter={'portal_type': movement_type_list}): for m in self.contentValues(filter={'portal_type': self.getPortalMovementTypeList()}):
# Find related in simulation # Find related in simulation
for my_simulation_movement in m.getOrderRelatedValueList( for my_simulation_movement in m.getOrderRelatedValueList(
portal_type = 'Simulation Movement'): portal_type = 'Simulation Movement'):
...@@ -311,7 +310,7 @@ An order...""" ...@@ -311,7 +310,7 @@ An order..."""
Returns simulation movements related to a cell or line of this order Returns simulation movements related to a cell or line of this order
""" """
result = self.getOrderRelatedValueList( portal_type = 'Simulation Movement') result = self.getOrderRelatedValueList( portal_type = 'Simulation Movement')
for m in self.contentValues(filter={'portal_type': movement_type_list}): for m in self.contentValues(filter={'portal_type': self.getPortalMovementTypeList()}):
# Find related in simulation # Find related in simulation
result += m.getOrderRelatedValueList( portal_type = 'Simulation Movement') result += m.getOrderRelatedValueList( portal_type = 'Simulation Movement')
for c in m.contentValues(filter={'portal_type': 'Delivery Cell'}): for c in m.contentValues(filter={'portal_type': 'Delivery Cell'}):
......
...@@ -33,7 +33,6 @@ from Products.CMFCore.WorkflowCore import WorkflowAction ...@@ -33,7 +33,6 @@ from Products.CMFCore.WorkflowCore import WorkflowAction
from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
from Products.ERP5.Document.DeliveryLine import DeliveryLine from Products.ERP5.Document.DeliveryLine import DeliveryLine
from Products.ERP5.Document.Movement import Movement from Products.ERP5.Document.Movement import Movement
from Products.ERP5.ERP5Globals import draft_order_state
from zLOG import LOG from zLOG import LOG
...@@ -207,7 +206,7 @@ Une ligne tarifaire.""" ...@@ -207,7 +206,7 @@ Une ligne tarifaire."""
(Called when the object is created or moved.) (Called when the object is created or moved.)
""" """
DeliveryLine.manage_afterAdd(self, item, container) DeliveryLine.manage_afterAdd(self, item, container)
if self.aq_parent.getSimulationState() not in draft_order_state: if self.aq_parent.getSimulationState() not in self.getPortalDraftOrderStateList():
# Only reexpand order rule when we add lines # Only reexpand order rule when we add lines
self.aq_parent.activate()._createOrderRule() self.aq_parent.activate()._createOrderRule()
......
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
from AccessControl import ClassSecurityInfo from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
from Products.ERP5.Document.Rule import Rule from Products.ERP5.Document.Rule import Rule
from Products.ERP5.ERP5Globals import movement_type_list, order_movement_type_list, reserved_inventory_state_list, current_inventory_state_list, draft_order_state
from zLOG import LOG from zLOG import LOG
...@@ -140,15 +139,15 @@ An ERP5 Rule...""" ...@@ -140,15 +139,15 @@ An ERP5 Rule..."""
# Only expand order rule if order not yet confirmed (This is consistent # Only expand order rule if order not yet confirmed (This is consistent
# with the fact that once simulation is launched, we stick to it) # with the fact that once simulation is launched, we stick to it)
if force or \ if force or \
(applied_rule.getLastExpandSimulationState() not in reserved_inventory_state_list and \ (applied_rule.getLastExpandSimulationState() not in applied_rule.getPortalReservedInventoryStateList() and \
applied_rule.getLastExpandSimulationState() not in current_inventory_state_list): applied_rule.getLastExpandSimulationState() not in applied_rule.getPortalCurrentInventoryStateList()):
# First, check each contained movement and make # First, check each contained movement and make
# a list of order ids which do not need to be copied # a list of order ids which do not need to be copied
# eventually delete movement which do not exist anylonger # eventually delete movement which do not exist anylonger
existing_uid_list = [] existing_uid_list = []
for movement in applied_rule.contentValues(filter={'portal_type':movement_type_list}): for movement in applied_rule.contentValues(filter={'portal_type':applied_rule.getPortalMovementTypeList()}):
#LOG('Movement', 0, str(movement)) #LOG('Movement', 0, str(movement))
order_value = movement.getOrderValue(portal_type=order_movement_type_list) order_value = movement.getOrderValue(portal_type=applied_rule.getPortalOrderMovementTypeList())
if order_value is None: if order_value is None:
movement.flushActivity(invoke=0) movement.flushActivity(invoke=0)
applied_rule._delObject(movement.getId()) # XXXX Make sur this is not deleted if already in delivery applied_rule._delObject(movement.getId()) # XXXX Make sur this is not deleted if already in delivery
...@@ -164,7 +163,7 @@ An ERP5 Rule...""" ...@@ -164,7 +163,7 @@ An ERP5 Rule..."""
existing_uid_list += [order_value.getUid()] existing_uid_list += [order_value.getUid()]
# Copy each movement (line or cell) from the order # Copy each movement (line or cell) from the order
for order_line_object in my_order.contentValues(filter={'portal_type':movement_type_list}): for order_line_object in my_order.contentValues(filter={'portal_type':applied_rule.getPortalMovementTypeList()}):
try: try:
if order_line_object.hasCellContent(): if order_line_object.hasCellContent():
for c in order_line_object.getCellValueList(): for c in order_line_object.getCellValueList():
...@@ -249,6 +248,6 @@ An ERP5 Rule...""" ...@@ -249,6 +248,6 @@ An ERP5 Rule..."""
return 1 return 1
def isDeliverable(self, m): def isDeliverable(self, m):
if m.getSimulationState() in draft_order_state: if m.getSimulationState() in m.getPortalDraftOrderState():
return 0 return 0
return 1 return 1
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
from Globals import InitializeClass, PersistentMapping from Globals import InitializeClass, PersistentMapping
from AccessControl import ClassSecurityInfo from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
from Products.ERP5.ERP5Globals import movement_type_list, draft_order_state
from Products.CMFCore.utils import getToolByName from Products.CMFCore.utils import getToolByName
from Products.ERP5.Document.Delivery import Delivery from Products.ERP5.Document.Delivery import Delivery
...@@ -140,14 +139,14 @@ An order...""" ...@@ -140,14 +139,14 @@ An order..."""
""" """
Returns 1 if not simulated or inconsistent target and values Returns 1 if not simulated or inconsistent target and values
""" """
if self.getSimulationState() not in draft_order_state: if self.getSimulationState() not in self.getPortalDraftOrderStateList():
if not self.isSimulated(): if not self.isSimulated():
return 1 return 1
return Delivery.isDivergent(self) return Delivery.isDivergent(self)
security.declareProtected(Permissions.ModifyPortalContent, 'updateAppliedRule') security.declareProtected(Permissions.ModifyPortalContent, 'updateAppliedRule')
def updateAppliedRule(self): def updateAppliedRule(self):
if self.getSimulationState() not in draft_order_state: if self.getSimulationState() not in self.getPortalDraftOrderStateList():
# Nothing to do if we are already simulated # Nothing to do if we are already simulated
self._createDeliveryRule() self._createDeliveryRule()
......
This diff is collapsed.
...@@ -34,7 +34,6 @@ from Products.ERP5Type.XMLObject import XMLObject ...@@ -34,7 +34,6 @@ from Products.ERP5Type.XMLObject import XMLObject
from Products.ERP5Type.Utils import asList, keepIn, rejectIn from Products.ERP5Type.Utils import asList, keepIn, rejectIn
from Products.ERP5.Variated import Variated from Products.ERP5.Variated import Variated
from Products.ERP5.ERP5Globals import resource_type_list, variation_type_list
from Products.ERP5.Document.Domain import Domain from Products.ERP5.Document.Domain import Domain
......
...@@ -37,7 +37,7 @@ from Products.ERP5Type.Base import TempBase ...@@ -37,7 +37,7 @@ from Products.ERP5Type.Base import TempBase
from Products.ERP5.Document.Amount import Amount from Products.ERP5.Document.Amount import Amount
from Products.ERP5.ERP5Globals import resource_type_list, variation_type_list from Products.CMFCore.Expression import Expression
from zLOG import LOG from zLOG import LOG
...@@ -131,7 +131,7 @@ class TransformedResource(XMLObject, XMLMatrix, Amount): ...@@ -131,7 +131,7 @@ class TransformedResource(XMLObject, XMLMatrix, Amount):
'description' : "", 'description' : "",
'type' : 'tokens', 'type' : 'tokens',
'acquisition_base_category' : ('resource',), 'acquisition_base_category' : ('resource',),
'acquisition_portal_type' : resource_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalResourceTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 0, 'acquisition_mask_value' : 0,
'acquisition_sync_value' : 0, 'acquisition_sync_value' : 0,
...@@ -588,7 +588,7 @@ identify a bank account.""" ...@@ -588,7 +588,7 @@ identify a bank account."""
variation_base_category_list, variation, base=1) variation_base_category_list, variation, base=1)
# and update the price with the variation price if necessary # and update the price with the variation price if necessary
for resource_variation in self.getValueList( for resource_variation in self.getValueList(
variation_base_category_list, portal_type=variation_type_list): variation_base_category_list, portal_type=self.getPortalVariationTypeList()):
if resource_variation.hasDefaultBasePrice(): if resource_variation.hasDefaultBasePrice():
new_base_price = resource_variation.getBasePrice() new_base_price = resource_variation.getBasePrice()
try: try:
...@@ -636,7 +636,7 @@ identify a bank account.""" ...@@ -636,7 +636,7 @@ identify a bank account."""
self.portal_categories.setCategoryMembership(line_item, base_category_list, self.portal_categories.setCategoryMembership(line_item, base_category_list,
mapped_value.getCategoryMembershipList(base_category_list, base=1), base=1) mapped_value.getCategoryMembershipList(base_category_list, base=1), base=1)
for resource_variation in mapped_value.getValueList(base_category_list, for resource_variation in mapped_value.getValueList(base_category_list,
portal_type=variation_type_list): portal_type=self.getPortalVariationTypeList()):
if resource_variation.hasDefaultBasePrice(): if resource_variation.hasDefaultBasePrice():
new_base_price = resource_variation.getBasePrice() new_base_price = resource_variation.getBasePrice()
try: try:
......
...@@ -34,7 +34,8 @@ from Products.ERP5Type.XMLObject import XMLObject ...@@ -34,7 +34,8 @@ from Products.ERP5Type.XMLObject import XMLObject
from Products.ERP5Type.XMLMatrix import XMLMatrix from Products.ERP5Type.XMLMatrix import XMLMatrix
from Products.ERP5.Variated import Variated from Products.ERP5.Variated import Variated
from Products.ERP5Type.Utils import cartesianProduct from Products.ERP5Type.Utils import cartesianProduct
from Products.ERP5.ERP5Globals import resource_type_list
from Products.CMFCore.Expression import Expression
from zLOG import LOG from zLOG import LOG
...@@ -73,7 +74,7 @@ class VariatedProperty(XMLObject, XMLMatrix, Variated): ...@@ -73,7 +74,7 @@ class VariatedProperty(XMLObject, XMLMatrix, Variated):
'storage_id' : 'variation_base_category_list', 'storage_id' : 'variation_base_category_list',
'description' : "", 'description' : "",
'type' : 'tokens', 'type' : 'tokens',
'acquisition_portal_type' : resource_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalResourceTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 0, 'acquisition_mask_value' : 0,
'acquisition_sync_value' : 0, 'acquisition_sync_value' : 0,
......
...@@ -30,7 +30,6 @@ from AccessControl import ClassSecurityInfo ...@@ -30,7 +30,6 @@ from AccessControl import ClassSecurityInfo
from DateTime import DateTime from DateTime import DateTime
from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
from Products.ERP5.Document.Rule import Rule from Products.ERP5.Document.Rule import Rule
from Products.ERP5.ERP5Globals import movement_type_list
from Products.CMFCore.utils import getToolByName from Products.CMFCore.utils import getToolByName
from zLOG import LOG from zLOG import LOG
......
from Products.ERP5.ERP5Globals import *
from Products.ERP5.Tool.Category import addBaseCategory from Products.ERP5.Tool.Category import addBaseCategory
from Products.ERP5Type.Utils import convertToUpperCase from Products.ERP5Type.Utils import convertToUpperCase
...@@ -16,7 +15,11 @@ def setBaseAcquisition(self): ...@@ -16,7 +15,11 @@ def setBaseAcquisition(self):
if not hasattr(pc, bc): if not hasattr(pc, bc):
addBaseCategory(pc, bc) addBaseCategory(pc, bc)
pc[bc].setAcquisitionBaseCategoryList(('delivery', 'order', 'parent', )) pc[bc].setAcquisitionBaseCategoryList(('delivery', 'order', 'parent', ))
pc[bc].setAcquisitionPortalTypeList(movement_or_item_or_delivery_or_order_or_invoice_type_list) pc[bc].setAcquisitionPortalTypeList(self.getPortalAcquisitionMovementTypeList() + \
self.getPortalItemTypeList() + \
self.getPortalDeliveryTypeList() + \
self.getPortalOrderTypeList() + \
self.getPortalInvoiceTypeList())
pc[bc].setAcquisitionMaskValue(1) pc[bc].setAcquisitionMaskValue(1)
pc[bc].setAcquisitionCopyValue(0) pc[bc].setAcquisitionCopyValue(0)
pc[bc].setAcquisitionAppendValue(0) pc[bc].setAcquisitionAppendValue(0)
...@@ -28,7 +31,11 @@ def setBaseAcquisition(self): ...@@ -28,7 +31,11 @@ def setBaseAcquisition(self):
if not hasattr(pc, bc): if not hasattr(pc, bc):
addBaseCategory(pc, bc) addBaseCategory(pc, bc)
pc[bc].setAcquisitionBaseCategoryList(('delivery', 'order', 'parent', 'causality')) pc[bc].setAcquisitionBaseCategoryList(('delivery', 'order', 'parent', 'causality'))
pc[bc].setAcquisitionPortalTypeList(movement_or_item_or_delivery_or_order_or_invoice_type_list) pc[bc].setAcquisitionPortalTypeList(self.getPortalAcquisitionMovementTypeList() + \
self.getPortalItemTypeList() + \
self.getPortalDeliveryTypeList() + \
self.getPortalOrderTypeList() + \
self.getPortalInvoiceTypeList())
pc[bc].setAcquisitionMaskValue(1) pc[bc].setAcquisitionMaskValue(1)
pc[bc].setAcquisitionCopyValue(0) pc[bc].setAcquisitionCopyValue(0)
pc[bc].setAcquisitionAppendValue(0) pc[bc].setAcquisitionAppendValue(0)
...@@ -37,7 +44,11 @@ def setBaseAcquisition(self): ...@@ -37,7 +44,11 @@ def setBaseAcquisition(self):
if not hasattr(pc, bc): if not hasattr(pc, bc):
addBaseCategory(pc, bc) addBaseCategory(pc, bc)
pc[bc].setAcquisitionBaseCategoryList(('delivery', 'order', 'parent')) pc[bc].setAcquisitionBaseCategoryList(('delivery', 'order', 'parent'))
pc[bc].setAcquisitionPortalTypeList(movement_or_item_or_delivery_or_order_or_invoice_type_list) pc[bc].setAcquisitionPortalTypeList(self.getPortalAcquisitionMovementTypeList() + \
self.getPortalItemTypeList() + \
self.getPortalDeliveryTypeList() + \
self.getPortalOrderTypeList() + \
self.getPortalInvoiceTypeList())
pc[bc].setAcquisitionMaskValue(1) pc[bc].setAcquisitionMaskValue(1)
pc[bc].setAcquisitionCopyValue(0) pc[bc].setAcquisitionCopyValue(0)
pc[bc].setAcquisitionAppendValue(0) pc[bc].setAcquisitionAppendValue(0)
...@@ -46,7 +57,11 @@ def setBaseAcquisition(self): ...@@ -46,7 +57,11 @@ def setBaseAcquisition(self):
if not hasattr(pc, bc): if not hasattr(pc, bc):
addBaseCategory(pc, bc) addBaseCategory(pc, bc)
pc[bc].setAcquisitionBaseCategoryList(('delivery', 'order', 'parent', )) pc[bc].setAcquisitionBaseCategoryList(('delivery', 'order', 'parent', ))
pc[bc].setAcquisitionPortalTypeList(movement_or_item_or_delivery_or_order_or_invoice_type_list) pc[bc].setAcquisitionPortalTypeList(self.getPortalAcquisitionMovementTypeList() + \
self.getPortalItemTypeList() + \
self.getPortalDeliveryTypeList() + \
self.getPortalOrderTypeList() + \
self.getPortalInvoiceTypeList())
pc[bc].setAcquisitionMaskValue(1) pc[bc].setAcquisitionMaskValue(1)
pc[bc].setAcquisitionCopyValue(0) pc[bc].setAcquisitionCopyValue(0)
pc[bc].setAcquisitionAppendValue(0) pc[bc].setAcquisitionAppendValue(0)
...@@ -55,8 +70,12 @@ def setBaseAcquisition(self): ...@@ -55,8 +70,12 @@ def setBaseAcquisition(self):
if not hasattr(pc, bc): if not hasattr(pc, bc):
addBaseCategory(pc, bc) addBaseCategory(pc, bc)
pc[bc].setAcquisitionBaseCategoryList(('delivery', 'order', 'parent', 'resource')) pc[bc].setAcquisitionBaseCategoryList(('delivery', 'order', 'parent', 'resource'))
pc[bc].setAcquisitionPortalTypeList( pc[bc].setAcquisitionPortalTypeList(self.getPortalAcquisitionMovementTypeList() + \
movement_or_item_or_delivery_or_order_or_invoice_or_resource_type_list) self.getPortalItemTypeList() + \
self.getPortalDeliveryTypeList() + \
self.getPortalOrderTypeList() + \
self.getPortalInvoiceTypeList() + \
self.getPortalResourceTypeList())
pc[bc].setAcquisitionMaskValue(1) pc[bc].setAcquisitionMaskValue(1)
pc[bc].setAcquisitionCopyValue(0) pc[bc].setAcquisitionCopyValue(0)
pc[bc].setAcquisitionAppendValue(0) pc[bc].setAcquisitionAppendValue(0)
...@@ -92,7 +111,7 @@ def setBaseAcquisition(self): ...@@ -92,7 +111,7 @@ def setBaseAcquisition(self):
if not hasattr(pc, bc): if not hasattr(pc, bc):
addBaseCategory(pc, bc) addBaseCategory(pc, bc)
pc[bc].setAcquisitionBaseCategoryList('parent',) pc[bc].setAcquisitionBaseCategoryList('parent',)
pc[bc].setAcquisitionPortalTypeList(item_type_list) pc[bc].setAcquisitionPortalTypeList(self.getPortalItemTypeList())
pc[bc].setAcquisitionMaskValue(1) pc[bc].setAcquisitionMaskValue(1)
pc[bc].setAcquisitionCopyValue(1) pc[bc].setAcquisitionCopyValue(1)
pc[bc].setAcquisitionAppendValue(0) pc[bc].setAcquisitionAppendValue(0)
......
This diff is collapsed.
...@@ -36,7 +36,6 @@ from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface ...@@ -36,7 +36,6 @@ from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
from AccessControl import ClassSecurityInfo from AccessControl import ClassSecurityInfo
from Globals import InitializeClass, DTMLFile from Globals import InitializeClass, DTMLFile
from Products.CMFCategory.Category import Category from Products.CMFCategory.Category import Category
from Products.ERP5.ERP5Globals import order_type_list, delivery_type_list
from zLOG import LOG from zLOG import LOG
manage_addRootMovementGroupForm=DTMLFile('dtml/SimulationTool_addRootMovementGroup', globals()) manage_addRootMovementGroupForm=DTMLFile('dtml/SimulationTool_addRootMovementGroup', globals())
...@@ -164,12 +163,12 @@ class OrderMovementGroup(RootMovementGroup,Folder): ...@@ -164,12 +163,12 @@ class OrderMovementGroup(RootMovementGroup,Folder):
if hasattr(movement, 'getRootAppliedRule'): if hasattr(movement, 'getRootAppliedRule'):
# This is a simulation movement # This is a simulation movement
order_value = movement.getRootAppliedRule().getCausalityValue( order_value = movement.getRootAppliedRule().getCausalityValue(
portal_type=order_type_list) portal_type=movement.getPortalOrderTypeList())
if order_value is None: if order_value is None:
# In some cases (ex. DeliveryRule), there is no order # In some cases (ex. DeliveryRule), there is no order
# we may consider a PackingList as the order in the OrderGroup # we may consider a PackingList as the order in the OrderGroup
order_value = movement.getRootAppliedRule().getCausalityValue( order_value = movement.getRootAppliedRule().getCausalityValue(
portal_type=delivery_type_list) portal_type=movement.getPortalDeliveryTypeList())
else: else:
# This is a temp movement # This is a temp movement
order_value = None order_value = None
...@@ -184,13 +183,13 @@ class OrderMovementGroup(RootMovementGroup,Folder): ...@@ -184,13 +183,13 @@ class OrderMovementGroup(RootMovementGroup,Folder):
def test(self,movement): def test(self,movement):
if hasattr(movement, 'getRootAppliedRule'): if hasattr(movement, 'getRootAppliedRule'):
order_value = movement.getRootAppliedRule().getCausalityValue( order_value = movement.getRootAppliedRule().getCausalityValue(
portal_type=order_type_list) portal_type=movement.getPortalOrderTypeList())
if order_value is None: if order_value is None:
# In some cases (ex. DeliveryRule), there is no order # In some cases (ex. DeliveryRule), there is no order
# we may consider a PackingList as the order in the OrderGroup # we may consider a PackingList as the order in the OrderGroup
order_value = movement.getRootAppliedRule().getCausalityValue( order_value = movement.getRootAppliedRule().getCausalityValue(
portal_type=delivery_type_list) portal_type=movement.getPortalDeliveryTypeList())
else: else:
# This is a temp movement # This is a temp movement
order_value = None order_value = None
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
# #
############################################################################## ##############################################################################
from Products.ERP5.ERP5Globals import * from Products.CMFCore.Expression import Expression
class Amortisation: class Amortisation:
""" """
...@@ -46,7 +46,7 @@ class Amortisation: ...@@ -46,7 +46,7 @@ class Amortisation:
'description' : 'The value to use to calculate the accounting amortisation movements (net of tax)', 'description' : 'The value to use to calculate the accounting amortisation movements (net of tax)',
'type' : 'float', 'type' : 'float',
'acquisition_base_category' : ('parent',), 'acquisition_base_category' : ('parent',),
'acquisition_portal_type' : item_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalItemTypeList()'),
'acquisition_copy_value' : 1, 'acquisition_copy_value' : 1,
'acquisition_mask_value' : 1, 'acquisition_mask_value' : 1,
'acquisition_accessor_id' : 'getAmortisationBeginningPrice', 'acquisition_accessor_id' : 'getAmortisationBeginningPrice',
...@@ -56,7 +56,7 @@ class Amortisation: ...@@ -56,7 +56,7 @@ class Amortisation:
'description' : 'The remaining amortisation duration in months', 'description' : 'The remaining amortisation duration in months',
'type' : 'int', 'type' : 'int',
'acquisition_base_category' : ('parent',), 'acquisition_base_category' : ('parent',),
'acquisition_portal_type' : item_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalItemTypeList()'),
'acquisition_copy_value' : 1, 'acquisition_copy_value' : 1,
'acquisition_mask_value' : 1, 'acquisition_mask_value' : 1,
'acquisition_accessor_id' : 'getAmortisationDuration', 'acquisition_accessor_id' : 'getAmortisationDuration',
...@@ -66,7 +66,7 @@ class Amortisation: ...@@ -66,7 +66,7 @@ class Amortisation:
'description' : 'The item is immobilised after the movement', 'description' : 'The item is immobilised after the movement',
'type' : 'boolean', 'type' : 'boolean',
'acquisition_base_category' : ('parent',), 'acquisition_base_category' : ('parent',),
'acquisition_portal_type' : item_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalItemTypeList()'),
'acquisition_copy_value' : 1, 'acquisition_copy_value' : 1,
'acquisition_mask_value' : 1, 'acquisition_mask_value' : 1,
'acquisition_accessor_id' : 'getImmobilisation', 'acquisition_accessor_id' : 'getImmobilisation',
...@@ -76,7 +76,7 @@ class Amortisation: ...@@ -76,7 +76,7 @@ class Amortisation:
'description' : 'The fiscal coefficient to use in degressive amortisation', 'description' : 'The fiscal coefficient to use in degressive amortisation',
'type' : 'float', 'type' : 'float',
'acquisition_base_category' : ('parent',), 'acquisition_base_category' : ('parent',),
'acquisition_portal_type' : item_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalItemTypeList()'),
'acquisition_copy_value' : 1, 'acquisition_copy_value' : 1,
'acquisition_mask_value' : 1, 'acquisition_mask_value' : 1,
'acquisition_accessor_id' : 'getFiscalCoefficient', 'acquisition_accessor_id' : 'getFiscalCoefficient',
...@@ -86,7 +86,7 @@ class Amortisation: ...@@ -86,7 +86,7 @@ class Amortisation:
'description' : 'The VAT at the beginning of the immobilisation period', 'description' : 'The VAT at the beginning of the immobilisation period',
'type' : 'float', 'type' : 'float',
'acquisition_base_category' : ('parent',), 'acquisition_base_category' : ('parent',),
'acquisition_portal_type' : item_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalItemTypeList()'),
'acquisition_copy_value' : 1, 'acquisition_copy_value' : 1,
'acquisition_mask_value' : 1, 'acquisition_mask_value' : 1,
'acquisition_accessor_id' : 'getVat', 'acquisition_accessor_id' : 'getVat',
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
############################################################################## ##############################################################################
# This has to be chanegd and improved by the new category acquisition tool # This has to be chanegd and improved by the new category acquisition tool
from Products.ERP5.ERP5Globals import * from Products.CMFCore.Expression import Expression
class Amount: class Amount:
""" """
...@@ -48,7 +48,7 @@ class Amount: ...@@ -48,7 +48,7 @@ class Amount:
'description' : "The resource id involved", 'description' : "The resource id involved",
'type' : 'string', 'type' : 'string',
'acquisition_base_category' : ('resource',), 'acquisition_base_category' : ('resource',),
'acquisition_portal_type' : resource_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalResourceTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 0, 'acquisition_mask_value' : 0,
'acquisition_sync_value' : 0, 'acquisition_sync_value' : 0,
...@@ -60,7 +60,7 @@ class Amount: ...@@ -60,7 +60,7 @@ class Amount:
'description' : "The resource relative url involved", 'description' : "The resource relative url involved",
'type' : 'string', 'type' : 'string',
'acquisition_base_category' : ('resource',), 'acquisition_base_category' : ('resource',),
'acquisition_portal_type' : resource_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalResourceTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 0, 'acquisition_mask_value' : 0,
'acquisition_sync_value' : 0, 'acquisition_sync_value' : 0,
...@@ -71,7 +71,7 @@ class Amount: ...@@ -71,7 +71,7 @@ class Amount:
'description' : "The resource title involved", 'description' : "The resource title involved",
'type' : 'string', 'type' : 'string',
'acquisition_base_category' : ('resource',), 'acquisition_base_category' : ('resource',),
'acquisition_portal_type' : resource_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalResourceTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 0, 'acquisition_mask_value' : 0,
'acquisition_sync_value' : 0, 'acquisition_sync_value' : 0,
...@@ -85,7 +85,7 @@ class Amount: ...@@ -85,7 +85,7 @@ class Amount:
'type' : 'float', 'type' : 'float',
'default' : 0.0, 'default' : 0.0,
'acquisition_base_category' : ('delivery',), 'acquisition_base_category' : ('delivery',),
'acquisition_portal_type' : movement_or_delivery_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalAcquisitionMovementTypeList() + portal.getPortalDeliveryTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 1, 'acquisition_mask_value' : 1,
'acquisition_accessor_id' : 'getQuantity', 'acquisition_accessor_id' : 'getQuantity',
...@@ -97,7 +97,7 @@ class Amount: ...@@ -97,7 +97,7 @@ class Amount:
'type' : 'float', 'type' : 'float',
'default' : 1.0, 'default' : 1.0,
'acquisition_base_category' : ('delivery',), 'acquisition_base_category' : ('delivery',),
'acquisition_portal_type' : movement_or_delivery_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalAcquisitionMovementTypeList() + portal.getPortalDeliveryTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 1, 'acquisition_mask_value' : 1,
'acquisition_accessor_id' : 'getEfficiency', 'acquisition_accessor_id' : 'getEfficiency',
...@@ -110,7 +110,7 @@ class Amount: ...@@ -110,7 +110,7 @@ class Amount:
'type' : 'float', 'type' : 'float',
'default' : 0.0, 'default' : 0.0,
'acquisition_base_category' : ('order',), 'acquisition_base_category' : ('order',),
'acquisition_portal_type' : movement_or_order_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalAcquisitionMovementTypeList() + portal.getPortalOrderTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 1, 'acquisition_mask_value' : 1,
'acquisition_accessor_id' : 'getTargetQuantity', 'acquisition_accessor_id' : 'getTargetQuantity',
...@@ -121,7 +121,7 @@ class Amount: ...@@ -121,7 +121,7 @@ class Amount:
'type' : 'float', 'type' : 'float',
'default' : 1.0, 'default' : 1.0,
'acquisition_base_category' : ('order',), 'acquisition_base_category' : ('order',),
'acquisition_portal_type' : movement_or_order_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalAcquisitionMovementTypeList() + portal.getPortalOrderTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 1, 'acquisition_mask_value' : 1,
'acquisition_accessor_id' : 'getTargetEfficiency', 'acquisition_accessor_id' : 'getTargetEfficiency',
......
This diff is collapsed.
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
# #
############################################################################## ##############################################################################
from Products.ERP5.ERP5Globals import *
from Products.ERP5.PropertySheet.Path import Path from Products.ERP5.PropertySheet.Path import Path
class Assignment(Path): class Assignment(Path):
......
...@@ -26,8 +26,6 @@ ...@@ -26,8 +26,6 @@
# #
############################################################################## ##############################################################################
from Products.ERP5.ERP5Globals import *
class Container: class Container:
""" """
Properties of container Properties of container
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
# #
############################################################################## ##############################################################################
from Products.ERP5.ERP5Globals import order_type_list, order_or_delivery_type_list from Products.CMFCore.Expression import Expression
class Delivery: class Delivery:
""" """
...@@ -41,7 +41,7 @@ class Delivery: ...@@ -41,7 +41,7 @@ class Delivery:
'type' : 'lines', 'type' : 'lines',
'override' : 1, 'override' : 1,
'acquisition_base_category' : ('causality',), 'acquisition_base_category' : ('causality',),
'acquisition_portal_type' : order_or_delivery_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalOrderTypeList() + portal.getPortalDeliveryTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 0, 'acquisition_mask_value' : 0,
'acquisition_accessor_id' : 'getId', 'acquisition_accessor_id' : 'getId',
...@@ -52,7 +52,7 @@ class Delivery: ...@@ -52,7 +52,7 @@ class Delivery:
'type' : 'lines', 'type' : 'lines',
'override' : 1, 'override' : 1,
'acquisition_base_category' : ('causality',), 'acquisition_base_category' : ('causality',),
'acquisition_portal_type' : order_or_delivery_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalOrderTypeList() + portal.getPortalDeliveryTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 0, 'acquisition_mask_value' : 0,
'acquisition_accessor_id' : 'getTitle', 'acquisition_accessor_id' : 'getTitle',
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
############################################################################## ##############################################################################
# This has to be chanegd and improved by the new category acquisition tool # This has to be chanegd and improved by the new category acquisition tool
from Products.ERP5.ERP5Globals import * from Products.CMFCore.Expression import Expression
class Inventory: class Inventory:
""" """
...@@ -45,7 +45,7 @@ class Inventory: ...@@ -45,7 +45,7 @@ class Inventory:
'description' : """The quantity of items in stock after inventory.""", 'description' : """The quantity of items in stock after inventory.""",
'type' : 'float', 'type' : 'float',
'acquisition_base_category' : ('delivery',), 'acquisition_base_category' : ('delivery',),
'acquisition_portal_type' : movement_or_delivery_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalMovementTypeList() + portal.getPortalDeliveryTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 1, 'acquisition_mask_value' : 1,
'acquisition_accessor_id' : 'getInventory', 'acquisition_accessor_id' : 'getInventory',
......
...@@ -26,7 +26,8 @@ ...@@ -26,7 +26,8 @@
# #
############################################################################## ##############################################################################
from Products.ERP5.ERP5Globals import * from Products.CMFCore.Expression import Expression
class Item: class Item:
""" """
...@@ -45,5 +46,5 @@ class Item: ...@@ -45,5 +46,5 @@ class Item:
'mode' : 'w' }, 'mode' : 'w' },
) )
_categories = tuple(['package_type'] + list(variation_base_category_list)) _categories = ('package_type', Expression('python: portal.getPortalVariationBaseCategoryList()'))
# XXX Please check if it is meaningful to add order cat to all items ? # XXX Please check if it is meaningful to add order cat to all items ?
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
# #
############################################################################## ##############################################################################
from Products.ERP5.ERP5Globals import * from Products.CMFCore.Expression import Expression
class ItemAggregation: class ItemAggregation:
...@@ -39,7 +39,7 @@ class ItemAggregation: ...@@ -39,7 +39,7 @@ class ItemAggregation:
'description' : 'list of ids of items', 'description' : 'list of ids of items',
'type' : 'lines', 'type' : 'lines',
'acquisition_base_category' : ('aggregate',), 'acquisition_base_category' : ('aggregate',),
'acquisition_portal_type' : item_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalItemTypeList()'),
'acquisition_copy_value' : 1, 'acquisition_copy_value' : 1,
'acquisition_accessor_id' : 'getId', 'acquisition_accessor_id' : 'getId',
'acquisition_depends' : None, 'acquisition_depends' : None,
...@@ -48,7 +48,7 @@ class ItemAggregation: ...@@ -48,7 +48,7 @@ class ItemAggregation:
'description' : 'list of titles of items', 'description' : 'list of titles of items',
'type' : 'lines', 'type' : 'lines',
'acquisition_base_category' : ('aggregate',), 'acquisition_base_category' : ('aggregate',),
'acquisition_portal_type' : item_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalItemTypeList()'),
'acquisition_copy_value' : 1, 'acquisition_copy_value' : 1,
'acquisition_accessor_id' : 'getTitle', 'acquisition_accessor_id' : 'getTitle',
'acquisition_depends' : None, 'acquisition_depends' : None,
...@@ -57,7 +57,7 @@ class ItemAggregation: ...@@ -57,7 +57,7 @@ class ItemAggregation:
'description' : 'list of ids of produced items', 'description' : 'list of ids of produced items',
'type' : 'lines', 'type' : 'lines',
'acquisition_base_category' : ('aggregate',), 'acquisition_base_category' : ('aggregate',),
'acquisition_portal_type' : item_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalItemTypeList()'),
'acquisition_copy_value' : 1, 'acquisition_copy_value' : 1,
'acquisition_accessor_id' : 'getId', 'acquisition_accessor_id' : 'getId',
'acquisition_depends' : None, 'acquisition_depends' : None,
...@@ -66,7 +66,7 @@ class ItemAggregation: ...@@ -66,7 +66,7 @@ class ItemAggregation:
'description' : 'list of ids of produced items', 'description' : 'list of ids of produced items',
'type' : 'lines', 'type' : 'lines',
'acquisition_base_category' : ('aggregate',), 'acquisition_base_category' : ('aggregate',),
'acquisition_portal_type' : item_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalItemTypeList()'),
'acquisition_copy_value' : 1, 'acquisition_copy_value' : 1,
'acquisition_accessor_id' : 'getTitle', 'acquisition_accessor_id' : 'getTitle',
'acquisition_depends' : None, 'acquisition_depends' : None,
...@@ -75,7 +75,7 @@ class ItemAggregation: ...@@ -75,7 +75,7 @@ class ItemAggregation:
'description' : 'list of ids of consumed items', 'description' : 'list of ids of consumed items',
'type' : 'lines', 'type' : 'lines',
'acquisition_base_category' : ('aggregate',), 'acquisition_base_category' : ('aggregate',),
'acquisition_portal_type' : item_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalItemTypeList()'),
'acquisition_copy_value' : 1, 'acquisition_copy_value' : 1,
'acquisition_accessor_id' : 'getId', 'acquisition_accessor_id' : 'getId',
'acquisition_depends' : None, 'acquisition_depends' : None,
...@@ -84,7 +84,7 @@ class ItemAggregation: ...@@ -84,7 +84,7 @@ class ItemAggregation:
'description' : 'list of ids of consumed items', 'description' : 'list of ids of consumed items',
'type' : 'lines', 'type' : 'lines',
'acquisition_base_category' : ('aggregate',), 'acquisition_base_category' : ('aggregate',),
'acquisition_portal_type' : item_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalItemTypeList()'),
'acquisition_copy_value' : 1, 'acquisition_copy_value' : 1,
'acquisition_accessor_id' : 'getTitle', 'acquisition_accessor_id' : 'getTitle',
'acquisition_depends' : None, 'acquisition_depends' : None,
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
# #
############################################################################## ##############################################################################
from Products.ERP5.ERP5Globals import * from Products.CMFCore.Expression import Expression
class Movement: class Movement:
""" """
...@@ -48,7 +48,7 @@ class Movement: ...@@ -48,7 +48,7 @@ class Movement:
'description' : 'The title of the order which defines contractual conditions', 'description' : 'The title of the order which defines contractual conditions',
'type' : 'string', 'type' : 'string',
'acquisition_base_category' : ('order',), 'acquisition_base_category' : ('order',),
'acquisition_portal_type' : order_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalOrderTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_accessor_id' : 'getTitle', 'acquisition_accessor_id' : 'getTitle',
'acquisition_depends' : None, 'acquisition_depends' : None,
...@@ -58,7 +58,7 @@ class Movement: ...@@ -58,7 +58,7 @@ class Movement:
'description' : 'The id of the order which defines contractual conditions', 'description' : 'The id of the order which defines contractual conditions',
'type' : 'string', 'type' : 'string',
'acquisition_base_category' : ('order',), 'acquisition_base_category' : ('order',),
'acquisition_portal_type' : order_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalOrderTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_accessor_id' : 'getId', 'acquisition_accessor_id' : 'getId',
'acquisition_depends' : None, 'acquisition_depends' : None,
...@@ -68,7 +68,7 @@ class Movement: ...@@ -68,7 +68,7 @@ class Movement:
'description' : 'The relative_url of the order which defines contractual conditions', 'description' : 'The relative_url of the order which defines contractual conditions',
'type' : 'string', 'type' : 'string',
'acquisition_base_category' : ('order',), 'acquisition_base_category' : ('order',),
'acquisition_portal_type' : order_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalOrderTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_accessor_id' : 'getRelativeUrl', 'acquisition_accessor_id' : 'getRelativeUrl',
'acquisition_depends' : None, 'acquisition_depends' : None,
...@@ -76,5 +76,5 @@ class Movement: ...@@ -76,5 +76,5 @@ class Movement:
'mode' : 'w' }, 'mode' : 'w' },
) )
_categories = tuple(['order'] + list(variation_base_category_list)) _categories = ('order', Expression('python: portal.getPortalVariationBaseCategoryList()'))
# XXX Please check if it is meaningful to add order cat to all movemements ? # XXX Please check if it is meaningful to add order cat to all movemements ?
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
# #
############################################################################## ##############################################################################
from Products.ERP5.ERP5Globals import * from Products.CMFCore.Expression import Expression
class Path: class Path:
""" """
...@@ -38,7 +38,7 @@ class Path: ...@@ -38,7 +38,7 @@ class Path:
'description' : "The resource id involved", 'description' : "The resource id involved",
'type' : 'string', 'type' : 'string',
'acquisition_base_category' : ('resource',), 'acquisition_base_category' : ('resource',),
'acquisition_portal_type' : resource_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalResourceTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 0, 'acquisition_mask_value' : 0,
'acquisition_sync_value' : 0, 'acquisition_sync_value' : 0,
...@@ -49,7 +49,7 @@ class Path: ...@@ -49,7 +49,7 @@ class Path:
'description' : "The resource relative url involved", 'description' : "The resource relative url involved",
'type' : 'string', 'type' : 'string',
'acquisition_base_category' : ('resource',), 'acquisition_base_category' : ('resource',),
'acquisition_portal_type' : resource_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalResourceTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 0, 'acquisition_mask_value' : 0,
'acquisition_sync_value' : 0, 'acquisition_sync_value' : 0,
...@@ -60,7 +60,7 @@ class Path: ...@@ -60,7 +60,7 @@ class Path:
'description' : "The resource title involved", 'description' : "The resource title involved",
'type' : 'string', 'type' : 'string',
'acquisition_base_category' : ('resource',), 'acquisition_base_category' : ('resource',),
'acquisition_portal_type' : resource_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalResourceTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 0, 'acquisition_mask_value' : 0,
'acquisition_sync_value' : 0, 'acquisition_sync_value' : 0,
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
# #
############################################################################## ##############################################################################
from Products.ERP5.ERP5Globals import * from Products.CMFCore.Expression import Expression
class Price: class Price:
""" """
...@@ -39,7 +39,7 @@ class Price: ...@@ -39,7 +39,7 @@ class Price:
'description' : 'A typical per unit price', 'description' : 'A typical per unit price',
'type' : 'float', 'type' : 'float',
'acquisition_base_category' : ('order', 'delivery',), 'acquisition_base_category' : ('order', 'delivery',),
'acquisition_portal_type' : movement_or_delivery_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalMovementTypeList() + portal.getPortalDeliveryTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 1, 'acquisition_mask_value' : 1,
'acquisition_accessor_id' : 'getPrice', 'acquisition_accessor_id' : 'getPrice',
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
# #
############################################################################## ##############################################################################
from Products.ERP5.ERP5Globals import * from Products.CMFCore.Expression import Expression
class Task: class Task:
""" """
...@@ -49,7 +49,7 @@ class Task: ...@@ -49,7 +49,7 @@ class Task:
'type' : 'date', 'type' : 'date',
'default' : None, 'default' : None,
'acquisition_base_category' : ('delivery', 'order', 'parent',), 'acquisition_base_category' : ('delivery', 'order', 'parent',),
'acquisition_portal_type' : movement_or_delivery_or_order_or_invoice_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalAcquisitionMovementTypeList() + portal.getPortalDeliveryTypeList() + portal.getPortalOrderTypeList() + portal.getPortalInvoiceTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 1, 'acquisition_mask_value' : 1,
'acquisition_accessor_id' : 'getStartDate', 'acquisition_accessor_id' : 'getStartDate',
...@@ -61,7 +61,7 @@ class Task: ...@@ -61,7 +61,7 @@ class Task:
'type' : 'date', 'type' : 'date',
'default' : None, 'default' : None,
'acquisition_base_category' : ('delivery', 'order', 'parent',), 'acquisition_base_category' : ('delivery', 'order', 'parent',),
'acquisition_portal_type' : movement_or_delivery_or_order_or_invoice_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalAcquisitionMovementTypeList() + portal.getPortalDeliveryTypeList() + portal.getPortalOrderTypeList() + portal.getPortalInvoiceTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 1, 'acquisition_mask_value' : 1,
'acquisition_accessor_id' : 'getStopDate', 'acquisition_accessor_id' : 'getStopDate',
...@@ -74,7 +74,7 @@ class Task: ...@@ -74,7 +74,7 @@ class Task:
'type' : 'date', 'type' : 'date',
'default' : None, 'default' : None,
'acquisition_base_category' : ('parent',), # Do not acquire through order 'acquisition_base_category' : ('parent',), # Do not acquire through order
'acquisition_portal_type' : movement_or_delivery_or_order_or_invoice_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalAcquisitionMovementTypeList() + portal.getPortalDeliveryTypeList() + portal.getPortalOrderTypeList() + portal.getPortalInvoiceTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 1, 'acquisition_mask_value' : 1,
'acquisition_accessor_id' : 'getTargetStartDate', 'acquisition_accessor_id' : 'getTargetStartDate',
...@@ -86,7 +86,7 @@ class Task: ...@@ -86,7 +86,7 @@ class Task:
'type' : 'date', 'type' : 'date',
'default' : None, 'default' : None,
'acquisition_base_category' : ('parent',), # Do not acquire through order 'acquisition_base_category' : ('parent',), # Do not acquire through order
'acquisition_portal_type' : movement_or_delivery_or_order_or_invoice_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalAcquisitionMovementTypeList() + portal.getPortalDeliveryTypeList() + portal.getPortalOrderTypeList() + portal.getPortalInvoiceTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 1, 'acquisition_mask_value' : 1,
'acquisition_accessor_id' : 'getTargetStopDate', 'acquisition_accessor_id' : 'getTargetStopDate',
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
# #
############################################################################## ##############################################################################
from Products.ERP5.ERP5Globals import resource_type_list from Products.CMFCore.Expression import Expression
class Transformation: class Transformation:
""" """
...@@ -71,7 +71,7 @@ class Transformation: ...@@ -71,7 +71,7 @@ class Transformation:
'description' : "The contact persons involved", 'description' : "The contact persons involved",
'type' : 'string', 'type' : 'string',
'acquisition_base_category' : ('resource',), 'acquisition_base_category' : ('resource',),
'acquisition_portal_type' : resource_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalResourceTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 0, 'acquisition_mask_value' : 0,
'acquisition_sync_value' : 0, 'acquisition_sync_value' : 0,
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
# #
############################################################################## ##############################################################################
from Products.ERP5.ERP5Globals import invoice_or_invoice_movement_type_list from Products.CMFCore.Expression import Expression
class ValueAddedTax: class ValueAddedTax:
""" """
...@@ -40,7 +40,7 @@ class ValueAddedTax: ...@@ -40,7 +40,7 @@ class ValueAddedTax:
'description' : 'Ratio which should be applied to income to calculate VAT', 'description' : 'Ratio which should be applied to income to calculate VAT',
'type' : 'float', 'type' : 'float',
'acquisition_base_category' : ('parent',), 'acquisition_base_category' : ('parent',),
'acquisition_portal_type' : invoice_or_invoice_movement_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalInvoiceTypeList() + portal.getPortalInvoiceMovementTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 1, 'acquisition_mask_value' : 1,
'acquisition_sync_value' : 0, 'acquisition_sync_value' : 0,
...@@ -51,7 +51,7 @@ class ValueAddedTax: ...@@ -51,7 +51,7 @@ class ValueAddedTax:
'description' : 'Defines recoverability of the VAT', 'description' : 'Defines recoverability of the VAT',
'type' : 'boolean', 'type' : 'boolean',
'acquisition_base_category' : ('parent',), 'acquisition_base_category' : ('parent',),
'acquisition_portal_type' : invoice_or_invoice_movement_type_list, 'acquisition_portal_type' : Expression('python: portal.getPortalInvoiceTypeList() + portal.getPortalInvoiceMovementTypeList()'),
'acquisition_copy_value' : 0, 'acquisition_copy_value' : 0,
'acquisition_mask_value' : 1, 'acquisition_mask_value' : 1,
'acquisition_sync_value' : 0, 'acquisition_sync_value' : 0,
......
...@@ -32,7 +32,6 @@ from Products.ERP5Type.Document.Folder import Folder ...@@ -32,7 +32,6 @@ from Products.ERP5Type.Document.Folder import Folder
from Products.ERP5Type.Tool.BaseTool import BaseTool from Products.ERP5Type.Tool.BaseTool import BaseTool
from Products.ERP5Type import Permissions from Products.ERP5Type import Permissions
from Products.ERP5 import _dtmldir from Products.ERP5 import _dtmldir
from Products.ERP5.ERP5Globals import alarm_type_list
from Products.CMFCore import CMFCorePermissions from Products.CMFCore import CMFCorePermissions
from DateTime import DateTime from DateTime import DateTime
...@@ -91,7 +90,7 @@ class AlarmTool(BaseTool): ...@@ -91,7 +90,7 @@ class AlarmTool(BaseTool):
""" """
We retrieve thanks to the catalog the full list of alarms We retrieve thanks to the catalog the full list of alarms
""" """
catalog_search = self.portal_catalog(portal_type = alarm_type_list) catalog_search = self.portal_catalog(portal_type = self.getPortalAlarmTypeList())
alarm_list = map(lambda x:x.getObject(),catalog_search) alarm_list = map(lambda x:x.getObject(),catalog_search)
return alarm_list return alarm_list
......
...@@ -32,7 +32,6 @@ from AccessControl import ClassSecurityInfo ...@@ -32,7 +32,6 @@ from AccessControl import ClassSecurityInfo
from Globals import InitializeClass, DTMLFile from Globals import InitializeClass, DTMLFile
from Products.ERP5Type.Document.Folder import Folder from Products.ERP5Type.Document.Folder import Folder
from Products.ERP5Type import Permissions from Products.ERP5Type import Permissions
from Products.ERP5.ERP5Globals import default_section_category, order_type_list, delivery_type_list, current_inventory_state_list, discount_type_list, simulated_movement_type_list, container_type_list, payment_condition_type_list, invoice_movement_type_list
from Products.ERP5 import _dtmldir from Products.ERP5 import _dtmldir
...@@ -201,8 +200,10 @@ class SimulationTool (Folder, UniqueObject): ...@@ -201,8 +200,10 @@ class SimulationTool (Folder, UniqueObject):
# Stock Management # Stock Management
security.declareProtected(Permissions.AccessContentsInformation, 'getInventory') security.declareProtected(Permissions.AccessContentsInformation, 'getInventory')
def getInventory(self, resource_uid=None, at_date = None, section = None, node = None, def getInventory(self, resource_uid=None, at_date = None, section = None, node = None,
node_category=None, section_category=default_section_category, simulation_state=None, node_category=None, section_category=None, simulation_state=None,
ignore_variation=0, **kw): ignore_variation=0, **kw):
if section_category is None:
section_category = self.getPortalDefaultSectionCategory()
result = self.Resource_zGetInventory(resource_uid = resource_uid, result = self.Resource_zGetInventory(resource_uid = resource_uid,
to_date=at_date, to_date=at_date,
section=section, node=node, section=section, node=node,
...@@ -591,7 +592,7 @@ class SimulationTool (Folder, UniqueObject): ...@@ -591,7 +592,7 @@ class SimulationTool (Folder, UniqueObject):
) )
# the new delivery is added to the delivery_list # the new delivery is added to the delivery_list
delivery_list.append(delivery) delivery_list.append(delivery)
# LOG('Livraison cre',0,str(delivery.getId())) # LOG('Livraison cre',0,str(delivery.getId()))
# Create each delivery_line in the new delivery # Create each delivery_line in the new delivery
...@@ -1016,7 +1017,9 @@ class SimulationTool (Folder, UniqueObject): ...@@ -1016,7 +1017,9 @@ class SimulationTool (Folder, UniqueObject):
# Asset Price Calculation # Asset Price Calculation
def updateAssetPrice(self, resource, variation_text, section_category, node_category, def updateAssetPrice(self, resource, variation_text, section_category, node_category,
strict_membership=0, simulation_state=current_inventory_state_list): strict_membership=0, simulation_state=None):
if simulation_state is None:
simulation_state = self.getPortalCurrentInventoryStateList()
section_value = self.portal_categories.resolveCategory(section_category) section_value = self.portal_categories.resolveCategory(section_category)
node_value = self.portal_categories.resolveCategory(node_category) node_value = self.portal_categories.resolveCategory(node_category)
# Initialize price # Initialize price
...@@ -1223,9 +1226,9 @@ class SimulationTool (Folder, UniqueObject): ...@@ -1223,9 +1226,9 @@ class SimulationTool (Folder, UniqueObject):
"%s is not the same between %s and %s (%s and %s)" % (attr, delivery.getId(), main_delivery.getId(), value, main_value) "%s is not the same between %s and %s (%s and %s)" % (attr, delivery.getId(), main_delivery.getId(), value, main_value)
# One more sanity check. Check if discounts are the same, if any. # One more sanity check. Check if discounts are the same, if any.
main_discount_list = main_delivery.contentValues(filter = {'portal_type': discount_type_list}) main_discount_list = main_delivery.contentValues(filter = {'portal_type': self.getPortalDiscountTypeList()})
for delivery in delivery_list: for delivery in delivery_list:
discount_list = delivery.contentValues(filter = {'portal_type': discount_type_list}) discount_list = delivery.contentValues(filter = {'portal_type': self.getPortalDiscountTypeList()})
if len(main_discount_list) != len(discount_list): if len(main_discount_list) != len(discount_list):
raise self.MergeDeliveryListError, "Discount is not the same between %s and %s" % (delivery.getId(), main_delivery.getId()) raise self.MergeDeliveryListError, "Discount is not the same between %s and %s" % (delivery.getId(), main_delivery.getId())
for discount in discount_list: for discount in discount_list:
...@@ -1239,9 +1242,9 @@ class SimulationTool (Folder, UniqueObject): ...@@ -1239,9 +1242,9 @@ class SimulationTool (Folder, UniqueObject):
raise self.MergeDeliveryListError, "Discount is not the same between %s and %s" % (delivery.getId(), main_delivery.getId()) raise self.MergeDeliveryListError, "Discount is not the same between %s and %s" % (delivery.getId(), main_delivery.getId())
# One more sanity check. Check if payment conditions are the same, if any. # One more sanity check. Check if payment conditions are the same, if any.
main_payment_condition_list = main_delivery.contentValues(filter = {'portal_type': payment_condition_type_list}) main_payment_condition_list = main_delivery.contentValues(filter = {'portal_type': self.getPortalPaymentConditionTypeList()})
for delivery in delivery_list: for delivery in delivery_list:
payment_condition_list = delivery.contentValues(filter = {'portal_type': payment_condition_type_list}) payment_condition_list = delivery.contentValues(filter = {'portal_type': self.getPortalPaymentConditionTypeList()})
if len(main_payment_condition_list) != len(payment_condition_list): if len(main_payment_condition_list) != len(payment_condition_list):
raise self.MergeDeliveryListError, "Payment Condition is not the same between %s and %s" % (delivery.getId(), main_delivery.getId()) raise self.MergeDeliveryListError, "Payment Condition is not the same between %s and %s" % (delivery.getId(), main_delivery.getId())
for condition in payment_condition_list: for condition in payment_condition_list:
...@@ -1258,10 +1261,10 @@ class SimulationTool (Folder, UniqueObject): ...@@ -1258,10 +1261,10 @@ class SimulationTool (Folder, UniqueObject):
# Make sure that all activities are flushed, to get simulation movements from delivery cells. # Make sure that all activities are flushed, to get simulation movements from delivery cells.
for delivery in delivery_list: for delivery in delivery_list:
for order in delivery.getCausalityValueList(portal_type = order_type_list): for order in delivery.getCausalityValueList(portal_type = self.getPortalOrderTypeList()):
for applied_rule in order.getCausalityRelatedValueList(portal_type = 'Applied Rule'): for applied_rule in order.getCausalityRelatedValueList(portal_type = 'Applied Rule'):
applied_rule.flushActivity(invoke = 1) applied_rule.flushActivity(invoke = 1)
for causality_related_delivery in delivery.getCausalityValueList(portal_type = delivery_type_list): for causality_related_delivery in delivery.getCausalityValueList(portal_type = self.getPortalDeliveryTypeList()):
for applied_rule in causality_related_delivery.getCausalityRelatedValueList(portal_type = 'Applied Rule'): for applied_rule in causality_related_delivery.getCausalityRelatedValueList(portal_type = 'Applied Rule'):
applied_rule.flushActivity(invoke = 1) applied_rule.flushActivity(invoke = 1)
...@@ -1313,8 +1316,8 @@ class SimulationTool (Folder, UniqueObject): ...@@ -1313,8 +1316,8 @@ class SimulationTool (Folder, UniqueObject):
delivery_line = None delivery_line = None
for movement in base_variant_group.movement_list: for movement in base_variant_group.movement_list:
if movement in main_movement_list: if movement in main_movement_list:
if movement.aq_parent.getPortalType() in simulated_movement_type_list \ if movement.aq_parent.getPortalType() in self.getPortalSimulatedMovementTypeList() \
or movement.aq_parent.getPortalType() in invoice_movement_type_list: or movement.aq_parent.getPortalType() in self.getPortalInvoiceMovementTypeList():
delivery_line = movement.aq_parent delivery_line = movement.aq_parent
else: else:
delivery_line = movement delivery_line = movement
...@@ -1324,8 +1327,8 @@ class SimulationTool (Folder, UniqueObject): ...@@ -1324,8 +1327,8 @@ class SimulationTool (Folder, UniqueObject):
if delivery_line is None: if delivery_line is None:
# Not found. So create a new delivery line. # Not found. So create a new delivery line.
movement = base_variant_group.movement_list[0] movement = base_variant_group.movement_list[0]
if movement.aq_parent.getPortalType() in simulated_movement_type_list \ if movement.aq_parent.getPortalType() in self.getPortalSimulatedMovementTypeList() \
or movement.aq_parent.getPortalType() in invoice_movement_type_list: or movement.aq_parent.getPortalType() in self.getPortalInvoiceMovementTypeList():
delivery_line_type = movement.aq_parent.getPortalType() delivery_line_type = movement.aq_parent.getPortalType()
else: else:
delivery_line_type = movement.getPortalType() delivery_line_type = movement.getPortalType()
...@@ -1397,12 +1400,12 @@ class SimulationTool (Folder, UniqueObject): ...@@ -1397,12 +1400,12 @@ class SimulationTool (Folder, UniqueObject):
LOG('mergeDeliveryList', 0, 'object_to_update = %s, cell_category_list = %s, cell_target_quantity = %s, cell_quantity = %s, average_price = %s' % (repr(object_to_update), repr(cell_category_list), repr(cell_target_quantity), repr(cell_quantity), repr(average_price))) LOG('mergeDeliveryList', 0, 'object_to_update = %s, cell_category_list = %s, cell_target_quantity = %s, cell_quantity = %s, average_price = %s' % (repr(object_to_update), repr(cell_category_list), repr(cell_target_quantity), repr(cell_quantity), repr(average_price)))
object_to_update.setCategoryList(cell_category_list) object_to_update.setCategoryList(cell_category_list)
if object_to_update.getPortalType() in simulated_movement_type_list: if object_to_update.getPortalType() in self.getPortalSimulatedMovementTypeList():
object_to_update.edit(target_quantity = cell_target_quantity, object_to_update.edit(target_quantity = cell_target_quantity,
quantity = cell_quantity, quantity = cell_quantity,
price = average_price, price = average_price,
) )
elif object_to_update.getPortalType() in invoice_movement_type_list: elif object_to_update.getPortalType() in self.getPortalInvoiceMovementTypeList():
# Invoices do not have target quantities, and the price never change. # Invoices do not have target quantities, and the price never change.
object_to_update.edit(quantity = cell_quantity, object_to_update.edit(quantity = cell_quantity,
price = cell_price, price = cell_price,
...@@ -1415,7 +1418,7 @@ class SimulationTool (Folder, UniqueObject): ...@@ -1415,7 +1418,7 @@ class SimulationTool (Folder, UniqueObject):
# Merge containers. Just copy them from other deliveries into the main. # Merge containers. Just copy them from other deliveries into the main.
for delivery in delivery_list: for delivery in delivery_list:
container_id_list = delivery.contentIds(filter = {'portal_type': container_type_list}) container_id_list = delivery.contentIds(filter = {'portal_type': self.getPortalContainerTypeList()})
if len(container_id_list) > 0: if len(container_id_list) > 0:
copy_data = delivery.manage_copyObjects(ids = container_id_list) copy_data = delivery.manage_copyObjects(ids = container_id_list)
new_id_list = main_delivery.manage_pasteObjects(copy_data) new_id_list = main_delivery.manage_pasteObjects(copy_data)
......
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