Commit 33e5c203 authored by Kevin Deldycke's avatar Kevin Deldycke

* Update z_catalog_stock_list ZSQL method to follow Seb's changes.

* Add Baobab_getPortalReferenceCurrencyID script to get the default currency.
* Change reference to getPortalReferenceCurrencyID portal method. Use Baobab_getPortalReferenceCurrencyID instead.
* Add a hack in Baobab_getUserAssignmentList to support old and new person module id.
* Add CashDelivery document.
* Clean portal_classes.
* Change the acquisition_portal_type_list attribute on base category 'site' from "'[]'" to "python: []".
* Delete deprecated ERP5Type_initLocalRoleMapping_* objects.


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@4771 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent abf81ec6
...@@ -277,10 +277,42 @@ WHERE\n ...@@ -277,10 +277,42 @@ WHERE\n
<dtml-if "isMovement[loop_item]">\n <dtml-if "isMovement[loop_item]">\n
<dtml-if "getResourceUid[loop_item]">\n <dtml-if "getResourceUid[loop_item]">\n
<dtml-if "getBaobabDestinationUid[loop_item]">\n <dtml-if "getBaobabDestinationUid[loop_item]">\n
<dtml-call expr="row_list.append([uid[loop_item], getBaobabDestinationUid[loop_item], getBaobabDestinationSectionUid[loop_item], getDestinationPaymentUid[loop_item], getDestinationFunctionUid[loop_item], getDestinationProjectUid[loop_item], getBaobabSourceSectionUid[loop_item], getResourceUid[loop_item], getInventoriatedQuantity[loop_item], getStopDate[loop_item], getPrice[loop_item], isAccountable[loop_item], getPortalType[loop_item], getSimulationState[loop_item], getVariationText[loop_item]])">\n <dtml-call expr="row_list.append([ uid[loop_item]\n
, getBaobabDestinationUid[loop_item]\n
, getBaobabDestinationSectionUid[loop_item]\n
, getDestinationPaymentUid[loop_item]\n
, getDestinationFunctionUid[loop_item]\n
, getDestinationProjectUid[loop_item]\n
, getBaobabSourceSectionUid[loop_item]\n
, getBaobabSourceUid[loop_item]\n
, getResourceUid[loop_item]\n
, getInventoriatedQuantity[loop_item]\n
, getStopDate[loop_item]\n
, getPrice[loop_item]\n
, isAccountable[loop_item]\n
, getPortalType[loop_item]\n
, getSimulationState[loop_item]\n
, getVariationText[loop_item]\n
])">\n
</dtml-if>\n </dtml-if>\n
<dtml-if "getBaobabSourceUid[loop_item]">\n <dtml-if "getBaobabSourceUid[loop_item]">\n
<dtml-call expr="row_list.append([uid[loop_item], getBaobabSourceUid[loop_item], getBaobabSourceSectionUid[loop_item], getSourcePaymentUid[loop_item], getSourceFunctionUid[loop_item], getSourceProjectUid[loop_item], getBaobabDestinationSectionUid[loop_item], getResourceUid[loop_item], -getInventoriatedQuantity[loop_item], getStartDate[loop_item], getPrice[loop_item], isAccountable[loop_item], getPortalType[loop_item], getSimulationState[loop_item], getVariationText[loop_item]])">\n <dtml-call expr="row_list.append([ uid[loop_item]\n
, getBaobabSourceUid[loop_item]\n
, getBaobabSourceSectionUid[loop_item]\n
, getSourcePaymentUid[loop_item]\n
, getSourceFunctionUid[loop_item]\n
, getSourceProjectUid[loop_item]\n
, getBaobabDestinationSectionUid[loop_item]\n
, getBaobabDestinationUid[loop_item]\n
, getResourceUid[loop_item]\n
, -(getInventoriatedQuantity[loop_item] or 0)\n
, getStartDate[loop_item]\n
, getPrice[loop_item]\n
, isAccountable[loop_item]\n
, getPortalType[loop_item]\n
, getSimulationState[loop_item]\n
, getVariationText[loop_item]\n
])">\n
</dtml-if>\n </dtml-if>\n
</dtml-if>\n </dtml-if>\n
</dtml-if>\n </dtml-if>\n
...@@ -299,14 +331,15 @@ VALUES\n ...@@ -299,14 +331,15 @@ VALUES\n
<dtml-sqlvar expr="row_item[4]" type="int" optional>,\n <dtml-sqlvar expr="row_item[4]" type="int" optional>,\n
<dtml-sqlvar expr="row_item[5]" type="int" optional>,\n <dtml-sqlvar expr="row_item[5]" type="int" optional>,\n
<dtml-sqlvar expr="row_item[6]" type="int" optional>,\n <dtml-sqlvar expr="row_item[6]" type="int" optional>,\n
<dtml-sqlvar expr="row_item[7]" type="int">, \n <dtml-sqlvar expr="row_item[7]" type="int" optional>,\n
<dtml-sqlvar expr="row_item[8]" type="float" optional>,\n <dtml-sqlvar expr="row_item[8]" type="int">,\n
<dtml-sqlvar expr="row_item[9]" type="datetime" optional>,\n <dtml-sqlvar expr="row_item[9]" type="float" optional>,\n
<dtml-sqlvar expr="row_item[10]" type="float" optional>,\n <dtml-sqlvar expr="row_item[10]" type="datetime" optional>,\n
<dtml-sqlvar expr="row_item[11]" type="int" optional>,\n <dtml-sqlvar expr="row_item[11]" type="float" optional>,\n
<dtml-sqlvar expr="row_item[12]" type="string" optional>,\n <dtml-sqlvar expr="row_item[12]" type="int" optional>,\n
<dtml-sqlvar expr="row_item[13]" type="string" optional>,\n <dtml-sqlvar expr="row_item[13]" type="string" optional>,\n
<dtml-sqlvar expr="row_item[14]" type="string" optional>\n <dtml-sqlvar expr="row_item[14]" type="string" optional>,\n
<dtml-sqlvar expr="row_item[15]" type="string" optional>\n
)\n )\n
<dtml-if sequence-end><dtml-else>,</dtml-if>\n <dtml-if sequence-end><dtml-else>,</dtml-if>\n
</dtml-in>\n </dtml-in>\n
...@@ -365,10 +398,42 @@ WHERE\n ...@@ -365,10 +398,42 @@ WHERE\n
<dtml-if "isMovement[loop_item]">\n <dtml-if "isMovement[loop_item]">\n
<dtml-if "getResourceUid[loop_item]">\n <dtml-if "getResourceUid[loop_item]">\n
<dtml-if "getBaobabDestinationUid[loop_item]">\n <dtml-if "getBaobabDestinationUid[loop_item]">\n
<dtml-call expr="row_list.append([uid[loop_item], getBaobabDestinationUid[loop_item], getBaobabDestinationSectionUid[loop_item], getDestinationPaymentUid[loop_item], getDestinationFunctionUid[loop_item], getDestinationProjectUid[loop_item], getBaobabSourceSectionUid[loop_item], getResourceUid[loop_item], getInventoriatedQuantity[loop_item], getStopDate[loop_item], getPrice[loop_item], isAccountable[loop_item], getPortalType[loop_item], getSimulationState[loop_item], getVariationText[loop_item]])">\n <dtml-call expr="row_list.append([ uid[loop_item]\n
, getBaobabDestinationUid[loop_item]\n
, getBaobabDestinationSectionUid[loop_item]\n
, getDestinationPaymentUid[loop_item]\n
, getDestinationFunctionUid[loop_item]\n
, getDestinationProjectUid[loop_item]\n
, getBaobabSourceSectionUid[loop_item]\n
, getBaobabSourceUid[loop_item]\n
, getResourceUid[loop_item]\n
, getInventoriatedQuantity[loop_item]\n
, getStopDate[loop_item]\n
, getPrice[loop_item]\n
, isAccountable[loop_item]\n
, getPortalType[loop_item]\n
, getSimulationState[loop_item]\n
, getVariationText[loop_item]\n
])">\n
</dtml-if>\n </dtml-if>\n
<dtml-if "getBaobabSourceUid[loop_item]">\n <dtml-if "getBaobabSourceUid[loop_item]">\n
<dtml-call expr="row_list.append([uid[loop_item], getBaobabSourceUid[loop_item], getBaobabSourceSectionUid[loop_item], getSourcePaymentUid[loop_item], getSourceFunctionUid[loop_item], getSourceProjectUid[loop_item], getBaobabDestinationSectionUid[loop_item], getResourceUid[loop_item], -getInventoriatedQuantity[loop_item], getStartDate[loop_item], getPrice[loop_item], isAccountable[loop_item], getPortalType[loop_item], getSimulationState[loop_item], getVariationText[loop_item]])">\n <dtml-call expr="row_list.append([ uid[loop_item]\n
, getBaobabSourceUid[loop_item]\n
, getBaobabSourceSectionUid[loop_item]\n
, getSourcePaymentUid[loop_item]\n
, getSourceFunctionUid[loop_item]\n
, getSourceProjectUid[loop_item]\n
, getBaobabDestinationSectionUid[loop_item]\n
, getBaobabDestinationUid[loop_item]\n
, getResourceUid[loop_item]\n
, -(getInventoriatedQuantity[loop_item] or 0)\n
, getStartDate[loop_item]\n
, getPrice[loop_item]\n
, isAccountable[loop_item]\n
, getPortalType[loop_item]\n
, getSimulationState[loop_item]\n
, getVariationText[loop_item]\n
])">\n
</dtml-if>\n </dtml-if>\n
</dtml-if>\n </dtml-if>\n
</dtml-if>\n </dtml-if>\n
...@@ -387,14 +452,15 @@ VALUES\n ...@@ -387,14 +452,15 @@ VALUES\n
<dtml-sqlvar expr="row_item[4]" type="int" optional>,\n <dtml-sqlvar expr="row_item[4]" type="int" optional>,\n
<dtml-sqlvar expr="row_item[5]" type="int" optional>,\n <dtml-sqlvar expr="row_item[5]" type="int" optional>,\n
<dtml-sqlvar expr="row_item[6]" type="int" optional>,\n <dtml-sqlvar expr="row_item[6]" type="int" optional>,\n
<dtml-sqlvar expr="row_item[7]" type="int">, \n <dtml-sqlvar expr="row_item[7]" type="int" optional>,\n
<dtml-sqlvar expr="row_item[8]" type="float" optional>,\n <dtml-sqlvar expr="row_item[8]" type="int">,\n
<dtml-sqlvar expr="row_item[9]" type="datetime" optional>,\n <dtml-sqlvar expr="row_item[9]" type="float" optional>,\n
<dtml-sqlvar expr="row_item[10]" type="float" optional>,\n <dtml-sqlvar expr="row_item[10]" type="datetime" optional>,\n
<dtml-sqlvar expr="row_item[11]" type="int" optional>,\n <dtml-sqlvar expr="row_item[11]" type="float" optional>,\n
<dtml-sqlvar expr="row_item[12]" type="string" optional>,\n <dtml-sqlvar expr="row_item[12]" type="int" optional>,\n
<dtml-sqlvar expr="row_item[13]" type="string" optional>,\n <dtml-sqlvar expr="row_item[13]" type="string" optional>,\n
<dtml-sqlvar expr="row_item[14]" type="string" optional>\n <dtml-sqlvar expr="row_item[14]" type="string" optional>,\n
<dtml-sqlvar expr="row_item[15]" type="string" optional>\n
)\n )\n
<dtml-if sequence-end><dtml-else>,</dtml-if>\n <dtml-if sequence-end><dtml-else>,</dtml-if>\n
</dtml-in>\n </dtml-in>\n
......
...@@ -24,6 +24,12 @@ ...@@ -24,6 +24,12 @@
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value> </value>
</item> </item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple/>
</value>
</item>
<item> <item>
<key> <string>_mt_index</string> </key> <key> <string>_mt_index</string> </key>
<value> <value>
...@@ -36,14 +42,108 @@ ...@@ -36,14 +42,108 @@
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value> </value>
</item> </item>
<item>
<key> <string>acquisition_append_value</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>acquisition_base_category</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>acquisition_copy_value</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>acquisition_mask_value</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>acquisition_object_id</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>acquisition_portal_type</string> </key>
<value> <string>python: []</string> </value>
</item>
<item>
<key> <string>acquisition_sync_value</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>category_type</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>criterion_property</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>fallback_base_category</string> </key>
<value>
<tuple/>
</value>
</item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>site</string> </value> <value> <string>site</string> </value>
</item> </item>
<item>
<key> <string>id_group</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>last_id</string> </key>
<value> <string>1</string> </value>
</item>
<item>
<key> <string>membership_criterion_base_category</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>membership_criterion_category</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>multimembership_criterion_base_category</string> </key>
<value>
<tuple/>
</value>
</item>
<item> <item>
<key> <string>portal_type</string> </key> <key> <string>portal_type</string> </key>
<value> <string>Base Category</string> </value> <value> <string>Base Category</string> </value>
</item> </item>
<item>
<key> <string>read_permission</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>test_method_id</string> </key>
<value>
<tuple/>
</value>
</item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>Site</string> </value> <value> <string>Site</string> </value>
...@@ -54,6 +154,12 @@ ...@@ -54,6 +154,12 @@
<none/> <none/>
</value> </value>
</item> </item>
<item>
<key> <string>write_permission</string> </key>
<value>
<none/>
</value>
</item>
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
......
...@@ -34,10 +34,11 @@ from Products.ERP5.Document.Rule import Rule ...@@ -34,10 +34,11 @@ from Products.ERP5.Document.Rule import Rule
from zLOG import LOG from zLOG import LOG
class AccountingTransactionRule(Rule): class AccountingTransactionRule(Rule):
""" """
Accounting Transaction Rule object make sure an Accounting Transaction Line in the simulation Accounting Transaction Rule object make sure an Accounting Transaction Line
is consistent with the real accounting transaction in the simulation is consistent with the real accounting transaction.
WARNING: what to do with movement split ? WARNING: what to do with movement split ?
""" """
...@@ -59,17 +60,17 @@ class AccountingTransactionRule(Rule): ...@@ -59,17 +60,17 @@ class AccountingTransactionRule(Rule):
def test(self, movement): def test(self, movement):
""" """
Tests if the rule (still) applies Tests if the rule (still) applies.
""" """
# An accounting transaction rule never applies since it is always explicitely instanciated # An accounting transaction rule never applies since it is always
# explicitely instanciated.
return 0 return 0
# Simulation workflow # Simulation workflow
security.declareProtected(Permissions.ModifyPortalContent, 'expand') security.declareProtected(Permissions.ModifyPortalContent, 'expand')
def expand(self, applied_rule, force=0, **kw): def expand(self, applied_rule, force=0, **kw):
""" """
Expands the current movement downward. Expands the current movement downward:
-> new status -> expanded -> new status -> expanded
An applied rule can be expanded only if its parent movement An applied rule can be expanded only if its parent movement
...@@ -77,13 +78,15 @@ class AccountingTransactionRule(Rule): ...@@ -77,13 +78,15 @@ class AccountingTransactionRule(Rule):
""" """
delivery_line_type = 'Simulation Movement' delivery_line_type = 'Simulation Movement'
# Get the accounting transaction when we come from # Get the accounting transaction when we come from.
my_accounting_transaction = applied_rule.getDefaultCausalityValue() my_accounting_transaction = applied_rule.getDefaultCausalityValue()
# Only expand if my_accounting_transaction is not None and state is not 'confirmed' # Only expand if my_accounting_transaction is not None and state is
# not 'confirmed'.
if my_accounting_transaction is not None: if my_accounting_transaction is not None:
# Only expand accounting transaction rule if accounting transaction not yet confirmed (This is consistent # Only expand accounting transaction rule if accounting transaction
# with the fact that once simulation is launched, we stick to it) # not yet confirmed (This is consistent with the fact that once
# simulation is launched, we stick to it).
if force or \ if force or \
(applied_rule.getLastExpandSimulationState() not in \ (applied_rule.getLastExpandSimulationState() not in \
applied_rule.getPortalReservedInventoryStateList() and \ applied_rule.getPortalReservedInventoryStateList() and \
......
############################################################################## ##############################################################################
# #
# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved. # Copyright (c) 2005 Nexedi SARL and Contributors. All Rights Reserved.
# #
# WARNING: This program as such is intended to be used by professional # WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential # programmers who take the whole responsability of assessing all potential
...@@ -34,7 +34,8 @@ from Products.ERP5Type.Document.DeliveryCell import DeliveryCell ...@@ -34,7 +34,8 @@ from Products.ERP5Type.Document.DeliveryCell import DeliveryCell
from Products.ERP5.Document.Movement import Movement from Products.ERP5.Document.Movement import Movement
from Products.ERP5.Document.AccountingTransaction import AccountingTransaction from Products.ERP5.Document.AccountingTransaction import AccountingTransaction
class BankingOperation(Delivery,AccountingTransaction):
class BankingOperation(Delivery, AccountingTransaction):
# CMF Type Definition # CMF Type Definition
meta_type = 'BAOBAB Banking Operation' meta_type = 'BAOBAB Banking Operation'
...@@ -58,37 +59,38 @@ class BankingOperation(Delivery,AccountingTransaction): ...@@ -58,37 +59,38 @@ class BankingOperation(Delivery,AccountingTransaction):
, PropertySheet.Amount , PropertySheet.Amount
) )
# Special index methods # Special index methods
security.declareProtected(Permissions.View, 'getBaobabSourceUid') security.declareProtected(Permissions.View, 'getBaobabSourceUid')
def getBaobabSourceUid(self): def getBaobabSourceUid(self):
""" """
Returns a calculated source Returns a calculated source.
""" """
return self.getSourceUid() return self.getSourceUid()
security.declareProtected(Permissions.View, 'getBaobabDestinationUid') security.declareProtected(Permissions.View, 'getBaobabDestinationUid')
def getBaobabDestinationUid(self): def getBaobabDestinationUid(self):
""" """
Returns a calculated destination Returns a calculated destination.
""" """
return self.getDestinationUid() return self.getDestinationUid()
security.declareProtected(Permissions.View, 'getBaobabSourceSectionUid') security.declareProtected(Permissions.View, 'getBaobabSourceSectionUid')
def getBaobabSourceSectionUid(self): def getBaobabSourceSectionUid(self):
""" """
Returns a calculated source section Returns a calculated source section.
""" """
return self.getSourceSectionUid() return self.getSourceSectionUid()
security.declareProtected(Permissions.View, 'getBaobabDestinationSectionUid') security.declareProtected(Permissions.View, 'getBaobabDestinationSectionUid')
def getBaobabDestinationSectionUid(self): def getBaobabDestinationSectionUid(self):
""" """
Returns a calculated destination section Returns a calculated destination section.
""" """
return self.getDestinationSectionUid() return self.getDestinationSectionUid()
# Dynamic patch
### Dynamic patch
Delivery.getBaobabSource = lambda x: x.getSource() Delivery.getBaobabSource = lambda x: x.getSource()
Delivery.security.declareProtected(Permissions.View, 'getBaobabSource') Delivery.security.declareProtected(Permissions.View, 'getBaobabSource')
Delivery.getBaobabSourceUid = lambda x: x.getSourceUid() Delivery.getBaobabSourceUid = lambda x: x.getSourceUid()
...@@ -100,8 +102,7 @@ Delivery.security.declareProtected(Permissions.View, 'getBaobabSourceSectionUid' ...@@ -100,8 +102,7 @@ Delivery.security.declareProtected(Permissions.View, 'getBaobabSourceSectionUid'
Delivery.getBaobabDestinationSectionUid = lambda x: x.getDestinationSectionUid() Delivery.getBaobabDestinationSectionUid = lambda x: x.getDestinationSectionUid()
Delivery.security.declareProtected(Permissions.View, 'getBaobabDestinationSectionUid') Delivery.security.declareProtected(Permissions.View, 'getBaobabDestinationSectionUid')
### Overload Movement
# Overload Movement
Movement.getBaobabSource = lambda x: x.getSource() Movement.getBaobabSource = lambda x: x.getSource()
Movement.security.declareProtected(Permissions.View, 'getBaobabSource') Movement.security.declareProtected(Permissions.View, 'getBaobabSource')
Movement.getBaobabSourceUid = lambda x: x.getSourceUid() Movement.getBaobabSourceUid = lambda x: x.getSourceUid()
...@@ -113,7 +114,7 @@ Movement.security.declareProtected(Permissions.View, 'getBaobabSourceSectionUid' ...@@ -113,7 +114,7 @@ Movement.security.declareProtected(Permissions.View, 'getBaobabSourceSectionUid'
Movement.getBaobabDestinationSectionUid = lambda x: x.getDestinationSectionUid() Movement.getBaobabDestinationSectionUid = lambda x: x.getDestinationSectionUid()
Movement.security.declareProtected(Permissions.View, 'getBaobabDestinationSectionUid') Movement.security.declareProtected(Permissions.View, 'getBaobabDestinationSectionUid')
# Acquire Baobab source / destination uids from parent line ### Acquire Baobab source / destination uids from parent line
DeliveryCell.getBaobabSource = lambda x: x.aq_parent.getBaobabSource() DeliveryCell.getBaobabSource = lambda x: x.aq_parent.getBaobabSource()
DeliveryCell.security.declareProtected(Permissions.View, 'getBaobabSource') DeliveryCell.security.declareProtected(Permissions.View, 'getBaobabSource')
DeliveryCell.getBaobabSourceUid = lambda x: x.aq_parent.getBaobabSourceUid() DeliveryCell.getBaobabSourceUid = lambda x: x.aq_parent.getBaobabSourceUid()
...@@ -124,7 +125,3 @@ DeliveryCell.getBaobabSourceSectionUid = lambda x: x.aq_parent.getBaobabSourceSe ...@@ -124,7 +125,3 @@ DeliveryCell.getBaobabSourceSectionUid = lambda x: x.aq_parent.getBaobabSourceSe
DeliveryCell.security.declareProtected(Permissions.View, 'getBaobabSourceSectionUid') DeliveryCell.security.declareProtected(Permissions.View, 'getBaobabSourceSectionUid')
DeliveryCell.BaobabDestinationSectionUid = lambda x: x.aq_parent.getBaobabDestinationSectionUid() DeliveryCell.BaobabDestinationSectionUid = lambda x: x.aq_parent.getBaobabDestinationSectionUid()
DeliveryCell.security.declareProtected(Permissions.View, 'getBaobabDestinationSectionUid') DeliveryCell.security.declareProtected(Permissions.View, 'getBaobabDestinationSectionUid')
############################################################################## ##############################################################################
# #
# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved. # Copyright (c) 2005 Nexedi SARL and Contributors. All Rights Reserved.
# #
# WARNING: This program as such is intended to be used by professional # WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential # programmers who take the whole responsability of assessing all potential
...@@ -31,6 +31,7 @@ from Products.CMFCore.WorkflowCore import WorkflowMethod ...@@ -31,6 +31,7 @@ from Products.CMFCore.WorkflowCore import WorkflowMethod
from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
from Products.ERP5.Document.AccountingTransactionLine import AccountingTransactionLine from Products.ERP5.Document.AccountingTransactionLine import AccountingTransactionLine
class BankingOperationLine(AccountingTransactionLine): class BankingOperationLine(AccountingTransactionLine):
# CMF Type Definition # CMF Type Definition
meta_type = 'BAOBAB Banking Operation Line' meta_type = 'BAOBAB Banking Operation Line'
...@@ -52,14 +53,13 @@ class BankingOperationLine(AccountingTransactionLine): ...@@ -52,14 +53,13 @@ class BankingOperationLine(AccountingTransactionLine):
security.declareProtected(Permissions.View, 'getBaobabSourceUid') security.declareProtected(Permissions.View, 'getBaobabSourceUid')
def getBaobabSourceUid(self): def getBaobabSourceUid(self):
""" """
Returns a calculated source Returns a calculated source.
""" """
return self.getSourceUid() return self.getSourceUid()
security.declareProtected(Permissions.View, 'getBaobabDestinationUid') security.declareProtected(Permissions.View, 'getBaobabDestinationUid')
def getBaobabDestinationUid(self): def getBaobabDestinationUid(self):
""" """
Returns a calculated destination Returns a calculated destination.
""" """
return self.getDestinationUid() return self.getDestinationUid()
##############################################################################
#
# Copyright (c) 2005 Nexedi SARL and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
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.Container import Container from Products.ERP5.Document.Container import Container
class CashContainer(Container): class CashContainer(Container):
""" """
A Cash DeliveryLine object allows to implement lines in A Cash DeliveryLine object allows to implement lines
Cash Deliveries (packing list, Check payment, Cash Movement, etc.) in Cash Deliveries (packing list, Check payment, Cash Movement, etc.).
It may include a price (for insurance, for customs, for invoices, It may include a price (for insurance, for customs, for invoices,
for orders) for orders).
""" """
meta_type = 'BAOBAB Cash Container' meta_type = 'BAOBAB Cash Container'
...@@ -21,9 +49,6 @@ class CashContainer(Container): ...@@ -21,9 +49,6 @@ class CashContainer(Container):
security = ClassSecurityInfo() security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.View) security.declareObjectProtected(Permissions.View)
# Declarative interfaces
# __implements__ = ( Interface.Ved, )
# Declarative properties # Declarative properties
property_sheets = ( PropertySheet.Base property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject , PropertySheet.XMLObject
......
############################################################################## ##############################################################################
# #
# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved. # Copyright (c) 2005 Nexedi SARL and Contributors. All Rights Reserved.
# Jean-Paul Smets-Solanes <jp@nexedi.com> # Jean-Paul Smets-Solanes <jp@nexedi.com>
# #
# WARNING: This program as such is intended to be used by professional # WARNING: This program as such is intended to be used by professional
......
##############################################################################
#
# Copyright (c) 2005 Nexedi SARL and Contributors. All Rights Reserved.
# Kevin Deldycke <kevin_AT_nexedi_DOT_com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
from Products.ERP5.Document.Delivery import Delivery
class CashDelivery(Delivery):
"""
"""
meta_type = 'BAOBAB Cash Delivery'
portal_type = 'Cash Delivery'
add_permission = Permissions.AddPortalContent
isPortalContent = 1
isRADContent = 1
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.View)
# Declarative interfaces
__implements__ = ( Interface.Variated, )
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
, PropertySheet.CategoryCore
, PropertySheet.Amount
, PropertySheet.Task
, PropertySheet.Arrow
, PropertySheet.Movement
, PropertySheet.Price
, PropertySheet.VariationRange
, PropertySheet.ItemAggregation
)
############################################################################## ##############################################################################
# #
# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved. # Copyright (c) 2005 Nexedi SARL and Contributors. All Rights Reserved.
# Jean-Paul Smets-Solanes <jp@nexedi.com> # Jean-Paul Smets-Solanes <jp@nexedi.com>
# #
# WARNING: This program as such is intended to be used by professional # WARNING: This program as such is intended to be used by professional
...@@ -36,11 +36,11 @@ out_portal_type_list = ('Cash Exchange Line Out', 'Cash To Currency Sale Line Ou ...@@ -36,11 +36,11 @@ out_portal_type_list = ('Cash Exchange Line Out', 'Cash To Currency Sale Line Ou
class CashDeliveryLine(DeliveryLine): class CashDeliveryLine(DeliveryLine):
""" """
A Cash DeliveryLine object allows to implement lines in A Cash DeliveryLine object allows to implement lines
Cash Deliveries (packing list, Check payment, Cash Movement, etc.) in Cash Deliveries (packing list, Check payment, Cash Movement, etc.).
It may include a price (for insurance, for customs, for invoices, It may include a price (for insurance, for customs, for invoices,
for orders) for orders).
""" """
meta_type = 'BAOBAB Cash Delivery Line' meta_type = 'BAOBAB Cash Delivery Line'
......
############################################################################## ##############################################################################
# #
# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved. # Copyright (c) 2005 Nexedi SARL and Contributors. All Rights Reserved.
# K. Toure <ktoure@nexedi.com> # K. Toure <ktoure_AT_nexedi_DOT_com>
# #
# WARNING: This program as such is intended to be used by professional # WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential # programmers who take the whole responsability of assessing all potential
......
############################################################################## ##############################################################################
# #
# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved. # Copyright (c) 2005 Nexedi SARL and Contributors. All Rights Reserved.
# #
# WARNING: This program as such is intended to be used by professional # WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential # programmers who take the whole responsability of assessing all potential
...@@ -24,6 +24,8 @@ ...@@ -24,6 +24,8 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# #
############################################################################## ##############################################################################
class CashContainer: class CashContainer:
""" """
VariationRange which allows to define possible VariationRange which allows to define possible
...@@ -42,4 +44,5 @@ class CashContainer: ...@@ -42,4 +44,5 @@ class CashContainer:
'mode' : 'w' 'mode' : 'w'
} }
) )
_categories = ( 'emission_letter','cash_status','variation') _categories = ( 'emission_letter','cash_status','variation')
############################################################################## ##############################################################################
# #
# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved. # Copyright (c) 2005 Nexedi SARL and Contributors. All Rights Reserved.
# Jean-Paul Smets-Solanes <jp@nexedi.com> # Jean-Paul Smets-Solanes <jp@nexedi.com>
# #
# WARNING: This program as such is intended to be used by professional # WARNING: This program as such is intended to be used by professional
...@@ -26,13 +26,15 @@ ...@@ -26,13 +26,15 @@
# #
############################################################################## ##############################################################################
class CashCurrency: class CashCurrency:
""" """
Properties which allow to define a BankNote or a Coin Properties which allow to define a BankNote or a Coin.
""" """
_properties = () _properties = ()
_categories = ( 'emission_letter','cash_status','variation') _categories = ( 'emission_letter'
, 'cash_status'
, 'variation'
)
############################################################################## ##############################################################################
# #
# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved. # Copyright (c) 2005 Nexedi SARL and Contributors. All Rights Reserved.
# Jean-Paul Smets-Solanes <jp@nexedi.com> # Jean-Paul Smets-Solanes <jp@nexedi.com>
# #
# WARNING: This program as such is intended to be used by professional # WARNING: This program as such is intended to be used by professional
...@@ -35,4 +35,6 @@ class CashDeliveryLine: ...@@ -35,4 +35,6 @@ class CashDeliveryLine:
_properties = ( _properties = (
) )
_categories = ('emission_letter','cash_status') _categories = ( 'emission_letter'
, 'cash_status'
)
############################################################################## ##############################################################################
# #
# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved. # Copyright (c) 2005 Nexedi SARL and Contributors. All Rights Reserved.
# #
# WARNING: This program as such is intended to be used by professional # WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential # programmers who take the whole responsability of assessing all potential
...@@ -24,6 +24,8 @@ ...@@ -24,6 +24,8 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# #
############################################################################## ##############################################################################
class Checkbook: class Checkbook:
""" """
VariationRange which allows to define possible VariationRange which allows to define possible
...@@ -48,4 +50,5 @@ class Checkbook: ...@@ -48,4 +50,5 @@ class Checkbook:
'default' : ['checkbook_type'] 'default' : ['checkbook_type']
} }
) )
_categories = ('checkbook_type',) _categories = ('checkbook_type',)
...@@ -281,7 +281,7 @@ ...@@ -281,7 +281,7 @@
<dictionary> <dictionary>
<item> <item>
<key> <string>_text</string> </key> <key> <string>_text</string> </key>
<value> <string>python:[(\'\',\'\')]+map(lambda x:(x.id,\'currency/%s\' %x.id),here.currency.objectValues())</string> </value> <value> <string>python:[(\'\',\'\')]+map(lambda x:(x.id,\'currency_module/%s\' %x.id),here.currency_module.objectValues())</string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PythonScripts.PythonScript</string>
<string>PythonScript</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Python_magic</string> </key>
<value> <string encoding="base64">O/INCg==</string> </value>
</item>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string># Return the currency used as a reference for banking transaction.\n
return \'EUR\'\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAAAAAAAAAAACAAAAQwAA
AHMIAAAAZAEAU2QAAFMoAgAAAE5zAwAAAEVVUigAAAAAKAAAAAAoAAAAACgAAAAAcw8AAABTY3Jp
cHQgKFB5dGhvbilzIwAAAEJhb2JhYl9nZXRQb3J0YWxSZWZlcmVuY2VDdXJyZW5jeUlEAQAAAHMC
AAAAAAEoAQAAAHMjAAAAQmFvYmFiX2dldFBvcnRhbFJlZmVyZW5jZUN1cnJlbmN5SUQoAQAAAHMj
AAAAQmFvYmFiX2dldFBvcnRhbFJlZmVyZW5jZUN1cnJlbmN5SUQoAAAAACgAAAAAcw8AAABTY3Jp
cHQgKFB5dGhvbilzCAAAADxtb2R1bGU+AQAAAHMAAAAA</string> </value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value> <string>Script (Python):/baobab/portal_skins/erp5_banking_core/Baobab_getPortalReferenceCurrencyID</string> </value>
</item>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>errors</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>func_code</string> </key>
<value>
<object>
<klass>
<global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Baobab_getPortalReferenceCurrencyID</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -70,7 +70,12 @@ ...@@ -70,7 +70,12 @@
# get the current logged user site\n # get the current logged user site\n
user_id = context.portal_membership.getAuthenticatedMember().getUserName()\n user_id = context.portal_membership.getAuthenticatedMember().getUserName()\n
person = context.person[user_id]\n \n
### KEV HACK: support old and new person module id\n
try:\n
person = context.person[user_id]\n
except:\n
person = context.person_module[user_id]\n
\n \n
assignment_list = person.contentValues(filter={\'portal_type\': \'Assignment\'})\n assignment_list = person.contentValues(filter={\'portal_type\': \'Assignment\'})\n
\n \n
...@@ -92,26 +97,27 @@ return valid_assignment_list\n ...@@ -92,26 +97,27 @@ return valid_assignment_list\n
</item> </item>
<item> <item>
<key> <string>_code</string> </key> <key> <string>_code</string> </key>
<value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAAAAAA4AAAANAAAAQwAA <value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAAAAAA4AAAATAAAAQwAA
AHMVAQAAdAAAdAAAdAAAdAEAZAEAgwIAZAIAgwIAgwAAZAMAgwIAgwAAfQIAdAMAdAAAdAEAZAQA AHM7AQAAdAAAdAAAdAAAdAEAZAEAgwIAZAIAgwIAgwAAZAMAgwIAgwAAfQIAeRwAdAMAdAAAdAEA
gwIAfAIAgwIAfQQAdAAAfAQAZAUAgwIAZAYAaAAABGQHAGQIAAM8gwABfQUAdAYAfAUAgwEAZAkA ZAQAgwIAfAIAgwIAfQQAV24fAAEBAXQDAHQAAHQBAGQFAIMCAHwCAIMCAH0EAG4BAFh0AAB8BABk
agIAbwgAAWcAAFNuAQABZwAAfQcAeIkAdAgAfAUAgwEARF17AH0JAHQAAHwJAGQKAIMCAIMAAH0K BgCDAgBkBwBoAAAEZAgAZAkAAzyDAAF9BQB0BgB8BQCDAQBkCgBqAgBvCAABZwAAU24BAAFnAAB9
AHQAAHwJAGQLAIMCAIMAAH0LAHwKAHQMAIMAAGoEAHAKAAF8CgB0DQBqAgBvGgABfAsAdAwAgwAA BwB4iQB0CAB8BQCDAQBEXXsAfQkAdAAAfAkAZAsAgwIAgwAAfQoAdAAAfAkAZAwAgwIAgwAAfQsA
agAAcAoAAXwLAHQNAGoCAG8XAAF0AAB8BwBkDACDAgB8CQCDAQABcY4AAXGOAFd8BwBTZAAAUygN fAoAdAwAgwAAagQAcAoAAXwKAHQNAGoCAG8aAAF8CwB0DACDAABqAABwCgABfAsAdA0AagIAbxcA
AAAATnMRAAAAcG9ydGFsX21lbWJlcnNoaXBzFgAAAGdldEF1dGhlbnRpY2F0ZWRNZW1iZXJzCwAA AXQAAHwHAGQNAIMCAHwJAIMBAAFxtAABcbQAV3wHAFNkAABTKA4AAABOcxEAAABwb3J0YWxfbWVt
AGdldFVzZXJOYW1lcwYAAABwZXJzb25zDQAAAGNvbnRlbnRWYWx1ZXNzBgAAAGZpbHRlcnMLAAAA YmVyc2hpcHMWAAAAZ2V0QXV0aGVudGljYXRlZE1lbWJlcnMLAAAAZ2V0VXNlck5hbWVzBgAAAHBl
cG9ydGFsX3R5cGVzCgAAAEFzc2lnbm1lbnRpAAAAAHMLAAAAZ2V0U3RvcERhdGVzDAAAAGdldFN0 cnNvbnMNAAAAcGVyc29uX21vZHVsZXMNAAAAY29udGVudFZhbHVlc3MGAAAAZmlsdGVycwsAAABw
YXJ0RGF0ZXMGAAAAYXBwZW5kKA4AAABzCQAAAF9nZXRhdHRyX3MHAAAAY29udGV4dHMHAAAAdXNl b3J0YWxfdHlwZXMKAAAAQXNzaWdubWVudGkAAAAAcwsAAABnZXRTdG9wRGF0ZXMMAAAAZ2V0U3Rh
cl9pZHMJAAAAX2dldGl0ZW1fcwYAAABwZXJzb25zDwAAAGFzc2lnbm1lbnRfbGlzdHMDAAAAbGVu cnREYXRlcwYAAABhcHBlbmQoDgAAAHMJAAAAX2dldGF0dHJfcwcAAABjb250ZXh0cwcAAAB1c2Vy
cxUAAAB2YWxpZF9hc3NpZ25tZW50X2xpc3RzCQAAAF9nZXRpdGVyX3MBAAAAYXMEAAAAc3RvcHMF X2lkcwkAAABfZ2V0aXRlbV9zBgAAAHBlcnNvbnMPAAAAYXNzaWdubWVudF9saXN0cwMAAABsZW5z
AAAAc3RhcnRzCAAAAERhdGVUaW1lcwQAAABOb25lKA4AAABzCQAAAF9nZXRhdHRyX3MHAAAAY29u FQAAAHZhbGlkX2Fzc2lnbm1lbnRfbGlzdHMJAAAAX2dldGl0ZXJfcwEAAABhcwQAAABzdG9wcwUA
dGV4dHMHAAAAdXNlcl9pZHMJAAAAX2dldGl0ZW1fcwYAAABwZXJzb25zDwAAAGFzc2lnbm1lbnRf AABzdGFydHMIAAAARGF0ZVRpbWVzBAAAAE5vbmUoDgAAAHMJAAAAX2dldGF0dHJfcwcAAABjb250
bGlzdHMDAAAAbGVucxUAAAB2YWxpZF9hc3NpZ25tZW50X2xpc3RzCQAAAF9nZXRpdGVyX3MBAAAA ZXh0cwcAAAB1c2VyX2lkcwkAAABfZ2V0aXRlbV9zBgAAAHBlcnNvbnMPAAAAYXNzaWdubWVudF9s
YXMEAAAAc3RvcHMFAAAAc3RhcnRzCAAAAERhdGVUaW1lcwQAAABOb25lKAAAAAAoAAAAAHMPAAAA aXN0cwMAAABsZW5zFQAAAHZhbGlkX2Fzc2lnbm1lbnRfbGlzdHMJAAAAX2dldGl0ZXJfcwEAAABh
U2NyaXB0IChQeXRob24pcxwAAABCYW9iYWJfZ2V0VXNlckFzc2lnbm1lbnRMaXN0AQAAAHMaAAAA cwQAAABzdG9wcwUAAABzdGFydHMIAAAARGF0ZVRpbWVzBAAAAE5vbmUoAAAAACgAAAAAcw8AAABT
AAEnARgCIQITAQgCBgINAAYBEgESAT0BGAIoAQAAAHMcAAAAQmFvYmFiX2dldFVzZXJBc3NpZ25t Y3JpcHQgKFB5dGhvbilzHAAAAEJhb2JhYl9nZXRVc2VyQXNzaWdubWVudExpc3QBAAAAcx4AAAAA
ZW50TGlzdCgBAAAAcxwAAABCYW9iYWJfZ2V0VXNlckFzc2lnbm1lbnRMaXN0KAAAAAAoAAAAAHMP AScDAwEfAhwCIQITAQgCBgINAAYBEgESAT0BGAIoAQAAAHMcAAAAQmFvYmFiX2dldFVzZXJBc3Np
AAAAU2NyaXB0IChQeXRob24pcwgAAAA8bW9kdWxlPgEAAABzAAAAAA==</string> </value> Z25tZW50TGlzdCgBAAAAcxwAAABCYW9iYWJfZ2V0VXNlckFzc2lnbm1lbnRMaXN0KAAAAAAoAAAA
AHMPAAAAU2NyaXB0IChQeXRob24pcwgAAAA8bW9kdWxlPgEAAABzAAAAAA==</string> </value>
</item> </item>
<item> <item>
<key> <string>_filepath</string> </key> <key> <string>_filepath</string> </key>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PythonScripts.PythonScript</string>
<string>PythonScript</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Python_magic</string> </key>
<value> <string encoding="base64">O/INCg==</string> </value>
</item>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>CashMovement_cashDetail_parameter = { \'line_portalType\' : \'Cash Movement Line\'\n
, \'operation_currency\' : \'EUR\'\n
, \'variation_list\' : None\n
, \'cashStatus_list\' : [\'not_defined\']\n
, \'emissionLetter_list\' : None\n
}\n
\n
CashMovement_cashDetail_parameter = { \'line_portalType\' : \'Cash Movement Line\' # The portal type that the fastinput will create\n
, \'operation_currency\' : context.Baobab_getPortalReferenceCurrencyID() # The operation currency\n
, \'cashStatus_list\' : None # List of possible cashStatus or None if all\n
, \'emissionLetter_list\' : None # List of possible emissionLetter or None if all\n
, \'variation_list\' : None # List of possible variation or None if all\n
, \'currencyCash_portalType\' : None # \'Coin\' or \'Banknote\' or None if both\n
, \'updatePossible\' : True # If true, the fastinput will not allow change\n
, \'columnBase\' : \'variation\' # possible values : \'variation\', \'cashStatus\', \'emissionLetter\'\n
#, \'columnBase\' : \'emissionLetter\' # possible values : \'variation\', \'cashStatus\', \'emissionLetter\'\n
#, \'columnBase\' : \'cashStatus\' # possible values : \'variation\', \'cashStatus\', \'emissionLetter\'\n
}\n
\n
\n
\n
\n
return context.CashDetail_fastInputUpdate( listbox = None\n
, cashDetail_parameter = CashMovement_cashDetail_parameter\n
, destination = context.getObject().absolute_url())\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAAAAAAUAAAALAAAAQwAA
AHPOAAAAaAAABGQBAGQCAAM8BGQDAGQEAAM8BGQFAHQAAAM8BGQGAGQHAGcBAAM8BGQIAHQAAAM8
fQEAaAAABGQBAGQCAAM8BGQDAHQCAHQDAGQJAIMCAIMAAAM8BGQGAHQAAAM8BGQIAHQAAAM8BGQF
AHQAAAM8BGQKAHQAAAM8BGQLAHQEAAM8BGQMAGQNAAM8fQEAdAIAdAMAZA4AgwIAZA8AdAAAZBAA
fAEAZBEAdAIAdAIAdAMAZBIAgwIAgwAAZBMAgwIAgwAAgwADU2QAAFMoFAAAAE5zDwAAAGxpbmVf
cG9ydGFsVHlwZXMSAAAAQ2FzaCBNb3ZlbWVudCBMaW5lcxIAAABvcGVyYXRpb25fY3VycmVuY3lz
AwAAAEVVUnMOAAAAdmFyaWF0aW9uX2xpc3RzDwAAAGNhc2hTdGF0dXNfbGlzdHMLAAAAbm90X2Rl
ZmluZWRzEwAAAGVtaXNzaW9uTGV0dGVyX2xpc3RzIwAAAEJhb2JhYl9nZXRQb3J0YWxSZWZlcmVu
Y2VDdXJyZW5jeUlEcxcAAABjdXJyZW5jeUNhc2hfcG9ydGFsVHlwZXMOAAAAdXBkYXRlUG9zc2li
bGVzCgAAAGNvbHVtbkJhc2VzCQAAAHZhcmlhdGlvbnMaAAAAQ2FzaERldGFpbF9mYXN0SW5wdXRV
cGRhdGVzBwAAAGxpc3Rib3hzFAAAAGNhc2hEZXRhaWxfcGFyYW1ldGVycwsAAABkZXN0aW5hdGlv
bnMJAAAAZ2V0T2JqZWN0cwwAAABhYnNvbHV0ZV91cmwoBQAAAHMEAAAATm9uZXMhAAAAQ2FzaE1v
dmVtZW50X2Nhc2hEZXRhaWxfcGFyYW1ldGVycwkAAABfZ2V0YXR0cl9zBwAAAGNvbnRleHRzBAAA
AFRydWUoBQAAAHMEAAAATm9uZXMhAAAAQ2FzaE1vdmVtZW50X2Nhc2hEZXRhaWxfcGFyYW1ldGVy
cwkAAABfZ2V0YXR0cl9zBwAAAGNvbnRleHRzBAAAAFRydWUoAAAAACgAAAAAcw8AAABTY3JpcHQg
KFB5dGhvbilzHQAAAENhc2hEZXRhaWxfbG9hZFNjcmlwdF9leGFtcGxlAQAAAHMaAAAAGQIJAQwB
CAMTARIBCQEJAQkBCQERCRUBDAEoAQAAAHMdAAAAQ2FzaERldGFpbF9sb2FkU2NyaXB0X2V4YW1w
bGUoAQAAAHMdAAAAQ2FzaERldGFpbF9sb2FkU2NyaXB0X2V4YW1wbGUoAAAAACgAAAAAcw8AAABT
Y3JpcHQgKFB5dGhvbilzCAAAADxtb2R1bGU+AQAAAHMAAAAA</string> </value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value> <string>Script (Python):/baobab/portal_skins/erp5_banking_core/CashDetail_loadScript_example</string> </value>
</item>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>errors</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>func_code</string> </key>
<value>
<object>
<klass>
<global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>None</string>
<string>CashMovement_cashDetail_parameter</string>
<string>_getattr_</string>
<string>context</string>
<string>True</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>CashDetail_loadScript_example</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -281,7 +281,7 @@ ...@@ -281,7 +281,7 @@
<dictionary> <dictionary>
<item> <item>
<key> <string>_text</string> </key> <key> <string>_text</string> </key>
<value> <string>python:[(\'\',\'\')]+map(lambda x:(x.id,\'currency/%s\' %x.id),here.currency.objectValues())</string> </value> <value> <string>python:[(\'\',\'\')]+map(lambda x:(x.id,\'currency_module/%s\' %x.id),here.currency_module.objectValues())</string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PythonScripts.PythonScript</string>
<string>PythonScript</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Python_magic</string> </key>
<value> <string encoding="base64">O/INCg==</string> </value>
</item>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>base_list=(\'variation\')\n
default_variation_category_list = [\'emission_letter/k\',\'cash_status/valid\']\n
\n
currency_list = [x.getObject() for x in context.portal_catalog(portal_type=(\'Banknote\',\'Coin\')) \\\n
if x.getObject().getPriceCurrencyId() == cashMovement_currency] \n
\n
currency_list = [x.getObject() for x in context.portal_catalog(portal_type=(\'Banknote\',\'Coin\'))] \n
\n
currency_list = context.sort_currency(currency_list)\n
\n
variation_list = context.portal_categories.variation.getCategoryChildTitleItemList()[1:]\n
\n
total_price = 0\n
if listbox is None:\n
listbox = []\n
for x in currency_list :\n
currency_dict = {\'resource\':x.getTitle(),\'Id_resource\':x.getId()}\n
total_quantity = 0\n
counter = 1\n
find_currencyLine = context.searchContainerLineByResource(x.getId()) # Search container line with resource X\n
for y in variation_list:\n
quantity = 0\n
if not find_currencyLine is None : # If Check Payment line is found\n
cell = find_currencyLine.getCell(\'variation/\'+y[1])\n
if not cell is None:\n
quantity = cell.getQuantity()\n
total_quantity += quantity\n
\n
currency_dict[\'variation\'+str(counter)]= quantity \n
counter += 1\n
resource_list = context.portal_catalog(portal_type = (\'Banknote\',\'Coin\') ,id= x.getId())\n
resource_price = resource_list[0].getObject().getPrice()\n
currency_dict[\'price\']= context.Integer_toString(int(total_quantity * resource_price))\n
total_price += int(total_quantity * resource_price)\n
listbox.append(currency_dict)\n
\n
else :\n
new_lineList = []\n
counter = 0\n
price_list = []\n
for x in listbox :\n
resource_list = context.portal_catalog(portal_type = (\'Banknote\',\'Coin\') ,id = x[\'Id_resource\'])\n
resource_price = resource_list[0].getObject().getPrice()\n
quantity = 0\n
counter = 1\n
for y in variation_list:\n
cell_quantity = int(x[\'variation\'+str(counter)] or 0)\n
quantity = quantity + cell_quantity\n
counter += 1\n
x[\'price\'] = context.Integer_toString(int(quantity * resource_price))\n
total_price += int(quantity * resource_price)\n
new_lineList.append(x) \n
price_list.append(resource_price)\n
price_list.append(x[\'resource\'])\n
listbox = new_lineList \n
total_price = context.Integer_toString(total_price)\n
context.Base_updateDialogForm(listbox=listbox,calculated_price=total_price, empty_line_number=0)\n
\n
return context.asContext(context=None,portal_type=context.getPortalType(),calculated_price=total_price, **kw).Container_fastInputForm(**kw)\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value> <string encoding="base64">YwAAAAAAAAAAAwAAAEAAAABzEwAAAGUAAGUAAGQBAIQCAFoBAGQAAFMoAgAAAE5jAgAAACEAAAAh
AAAASwAAAHPgBAAAZAEAfQMAZAIAZAMAZwIAfQQAZwAABGkCAH0GAHQEAHQFAHQGAGQEAIMCAGQF
AGQGAGQHAGYCAIMAAYMBAERdRQB9CgB0BQB0BQB8CgBkCACDAgCDAABkCQCDAgCDAAB0CABqAgBv
GgABfAYAdAUAfAoAZAgAgwIAgwAAgwEAAXE+AAFxPgB+BgB9DABnAAAEaQIAfQYAdAQAdAUAdAYA
ZAQAgwIAZAUAZAYAZAcAZgIAgwABgwEARF0cAH0KAHwGAHQFAHwKAGQIAIMCAIMAAIMBAAFxuAB+
BgB9DAB0BQB0BgBkCgCDAgB8DACDAQB9DAB0CgB0BQB0BQB0BQB0BgBkCwCDAgBkAQCDAgBkDACD
AgCDAABkDQBkAACFAgCDAgB9DgBkDgB9DwB8AQB0DgBqCABvyAEBZwAAfQEAeB4DdAQAfAwAgwEA
RF2tAX0KAGgAAARkDwB0BQB8CgBkEACDAgCDAAADPARkEQB0BQB8CgBkEgCDAgCDAAADPH0RAGQO
AH0SAGQNAH0TAHQFAHQGAGQTAIMCAHQFAHwKAGQSAIMCAIMAAIMBAH0UAHigAHQEAHwOAIMBAERd
kgB9FQBkDgB9FgB8FAB0DgBqCAAMb1QAAXQFAHwUAGQUAIMCAGQVAHQKAHwVAGQNAIMCABeDAQB9
FwB8FwB0DgBqCAAMbyAAAXQFAHwXAGQWAIMCAIMAAH0WAHwSAHwWADd9EgBxKQIBbgEAAXwWAHQW
AHwRAIMBAGQBAHQXAHwTAIMBABc8fBMAZA0AN30TAHG7AVd0BQB0BgBkBACDAgBkBQBkBgBkBwBm
AgBkFwB0BQB8CgBkEgCDAgCDAACDAAJ9GgB0BQB0BQB0CgB8GgBkDgCDAgBkCACDAgCDAABkGACD
AgCDAAB9GwB0BQB0BgBkGQCDAgB0GgB8EgB8GwAUgwEAgwEAdBYAfBEAgwEAZBoAPHwPAHQaAHwS
AHwbABSDAQA3fQ8AdAUAfAEAZBsAgwIAfBEAgwEAAXFLAVduYAEBZwAAfR0AZA4AfRMAZwAAfR4A
eEoBdAQAfAEAgwEARF08AX0KAHQFAHQGAGQEAIMCAGQFAGQGAGQHAGYCAGQXAHQKAHwKAGQRAIMC
AIMAAn0aAHQFAHQFAHQKAHwaAGQOAIMCAGQIAIMCAIMAAGQYAIMCAIMAAH0bAGQOAH0WAGQNAH0T
AHhOAHQEAHwOAIMBAERdQAB9FQB0GgB0CgB8CgBkAQB0FwB8EwCDAQAXgwIAcAQAAWQOAIMBAH0f
AHwWAHwfABd9FgB8EwBkDQA3fRMAcZIDV3QFAHQGAGQZAIMCAHQaAHwWAHwbABSDAQCDAQB0FgB8
CgCDAQBkGgA8fA8AdBoAfBYAfBsAFIMBADd9DwB0BQB8HQBkGwCDAgB8CgCDAQABdAUAfB4AZBsA
gwIAfBsAgwEAAXQFAHweAGQbAIMCAHQKAHwKAGQPAIMCAIMBAAF8HQB9AQBxHwNXdAUAdAYAZBkA
gwIAfA8AgwEAfQ8AdAUAdAYAZBwAgwIAZB0AfAEAZB4AfA8AZB8AZA4AgwADAXQeAHQFAHQeAHQF
AHQGAGQgAIMCAGQhAHQOAGQFAHQFAHQGAGQiAIMCAIMAAGQeAHwPAHwCAI0BA2QjAIMCAHwCAI0B
AFNkAABTKCQAAABOcwkAAAB2YXJpYXRpb25zEQAAAGVtaXNzaW9uX2xldHRlci9rcxEAAABjYXNo
X3N0YXR1cy92YWxpZHMOAAAAcG9ydGFsX2NhdGFsb2dzCwAAAHBvcnRhbF90eXBlcwgAAABCYW5r
bm90ZXMEAAAAQ29pbnMJAAAAZ2V0T2JqZWN0cxIAAABnZXRQcmljZUN1cnJlbmN5SWRzDQAAAHNv
cnRfY3VycmVuY3lzEQAAAHBvcnRhbF9jYXRlZ29yaWVzcx0AAABnZXRDYXRlZ29yeUNoaWxkVGl0
bGVJdGVtTGlzdGkBAAAAaQAAAABzCAAAAHJlc291cmNlcwgAAABnZXRUaXRsZXMLAAAASWRfcmVz
b3VyY2VzBQAAAGdldElkcx0AAABzZWFyY2hDb250YWluZXJMaW5lQnlSZXNvdXJjZXMHAAAAZ2V0
Q2VsbHMKAAAAdmFyaWF0aW9uL3MLAAAAZ2V0UXVhbnRpdHlzAgAAAGlkcwgAAABnZXRQcmljZXMQ
AAAASW50ZWdlcl90b1N0cmluZ3MFAAAAcHJpY2VzBgAAAGFwcGVuZHMVAAAAQmFzZV91cGRhdGVE
aWFsb2dGb3JtcwcAAABsaXN0Ym94cxAAAABjYWxjdWxhdGVkX3ByaWNlcxEAAABlbXB0eV9saW5l
X251bWJlcnMJAAAAYXNDb250ZXh0cwcAAABjb250ZXh0cw0AAABnZXRQb3J0YWxUeXBlcxcAAABD
b250YWluZXJfZmFzdElucHV0Rm9ybSggAAAAcwkAAABiYXNlX2xpc3RzHwAAAGRlZmF1bHRfdmFy
aWF0aW9uX2NhdGVnb3J5X2xpc3RzBgAAAGFwcGVuZHMIAAAAJGFwcGVuZDBzCQAAAF9nZXRpdGVy
X3MJAAAAX2dldGF0dHJfcwcAAABjb250ZXh0cwEAAAB4cxUAAABjYXNoTW92ZW1lbnRfY3VycmVu
Y3lzDQAAAGN1cnJlbmN5X2xpc3RzCQAAAF9nZXRpdGVtX3MOAAAAdmFyaWF0aW9uX2xpc3RzCwAA
AHRvdGFsX3ByaWNlcwcAAABsaXN0Ym94cwQAAABOb25lcw0AAABjdXJyZW5jeV9kaWN0cw4AAAB0
b3RhbF9xdWFudGl0eXMHAAAAY291bnRlcnMRAAAAZmluZF9jdXJyZW5jeUxpbmVzAQAAAHlzCAAA
AHF1YW50aXR5cwQAAABjZWxscwcAAABfd3JpdGVfcwMAAABzdHJzDQAAAHJlc291cmNlX2xpc3Rz
DgAAAHJlc291cmNlX3ByaWNlcwMAAABpbnRzDAAAAG5ld19saW5lTGlzdHMKAAAAcHJpY2VfbGlz
dHMNAAAAY2VsbF9xdWFudGl0eXMHAAAAX2FwcGx5X3MCAAAAa3coIQAAAHMCAAAAbXlzBwAAAGxp
c3Rib3hzAgAAAGt3cwkAAABiYXNlX2xpc3RzHwAAAGRlZmF1bHRfdmFyaWF0aW9uX2NhdGVnb3J5
X2xpc3RzBgAAAGFwcGVuZHMIAAAAJGFwcGVuZDBzCQAAAF9nZXRpdGVyX3MJAAAAX2dldGF0dHJf
cwcAAABjb250ZXh0cwEAAAB4cxUAAABjYXNoTW92ZW1lbnRfY3VycmVuY3lzDQAAAGN1cnJlbmN5
X2xpc3RzCQAAAF9nZXRpdGVtX3MOAAAAdmFyaWF0aW9uX2xpc3RzCwAAAHRvdGFsX3ByaWNlcwQA
AABOb25lcw0AAABjdXJyZW5jeV9kaWN0cw4AAAB0b3RhbF9xdWFudGl0eXMHAAAAY291bnRlcnMR
AAAAZmluZF9jdXJyZW5jeUxpbmVzAQAAAHlzCAAAAHF1YW50aXR5cwQAAABjZWxscwcAAABfd3Jp
dGVfcwMAAABzdHJzDQAAAHJlc291cmNlX2xpc3RzDgAAAHJlc291cmNlX3ByaWNlcwMAAABpbnRz
DAAAAG5ld19saW5lTGlzdHMKAAAAcHJpY2VfbGlzdHMNAAAAY2VsbF9xdWFudGl0eXMHAAAAX2Fw
cGx5XygAAAAAKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMZAAAAQ29udGFpbmVyX2Zhc3RJbnB1
dFVwZGF0ZQEAAABzbgAAAAYBDAIsAAYBSAIsACUCFQIzAgYBDQEGAQ0ABgEwAQYBBgEhAQ0ABgEG
AQ4BIgEOARIBEgIaAQ4BMAEnASkBFwEYAwYBBgEGAQ0ABgEtAScBBgEGAQ0ABgEmAQoBDgEpARcB
EwETARkBCgEYAR8CKAIAAABzBAAAAE5vbmVzGQAAAENvbnRhaW5lcl9mYXN0SW5wdXRVcGRhdGUo
AgAAAHMEAAAATm9uZXMZAAAAQ29udGFpbmVyX2Zhc3RJbnB1dFVwZGF0ZSgAAAAAKAAAAABzDwAA
AFNjcmlwdCAoUHl0aG9uKXMIAAAAPG1vZHVsZT4BAAAAcwAAAAA=</string> </value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value> <string>Script (Python):/baobab/portal_skins/erp5_banking_core/Container_fastInputUpdate</string> </value>
</item>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>my=None, listbox=None, **kw</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>func_code</string> </key>
<value>
<object>
<klass>
<global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>2</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>my</string>
<string>listbox</string>
<string>kw</string>
<string>base_list</string>
<string>default_variation_category_list</string>
<string>append</string>
<string>$append0</string>
<string>_getiter_</string>
<string>_getattr_</string>
<string>context</string>
<string>x</string>
<string>cashMovement_currency</string>
<string>currency_list</string>
<string>_getitem_</string>
<string>variation_list</string>
<string>total_price</string>
<string>None</string>
<string>currency_dict</string>
<string>total_quantity</string>
<string>counter</string>
<string>find_currencyLine</string>
<string>y</string>
<string>quantity</string>
<string>cell</string>
<string>_write_</string>
<string>str</string>
<string>resource_list</string>
<string>resource_price</string>
<string>int</string>
<string>new_lineList</string>
<string>price_list</string>
<string>cell_quantity</string>
<string>_apply_</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<tuple>
<none/>
<none/>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Container_fastInputUpdate</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -66,102 +66,44 @@ ...@@ -66,102 +66,44 @@
</item> </item>
<item> <item>
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string>assigned_role_mapping = {}\n <value> <string>lineTotalPrice_list = [x.getObject().getTotalPrice() for x in context.searchFolder(portal_type="Container Line")]\n
\n totalPrice = 0\n
# Parse each role information\n for x in lineTotalPrice_list :\n
for role_id, role_information_list in role_mapping.items():\n totalPrice += x\n
for role_information in role_information_list:\n return totalPrice\n
if not assigned_role_mapping.has_key(role_id):\n
assigned_role_mapping[role_id] = []\n
\n
base_category = role_information[\'base_category\']\n
category = list(role_information[\'category\']) # turn this into a list so that we can append more categories\n
\n
site = None\n
group = None\n
function = None\n
\n
for cat_item in category:\n
# Parse each category and extract site, group, function\n
cat_list = cat_item.split(\'/\')\n
if cat_list[0] == \'site\':\n
site = \'/\'.join(cat_list[1:])\n
elif cat_list[0] == \'group\':\n
group = \'/\'.join(cat_list[1:])\n
elif cat_list[0] == \'function\':\n
function = \'/\'.join(cat_list[1:])\n
\n
# Rebuild the mapping_item - None means that Baobab_assignLocalRole will\n
# get it from the user assignments. No value means we should not care\n
mapping_item = {}\n
if site is not None or \'site\' in base_category:\n
mapping_item[\'site\'] = site\n
if group is not None or \'group\' in base_category:\n
mapping_item[\'group\'] = group\n
if function is not None or \'function\' in base_category:\n
mapping_item[\'function\'] = function\n
\n
assigned_role_mapping[role_id].append(mapping_item)\n
\n
context.setDescription(str(assigned_role_mapping))\n
\n
context.Baobab_assignLocalRole(**assigned_role_mapping)\n
\n
#raise \'KHADIM\', repr(context.Baobab_assignLocalRole(**assigned_role_mapping))\n
</string> </value> </string> </value>
</item> </item>
<item> <item>
<key> <string>_code</string> </key> <key> <string>_code</string> </key>
<value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAQAAABYAAAAYAAAAQwAA <value> <string encoding="base64">YwAAAAAAAAAAAgAAAEAAAABzEAAAAGUAAGQBAIQBAFoBAGQAAFMoAgAAAE5jAQAAAAoAAAAKAAAA
AHNzAgAAaAAAfQEAeDcCdAEAdAIAfAAAZAEAgwIAgwAAgwEARF0dAnQBAAKDAQBcAgB9BAB9BQB4 SwAAAHOGAAAAZwAABGkAAH0DAHQCAHQDAHQEAGQBAIMCAGQCAGQDAIMAAYMBAERdKAB9BwB8AwB0
BwJ0AQB8BQCDAQBEXfkBfQYAdAIAfAEAZAIAgwIAfAQAgwEADG8UAAFnAAB0BwB8AQCDAQB8BAA8 AwB0AwB8BwBkBACDAgCDAABkBQCDAgCDAACDAQABcSYAfgMAfQgAZAYAfQkAeB4AdAIAfAgAgwEA
bgEAAXQIAHwGAGQDAIMCAH0JAHQKAHQIAHwGAGQEAIMCAIMBAH0LAHQMAH0NAHQMAH0OAHQMAH0P RF0QAH0HAHwJAHwHADd9CQBxagBXfAkAU2QAAFMoBwAAAE5zDAAAAHNlYXJjaEZvbGRlcnMLAAAA
AHjjAHQBAHwLAIMBAERd1QB9EAB0AgB8EABkBQCDAgBkBgCDAQB9EQB0CAB8EQBkBwCDAgBkCABq cG9ydGFsX3R5cGVzDgAAAENvbnRhaW5lciBMaW5lcwkAAABnZXRPYmplY3RzDQAAAGdldFRvdGFs
AgBvKAABdAIAZAYAZAkAgwIAdAgAfBEAZAoAZAAAhQIAgwIAgwEAfQ0AcbMAAXQIAHwRAGQHAIMC UHJpY2VpAAAAACgIAAAAcwYAAABhcHBlbmRzCAAAACRhcHBlbmQwcwkAAABfZ2V0aXRlcl9zCQAA
AGQLAGoCAG8oAAF0AgBkBgBkCQCDAgB0CAB8EQBkCgBkAACFAgCDAgCDAQB9DgBxswABdAgAfBEA AF9nZXRhdHRyX3MHAAAAY29udGV4dHMBAAAAeHMTAAAAbGluZVRvdGFsUHJpY2VfbGlzdHMKAAAA
ZAcAgwIAZAwAagIAbygAAXQCAGQGAGQJAIMCAHQIAHwRAGQKAGQAAIUCAIMCAIMBAH0PAHGzAAFx dG90YWxQcmljZSgKAAAAcwcAAABsaXN0Ym94cwIAAABrd3MGAAAAYXBwZW5kcwgAAAAkYXBwZW5k
swBXaAAAfRIAfA0AdAwAagkAcAoAAWQIAHwJAGoGAG8UAAF8DQB0BwB8EgCDAQBkCAA8bgEAAXwO MHMJAAAAX2dldGl0ZXJfcwkAAABfZ2V0YXR0cl9zBwAAAGNvbnRleHRzAQAAAHhzEwAAAGxpbmVU
AHQMAGoJAHAKAAFkCwB8CQBqBgBvFAABfA4AdAcAfBIAgwEAZAsAPG4BAAF8DwB0DABqCQBwCgAB b3RhbFByaWNlX2xpc3RzCgAAAHRvdGFsUHJpY2UoAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5dGhv
ZAwAfAkAagYAbxQAAXwPAHQHAHwSAIMBAGQMADxuAQABdAIAdAgAfAEAfAQAgwIAZA0AgwIAfBIA bilzIAAAAENvbnRhaW5lcl9nZXRDb250YWluZWVUb3RhbFByaWNlAQAAAHMMAAAAJgAxAQYBDQAG
gwEAAXE/AFdxHwBXdAIAdBMAZA4AgwIAdBQAfAEAgwEAgwEAAXQVAHQCAHQTAGQPAIMCAHwBAI0B AQ4BKAIAAABzBAAAAE5vbmVzIAAAAENvbnRhaW5lcl9nZXRDb250YWluZWVUb3RhbFByaWNlKAIA
AAFkAABTKBAAAABOcwUAAABpdGVtc3MHAAAAaGFzX2tleXMNAAAAYmFzZV9jYXRlZ29yeXMIAAAA AABzBAAAAE5vbmVzIAAAAENvbnRhaW5lcl9nZXRDb250YWluZWVUb3RhbFByaWNlKAAAAAAoAAAA
Y2F0ZWdvcnlzBQAAAHNwbGl0cwEAAAAvaQAAAABzBAAAAHNpdGVzBAAAAGpvaW5pAQAAAHMFAAAA AHMPAAAAU2NyaXB0IChQeXRob24pcwgAAAA8bW9kdWxlPgEAAABzAAAAAA==</string> </value>
Z3JvdXBzCAAAAGZ1bmN0aW9ucwYAAABhcHBlbmRzDgAAAHNldERlc2NyaXB0aW9ucxYAAABCYW9i
YWJfYXNzaWduTG9jYWxSb2xlKBYAAABzFQAAAGFzc2lnbmVkX3JvbGVfbWFwcGluZ3MJAAAAX2dl
dGl0ZXJfcwkAAABfZ2V0YXR0cl9zDAAAAHJvbGVfbWFwcGluZ3MHAAAAcm9sZV9pZHMVAAAAcm9s
ZV9pbmZvcm1hdGlvbl9saXN0cxAAAAByb2xlX2luZm9ybWF0aW9ucwcAAABfd3JpdGVfcwkAAABf
Z2V0aXRlbV9zDQAAAGJhc2VfY2F0ZWdvcnlzBAAAAGxpc3RzCAAAAGNhdGVnb3J5cwQAAABOb25l
cwQAAABzaXRlcwUAAABncm91cHMIAAAAZnVuY3Rpb25zCAAAAGNhdF9pdGVtcwgAAABjYXRfbGlz
dHMMAAAAbWFwcGluZ19pdGVtcwcAAABjb250ZXh0cwMAAABzdHJzBwAAAF9hcHBseV8oFgAAAHMM
AAAAcm9sZV9tYXBwaW5ncxUAAABhc3NpZ25lZF9yb2xlX21hcHBpbmdzCQAAAF9nZXRpdGVyX3MJ
AAAAX2dldGF0dHJfcwcAAAByb2xlX2lkcxUAAAByb2xlX2luZm9ybWF0aW9uX2xpc3RzEAAAAHJv
bGVfaW5mb3JtYXRpb25zBwAAAF93cml0ZV9zCQAAAF9nZXRpdGVtX3MNAAAAYmFzZV9jYXRlZ29y
eXMEAAAAbGlzdHMIAAAAY2F0ZWdvcnlzBAAAAE5vbmVzBAAAAHNpdGVzBQAAAGdyb3VwcwgAAABm
dW5jdGlvbnMIAAAAY2F0X2l0ZW1zCAAAAGNhdF9saXN0cwwAAABtYXBwaW5nX2l0ZW1zBwAAAGNv
bnRleHRzAwAAAHN0cnMHAAAAX2FwcGx5XygAAAAAKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMd
AAAARVJQNVR5cGVfaW5pdExvY2FsUm9sZU1hcHBpbmcBAAAAczwAAAAGAxkAEwENAAYBFwEUAg8B
FQIGAQYBBgINAAYCFQEWASgBFgEoARYBLAQGARoBFAEaARQBGgEaAiECHAIoAQAAAHMdAAAARVJQ
NVR5cGVfaW5pdExvY2FsUm9sZU1hcHBpbmcoAQAAAHMdAAAARVJQNVR5cGVfaW5pdExvY2FsUm9s
ZU1hcHBpbmcoAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5dGhvbilzCAAAADxtb2R1bGU+AQAAAHMA
AAAA</string> </value>
</item> </item>
<item> <item>
<key> <string>_filepath</string> </key> <key> <string>_filepath</string> </key>
<value> <string>Script (Python):/baobab/portal_skins/erp5_banking_core/ERP5Type_initLocalRoleMapping_DEPRECATED</string> </value> <value> <string>Script (Python):/baobab/portal_skins/erp5_banking_core/Container_getContaineeTotalPrice</string> </value>
</item> </item>
<item> <item>
<key> <string>_params</string> </key> <key> <string>_owner</string> </key>
<value> <string>role_mapping</string> </value>
</item>
<item>
<key> <string>_proxy_roles</string> </key>
<value> <value>
<tuple> <none/>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value> </value>
</item> </item>
<item>
<key> <string>_params</string> </key>
<value> <string>listbox=None, **kw</string> </value>
</item>
<item> <item>
<key> <string>errors</string> </key> <key> <string>errors</string> </key>
<value> <value>
...@@ -186,28 +128,16 @@ AAAA</string> </value> ...@@ -186,28 +128,16 @@ AAAA</string> </value>
<key> <string>co_varnames</string> </key> <key> <string>co_varnames</string> </key>
<value> <value>
<tuple> <tuple>
<string>role_mapping</string> <string>listbox</string>
<string>assigned_role_mapping</string> <string>kw</string>
<string>append</string>
<string>$append0</string>
<string>_getiter_</string> <string>_getiter_</string>
<string>_getattr_</string> <string>_getattr_</string>
<string>role_id</string>
<string>role_information_list</string>
<string>role_information</string>
<string>_write_</string>
<string>_getitem_</string>
<string>base_category</string>
<string>list</string>
<string>category</string>
<string>None</string>
<string>site</string>
<string>group</string>
<string>function</string>
<string>cat_item</string>
<string>cat_list</string>
<string>mapping_item</string>
<string>context</string> <string>context</string>
<string>str</string> <string>x</string>
<string>_apply_</string> <string>lineTotalPrice_list</string>
<string>totalPrice</string>
</tuple> </tuple>
</value> </value>
</item> </item>
...@@ -219,12 +149,14 @@ AAAA</string> </value> ...@@ -219,12 +149,14 @@ AAAA</string> </value>
<item> <item>
<key> <string>func_defaults</string> </key> <key> <string>func_defaults</string> </key>
<value> <value>
<tuple>
<none/> <none/>
</tuple>
</value> </value>
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>ERP5Type_initLocalRoleMapping_DEPRECATED</string> </value> <value> <string>Container_getContaineeTotalPrice</string> </value>
</item> </item>
<item> <item>
<key> <string>warnings</string> </key> <key> <string>warnings</string> </key>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PythonScripts.PythonScript</string>
<string>PythonScript</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Python_magic</string> </key>
<value> <string encoding="base64">O/INCg==</string> </value>
</item>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>from Products.ERP5Type.Document import newTempBase\n
\n
def getTitleFromCategoryUrl(category):\n
return context.portal_categories.getCategoryValue(category).getTitle()\n
\n
def getVariationTitleList(variation_text):\n
return [getTitleFromCategoryUrl(x) for x in variation_text.split(\'\\n\')]\n
\n
resource_dict = {}\n
vault_dict = {}\n
vault_inventory_dict = {}\n
\n
for vault in context.objectValues():\n
vault_url = vault.getRelativeUrl()\n
vault_dict[vault_url] = 1\n
vault_inventory_dict[vault_url] = {}\n
for vault_inventory in context.portal_simulation.getInventoryStat( node_category=vault.getRelativeUrl()\n
, resource_category=\'currency/\' + context.Baobab_getPortalReferenceCurrencyID()\n
, ignore_variation=0\n
):\n
try:\n
resource = (vault_inventory[8], getVariationTitleList(vault_inventory[10])[2])\n
except:\n
raise \'not enough columns\', repr(([x for x in vault_inventory]))\n
\n
if not vault_inventory_dict[vault_url].has_key(resource):\n
vault_inventory_dict[vault_url][resource] = {\'quantity\':0, \'total_price\':0}\n
quantity = vault_inventory[1] or 0\n
total_price = vault_inventory[2] or 0\n
vault_inventory_dict[vault_url][resource][\'quantity\'] = vault_inventory_dict[vault_url][resource][\'quantity\'] + quantity\n
vault_inventory_dict[vault_url][resource][\'total_price\'] = vault_inventory_dict[vault_url][resource][\'total_price\'] + total_price\n
\n
resource_dict[resource] = 1\n
\n
#return repr(vault_inventory_dict)\n
\n
#for v in vault_inventory_dict.items():\n
# print v[0]\n
# for r in v[1].items():\n
# print repr(r)\n
\n
#return printed\n
\n
if column_names == 1:\n
column_list = [(\'resource\', \'Resource\'), (\'variation_text\', \'Year\')]\n
for vault in vault_dict.keys():\n
column_list.extend([\n
(vault + \'_quantity\', getTitleFromCategoryUrl(vault) + \' Quantity\'),\n
(vault + \'_total_price\', getTitleFromCategoryUrl(vault) + \' TotalPrice\')\n
])\n
column_list.append((\'general_total_price\', \'General TotalPrice\'))\n
return column_list\n
\n
total_inventory_list = []\n
\n
for resource in context.Baobab_sortResourceTitleList(resource_dict.keys()):\n
tmp_dict = {\'resource\':resource[0][:resource[0].find(\'Fran\')], \'variation_text\':resource[1]}\n
general_total_price = 0\n
for vault in vault_dict.keys():\n
try:\n
resource_in_vault = vault_inventory_dict[vault][resource]\n
except KeyError:\n
resource_in_vault = {\'quantity\' : 0,\'total_price\' : 0}\n
tmp_dict.update({vault + \'_quantity\' : resource_in_vault[\'quantity\'],\n
vault + \'_total_price\' : resource_in_vault[\'total_price\']})\n
general_total_price += resource_in_vault[\'total_price\']\n
tmp_dict[\'general_total_price\'] = general_total_price\n
total_inventory_list.append(newTempBase(context, resource, **tmp_dict))\n
return total_inventory_list\n
return repr([x for x in total_inventory_list])\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value> <string encoding="base64">YwAAAAAAAAAAAgAAAEAAAABzEAAAAGQBAGQCAIQBAFoAAGQAAFMoAwAAAE5pAAAAAGMBAAAAHwAA
ACMAAAALAAAAc8QEAABkAQBrAABsAQB9AwABZAIAhAAAiQAAhwAAZAMAhgAAfQUAaAAAfQYAaAAA
fQcAaAAAfQgAeCoCdAcAdAgAdAkAZAQAgwIAgwAAgwEARF0QAn0MAHQIAHwMAGQFAIMCAIMAAH0N
AGQGAHQMAHwHAIMBAHwNADxoAAB0DAB8CACDAQB8DQA8eNUBdAcAdAgAdAgAdAkAZAcAgwIAZAgA
gwIAZAkAdAgAfAwAZAUAgwIAgwAAZAoAZAsAdAgAdAkAZAwAgwIAgwAAF2QNAGQOAIMAA4MBAERd
hAF9DwB5MQB0DgB8DwBkDwCDAgB0DgB8BQB0DgB8DwBkEACDAgCDAQBkEQCDAgBmAgB9EQBXbj0A
AQEBZBIAdBAAZwAABGkRAH0UAHQHAHwPAIMBAERdEAB9FQB8FAB8FQCDAQABcSwBfhQAgwEAggIA
bgEAWHQIAHQOAHwIAHwNAIMCAGQTAIMCAHwRAIMBAAxvLwABaAAABGQUAGQOAAM8BGQVAGQOAAM8
dAwAdA4AfAgAfA0AgwIAgwEAfBEAPG4BAAF0DgB8DwBkBgCDAgBwBAABZA4AfRYAdA4AfA8AZBEA
gwIAcAQAAWQOAH0XAHQOAHQOAHQOAHwIAHwNAIMCAHwRAIMCAGQUAIMCAHwWABd0DAB0DgB0DgB8
CAB8DQCDAgB8EQCDAgCDAQBkFAA8dA4AdA4AdA4AfAgAfA0AgwIAfBEAgwIAZBUAgwIAfBcAF3QM
AHQOAHQOAHwIAHwNAIMCAHwRAIMCAIMBAGQVADxkBgB0DAB8BgCDAQB8EQA8cdUAV3FNAFd8AABk
BgBqAgBvnQABZBYAZBcAZgIAZBgAZBkAZgIAZwIAfRgAeGEAdAcAdAgAfAcAZBoAgwIAgwAAgwEA
RF1HAH0MAHQIAHwYAGQbAIMCAHwMAGQcABeIAAB8DACDAQBkHQAXZgIAfAwAZB4AF4gAAHwMAIMB
AGQfABdmAgBnAgCDAQABcZ8CV3QIAHwYAGQgAIMCAGQhAGQiAGYCAIMBAAF8GABTbgEAAWcAAH0Z
AHh3AXQHAHQIAHQJAGQjAIMCAHQIAHwGAGQaAIMCAIMAAIMBAIMBAERdTgF9EQBoAAAEZBYAdA4A
dA4AfBEAZA4AgwIAZAAAdAgAdA4AfBEAZA4AgwIAZCQAgwIAZCUAgwEAhQIAgwIAAzwEZBgAdA4A
fBEAZAYAgwIAAzx9GgBkDgB9GwB4vAB0BwB0CAB8BwBkGgCDAgCDAACDAQBEXaIAfQwAeRwAdA4A
dA4AfAgAfAwAgwIAfBEAgwIAfRwAV24rAAR0HABqCgBvHwABAQEBaAAABGQUAGQOAAM8BGQVAGQO
AAM8fRwAbgIAAVh0CAB8GgBkJgCDAgBoAAAEfAwAZBwAF3QOAHwcAGQUAIMCAAM8BHwMAGQeABd0
DgB8HABkFQCDAgADPIMBAAF8GwB0DgB8HABkFQCDAgA3fRsAca8DV3wbAHQMAHwaAIMBAGQhADx0
CAB8GQBkIACDAgB0HQB8AwB0CQB8EQB8GgCNAwCDAQABcTkDV3wZAFN0EABnAAAEaREAfRQAdAcA
fBkAgwEARF0QAH0VAHwUAHwVAIMBAAFxpgR+FACDAQBTZAAAUygnAAAATigBAAAAcwsAAABuZXdU
ZW1wQmFzZWMBAAAAAwAAAAYAAABDAAAAcywAAAB0AAB0AAB0AAB0AQBkAQCDAgBkAgCDAgB8AACD
AQBkAwCDAgCDAABTZAAAUygEAAAATnMRAAAAcG9ydGFsX2NhdGVnb3JpZXNzEAAAAGdldENhdGVn
b3J5VmFsdWVzCAAAAGdldFRpdGxlKAMAAABzCQAAAF9nZXRhdHRyX3MHAAAAY29udGV4dHMIAAAA
Y2F0ZWdvcnkoAwAAAHMIAAAAY2F0ZWdvcnlzCQAAAF9nZXRhdHRyX3MHAAAAY29udGV4dCgAAAAA
KAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMXAAAAZ2V0VGl0bGVGcm9tQ2F0ZWdvcnlVcmwDAAAA
cwIAAAAAAWMBAAAABwAAAAgAAAADAAAAc0QAAABnAAAEaQAAfQIAdAIAdAMAfAAAZAEAgwIAZAIA
gwEAgwEARF0WAH0FAHwCAIgAAHwFAIMBAIMBAAFxIwB+AgBTZAAAUygDAAAATnMFAAAAc3BsaXRz
AQAAAAooBwAAAHMGAAAAYXBwZW5kcwgAAAAkYXBwZW5kMHMJAAAAX2dldGl0ZXJfcwkAAABfZ2V0
YXR0cl9zDgAAAHZhcmlhdGlvbl90ZXh0cwEAAAB4cxcAAABnZXRUaXRsZUZyb21DYXRlZ29yeVVy
bCgHAAAAcw4AAAB2YXJpYXRpb25fdGV4dHMGAAAAYXBwZW5kcwgAAAAkYXBwZW5kMHMJAAAAX2dl
dGl0ZXJfcwkAAABfZ2V0YXR0cl9zAQAAAHhzFwAAAGdldFRpdGxlRnJvbUNhdGVnb3J5VXJsKAEA
AABzFwAAAGdldFRpdGxlRnJvbUNhdGVnb3J5VXJsKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMV
AAAAZ2V0VmFyaWF0aW9uVGl0bGVMaXN0BgAAAHMEAAAAAAEjAHMMAAAAb2JqZWN0VmFsdWVzcw4A
AABnZXRSZWxhdGl2ZVVybGkBAAAAcxEAAABwb3J0YWxfc2ltdWxhdGlvbnMQAAAAZ2V0SW52ZW50
b3J5U3RhdHMNAAAAbm9kZV9jYXRlZ29yeXMRAAAAcmVzb3VyY2VfY2F0ZWdvcnlzCQAAAGN1cnJl
bmN5L3MjAAAAQmFvYmFiX2dldFBvcnRhbFJlZmVyZW5jZUN1cnJlbmN5SURzEAAAAGlnbm9yZV92
YXJpYXRpb25pAAAAAGkIAAAAaQoAAABpAgAAAHMSAAAAbm90IGVub3VnaCBjb2x1bW5zcwcAAABo
YXNfa2V5cwgAAABxdWFudGl0eXMLAAAAdG90YWxfcHJpY2VzCAAAAHJlc291cmNlcwgAAABSZXNv
dXJjZXMOAAAAdmFyaWF0aW9uX3RleHRzBAAAAFllYXJzBAAAAGtleXNzBgAAAGV4dGVuZHMJAAAA
X3F1YW50aXR5cwkAAAAgUXVhbnRpdHlzDAAAAF90b3RhbF9wcmljZXMLAAAAIFRvdGFsUHJpY2Vz
BgAAAGFwcGVuZHMTAAAAZ2VuZXJhbF90b3RhbF9wcmljZXMSAAAAR2VuZXJhbCBUb3RhbFByaWNl
cxwAAABCYW9iYWJfc29ydFJlc291cmNlVGl0bGVMaXN0cwQAAABmaW5kcwQAAABGcmFucwYAAAB1
cGRhdGUoHgAAAHMaAAAAUHJvZHVjdHMuRVJQNVR5cGUuRG9jdW1lbnRzCwAAAG5ld1RlbXBCYXNl
cxcAAABnZXRUaXRsZUZyb21DYXRlZ29yeVVybHMVAAAAZ2V0VmFyaWF0aW9uVGl0bGVMaXN0cw0A
AAByZXNvdXJjZV9kaWN0cwoAAAB2YXVsdF9kaWN0cxQAAAB2YXVsdF9pbnZlbnRvcnlfZGljdHMJ
AAAAX2dldGl0ZXJfcwkAAABfZ2V0YXR0cl9zBwAAAGNvbnRleHRzBQAAAHZhdWx0cwkAAAB2YXVs
dF91cmxzBwAAAF93cml0ZV9zDwAAAHZhdWx0X2ludmVudG9yeXMJAAAAX2dldGl0ZW1fcwgAAABy
ZXNvdXJjZXMEAAAAcmVwcnMGAAAAYXBwZW5kcwgAAAAkYXBwZW5kMHMBAAAAeHMIAAAAcXVhbnRp
dHlzCwAAAHRvdGFsX3ByaWNlcwwAAABjb2x1bW5fbmFtZXNzCwAAAGNvbHVtbl9saXN0cxQAAAB0
b3RhbF9pbnZlbnRvcnlfbGlzdHMIAAAAdG1wX2RpY3RzEwAAAGdlbmVyYWxfdG90YWxfcHJpY2Vz
EQAAAHJlc291cmNlX2luX3ZhdWx0cwgAAABLZXlFcnJvcnMHAAAAX2FwcGx5XygfAAAAcwwAAABj
b2x1bW5fbmFtZXNzAgAAAGt3cxoAAABQcm9kdWN0cy5FUlA1VHlwZS5Eb2N1bWVudHMLAAAAbmV3
VGVtcEJhc2VzFwAAAGdldFRpdGxlRnJvbUNhdGVnb3J5VXJscxUAAABnZXRWYXJpYXRpb25UaXRs
ZUxpc3RzDQAAAHJlc291cmNlX2RpY3RzCgAAAHZhdWx0X2RpY3RzFAAAAHZhdWx0X2ludmVudG9y
eV9kaWN0cwkAAABfZ2V0aXRlcl9zCQAAAF9nZXRhdHRyX3MHAAAAY29udGV4dHMFAAAAdmF1bHRz
CQAAAHZhdWx0X3VybHMHAAAAX3dyaXRlX3MPAAAAdmF1bHRfaW52ZW50b3J5cwkAAABfZ2V0aXRl
bV9zCAAAAHJlc291cmNlcwQAAAByZXBycwYAAABhcHBlbmRzCAAAACRhcHBlbmQwcwEAAAB4cwgA
AABxdWFudGl0eXMLAAAAdG90YWxfcHJpY2VzCwAAAGNvbHVtbl9saXN0cxQAAAB0b3RhbF9pbnZl
bnRvcnlfbGlzdHMIAAAAdG1wX2RpY3RzEwAAAGdlbmVyYWxfdG90YWxfcHJpY2VzEQAAAHJlc291
cmNlX2luX3ZhdWx0cwgAAABLZXlFcnJvcnMHAAAAX2FwcGx5XygAAAAAKAEAAABzFwAAAGdldFRp
dGxlRnJvbUNhdGVnb3J5VXJscw8AAABTY3JpcHQgKFB5dGhvbilzJQAAAENvdW50ZXJNb2R1bGVf
Z2V0VmF1bHRUcmFuc2FjdGlvbkxpc3QBAAAAc2YAAAANAgkDDAMGAQYBBgIZAAYBEgEQARABNgEg
AwMBNAIaACACIAEvARYBFgFBAUECGAsNARgBGQAJAQkBFwElAhYBCAIGAigABgFRAQYBGQAGAQMB
HAEOASABIwEZARcBEwEjAQQBFwAoAQAAAHMlAAAAQ291bnRlck1vZHVsZV9nZXRWYXVsdFRyYW5z
YWN0aW9uTGlzdCgBAAAAcyUAAABDb3VudGVyTW9kdWxlX2dldFZhdWx0VHJhbnNhY3Rpb25MaXN0
KAAAAAAoAAAAAHMPAAAAU2NyaXB0IChQeXRob24pcwgAAAA8bW9kdWxlPgEAAABzAAAAAA==</string> </value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value> <string>Script (Python):/baobab/portal_skins/erp5_banking_core/CounterModule_getVaultTransactionList</string> </value>
</item>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>column_names=0, **kw</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>func_code</string> </key>
<value>
<object>
<klass>
<global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>column_names</string>
<string>kw</string>
<string>Products.ERP5Type.Document</string>
<string>newTempBase</string>
<string>getTitleFromCategoryUrl</string>
<string>getVariationTitleList</string>
<string>resource_dict</string>
<string>vault_dict</string>
<string>vault_inventory_dict</string>
<string>_getiter_</string>
<string>_getattr_</string>
<string>context</string>
<string>vault</string>
<string>vault_url</string>
<string>_write_</string>
<string>vault_inventory</string>
<string>_getitem_</string>
<string>resource</string>
<string>repr</string>
<string>append</string>
<string>$append0</string>
<string>x</string>
<string>quantity</string>
<string>total_price</string>
<string>column_list</string>
<string>total_inventory_list</string>
<string>tmp_dict</string>
<string>general_total_price</string>
<string>resource_in_vault</string>
<string>KeyError</string>
<string>_apply_</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<tuple>
<int>0</int>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>CounterModule_getVaultTransactionList</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
<item> <item>
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string>currency_list = [(\'%s - %s\' % (x.getId(), x.getTitle()), x.getRelativeUrl())\n <value> <string>currency_list = [(\'%s - %s\' % (x.getId(), x.getTitle()), x.getRelativeUrl())\n
for x in context.currency.objectValues()]\n for x in context.currency_module.objectValues()]\n
\n \n
currency_list.insert(0, (\'\',\'\'))\n currency_list.insert(0, (\'\',\'\'))\n
\n \n
...@@ -79,16 +79,16 @@ return currency_list\n ...@@ -79,16 +79,16 @@ return currency_list\n
<value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAAAAAAcAAAAMAAAAQwAA <value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAAAAAAcAAAAMAAAAQwAA
AHOaAAAAZwAABGkAAH0BAHQCAHQDAHQDAHQEAGQBAIMCAGQCAIMCAIMAAIMBAERdRAB9BQB8AQBk AHOaAAAAZwAABGkAAH0BAHQCAHQDAHQDAHQEAGQBAIMCAGQCAIMCAIMAAIMBAERdRAB9BQB8AQBk
AwB0AwB8BQBkBACDAgCDAAB0AwB8BQBkBQCDAgCDAABmAgAWdAMAfAUAZAYAgwIAgwAAZgIAgwEA AwB0AwB8BQBkBACDAgCDAAB0AwB8BQBkBQCDAgCDAABmAgAWdAMAfAUAZAYAgwIAgwAAZgIAgwEA
AXEpAH4BAH0GAHQDAHwGAGQHAIMCAGQIAGQJAGQJAGYCAIMCAAF8BgBTZAAAUygKAAAATnMIAAAA AXEpAH4BAH0GAHQDAHwGAGQHAIMCAGQIAGQJAGQJAGYCAIMCAAF8BgBTZAAAUygKAAAATnMPAAAA
Y3VycmVuY3lzDAAAAG9iamVjdFZhbHVlc3MHAAAAJXMgLSAlc3MFAAAAZ2V0SWRzCAAAAGdldFRp Y3VycmVuY3lfbW9kdWxlcwwAAABvYmplY3RWYWx1ZXNzBwAAACVzIC0gJXNzBQAAAGdldElkcwgA
dGxlcw4AAABnZXRSZWxhdGl2ZVVybHMGAAAAaW5zZXJ0aQAAAABzAAAAACgHAAAAcwYAAABhcHBl AABnZXRUaXRsZXMOAAAAZ2V0UmVsYXRpdmVVcmxzBgAAAGluc2VydGkAAAAAcwAAAAAoBwAAAHMG
bmRzCAAAACRhcHBlbmQwcwkAAABfZ2V0aXRlcl9zCQAAAF9nZXRhdHRyX3MHAAAAY29udGV4dHMB AAAAYXBwZW5kcwgAAAAkYXBwZW5kMHMJAAAAX2dldGl0ZXJfcwkAAABfZ2V0YXR0cl9zBwAAAGNv
AAAAeHMNAAAAY3VycmVuY3lfbGlzdCgHAAAAcwYAAABhcHBlbmRzCAAAACRhcHBlbmQwcwkAAABf bnRleHRzAQAAAHhzDQAAAGN1cnJlbmN5X2xpc3QoBwAAAHMGAAAAYXBwZW5kcwgAAAAkYXBwZW5k
Z2V0aXRlcl9zCQAAAF9nZXRhdHRyX3MHAAAAY29udGV4dHMBAAAAeHMNAAAAY3VycmVuY3lfbGlz MHMJAAAAX2dldGl0ZXJfcwkAAABfZ2V0YXR0cl9zBwAAAGNvbnRleHRzAQAAAHhzDQAAAGN1cnJl
dCgAAAAAKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMgAAAAQ3VycmVuY3lFeGNoYW5nZV9nZXRD bmN5X2xpc3QoAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5dGhvbilzIAAAAEN1cnJlbmN5RXhjaGFu
dXJyZW5jeUxpc3QBAAAAcwgAAAATARYAUAIZAigBAAAAcyAAAABDdXJyZW5jeUV4Y2hhbmdlX2dl Z2VfZ2V0Q3VycmVuY3lMaXN0AQAAAHMIAAAAEwEWAFACGQIoAQAAAHMgAAAAQ3VycmVuY3lFeGNo
dEN1cnJlbmN5TGlzdCgBAAAAcyAAAABDdXJyZW5jeUV4Y2hhbmdlX2dldEN1cnJlbmN5TGlzdCgA YW5nZV9nZXRDdXJyZW5jeUxpc3QoAQAAAHMgAAAAQ3VycmVuY3lFeGNoYW5nZV9nZXRDdXJyZW5j
AAAAKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMIAAAAPG1vZHVsZT4BAAAAcwAAAAA=</string> </value> eUxpc3QoAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5dGhvbilzCAAAADxtb2R1bGU+AQAAAHMAAAAA</string> </value>
</item> </item>
<item> <item>
<key> <string>_filepath</string> </key> <key> <string>_filepath</string> </key>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PythonScripts.PythonScript</string>
<string>PythonScript</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Python_magic</string> </key>
<value> <string encoding="base64">O/INCg==</string> </value>
</item>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>reference_currency = context.Baobab_getPortalReferenceCurrencyID()\n
\n
currency_list = [(\'%s - %s\' % (x.getId(), x.getTitle()), x.getRelativeUrl())\n
for x in context.currency.objectValues()\n
if x.getId() != reference_currency]\n
\n
currency_list.insert(0, (\'\',\'\'))\n
\n
return currency_list\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAAAAAAgAAAAMAAAAQwAA
AHPJAAAAdAAAdAEAZAEAgwIAgwAAfQIAZwAABGkDAH0EAHQFAHQAAHQAAHQBAGQCAIMCAGQDAIMC
AIMAAIMBAERdYQB9BgB0AAB8BgBkBACDAgCDAAB8AgBqAwBvQgABfAQAZAUAdAAAfAYAZAQAgwIA
gwAAdAAAfAYAZAYAgwIAgwAAZgIAFnQAAHwGAGQHAIMCAIMAAGYCAIMBAAFxOwABcTsAfgQAfQcA
dAAAfAcAZAgAgwIAZAkAZAoAZAoAZgIAgwIAAXwHAFNkAABTKAsAAABOcyMAAABCYW9iYWJfZ2V0
UG9ydGFsUmVmZXJlbmNlQ3VycmVuY3lJRHMIAAAAY3VycmVuY3lzDAAAAG9iamVjdFZhbHVlc3MF
AAAAZ2V0SWRzBwAAACVzIC0gJXNzCAAAAGdldFRpdGxlcw4AAABnZXRSZWxhdGl2ZVVybHMGAAAA
aW5zZXJ0aQAAAABzAAAAACgIAAAAcwkAAABfZ2V0YXR0cl9zBwAAAGNvbnRleHRzEgAAAHJlZmVy
ZW5jZV9jdXJyZW5jeXMGAAAAYXBwZW5kcwgAAAAkYXBwZW5kMHMJAAAAX2dldGl0ZXJfcwEAAAB4
cw0AAABjdXJyZW5jeV9saXN0KAgAAABzCQAAAF9nZXRhdHRyX3MHAAAAY29udGV4dHMSAAAAcmVm
ZXJlbmNlX2N1cnJlbmN5cwYAAABhcHBlbmRzCAAAACRhcHBlbmQwcwkAAABfZ2V0aXRlcl9zAQAA
AHhzDQAAAGN1cnJlbmN5X2xpc3QoAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5dGhvbilzJwAAAEN1
cnJlbmN5RXhjaGFuZ2VfZ2V0Rm9yZWlnbkN1cnJlbmN5TGlzdAEAAABzDAAAABICEwEWAAYBZwIZ
AigBAAAAcycAAABDdXJyZW5jeUV4Y2hhbmdlX2dldEZvcmVpZ25DdXJyZW5jeUxpc3QoAQAAAHMn
AAAAQ3VycmVuY3lFeGNoYW5nZV9nZXRGb3JlaWduQ3VycmVuY3lMaXN0KAAAAAAoAAAAAHMPAAAA
U2NyaXB0IChQeXRob24pcwgAAAA8bW9kdWxlPgEAAABzAAAAAA==</string> </value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value> <string>Script (Python):/baobab/portal_skins/erp5_banking_core/CurrencyExchange_getForeignCurrencyList</string> </value>
</item>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>errors</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>func_code</string> </key>
<value>
<object>
<klass>
<global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>_getattr_</string>
<string>context</string>
<string>reference_currency</string>
<string>append</string>
<string>$append0</string>
<string>_getiter_</string>
<string>x</string>
<string>currency_list</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>CurrencyExchange_getForeignCurrencyList</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Move This to erp5_core ?</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.ExternalMethod.ExternalMethod</string>
<string>ExternalMethod</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_function</string> </key>
<value> <string>ERP5Type_initLocalRoleMapping</string> </value>
</item>
<item>
<key> <string>_module</string> </key>
<value> <string>RolePolicy</string> </value>
</item>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ERP5Type_initLocalRoleMapping_DEPRECATED_TOO</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PythonScripts.PythonScript</string>
<string>PythonScript</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Python_magic</string> </key>
<value> <string encoding="base64">O/INCg==</string> </value>
</item>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string encoding="cdata"><![CDATA[
def lowerCase(s):\n
return s.replace(\' \', \'_\').lower()\n
\n
def upperCase(s):\n
s = \' \'.join([x.capitalize() for x in lowerCase(s).split(\'_\') if len(x) > 0])\n
s = \'/\'.join([x[0].upper() + x[1:] for x in s.split(\'/\') if len(x) > 0])\n
item_list = s.split(\' \')\n
if len(item_list) > 1:\n
new_list = []\n
for item in item_list :\n
if item in (\'A\', \'Chez\', \'De\', \'Des\', \'En\', \'Et\', \'La\', \'Par\', \'Pour\') :\n
item = item.lower()\n
new_list.append(item)\n
item_list = new_list\n
return \' \'.join(item_list)\n
\n
def l_clean(line) :\n
if line.endswith(\'\\n\') :\n
line = line[:-1]\n
return line\n
\n
def l_split(line) :\n
e_list = line.split(\',\')\n
new_e_list = []\n
for e in e_list :\n
if len(e) > 0 :\n
if e[0] == \'"\' and e[-1] == \'"\' :\n
e = e[1:-1]\n
new_e_list.append(e)\n
return new_e_list\n
\n
def create_category(cat) :\n
\n
cat_list = lowerCase(cat).split(\'/\')\n
cat_len = len(cat_list)\n
\n
if cat_len == 1 :\n
# base_category\n
return context.portal_categories.newContent(portal_type = \'Base Category\',\n
id = lowerCase(cat_list[0]),\n
title = upperCase(cat_list[0]))\n
\n
elif cat_len > 1 :\n
# sub_category\n
relative_category = context.portal_categories.getCategoryValue(lowerCase(\'/\'.join(cat_list[:-1])))\n
\n
if relative_category is None :\n
relative_category = create_category(lowerCase(\'/\'.join(cat_list[:-1])))\n
\n
cat = relative_category.get(lowerCase(cat_list[-1]))\n
if cat is not None :\n
return cat\n
else :\n
return relative_category.newContent(portal_type = \'Category\',\n
id = lowerCase(cat_list[-1]),\n
title = upperCase(cat_list[-1]))\n
\n
def generate_vault_dict() :\n
c_list = context.portal_categories.vault_type.getCategoryChildValueList()\n
vault_dict = {}\n
for c in c_list :\n
code = c.getProperty(\'codification\')\n
if code is not None :\n
vault_dict[code]=c.getRelativeUrl()\n
return vault_dict\n
\n
##########################################\n
request = context.REQUEST\n
\n
import_type = getattr(request,\'my_import_type\',None) or getattr(request,\'field_my_import_type\',None)\n
line_list = import_file.readlines()\n
\n
line_list = [l_clean(line) for line in line_list]\n
line_list = [l_split(line) for line in line_list]\n
\n
#return \'\\n\'.join([l for l in line_list])\n
\n
\n
if import_type == \'create_category\' :\n
if context.portal_categories.get(lowerCase(line_list[0][0])) :\n
context.portal_categories.deleteContent(lowerCase(line_list[0][0]))\n
for e_list in line_list :\n
if len(e_list) > 0 :\n
e = e_list[0]\n
try :\n
print \'trying to create %s ...\' % lowerCase(e),\n
create_category(e)\n
print \'done\'\n
except :\n
print \'Failed\'\n
return printed\n
\n
\n
elif import_type == \'assign_codification\' :\n
for e_list in line_list :\n
if len(e_list) == 2 :\n
try :\n
print \'trying to assign to %s ...\' % lowerCase(e_list[0]) ,\n
category = context.portal_categories.getCategoryValue(lowerCase(e_list[0]))\n
category.setCodification(e_list[1])\n
print \'done %s\' % repr(e_list)\n
except :\n
print \'Failed\'\n
return printed\n
\n
\n
elif import_type == \'assign_vault_type\' :\n
vault_type_dict = generate_vault_dict()\n
vault_type_list = vault_type_dict.keys()\n
for e_list in line_list :\n
if len(e_list) == 2 and e_list[1] in vault_type_list :\n
category = context.portal_categories.getCategoryValue(lowerCase(e_list[0]))\n
category.setCategoryList([vault_type_dict[e_list[1]]])\n
print \'set %s to %s\' % ([vault_type_dict[e_list[1]]], category)\n
\n
elif import_type == \'create_subvaults\' :\n
#Encaisse des Billets Restitues par Tiers a Detruire# seulemnt sur sites disposant de tri tiers\n
#Encaisse des Billets Recus pour Ventilation# seulement sur sites principaux\n
subvault_dict = {}\n
for e_list in line_list :\n
if len(e_list) == 3 :\n
vault = lowerCase(e_list[0])\n
subvault = upperCase(e_list[1])\n
subvault_code = upperCase(e_list[2])\n
if not subvault_dict.has_key(vault) :\n
subvault_dict[vault] = []\n
subvault_dict[vault].append([subvault, subvault_code])\n
if subvault == \'Encaisse des Devises\' :\n
for c in context.currency.objectValues() :\n
if c.getId() != context.Baobab_getPortalReferenceCurrencyID():\n
subvault_dict[vault].append([\'%s/%s\' % (subvault, c.getTitle()), None])\n
if subvault == \'Encaisse des Billets Recus pour Ventilation\' :\n
for c in context.portal_categories.site.agence.principale.objectIds() :\n
subvault_dict[vault].append([\'%s/%s\' % (subvault, upperCase(c)), None])\n
\n
vault_type_list = subvault_dict.keys()\n
\n
for c in context.portal_categories.site.getCategoryChildValueList() :\n
for vault_type in vault_type_list :\n
if context.portal_categories.isMemberOf(c, vault_type, strict=1) :\n
print c.getRelativeUrl(), \'is\', vault_type\n
for subvault_data in subvault_dict[vault_type] :\n
subvault_path = subvault_data[0]\n
subvault_code = subvault_data[1]\n
if \'Encaisse des Billets Recus pour Ventilation\' in subvault_path or \'Encaisse des Billets Restitues par Tiers a Detruire\' in subvault_path :\n
if not context.portal_categories.isMemberOf(c, \'site/agence/principale\', strict=0) :\n
#print \'XXXXXXXX is not principale, not creating\', subvault_path\n
pass\n
elif subvault_path.find(\'/\') > 0 and lowerCase(subvault_path).split(\'/\')[1] in c.getRelativeUrl() :\n
#print \'XXXXXXXX is itself, not creating\', subvault_path\n
pass\n
else :\n
print \' creating\', subvault_path\n
new_category_obj = create_category(\'%s/%s\' % (c.getRelativeUrl(), subvault_path))\n
if subvault_code not in (None, \'\'):\n
new_category_obj.setCodification(subvault_code)\n
else :\n
print \' creating\', subvault_path\n
new_category_obj = create_category(\'%s/%s\' % (c.getRelativeUrl(), subvault_path))\n
if subvault_code not in (None, \'\'):\n
new_category_obj.setCodification(subvault_code)\n
print\n
break\n
else : print c.getRelativeUrl(), \'not here\'\n
\n
\n
\n
\n
\n
\n
\n
print \'ok\'\n
return printed\n
]]></string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAQAAACcAAABBAAAACwAA
AHM0CAAAdAAAgwAAfQMAZAEAhAAAiQIAhwIAZAIAhgAAiQEAZAMAhAAAfQYAZAQAhAAAfQcAhwAA
hwEAhwIAZAUAhgAAiQAAZAYAhAAAfQkAdAgAdAkAZAcAgwIAfQwAdAsAfAwAZAgAdAwAgwMAcBAA
AXQLAHwMAGQJAHQMAIMDAH0PAHQIAHwAAGQKAIMCAIMAAH0QAGcAAARpEAB9EgB0EgB8EACDAQBE
XRYAfRQAfBIAfAYAfBQAgwEAgwEAAXGlAH4SAH0QAGcAAARpEAB9EgB0EgB8EACDAQBEXRYAfRQA
fBIAfAcAfBQAgwEAgwEAAXHYAH4SAH0QAHwPAGQLAGoCAG/3AAF0CAB0CAB0CQBkDACDAgBkDQCD
AgCIAgB0FAB0FAB8EABkDgCDAgBkDgCDAgCDAQCDAQBvOAABdAgAdAgAdAkAZAwAgwIAZA8AgwIA
iAIAdBQAdBQAfBAAZA4AgwIAZA4AgwIAgwEAgwEAAW4BAAF4qQZ0EgB8EACDAQBEXXMAfRYAdBYA
fBYAgwEAZA4AagQAb1oAAXQUAHwWAGQOAIMCAH0YAHksAHwDAARkEACIAgB8GACDAQAWAkkBiAAA
fBgAgwEAAXwDAARkEQACSUpXcfMBAQEBfAMABGQSAAJJSnwDAIMAAFNx8wFYcYABAXGAAVduJQYB
fA8AZBMAagIAb8sAAXgUBnQSAHwQAIMBAERdtgB9FgB0FgB8FgCDAQBkFABqAgBvnQABeX4AfAMA
BGQVAIgCAHQUAHwWAGQOAIMCAIMBABYCSQF0CAB0CAB0CQBkDACDAgBkFgCDAgCIAgB0FAB8FgBk
DgCDAgCDAQCDAQB9GQB0CAB8GQBkFwCDAgB0FAB8FgBkGACDAgCDAQABfAMABGQZAHQZAHwWAIMB
ABYCSUpXccsCAQEBfAMABGQSAAJJSnwDAIMAAFNxywJYcRUCAXEVAlduTQUBfA8AZBoAagIAb+EA
AXwJAIMAAH0bAHQIAHwbAGQbAIMCAIMAAH0cAHghBXQSAHwQAIMBAERdsQB9FgB0FgB8FgCDAQBk
FABqAgBvEwABdBQAfBYAZBgAgwIAfBwAagYAb4IAAXQIAHQIAHQJAGQMAIMCAGQWAIMCAIgCAHQU
AHwWAGQOAIMCAIMBAIMBAH0ZAHQIAHwZAGQcAIMCAHQUAHwbAHQUAHwWAGQYAIMCAIMCAGcBAIMB
AAF8AwAEZB0AdBQAfBsAdBQAfBYAZBgAgwIAgwIAZwEAfBkAZgIAFgJJSnEIAwFxCANXbl8EAXwP
AGQeAGoCAG9RBAFoAAB9HQB43wF0EgB8EACDAQBEXdEBfRYAdBYAfBYAgwEAZB8AagIAb7gBAYgC
AHQUAHwWAGQOAIMCAIMBAH0eAIgBAHQUAHwWAGQYAIMCAIMBAH0fAIgBAHQUAHwWAGQUAIMCAIMB
AH0gAHQIAHwdAGQgAIMCAHweAIMBAAxvFAABZwAAdCAAfB0AgwEAfB4APG4BAAF0CAB0FAB8HQB8
HgCDAgBkIQCDAgB8HwB8IABnAgCDAQABfB8AZCIAagIAb5EAAXiOAHQSAHQIAHQIAHQJAGQjAIMC
AGQkAIMCAIMAAIMBAERdZwB9IgB0CAB8IgBkJQCDAgCDAAB0CAB0CQBkJgCDAgCDAABqAwBvPAAB
dAgAdBQAfB0AfB4AgwIAZCEAgwIAZCcAfB8AdAgAfCIAZCgAgwIAgwAAZgIAFnQMAGcCAIMBAAFx
tQQBcbUEV24BAAF8HwBkKQBqAgBvfQABeHoAdBIAdAgAdAgAdAgAdAgAdAgAdAkAZAwAgwIAZCoA
gwIAZCsAgwIAZCwAgwIAZC0AgwIAgwAAgwEARF04AH0iAHQIAHQUAHwdAHweAIMCAGQhAIMCAGQn
AHwfAIgBAHwiAIMBAGYCABZ0DABnAgCDAQABcW4FV3GyBQFx4QMBceEDV3QIAHwdAGQbAIMCAIMA
AH0cAHhUAnQSAHQIAHQIAHQIAHQJAGQMAIMCAGQqAIMCAGQuAIMCAIMAAIMBAERdJAJ9IgB4GwJ0
EgB8HACDAQBEXfEBfSMAdAgAdAgAdAkAZAwAgwIAZC8AgwIAfCIAfCMAZDAAZBgAgwIBb8MBAXwD
AAR0CAB8IgBkMQCDAgCDAAACSQRkMgACSQR8IwACSUp4lQF0EgB0FAB8HQB8IwCDAgCDAQBEXX4B
fSQAdBQAfCQAZA4AgwIAfSUAdBQAfCQAZBgAgwIAfSAAZCkAfCUAagYAcAoAAWQzAHwlAGoGAG/k
AAF0CAB0CAB0CQBkDACDAgBkLwCDAgB8IgBkNABkMABkDgCDAgEMbwQAAXHqBwF0CAB8JQBkNQCD
AgBkNgCDAQBkDgBqBABvNAABdBQAdAgAiAIAfCUAgwEAZDcAgwIAZDYAgwEAZBgAgwIAdAgAfCIA
ZDEAgwIAgwAAagYAbwQAAXHqBwF8AwAEZDgAAkkEfCUAAklKiAAAZCcAdAgAfCIAZDEAgwIAgwAA
fCUAZgIAFoMBAH0mAHwgAHQMAGQ5AGYCAGoHAG8XAAF0CAB8JgBkFwCDAgB8IACDAQABceoHAXFs
BgF8AwAEZDgAAkkEfCUAAklKiAAAZCcAdAgAfCIAZDEAgwIAgwAAfCUAZgIAFoMBAH0mAHwgAHQM
AGQ5AGYCAGoHAG8XAAF0CAB8JgBkFwCDAgB8IACDAQABcWwGAXFsBld8AwBKUHEGBgFxBgZXfAMA
BHQIAHwiAGQxAIMCAIMAAAJJBGQ6AAJJSnHzBVduAQABfAMABGQ7AAJJSnwDAIMAAFNkAABTKDwA
AABOYwEAAAACAAAABQAAAEMAAABzJgAAAHQAAHQAAHwAAGQBAIMCAGQCAGQDAIMCAGQEAIMCAIMA
AFNkAABTKAUAAABOcwcAAAByZXBsYWNlcwEAAAAgcwEAAABfcwUAAABsb3dlcigCAAAAcwkAAABf
Z2V0YXR0cl9zAQAAAHMoAgAAAHMBAAAAc3MJAAAAX2dldGF0dHJfKAAAAAAoAAAAAHMPAAAAU2Ny
aXB0IChQeXRob24pcwkAAABsb3dlckNhc2UBAAAAcwIAAAAAAWMBAAAADAAAABsAAAADAAAAc7UB
AAB0AABkAQBkAgCDAgBnAAAEaQEAfQMAdAMAdAAAiAAAfAAAgwEAZAMAgwIAZAQAgwEAgwEARF0z
AH0GAHQHAHwGAIMBAGQFAGoEAG8aAAF8AwB0AAB8BgBkBgCDAgCDAACDAQABcTUAAXE1AH4DAIMB
AH0AAHQAAGQHAGQCAIMCAGcAAARpAQB9AwB0AwB0AAB8AABkAwCDAgBkBwCDAQCDAQBEXU8AfQYA
dAcAfAYAgwEAZAUAagQAbzYAAXwDAHQAAHQIAHwGAGQFAIMCAGQIAIMCAIMAAHQIAHwGAGQJAGQA
AIUCAIMCABeDAQABcaMAAXGjAH4DAIMBAH0AAHQAAHwAAGQDAIMCAGQBAIMBAH0JAHQHAHwJAIMB
AGQJAGoEAG94AAFnAAB9CgB4ZQB0AwB8CQCDAQBEXVcAfQsAfAsAZAoAZAsAZAwAZA0AZA4AZA8A
ZBAAZBEAZBIAZgkAagYAbxYAAXQAAHwLAGQTAIMCAIMAAH0LAG4BAAF0AAB8CgBkFACDAgB8CwCD
AQABcTkBV3wKAH0JAG4BAAF0AABkAQBkAgCDAgB8CQCDAQBTZAAAUygVAAAATnMBAAAAIHMEAAAA
am9pbnMFAAAAc3BsaXRzAQAAAF9pAAAAAHMKAAAAY2FwaXRhbGl6ZXMBAAAAL3MFAAAAdXBwZXJp
AQAAAHMBAAAAQXMEAAAAQ2hlenMCAAAARGVzAwAAAERlc3MCAAAARW5zAgAAAEV0cwIAAABMYXMD
AAAAUGFycwQAAABQb3VycwUAAABsb3dlcnMGAAAAYXBwZW5kKAwAAABzCQAAAF9nZXRhdHRyX3MG
AAAAYXBwZW5kcwgAAAAkYXBwZW5kMHMJAAAAX2dldGl0ZXJfcwkAAABsb3dlckNhc2VzAQAAAHNz
AQAAAHhzAwAAAGxlbnMJAAAAX2dldGl0ZW1fcwkAAABpdGVtX2xpc3RzCAAAAG5ld19saXN0cwQA
AABpdGVtKAwAAABzAQAAAHNzCQAAAF9nZXRhdHRyX3MGAAAAYXBwZW5kcwgAAAAkYXBwZW5kMHMJ
AAAAX2dldGl0ZXJfcwkAAABsb3dlckNhc2VzAQAAAHhzAwAAAGxlbnMJAAAAX2dldGl0ZW1fcwkA
AABpdGVtX2xpc3RzCAAAAG5ld19saXN0cwQAAABpdGVtKAEAAABzCQAAAGxvd2VyQ2FzZSgAAAAA
cw8AAABTY3JpcHQgKFB5dGhvbilzCQAAAHVwcGVyQ2FzZQQAAABzIAAAAAABNQAGADkBLwAGAFUB
FQETAQYBDQAGASgBGQEUAQoBYwEAAAADAAAABgAAAEMAAABzOAAAAHQAAHwAAGQBAIMCAGQCAIMB
AG8aAAF0AgB8AABkAABkAwALhQIAgwIAfQAAbgEAAXwAAFNkAABTKAQAAABOcwgAAABlbmRzd2l0
aHMBAAAACmkBAAAAKAMAAABzCQAAAF9nZXRhdHRyX3MEAAAAbGluZXMJAAAAX2dldGl0ZW1fKAMA
AABzBAAAAGxpbmVzCQAAAF9nZXRhdHRyX3MJAAAAX2dldGl0ZW1fKAAAAAAoAAAAAHMPAAAAU2Ny
aXB0IChQeXRob24pcwcAAABsX2NsZWFuEQAAAHMGAAAAAwETARoBYwEAAAAIAAAACgAAAEMAAABz
qwAAAHQAAHwAAGQBAIMCAGQCAIMBAH0CAGcAAH0DAHiFAHQEAHwCAIMBAERddwB9BQB0BgB8BQCD
AQBkAwBqBABvXgABdAcAfAUAZAMAgwIAZAQAagIAbxQAAXQHAHwFAGQFAAuDAgBkBABqAgBvGgAB
dAcAfAUAZAUAZAUAC4UCAIMCAH0FAG4BAAF0AAB8AwBkBgCDAgB8BQCDAQABcSgAAXEoAFd8AwBT
ZAAAUygHAAAATnMFAAAAc3BsaXRzAQAAACxpAAAAAHMBAAAAImkBAAAAcwYAAABhcHBlbmQoCAAA
AHMJAAAAX2dldGF0dHJfcwQAAABsaW5lcwYAAABlX2xpc3RzCgAAAG5ld19lX2xpc3RzCQAAAF9n
ZXRpdGVyX3MBAAAAZXMDAAAAbGVucwkAAABfZ2V0aXRlbV8oCAAAAHMEAAAAbGluZXMJAAAAX2dl
dGF0dHJfcwYAAABlX2xpc3RzCgAAAG5ld19lX2xpc3RzCQAAAF9nZXRpdGVyX3MBAAAAZXMDAAAA
bGVucwkAAABfZ2V0aXRlbV8oAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5dGhvbilzBwAAAGxfc3Bs
aXQWAAAAcxIAAAAAARUBBgENAAYBFgEqAR0BGAFjAQAAAAwAAAAYAAAAAwAAAHOXAQAAdAAAiAIA
fAAAgwEAZAEAgwIAZAIAgwEAfQMAdAQAfAMAgwEAfQUAfAUAZAMAagIAb00AAXQAAHQAAHQGAGQE
AIMCAGQFAIMCAGQGAGQHAGQIAIgCAHQHAHwDAGQJAIMCAIMBAGQKAIgBAHQHAHwDAGQJAIMCAIMB
AIMAA1NuEwEBfAUAZAMAagQAbwUBAXQAAHQAAHQGAGQEAIMCAGQLAIMCAIgCAHQAAGQCAGQMAIMC
AHQHAHwDAGQAAGQDAAuFAgCDAgCDAQCDAQCDAQB9CQB8CQB0CgBqCABvNQABiAAAiAIAdAAAZAIA
ZAwAgwIAdAcAfAMAZAAAZAMAC4UCAIMCAIMBAIMBAIMBAH0JAG4BAAF0AAB8CQBkDQCDAgCIAgB0
BwB8AwBkAwALgwIAgwEAgwEAfQAAfAAAdAoAagkAbwgAAXwAAFNxkwEBdAAAfAkAZAUAgwIAZAYA
ZA4AZAgAiAIAdAcAfAMAZAMAC4MCAIMBAGQKAIgBAHQHAHwDAGQDAAuDAgCDAQCDAANTbgEAAWQA
AFMoDwAAAE5zBQAAAHNwbGl0cwEAAAAvaQEAAABzEQAAAHBvcnRhbF9jYXRlZ29yaWVzcwoAAABu
ZXdDb250ZW50cwsAAABwb3J0YWxfdHlwZXMNAAAAQmFzZSBDYXRlZ29yeXMCAAAAaWRpAAAAAHMF
AAAAdGl0bGVzEAAAAGdldENhdGVnb3J5VmFsdWVzBAAAAGpvaW5zAwAAAGdldHMIAAAAQ2F0ZWdv
cnkoDAAAAHMJAAAAX2dldGF0dHJfcwkAAABsb3dlckNhc2VzAwAAAGNhdHMIAAAAY2F0X2xpc3Rz
AwAAAGxlbnMHAAAAY2F0X2xlbnMHAAAAY29udGV4dHMJAAAAX2dldGl0ZW1fcwkAAAB1cHBlckNh
c2VzEQAAAHJlbGF0aXZlX2NhdGVnb3J5cwQAAABOb25lcw8AAABjcmVhdGVfY2F0ZWdvcnkoDAAA
AHMDAAAAY2F0cwkAAABfZ2V0YXR0cl9zCQAAAGxvd2VyQ2FzZXMIAAAAY2F0X2xpc3RzAwAAAGxl
bnMHAAAAY2F0X2xlbnMHAAAAY29udGV4dHMJAAAAX2dldGl0ZW1fcwkAAAB1cHBlckNhc2VzEQAA
AHJlbGF0aXZlX2NhdGVnb3J5cwQAAABOb25lcw8AAABjcmVhdGVfY2F0ZWdvcnkoAwAAAHMPAAAA
Y3JlYXRlX2NhdGVnb3J5cwkAAAB1cHBlckNhc2VzCQAAAGxvd2VyQ2FzZSgAAAAAcw8AAABTY3Jp
cHQgKFB5dGhvbilzDwAAAGNyZWF0ZV9jYXRlZ29yeSAAAABzIAAAAAACGwEMAg0CHgEVARoCDQJD
Ag0BNQIlAQ0BCAIVARYBYwAAAAAJAAAACgAAAEMAAABziwAAAHQAAHQAAHQAAHQBAGQBAIMCAGQC
AIMCAGQDAIMCAIMAAH0CAGgAAH0DAHhWAHQEAHwCAIMBAERdSAB9BQB0AAB8BQBkBACDAgBkBQCD
AQB9BgB8BgB0BwBqCQBvIAABdAAAfAUAZAYAgwIAgwAAdAgAfAMAgwEAfAYAPHE3AAFxNwBXfAMA
U2QAAFMoBwAAAE5zEQAAAHBvcnRhbF9jYXRlZ29yaWVzcwoAAAB2YXVsdF90eXBlcxkAAABnZXRD
YXRlZ29yeUNoaWxkVmFsdWVMaXN0cwsAAABnZXRQcm9wZXJ0eXMMAAAAY29kaWZpY2F0aW9ucw4A
AABnZXRSZWxhdGl2ZVVybCgJAAAAcwkAAABfZ2V0YXR0cl9zBwAAAGNvbnRleHRzBgAAAGNfbGlz
dHMKAAAAdmF1bHRfZGljdHMJAAAAX2dldGl0ZXJfcwEAAABjcwQAAABjb2RlcwQAAABOb25lcwcA
AABfd3JpdGVfKAkAAABzCQAAAF9nZXRhdHRyX3MHAAAAY29udGV4dHMGAAAAY19saXN0cwoAAAB2
YXVsdF9kaWN0cwkAAABfZ2V0aXRlcl9zAQAAAGNzBAAAAGNvZGVzBAAAAE5vbmVzBwAAAF93cml0
ZV8oAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5dGhvbilzEwAAAGdlbmVyYXRlX3ZhdWx0X2RpY3Q6
AAAAcxAAAAAAASQBBgENAAYBFQENASQBcwcAAABSRVFVRVNUcw4AAABteV9pbXBvcnRfdHlwZXMU
AAAAZmllbGRfbXlfaW1wb3J0X3R5cGVzCQAAAHJlYWRsaW5lc3MPAAAAY3JlYXRlX2NhdGVnb3J5
cxEAAABwb3J0YWxfY2F0ZWdvcmllc3MDAAAAZ2V0aQAAAABzDQAAAGRlbGV0ZUNvbnRlbnRzFwAA
AHRyeWluZyB0byBjcmVhdGUgJXMgLi4ucwQAAABkb25lcwYAAABGYWlsZWRzEwAAAGFzc2lnbl9j
b2RpZmljYXRpb25pAgAAAHMaAAAAdHJ5aW5nIHRvIGFzc2lnbiB0byAlcyAuLi5zEAAAAGdldENh
dGVnb3J5VmFsdWVzDwAAAHNldENvZGlmaWNhdGlvbmkBAAAAcwcAAABkb25lICVzcxEAAABhc3Np
Z25fdmF1bHRfdHlwZXMEAAAAa2V5c3MPAAAAc2V0Q2F0ZWdvcnlMaXN0cwwAAABzZXQgJXMgdG8g
JXNzEAAAAGNyZWF0ZV9zdWJ2YXVsdHNpAwAAAHMHAAAAaGFzX2tleXMGAAAAYXBwZW5kcxQAAABF
bmNhaXNzZSBkZXMgRGV2aXNlc3MIAAAAY3VycmVuY3lzDAAAAG9iamVjdFZhbHVlc3MFAAAAZ2V0
SWRzIwAAAEJhb2JhYl9nZXRQb3J0YWxSZWZlcmVuY2VDdXJyZW5jeUlEcwUAAAAlcy8lc3MIAAAA
Z2V0VGl0bGVzKwAAAEVuY2Fpc3NlIGRlcyBCaWxsZXRzIFJlY3VzIHBvdXIgVmVudGlsYXRpb25z
BAAAAHNpdGVzBgAAAGFnZW5jZXMKAAAAcHJpbmNpcGFsZXMJAAAAb2JqZWN0SWRzcxkAAABnZXRD
YXRlZ29yeUNoaWxkVmFsdWVMaXN0cwoAAABpc01lbWJlck9mcwYAAABzdHJpY3RzDgAAAGdldFJl
bGF0aXZlVXJscwIAAABpc3MzAAAARW5jYWlzc2UgZGVzIEJpbGxldHMgUmVzdGl0dWVzIHBhciBU
aWVycyBhIERldHJ1aXJlcxYAAABzaXRlL2FnZW5jZS9wcmluY2lwYWxlcwQAAABmaW5kcwEAAAAv
cwUAAABzcGxpdHMKAAAAICBjcmVhdGluZ3MAAAAAcwgAAABub3QgaGVyZXMCAAAAb2soJgAAAHMH
AAAAX3ByaW50X3MGAAAAX3ByaW50cwkAAABsb3dlckNhc2VzCQAAAHVwcGVyQ2FzZXMHAAAAbF9j
bGVhbnMHAAAAbF9zcGxpdHMPAAAAY3JlYXRlX2NhdGVnb3J5cxMAAABnZW5lcmF0ZV92YXVsdF9k
aWN0cwkAAABfZ2V0YXR0cl9zBwAAAGNvbnRleHRzBwAAAHJlcXVlc3RzBwAAAGdldGF0dHJzBAAA
AE5vbmVzCwAAAGltcG9ydF90eXBlcwsAAABpbXBvcnRfZmlsZXMJAAAAbGluZV9saXN0cwYAAABh
cHBlbmRzCAAAACRhcHBlbmQwcwkAAABfZ2V0aXRlcl9zBAAAAGxpbmVzCQAAAF9nZXRpdGVtX3MG
AAAAZV9saXN0cwMAAABsZW5zAQAAAGVzCAAAAGNhdGVnb3J5cwQAAAByZXBycw8AAAB2YXVsdF90
eXBlX2RpY3RzDwAAAHZhdWx0X3R5cGVfbGlzdHMNAAAAc3VidmF1bHRfZGljdHMFAAAAdmF1bHRz
CAAAAHN1YnZhdWx0cw0AAABzdWJ2YXVsdF9jb2RlcwcAAABfd3JpdGVfcwEAAABjcwoAAAB2YXVs
dF90eXBlcw0AAABzdWJ2YXVsdF9kYXRhcw0AAABzdWJ2YXVsdF9wYXRocxAAAABuZXdfY2F0ZWdv
cnlfb2JqKCcAAABzCwAAAGltcG9ydF9maWxlcwIAAABrd3MHAAAAX3ByaW50X3MGAAAAX3ByaW50
cwkAAABsb3dlckNhc2VzCQAAAHVwcGVyQ2FzZXMHAAAAbF9jbGVhbnMHAAAAbF9zcGxpdHMPAAAA
Y3JlYXRlX2NhdGVnb3J5cxMAAABnZW5lcmF0ZV92YXVsdF9kaWN0cwkAAABfZ2V0YXR0cl9zBwAA
AGNvbnRleHRzBwAAAHJlcXVlc3RzBwAAAGdldGF0dHJzBAAAAE5vbmVzCwAAAGltcG9ydF90eXBl
cwkAAABsaW5lX2xpc3RzBgAAAGFwcGVuZHMIAAAAJGFwcGVuZDBzCQAAAF9nZXRpdGVyX3MEAAAA
bGluZXMJAAAAX2dldGl0ZW1fcwYAAABlX2xpc3RzAwAAAGxlbnMBAAAAZXMIAAAAY2F0ZWdvcnlz
BAAAAHJlcHJzDwAAAHZhdWx0X3R5cGVfZGljdHMPAAAAdmF1bHRfdHlwZV9saXN0cw0AAABzdWJ2
YXVsdF9kaWN0cwUAAAB2YXVsdHMIAAAAc3VidmF1bHRzDQAAAHN1YnZhdWx0X2NvZGVzBwAAAF93
cml0ZV9zAQAAAGNzCgAAAHZhdWx0X3R5cGVzDQAAAHN1YnZhdWx0X2RhdGFzDQAAAHN1YnZhdWx0
X3BhdGhzEAAAAG5ld19jYXRlZ29yeV9vYmooAAAAACgDAAAAcw8AAABjcmVhdGVfY2F0ZWdvcnlz
CQAAAHVwcGVyQ2FzZXMJAAAAbG93ZXJDYXNlcw8AAABTY3JpcHQgKFB5dGhvbilzFQAAAEltcG9y
dENzdlRvQ2F0ZWdvcmllcwEAAABzvAAAABIDDA0JBQkKEhoJCg8CJQESAhQAHwEUAB8FEwE3ATIB
DQAGARMBDwEDARQBCgERAgoBFwMNAQ0ABgETAQMBHQEwARkBGwIKARcDDQEJARIBDQAGASkBMAEl
ATUCDQMGAQ0ABgETARUBFQEVARcBGgEcAQ0BIgAGASsBPgENAT0ADAE8AhICKwAGAQ0ADAEiASIB
FgAGAQ8BEgEXASkCBwFQAgQCEAEiARYBGAIQASIBFgEYAQQBCQEkCAoBKAEAAABzFQAAAEltcG9y
dENzdlRvQ2F0ZWdvcmllcygBAAAAcxUAAABJbXBvcnRDc3ZUb0NhdGVnb3JpZXMoAAAAACgAAAAA
cw8AAABTY3JpcHQgKFB5dGhvbilzCAAAADxtb2R1bGU+AQAAAHMAAAAA</string> </value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value> <string>Script (Python):/baobab/portal_skins/erp5_banking_core/ImportCsvToCategories</string> </value>
</item>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>import_file, **kw</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>func_code</string> </key>
<value>
<object>
<klass>
<global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>import_file</string>
<string>kw</string>
<string>_print_</string>
<string>_print</string>
<string>lowerCase</string>
<string>upperCase</string>
<string>l_clean</string>
<string>l_split</string>
<string>create_category</string>
<string>generate_vault_dict</string>
<string>_getattr_</string>
<string>context</string>
<string>request</string>
<string>getattr</string>
<string>None</string>
<string>import_type</string>
<string>line_list</string>
<string>append</string>
<string>$append0</string>
<string>_getiter_</string>
<string>line</string>
<string>_getitem_</string>
<string>e_list</string>
<string>len</string>
<string>e</string>
<string>category</string>
<string>repr</string>
<string>vault_type_dict</string>
<string>vault_type_list</string>
<string>subvault_dict</string>
<string>vault</string>
<string>subvault</string>
<string>subvault_code</string>
<string>_write_</string>
<string>c</string>
<string>vault_type</string>
<string>subvault_data</string>
<string>subvault_path</string>
<string>new_category_obj</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ImportCsvToCategories</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Move to erp5_core ?</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
2005-12-19 Kevin
* Update z_catalog_stock_list ZSQL method to follow Seb's changes.
* Add Baobab_getPortalReferenceCurrencyID script to get the default currency.
* Change reference to getPortalReferenceCurrencyID portal method. Use Baobab_getPortalReferenceCurrencyID instead.
2005-12-14 Kevin
* Add a hack in Baobab_getUserAssignmentList to support old and new person module id.
2005-12-13 Kevin
* Add CashDelivery document.
* Clean portal_classes.
2005-12-12 Kevin
* Change the acquisition_portal_type_list attribute on base category 'site' from "'[]'" to "python: []".
* Delete deprecated ERP5Type_initLocalRoleMapping_* objects.
2005-12-08 Kevin 2005-12-08 Kevin
* Delete custom version of ERP5Type_getSecurityCategoryFromAssignment. Move it to erp5_core. * Delete custom version of ERP5Type_getSecurityCategoryFromAssignment. Move it to erp5_core.
* Update z_catalog_stock_list to v1.10. * Update z_catalog_stock_list to v1.10.
......
CashCurrency CashCurrency
CashDeliveryLine CashDeliveryLine
BankingOperation
CashContainer CashContainer
BankingOperationLine BankingOperationLine
AccountingTransactionRule AccountingTransactionRule
BankingOperation CashDelivery
\ No newline at end of file \ No newline at end of file
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