Commit 1541c540 authored by Jean-Paul Smets's avatar Jean-Paul Smets

Improved isSimulated

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@132 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent caa83aa1
master allow_login_change allow_login_change_wip arnau arnau-TM-components-products-migration arnau-TM-isBuildable-with-multiple-BusinessLinks arnau-TM-jabber-client-desktop-notifications arnau-kns arnau-kns-without-property-mapping arnau-merge arnau-poc arnau-real-time-inventory-accounting auto_extend_select_list autoflake backup_erp5_workflow bk_erp5ish_actions_tool bk_sqlcatalog boc-interaction-drop bryton/py3 bt5_config cache callable-jupyter-storage catalog_filter catalog_fulltext catalog_fulltext_old cedric cedriclen cedriclen-eos certificate_authority cherry-pick-243c2f03 cherry-pick-304d7a28 cherry-pick-4a8e045d cleanJSByJSLint clean_up_upgrader cleanup_acquisition_base_category compact_title_no_reference credential_update_action datetimefield deferred_listbox delivery_item_barcode douglas_forum dream_distributor dsn-phase3 eos-dev erp5-component erp5-forum erp5-messenger erp5-preference erp5-release erp5-slapos-upgrade erp5-util-testing erp5-vifib erp5-vifib-cleanup erp5_calendar erp5_capture_flag erp5_catalog erp5_catalog_final erp5_corporate_identity erp5_discussion_tool erp5_forum erp5_free_subscription erp5_hal_json_style_fix_restricted_access_with_traverse erp5_monitoring_app erp5_new_officejs erp5_new_officejs_2 erp5_new_officejs_3 erp5_new_officejs_4 erp5_new_officejs_5 erp5_officejs erp5_payslip_migration erp5_texteditor_migration erp5_workflow erp5testnode_max_timeout experiment/coding_style_test_suite feat/olapy feat/pdm_content_translation feature/accounting-reports-stats feature/hal-actions-support feature/hal-support-update feature/jio-accounting-reports feature/jio-action-accounting feature/jio-selection-actions feature/json-allows-all-jio-actions feature/renderjs-matrixbox feature/renderjs-ui-no-header feature/rjs-listbox-stats feature/rjs-mass-transition feature/rjs-print-action fix/20180928-1D89375 fix/consistency_check_alarm fix/login_validate_check_consistency fix/multiple_small_fixes_to_zodb_history_tab fix/support-request-app-empty fix_listbox_buttons fix_system_processes_ownership for_testrunner_1 for_testrunner_2 for_testrunner_3 gabriel gabriel-fix-rounding-in-accounting-generation gabriel-fix-rounding-in-accounting-generation2 gadget-json-value hateoas hotfix/accounting-test-timeout hotfix/callable_tool hotfix/field-keeps-request hotfix/jio-mass-transition hotfix/jio_view hotfix/pdm-test hotfix/rjs-accounting-tests hotfix/rjs-editability hotfix/rjs-form-less-invasive hotfix/rjs-formfields-padding hotfix/rjs-listbox-mutex hotfix/rjs-replace-query-with-uids hotfix/tests-cleanup http_cache_fix improve_default_caching_policy_manager initsite interaction-drop isDeletable item_tracking_graph_editor ivan jerome-bt-reference-doc jerome_graph_editor_renderjs jerome_new_style_solve_divergence jerome_user_preference_time_zone jio jm/form-action-guard joblib-activity js-ui kns kns-kr lazy_simulation_causality lignan lingnan listbox-generator listbox_url macros_fix mame mame-bt5-cleanup mame-erp5_project-cleanup mame-naming-convention mame-naming-convention-list_method mame-test-stock-indexation mame-work mame2 maste_copy master-erp5-test-result-scalability master-erp5-test-result-scalability-rebase master-test-fix-additionalbt5path master_calendar_wip_patches master_calendar_wip_patches_extend_security master_no_guard_on_workflow_transition master_no_guard_on_workflow_transition_plus_calendar_wip_patchs mic_wind mmariani-inventory monitoring monitoring-graph mrp new-render-presentation no_longer_simulated_state notebook_roque officejs officejs_clean officejs_monitoring officejs_zip ojs_wip old_erp5_text_editor_migration pere portal_callables portal_solver_process_security_configuration presentation project_nexedi_net rebased_mrp refactor/base_edit refactor/renderjs reindex_calendar_after_change_calendar_exception reverse_logistics revert-38554dbe revert-6c89fe9b rewrite_test_21_AcquiredPortalType romain-fulltext romain_monitoring_app roque_appstore_base roque_appstore_improvements roque_credentials roque_dev roque_drone_simulator roque_erp5 roque_fix_coordinates roque_officejs roque_quick scalability-master scalability-master2 scalability-master2-rebase scalability-roque scalability-roque-2 scalability-run-command shop-box sms_more_than_140_characters strict_catalog syncml taskdistribution-xmlrpc-binary test_page testnode_software_link timezones tmp/getInstalledBusinessTemplate_never_installed_bt tristan tristan-merge tristan-performance ttrm upgradeSite view-aggregated-amounts vivekpab_renderjs_interfaces w3validator_removal wenjie wenjie_branch wip yryr yryr-components-cp yryr-inventory-cache yryr-test yryr-with-components yusei test-ui test-rjsacc test-rjs renderjs-test erp5.util-0.4.56 erp5.util-0.4.55 erp5.util-0.4.54 erp5.util-0.4.53 erp5.util-0.4.52 erp5.util-0.4.49 erp5.util-0.4.46 erp5.util-0.4.44 erp5.util-0.4.43 erp5.util-0.4.41 erp5.util-0.4.40 erp5.util-0.4.37 erp5.util-0.4.1 erp5.util-0.4 erp5.util-0.3 erp5.util-0.2 erp5.util-0.1
No related merge requests found
...@@ -492,6 +492,10 @@ une liste de mouvements...""" ...@@ -492,6 +492,10 @@ une liste de mouvements..."""
security.declareProtected(Permissions.View, 'isSimulated') security.declareProtected(Permissions.View, 'isSimulated')
def isSimulated(self): def isSimulated(self):
"""
Returns 1 if all movements have a delivery or order counterpart
in the simulation
"""
for m in self.getMovementList(): for m in self.getMovementList():
if not m.isSimulated(): if not m.isSimulated():
return 0 return 0
......
...@@ -309,10 +309,8 @@ Une ligne tarifaire.""" ...@@ -309,10 +309,8 @@ Une ligne tarifaire."""
for cell in self.contentValues(filter={'portal_type': 'Delivery Cell'}): for cell in self.contentValues(filter={'portal_type': 'Delivery Cell'}):
if cell.isDivergent(): if cell.isDivergent():
return 1 return 1
if not cell.isSimulated():
return 1
else: else:
return Movement.isDivergent(self) or (not self.isSimulated()) return Movement.isDivergent(self)
security.declareProtected(Permissions.ModifyPortalContent, 'applyTargetSolver') security.declareProtected(Permissions.ModifyPortalContent, 'applyTargetSolver')
def applyTargetSolver(self, solver): def applyTargetSolver(self, solver):
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
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 Delivery import Delivery from Delivery import Delivery
...@@ -132,10 +133,20 @@ An order...""" ...@@ -132,10 +133,20 @@ An order..."""
) )
} }
security.declareProtected(Permissions.View, 'isDivergent')
def isDivergent(self):
"""
Returns 1 if not simulated or inconsistent target and values
"""
if self.getSimulationState() not in draft_order_state:
if not self.isSimulated():
return 1
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 draft_order_state:
# Nothing to do # Nothing to do if we are already simulated
self._createDeliveryRule() self._createDeliveryRule()
security.declareProtected(Permissions.ModifyPortalContent, '_createDeliveryRule') security.declareProtected(Permissions.ModifyPortalContent, '_createDeliveryRule')
...@@ -149,6 +160,7 @@ An order...""" ...@@ -149,6 +160,7 @@ An order..."""
# Look up if existing applied rule # Look up if existing applied rule
my_applied_rule_list = self.getCausalityRelatedValueList(portal_type='Applied Rule') my_applied_rule_list = self.getCausalityRelatedValueList(portal_type='Applied Rule')
if len(my_applied_rule_list) == 0: if len(my_applied_rule_list) == 0:
if self.isSimulated(): return # No need to create a DeliveryRule if we are already in the simulation process
# Create a new applied order rule (portal_rules.order_rule) # Create a new applied order rule (portal_rules.order_rule)
portal_rules = getToolByName(self, 'portal_rules') portal_rules = getToolByName(self, 'portal_rules')
portal_simulation = getToolByName(self, 'portal_simulation') portal_simulation = getToolByName(self, 'portal_simulation')
......
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