Commit 945a72b9 authored by Jérome Perrin's avatar Jérome Perrin

Big cleanup for trial balance (still some testing to be done)



git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@13422 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent e9fda605
......@@ -70,429 +70,321 @@
<key> <string>_body</string> </key>
<value> <string encoding="cdata"><![CDATA[
from DateTime import DateTime\n
import math\n
\n
\n
##########\n
# This method returns a list of accounts virtually expanded, ie. payable and\n
# receivable accounts are split by \'destination_section\' categories and bank\n
# accounts are split by \'source_payment\'.\n
##########\n
\n
LOG = lambda msg: context.getPortalObject().log(\n
"AccountModule_getAccountListForTrialBalance", msg)\n
\n
from_date = kw.get(\'from_date\', None)\n
at_date = kw[\'at_date\']\n
simulation_state = kw[\'simulation_state\']\n
\n
# Get Precision\n
precision = context.Base_getPreferredPrecision()\n
r_ = lambda x: context.Base_getRoundValue(x, precision)\n
\n
# Extra arguments for getInventory\n
extra_kw = {}\n
\n
# Get a list of section uids\n
section_category = kw[\'section_category\']\n
section_object = context.portal_categories.restrictedTraverse(section_category)\n
organisation_list = section_object.getGroupRelatedValueList(portal_type=\'Organisation\')\n
section_uid_list = [section_object.getUid()] + [x.getUid() for x in organisation_list]\n
extra_kw[\'stock.section_uid\'] = section_uid_list\n
\n
# Wether we should or not expand accounts into virtual accounts\n
# (payable & receivable with other parties / bank with bank account)\n
expand_accounts = kw["expand_accounts"]\n
\n
# Show the upper parents account of the real accounts objects\n
show_parent_accounts = kw["show_parent_accounts"]\n
\n
# The gap tree to use\n
# TODO: Be sure that gap_list and gap_root are consistent (nothing prevent this in the dialog UI)\n
gap_root = kw["gap_root"]\n
gap_list = kw["gap_list"]\n
\n
# Inventory methods\n
getInventory = context.getPortalObject().portal_simulation.getInventoryAssetPrice\n
getInventoryList = context.getPortalObject().portal_simulation.getInventoryList\n
\n
# Shall we display a summary line for expanded accounts ?\n
display_summary_account_line = True\n
\n
\n
def formatValues(dict):\n
# TODO: use Base_getPreferredPrecision() to centralize code\n
for k, v in dict.items():\n
if not(same_type(v, "") or same_type(v, u"")):\n
if r_(v) == 0.00:\n
dict[k] = ""\n
else:\n
negative = v < 0\n
if k in (\'opening_balance\', \'closing_balance\') and negative :\n
v = - v\n
# FIXME: this part is a copy of Floatfield format_value\n
value = str(float(v))\n
value_list = value.split(\'.\')\n
integer = value_list[0]\n
i = len(integer)%3\n
value = integer[:i]\n
while i != len(integer):\n
value += \' \' + integer[i:i+3]\n
i += 3\n
value = \'%s.%s\'%(value, str(value_list[1])[:2])\n
dict[k] = value\n
if k in (\'opening_balance\', \'closing_balance\'):\n
if negative:\n
dict[k] = \'%s CR\' % (value)\n
else:\n
dict[k] = \'%s \' % (value)\n
dict[k]\n
return dict\n
\n
\n
def getDefaultColumnValues(node_uid=0, **kw):\n
"""\n
Returns then opening balance, debit movements sum, credit movements\n
sum and closing balance using defaults categories.\n
"""\n
values = {}\n
get_inventory_kw = extra_kw.copy()\n
get_inventory_kw.update(kw)\n
get_inventory_kw[\'where_expression\'] = " section.portal_type = \'Organisation\' "\n
get_inventory_kw[\'simulation_state\'] = simulation_state\n
get_inventory_kw[\'omit_simulation\'] = True\n
\n
if node_uid != 0:\n
get_inventory_kw[\'node_uid\'] = node_uid\n
\n
opening_balance = 0.0\n
debit_movement = 0.0\n
credit_movement = 0.0\n
\n
# Use custom SQL query to get Bank Account Balance (because standard getInventory doesn\'t work)\n
# TODO: use getInventory\n
if kw.has_key(\'bank_account_alt\') and kw[\'bank_account_alt\']:\n
# Adapt parameters for the custom zSQLMethod\n
new_kw = { \'getParentUid\': organisation_list[0].getUid()\n
, \'getUid\' : get_inventory_kw[\'payment_uid\']\n
, \'stat\' : True\n
}\n
del get_inventory_kw[\'node_uid\']\n
get_inventory_kw.update(new_kw)\n
\n
# Helpfull method to get the balance\n
def getBalance(**kw):\n
result = context.BankAccount_zGetAccountingTransactionList(**kw)\n
row = result[0]\n
if getattr(row, \'quantity\', None):\n
amount = row.quantity\n
else:\n
amount = 0.0\n
# Round the result to avoid float bad precision\n
return r_(amount)\n
\n
if from_date not in (None, \'\'):\n
opening_balance = getBalance( to_date = from_date\n
, **get_inventory_kw\n
)\n
debit_movement = getBalance( from_date = from_date\n
, at_date = at_date\n
, omit_input = True\n
, **get_inventory_kw\n
)\n
credit_movement = - getBalance( from_date = from_date\n
, at_date = at_date\n
, omit_output = True\n
, **get_inventory_kw\n
)\n
else:\n
# Use standard methods\n
if from_date not in (None, \'\'):\n
opening_balance = getInventory( to_date = from_date\n
, **get_inventory_kw\n
)\n
debit_movement = getInventory( from_date = from_date\n
, at_date = at_date\n
, omit_output = True\n
, **get_inventory_kw\n
)\n
credit_movement = - getInventory( from_date = from_date\n
, at_date = at_date\n
, omit_input = True\n
, **get_inventory_kw\n
)\n
\n
values[\'opening_balance\'] = opening_balance\n
values[\'debit_movement\'] = debit_movement\n
values[\'credit_movement\'] = credit_movement\n
\n
# Calculate the closing balance\n
values[\'closing_balance\'] = opening_balance + debit_movement - credit_movement\n
return values\n
\n
\n
def expandBankAccountsForAccount(account, **kw):\n
tmp_accounts = []\n
orga_and_banks = []\n
for orga in organisation_list:\n
orga_and_banks += [(orga, o.getObject()) for o in orga.contentValues(\n
portal_type=context.getPortalPaymentNodeTypeList())]\n
\n
for orga, bank in orga_and_banks:\n
this_tmp_account = {\n
\'uid\' : account.getUid()\n
, \'id\' : \'%s-%s-%s\' % ( account.getGapId()\n
, orga.getTitle().decode(\'utf8\')[:8].upper()\n
, bank.getTitle().decode(\'utf8\')[:8].upper()\n
)\n
, \'title\': \'%s (%s / %s)\' % ( account.getTitle()\n
, orga.getTitle()\n
, bank.getTitle()\n
)\n
}\n
this_tmp_account.update(\n
getDefaultColumnValues( node_uid = account.getUid()\n
, payment_uid = bank.getUid()\n
, bank_account_alt = 1\n
))\n
if (this_tmp_account[\'opening_balance\'] != 0 or\n
this_tmp_account[\'credit_movement\'] != 0 or\n
this_tmp_account[\'debit_movement\'] != 0 or\n
this_tmp_account[\'closing_balance\'] != 0 ):\n
if show_balanced_accounts or (this_tmp_account[\'closing_balance\'] != 0):\n
tmp_accounts.append(account.asContext(\n
**formatValues(this_tmp_account)))\n
\n
return tmp_accounts\n
\n
\n
def expandThirdPartiesForAccount(account, **kw):\n
tmp_accounts = []\n
# get all entities that are destination section related to this account.\n
entities = [o.getObject() for o in \\\n
context.Account_zDistinctSectionList( node_uid = account.getUid()\n
, at_date = at_date\n
, simulation_state = simulation_state\n
)]\n
for entity in entities :\n
this_tmp_account = { \'uid\' : account.getUid()\n
, \'id\' : \'%s-%s\' % ( account.getGapId()\n
, entity.getTitle().decode(\'utf8\')[:12].upper()\n
)\n
, \'title\': \'%s (%s)\' % ( account.getTitle()\n
, entity.getTitle()\n
)\n
}\n
this_tmp_account.update(\n
getDefaultColumnValues( node_uid = account.getUid(),\n
mirror_section_uid = entity.getUid() ) )\n
if (this_tmp_account[\'opening_balance\'] != 0 or\n
this_tmp_account[\'credit_movement\'] != 0 or\n
this_tmp_account[\'debit_movement\'] != 0 ):\n
if show_balanced_accounts or (this_tmp_account[\'closing_balance\'] != 0):\n
tmp_accounts.append(\n
account.asContext(**formatValues(this_tmp_account) ) )\n
return tmp_accounts\n
\n
\n
### Get the account list composed of real Account object only\n
# If a list of GAP category was selected, get the account list from that selection and above\n
accounts = []\n
if len(gap_list) > 0:\n
for gap_cat in gap_list:\n
gap_object = context.portal_categories.restrictedTraverse("gap/" + gap_cat)\n
# We don\'t need strict membership to let us "dive" into the gap tree\n
account_list = gap_object.getGapRelatedValueList( portal_type = \'Account\'\n
, strict_membership = False\n
)\n
for account in account_list:\n
if account not in accounts:\n
accounts.append(account)\n
# Get all existing accounts from the account module\n
from Products.PythonScripts.standard import Object\n
from ZTUtils import LazyFilter\n
\n
request = container.REQUEST\n
getInventoryList = context.portal_simulation.getInventoryList\n
getInventory = context.portal_simulation.getInventoryAssetPrice\n
\n
inventory_params = dict(section_uid=section_uid,\n
simulation_state=simulation_state,\n
precision=precision)\n
MARKER = Object()\n
\n
# a dictionary (node_relative_url, mirror_section_uid, payment_uid)\n
# -> dict(debit=, credit=)\n
line_per_account = {}\n
\n
account_type_to_group_by_node = [\n
\'account_type/asset\',\n
\'account_type/asset/cash\',\n
\'account_type/asset/receivable/refundable_vat\',\n
\'account_type/liability/payable/collected_vat\',\n
\'account_type/equity\',\n
\'account_type/liability\',]\n
\n
profit_and_loss_account_type = [\n
\'account_type/expense\',\n
\'account_type/income\',]\n
\n
if expand_accounts:\n
account_type_to_group_by_mirror_section = [\n
\'account_type/asset/receivable\',\n
\'account_type/liability/payable\', ]\n
else:\n
accounts = [ o.getObject() for o in\n
context.account_module.objectValues(portal_type=\'Account\') ]\n
# Delete from the list accounts without a GAP category\n
accounts = filter(lambda account: account.getGapId() is not None, accounts)\n
\n
### Find accounts that can be expanded\n
asset_cat = context.portal_categories.account_type.asset\n
accounts_to_expand_by_third_parties = asset_cat.receivable.getAccountTypeRelatedValueList(\n
portal_type=\'Account\', strict_membership=True) + \\\n
context.portal_categories.account_type.liability.payable\\\n
.getAccountTypeRelatedValueList(\n
# we use strict_membership because we do not want VAT\n
portal_type=\'Account\', strict_membership=True)\n
# Use a dict for faster lookup\n
accounts_to_expand_by_third_parties_dict = {}\n
for account in accounts_to_expand_by_third_parties:\n
accounts_to_expand_by_third_parties_dict[account.getId()] = 1\n
accounts_to_expand_by_bank_accounts = asset_cat.cash.getAccountTypeRelatedValueList(\n
portal_type=\'Account\')\n
accounts_to_expand_by_bank_accounts_dict = {}\n
for account in accounts_to_expand_by_bank_accounts:\n
accounts_to_expand_by_bank_accounts_dict[account.getId()] = 1\n
\n
\n
### Get virtual intermediate accounts and merged them with real accounts\n
account_dict = {}\n
for account in accounts:\n
gap_path = account.getGap()\n
# Add the current account\n
account_list = account_dict.has_key(gap_path) and account_dict[gap_path] or []\n
account_dict[gap_path] = account_list + [account]\n
# Add all parent accounts\n
if show_parent_accounts:\n
# MUST BE FIXED:\n
# # Add a virtual account of the same level if there is more than one real account at this level\n
# add_current_level = False\n
# if len(account_dict[gap_path]) > 1:\n
# add_current_level = True\n
gap_path_item = gap_path.split(\'/\')\n
for i in range(len(gap_path_item)):\n
parent_path_item = gap_path_item[:-i]\n
# MUST BE FIXED:\n
# # Keep the current level if necessary\n
# if add_current_level:\n
# parent_path_item = gap_path_item[:-i]\n
# else:\n
# parent_path_item = gap_path_item\n
# Don\'t care of "/fr/pcg" path\n
if len(parent_path_item) > 2:\n
parent_gap_path = "gap/" + \'/\'.join(parent_path_item)\n
parent_gap = context.portal_categories.resolveCategory(parent_gap_path)\n
account_list = account_dict.has_key(parent_gap_path) and account_dict[parent_gap_path] or []\n
if parent_gap not in account_list:\n
account_dict[parent_gap_path] = account_list + [parent_gap]\n
\n
## Sort accounts\n
def gap_sort_func(a, b):\n
"""\n
Simple function to sort accounts.\n
"""\n
a_gap_id = a[\'gap\'].split(\'/\')[-1]\n
b_gap_id = b[\'gap\'].split(\'/\')[-1]\n
a_gap = a_gap_id\n
b_gap = b_gap_id\n
while len(a_gap) < 7: a_gap += \'0\'\n
while len(b_gap) < 7: b_gap += \'0\'\n
compare = cmp(a_gap,b_gap)\n
if compare != 0 :\n
return compare\n
# gap string are the same, sort by gap integer\n
else: # a_gap == b_gap\n
try:\n
compare = cmp(int(a_gap_id),int(b_gap_id))\n
except ValueError:\n
compare = cmp(a_gap_id,b_gap_id)\n
if compare != 0:\n
return compare\n
account_type_to_group_by_node.extend([\n
\'account_type/asset/receivable\',\n
\'account_type/liability/payable\', ])\n
account_type_to_group_by_mirror_section = []\n
\n
account_type_to_group_by_payment = [ \'account_type/asset/cash/bank\' ]\n
\n
total_debit = 0\n
total_credit = 0\n
total_initial_debit_balance = 0\n
total_initial_credit_balance = 0\n
\n
# standards accounts {{{\n
for node in getInventoryList(\n
node_category_strict_membership=account_type_to_group_by_node,\n
group_by_node=1,\n
omit_output=1,\n
from_date=from_date,\n
at_date=at_date,\n
**inventory_params):\n
account_props = line_per_account.setdefault(\n
(node[\'node_relative_url\'], MARKER, MARKER),\n
dict(debit=0, credit=0))\n
account_props[\'debit\'] = node[\'total_price\']\n
total_debit += round(node[\'total_price\'], precision)\n
\n
for node in getInventoryList(\n
node_category_strict_membership=account_type_to_group_by_node,\n
group_by_node=1,\n
omit_input=1,\n
from_date=from_date,\n
at_date=at_date,\n
**inventory_params):\n
account_props = line_per_account.setdefault(\n
(node[\'node_relative_url\'], MARKER, MARKER),\n
dict(debit=0, credit=0))\n
account_props[\'credit\'] = - node[\'total_price\']\n
total_credit -= round(node[\'total_price\'], precision)\n
# }}}\n
\n
### profit & loss accounts {{{\n
for node in getInventoryList(\n
node_category_strict_membership=profit_and_loss_account_type,\n
from_date=max(period_start_date, from_date),\n
group_by_node=1,\n
omit_output=1,\n
at_date=at_date,\n
**inventory_params):\n
account_props = line_per_account.setdefault(\n
(node[\'node_relative_url\'], MARKER, MARKER),\n
dict(debit=0, credit=0))\n
account_props[\'debit\'] = node[\'total_price\']\n
total_debit += round(node[\'total_price\'], precision)\n
\n
for node in getInventoryList(\n
node_category_strict_membership=profit_and_loss_account_type,\n
from_date=max(period_start_date, from_date),\n
group_by_node=1,\n
omit_input=1,\n
at_date=at_date,\n
**inventory_params):\n
account_props = line_per_account.setdefault(\n
(node[\'node_relative_url\'], MARKER, MARKER),\n
dict(debit=0, credit=0))\n
account_props[\'credit\'] = - node[\'total_price\'] or 0\n
total_credit -= round(node[\'total_price\'], precision)\n
# }}}\n
\n
# payable / receivable accounts {{{\n
if account_type_to_group_by_mirror_section:\n
for node in getInventoryList(\n
node_category_strict_membership=\n
account_type_to_group_by_mirror_section,\n
group_by_mirror_section=1,\n
group_by_node=1,\n
omit_output=1,\n
from_date=from_date,\n
at_date=at_date,\n
**inventory_params):\n
account_props = line_per_account.setdefault(\n
(node[\'node_relative_url\'], node[\'mirror_section_uid\'], MARKER),\n
dict(debit=0, credit=0))\n
account_props[\'debit\'] = node[\'total_price\']\n
total_debit += round(node[\'total_price\'], precision)\n
\n
for node in getInventoryList(\n
node_category_strict_membership=\n
account_type_to_group_by_mirror_section,\n
group_by_mirror_section=1,\n
group_by_node=1,\n
omit_input=1,\n
from_date=from_date,\n
at_date=at_date,\n
**inventory_params):\n
account_props = line_per_account.setdefault(\n
(node[\'node_relative_url\'], node[\'mirror_section_uid\'], MARKER),\n
dict(debit=0, credit=0))\n
account_props[\'credit\'] = - node[\'total_price\']\n
total_credit -= round(node[\'total_price\'], precision)\n
# }}}\n
\n
# bank accounts {{{\n
for node in getInventoryList(\n
node_category_strict_membership=\n
account_type_to_group_by_payment,\n
group_by_payment=1,\n
group_by_node=1,\n
omit_output=1,\n
from_date=from_date,\n
at_date=at_date,\n
**inventory_params):\n
account_props = line_per_account.setdefault(\n
(node[\'node_relative_url\'], MARKER, node[\'payment_uid\']),\n
dict(debit=0, credit=0))\n
account_props[\'debit\'] = node[\'total_price\']\n
total_debit += round(node[\'total_price\'], precision)\n
\n
for node in getInventoryList(\n
node_category_strict_membership=\n
account_type_to_group_by_payment,\n
group_by_payment=1,\n
group_by_node=1,\n
omit_input=1,\n
from_date=from_date,\n
at_date=at_date,\n
**inventory_params):\n
account_props = line_per_account.setdefault(\n
(node[\'node_relative_url\'], MARKER, node[\'payment_uid\']),\n
dict(debit=0, credit=0))\n
account_props[\'credit\'] = - node[\'total_price\']\n
total_credit -= round(node[\'total_price\'], precision)\n
# }}}\n
\n
\n
traverse = context.getPortalObject().restrictedTraverse\n
getObject = context.getPortalObject().portal_catalog.getObject\n
\n
node_title_and_id_cache = {}\n
def getNodeTitleAndId(node_relative_url):\n
try:\n
return node_title_and_id_cache[node_relative_url]\n
except KeyError:\n
node = traverse(node_relative_url)\n
return node_title_and_id_cache.setdefault(node_relative_url,\n
( node.getUid(),\n
node.getTitle(),\n
node.Account_getGapId()))\n
\n
# include all accounts, even those not selected before (no movements in the\n
# period)\n
for node in LazyFilter(context.account_module.contentValues(), skip=\'\'):\n
line_per_account.setdefault((node.getRelativeUrl(), MARKER, MARKER),\n
dict(debit=0, credit=0))\n
\n
line_list = []\n
for (node_relative_url, mirror_section_uid, payment_uid), data in \\\n
line_per_account.items():\n
node_uid, node_title, node_id = getNodeTitleAndId(node_relative_url)\n
if mirror_section_uid is not MARKER:\n
if mirror_section_uid is None:\n
# no mirror_setion_uid means transactions that are made on a payable /\n
# receivable account without specifying the third party. This should not\n
# happen, but as you can still change account type after creation, we\n
# handle this case explicitly.\n
initial_debit_balance = getInventory(\n
node_uid=node_uid,\n
where_expression=\'stock.mirror_section_uid is NULL\',\n
omit_output=1,\n
at_date=from_date,\n
**inventory_params)\n
initial_credit_balance = - getInventory(\n
node_uid=node_uid,\n
where_expression=\'stock.mirror_section_uid is NULL\',\n
omit_input=1,\n
at_date=from_date,\n
**inventory_params)\n
else:\n
# gap are the same, sort by portal type\n
a_type = a[\'account\'].getPortalType()\n
b_type = b[\'account\'].getPortalType()\n
if a_type == b_type:\n
return 0\n
elif a_type == "Account":\n
return 1\n
elif b_type == "Account":\n
return -1\n
\n
# Sort the account list by gap\n
account_list = []\n
for (gap_path, accounts) in account_dict.items():\n
for account in accounts:\n
account_list.append({ \'gap\' : gap_path\n
, \'account\': account\n
})\n
account_list.sort(gap_sort_func)\n
\n
## Generate all report items\n
report_items = []\n
item_list = []\n
results = []\n
\n
for account_dict in account_list:\n
\n
account_gap = account_dict[\'gap\']\n
account = account_dict[\'account\']\n
account_type = account.getPortalType()\n
\n
item = { \'title\' : account.getTitle()\n
, \'opening_balance\': 0\n
, \'credit_movement\': 0\n
, \'debit_movement\' : 0\n
}\n
\n
# Handle intermediate non-existent account\n
if account_type == "Category":\n
# provide a clearly different display when it is a summary account\n
# (TODO: it should be in itallic ?).\n
item[\'id\'] = "%s **" % account.getId()\n
item.update(getDefaultColumnValues(node_category = account_gap))\n
\n
# Handle real Account Objects\n
third_party = getObject(mirror_section_uid)\n
node_title = "%s (%s)" % ( node_title, third_party.getTitle() )\n
initial_debit_balance = getInventory(\n
node_uid=node_uid,\n
mirror_section_uid=mirror_section_uid,\n
omit_output=1,\n
at_date=from_date,\n
**inventory_params)\n
initial_credit_balance = - getInventory(\n
node_uid=node_uid,\n
mirror_section_uid=mirror_section_uid,\n
omit_input=1,\n
at_date=from_date,\n
**inventory_params)\n
elif payment_uid is not MARKER:\n
if payment_uid is None:\n
# as above\n
initial_debit_balance = getInventory(\n
node_uid=node_uid,\n
where_expression=\'stock.payment_uid is NULL\',\n
omit_output=1,\n
at_date=from_date,\n
**inventory_params)\n
initial_credit_balance = - getInventory(\n
node_uid=node_uid,\n
where_expression=\'stock.payment_uid is NULL\',\n
omit_input=1,\n
at_date=from_date,\n
**inventory_params)\n
else:\n
payment = getObject(payment_uid)\n
node_title = "%s (%s)" % ( node_title, payment.getTitle() )\n
initial_debit_balance = getInventory(node_uid=node_uid,\n
payment_uid=payment_uid,\n
omit_output=1,\n
at_date=from_date,\n
**inventory_params)\n
initial_credit_balance = - getInventory(node_uid=node_uid,\n
payment_uid=payment_uid,\n
omit_input=1,\n
at_date=from_date,\n
**inventory_params)\n
else:\n
if expand_accounts and account.getId() in accounts_to_expand_by_third_parties_dict:\n
# get all organisations with this account\n
# and create a "virtual-Account" for each organisation\n
virtual_accounts = expandThirdPartiesForAccount(account, **kw)\n
report_items += virtual_accounts\n
if display_summary_account_line or not len(virtual_accounts) :\n
# then display the aggregate account\n
item.update( getDefaultColumnValues( node_uid = account.getUid() ) )\n
# provide a clearly different display when it is a summary account\n
# (TODO: it should be in itallic ?).\n
if len(virtual_accounts):\n
item[\'id\'] = "%s ** (total)" % account.getGapId()\n
else:\n
item[\'id\'] = account.getGapId()\n
item[\'closing_balance\'] = item[\'opening_balance\'] + \\\n
item[\'debit_movement\'] - \\\n
item[\'credit_movement\']\n
\n
elif expand_accounts and account.getId() in accounts_to_expand_by_bank_accounts_dict:\n
virtual_accounts = expandBankAccountsForAccount(account, **kw)\n
report_items += virtual_accounts\n
if display_summary_account_line or not len(virtual_accounts):\n
# then display the aggregate account\n
item.update(getDefaultColumnValues(node_uid = account.getUid()))\n
# provide a clearly different display when it is a summary account\n
# (TODO: it should be in itallic ?).\n
if len(virtual_accounts):\n
item[\'id\'] = "%s ** (total)" % account.getGapId()\n
else:\n
item[\'id\'] = account.getGapId()\n
item[\'closing_balance\'] = item[\'opening_balance\'] + \\\n
item[\'debit_movement\'] - \\\n
item[\'credit_movement\']\n
\n
account = traverse(node_relative_url)\n
if \'account_type/%s\' % account.getAccountType() in (\n
profit_and_loss_account_type):\n
initial_debit_balance = getInventory(node_uid=node_uid,\n
omit_output=1,\n
from_date=min(period_start_date, from_date),\n
at_date=max(period_start_date, from_date),\n
**inventory_params)\n
initial_credit_balance = - getInventory(node_uid=node_uid,\n
omit_input=1,\n
from_date=min(period_start_date, from_date),\n
at_date=max(period_start_date, from_date),\n
**inventory_params)\n
else:\n
item[\'id\'] = account.getGapId()\n
item.update(getDefaultColumnValues(node_uid = account.getUid()))\n
\n
if (item[\'opening_balance\'] != 0 or\n
item[\'credit_movement\'] != 0 or\n
item[\'debit_movement\'] != 0 ):\n
if show_balanced_accounts or (item[\'closing_balance\'] != 0):\n
report_items.append(account.asContext(**formatValues(item)))\n
\n
# MUST BE FIXED:\n
# virtual_account_list = []\n
# real_account_list = []\n
# if account_type == "Category":\n
# item_dict[account_gap] = item_dict[account_gap] + [item]\n
#\n
# # Some virtual account are now useless because their childrens where not\n
# # included in the last report because of null balance.\n
# for gap_path in item_dict.keys():\n
# if len(item_dict[gap_path]) > 1:\n
# report_items.append(account.asContext(**formatValues(item)))\n
#\n
# context.log("kev test >", repr( report_items))\n
\n
return report_items\n
initial_debit_balance = getInventory(node_uid=node_uid,\n
omit_output=1,\n
at_date=from_date,\n
**inventory_params)\n
initial_credit_balance = - getInventory(node_uid=node_uid,\n
omit_input=1,\n
at_date=from_date,\n
**inventory_params)\n
\n
total_initial_debit_balance += round(initial_debit_balance, precision)\n
total_initial_credit_balance += round(initial_credit_balance, precision)\n
\n
final_debit_balance = initial_debit_balance + data[\'debit\']\n
final_credit_balance = initial_credit_balance + data[\'credit\']\n
closing_balance = final_debit_balance - final_credit_balance\n
line_list.append(Object(uid=\'new_\',\n
node_id=node_id,\n
node_title=node_title,\n
initial_debit_balance=initial_debit_balance,\n
initial_credit_balance=initial_credit_balance,\n
debit=data[\'debit\'],\n
credit=data[\'credit\'],\n
final_debit_balance=final_debit_balance,\n
final_credit_balance=final_credit_balance,\n
closing_balance=closing_balance))\n
\n
if not show_empty_accounts:\n
line_list = [ line for line in line_list\n
if line[\'debit\'] or\n
line[\'credit\'] or\n
line[\'initial_credit_balance\'] or\n
line[\'initial_debit_balance\'] ]\n
\n
# sort\n
def getStringIndex(obj):\n
return \'%-10s %s\' % (obj.node_id, obj.node_title)\n
line_list.sort(key=getStringIndex)\n
\n
# cache values for stat\n
request.set(\'TrialBalance.total_initial_debit_balance\',\n
total_initial_debit_balance)\n
request.set(\'TrialBalance.total_initial_credit_balance\',\n
total_initial_credit_balance)\n
request.set(\'TrialBalance.debit\', total_initial_debit_balance)\n
request.set(\'TrialBalance.credit\', total_initial_credit_balance)\n
\n
return line_list\n
# vim: foldmethod=marker\n
]]></string> </value>
......@@ -511,7 +403,7 @@ return report_items\n
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>src__=0, show_balanced_accounts=0, **kw</string> </value>
<value> <string>show_empty_accounts, expand_accounts, at_date, from_date, period_start_date, section_uid, simulation_state, precision, **kw</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
......@@ -531,80 +423,77 @@ return report_items\n
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>2</int> </value>
<value> <int>8</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>src__</string>
<string>show_balanced_accounts</string>
<string>kw</string>
<string>DateTime</string>
<string>math</string>
<string>LOG</string>
<string>_getattr_</string>
<string>None</string>
<string>from_date</string>
<string>_getitem_</string>
<string>show_empty_accounts</string>
<string>expand_accounts</string>
<string>at_date</string>
<string>from_date</string>
<string>period_start_date</string>
<string>section_uid</string>
<string>simulation_state</string>
<string>context</string>
<string>precision</string>
<string>r_</string>
<string>extra_kw</string>
<string>section_category</string>
<string>section_object</string>
<string>organisation_list</string>
<string>append</string>
<string>$append0</string>
<string>kw</string>
<string>Products.PythonScripts.standard</string>
<string>Object</string>
<string>ZTUtils</string>
<string>LazyFilter</string>
<string>_getattr_</string>
<string>container</string>
<string>request</string>
<string>context</string>
<string>getInventoryList</string>
<string>getInventory</string>
<string>dict</string>
<string>inventory_params</string>
<string>MARKER</string>
<string>line_per_account</string>
<string>account_type_to_group_by_node</string>
<string>profit_and_loss_account_type</string>
<string>account_type_to_group_by_mirror_section</string>
<string>account_type_to_group_by_payment</string>
<string>total_debit</string>
<string>total_credit</string>
<string>total_initial_debit_balance</string>
<string>total_initial_credit_balance</string>
<string>_getiter_</string>
<string>x</string>
<string>section_uid_list</string>
<string>_apply_</string>
<string>node</string>
<string>_getitem_</string>
<string>account_props</string>
<string>_write_</string>
<string>expand_accounts</string>
<string>show_parent_accounts</string>
<string>gap_root</string>
<string>gap_list</string>
<string>getInventory</string>
<string>getInventoryList</string>
<string>True</string>
<string>display_summary_account_line</string>
<string>formatValues</string>
<string>getDefaultColumnValues</string>
<string>expandBankAccountsForAccount</string>
<string>expandThirdPartiesForAccount</string>
<string>accounts</string>
<string>len</string>
<string>gap_cat</string>
<string>gap_object</string>
<string>False</string>
<string>account_list</string>
<string>round</string>
<string>max</string>
<string>traverse</string>
<string>getObject</string>
<string>node_title_and_id_cache</string>
<string>getNodeTitleAndId</string>
<string>line_list</string>
<string>node_relative_url</string>
<string>mirror_section_uid</string>
<string>payment_uid</string>
<string>data</string>
<string>node_uid</string>
<string>node_title</string>
<string>node_id</string>
<string>None</string>
<string>initial_debit_balance</string>
<string>initial_credit_balance</string>
<string>third_party</string>
<string>payment</string>
<string>account</string>
<string>o</string>
<string>filter</string>
<string>asset_cat</string>
<string>accounts_to_expand_by_third_parties</string>
<string>accounts_to_expand_by_third_parties_dict</string>
<string>accounts_to_expand_by_bank_accounts</string>
<string>accounts_to_expand_by_bank_accounts_dict</string>
<string>account_dict</string>
<string>gap_path</string>
<string>gap_path_item</string>
<string>range</string>
<string>i</string>
<string>parent_path_item</string>
<string>parent_gap_path</string>
<string>parent_gap</string>
<string>gap_sort_func</string>
<string>report_items</string>
<string>item_list</string>
<string>results</string>
<string>account_gap</string>
<string>account_type</string>
<string>item</string>
<string>_apply_</string>
<string>virtual_accounts</string>
<string>min</string>
<string>final_debit_balance</string>
<string>final_credit_balance</string>
<string>closing_balance</string>
<string>append</string>
<string>$append0</string>
<string>line</string>
<string>getStringIndex</string>
</tuple>
</value>
</item>
......@@ -616,10 +505,7 @@ return report_items\n
<item>
<key> <string>func_defaults</string> </key>
<value>
<tuple>
<int>0</int>
<int>0</int>
</tuple>
<none/>
</value>
</item>
<item>
......
......@@ -68,86 +68,75 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>""" Trial balance.\n
<value> <string encoding="cdata"><![CDATA[
""" Trial balance.\n
"""\n
from Products.ERP5Form.Report import ReportSection\n
\n
request = context.REQUEST\n
portal = context.portal_url.getPortalObject()\n
N_ = portal.Base_translateString\n
\n
at_date = request[\'at_date\']\n
section_category = request[\'transaction_section_category\']\n
simulation_state = request[\'transaction_simulation_state\']\n
gap_root = request[\'gap_root\']\n
gap_list = request.get(\'gap_list\' , [])\n
from_date = request.get(\'from_date\' , None)\n
expand_accounts = request.get(\'expand_accounts\' , False)\n
show_parent_accounts = request.get(\'show_parent_accounts\', False)\n
show_balanced_accounts = request[\'show_balanced_accounts\']\n
at_date = request[\'at_date\']\n
from_date = request.get(\'from_date\', None)\n
simulation_state = request[\'simulation_state\']\n
expand_accounts = request.get(\'expand_accounts\', False)\n
show_empty_accounts = request[\'show_empty_accounts\']\n
\n
request.other[\'is_accounting_report\'] = True\n
section_uid = portal.Base_getSectionUidListForSectionCategory(\n
request[\'section_category\'])\n
# XXX for now we guess period start date from the first organisation having\n
# accounting periods\n
period_start_date = None\n
valid_accounting_period = dict(portal_type=\'Accounting Period\',\n
simulation_state=(\'planned\', \'confirmed\',\n
\'stopped\', \'closing\', \'delivered\'))\n
date = from_date or at_date\n
for uid in section_uid:\n
section = portal.portal_catalog.getObject(uid)\n
for ap in section.contentValues(filter=valid_accounting_period):\n
if ap.getStartDate() <= date <= ap.getStopDate():\n
period_start_date = ap.getStartDate().earliestTime()\n
if period_start_date:\n
break\n
else:\n
period_start_date = DateTime(date.year(), 1, 1)\n
request.set(\'period_start_date\', period_start_date)\n
\n
# flat_mode is a boolean that indicate wether we should use a report tree\n
# or a flat list of all accounts.\n
if request.get(\'tree_mode\', False):\n
raise \'Tree mode no longer supported\'\n
\n
result = []\n
params = {\n
\'at_date\' : at_date\n
, \'from_date\' : from_date\n
, \'section_category\' : section_category\n
, \'section_category\' : section_category\n
, \'simulation_state\' : simulation_state\n
, \'accounting_transaction_line_currency\': None\n
, \'is_report_opened\' : True\n
, \'report_depth\' : 5\n
, \'gap_root\' : gap_root\n
, \'gap_list\' : gap_list\n
, \'show_parent_accounts\' : show_parent_accounts\n
, \'expand_accounts\' : expand_accounts\n
, \'show_balanced_accounts\' : show_balanced_accounts\n
}\n
\n
balance_columns = (\n
(\'id\' , \'GAP\')\n
, (\'title\' , \'Account\')\n
, (\'opening_balance\', \'Opening Balance\')\n
, (\'debit_movement\' , \'Debit Movements\')\n
, (\'credit_movement\', \'Credit Movements\')\n
, (\'closing_balance\', \'Closing Balance\')\n
)\n
if not from_date:\n
from_date = period_start_date\n
from_date = (from_date - 1).latestTime()\n
\n
result.append( ReportSection(\n
path = portal.account_module.getPhysicalPath()\n
# FIXME: translate later (?)\n
, title = portal.Localizer.erp5_ui.gettext(\'Trial Balance\').encode(\'utf8\')\n
, level = 1\n
, form_id = \'AccountModule_viewAccountListForTrialBalance\'\n
, selection_name = \'accounting_selection\'\n
, selection_params = params\n
, listbox_display_mode = \'FlatListMode\'\n
, selection_columns = balance_columns\n
))\n
# currency precision\n
currency = portal.Base_getCurrencyForSection(request[\'section_category\'])\n
precision = portal.account_module.getQuantityPrecisionFromResource(currency)\n
request.set(\'precision\', precision)\n
\n
# Add a spacer\n
result.append( ReportSection( path = portal.account_module.getPhysicalPath()\n
, title = \'\\n\'\n
, form_id = None\n
))\n
request.set(\'is_accounting_report\', True)\n
\n
# Add summary lines\n
result.append( ReportSection(\n
path = portal.account_module.getPhysicalPath()\n
, title = \'\'\n
, form_id = \'AccountModule_viewTrialBalanceSummary\'\n
, selection_name = \'account_selection\'\n
, listbox_display_mode = \'FlatListMode\'\n
, selection_params = params\n
))\n
# flat_mode is a boolean that indicate wether we should use a report tree or a\n
# flat list of all accounts.\n
if request.get(\'tree_mode\', False): # TODO\n
raise \'Tree mode no longer supported\'\n
\n
return result\n
</string> </value>
return [ ReportSection(\n
path=portal.account_module.getPhysicalPath(),\n
title=N_(\'Trial Balance\'),\n
level=1,\n
form_id=\'AccountModule_viewAccountListForTrialBalance\',\n
selection_name=\'trial_balance_selection\',\n
selection_params=dict(show_empty_accounts=show_empty_accounts,\n
expand_accounts=expand_accounts,\n
at_date=at_date,\n
from_date=from_date,\n
period_start_date=period_start_date,\n
section_uid=section_uid,\n
simulation_state=simulation_state,\n
precision=precision ),) ]\n
]]></string> </value>
</item>
<item>
<key> <string>_code</string> </key>
......@@ -195,23 +184,28 @@ return result\n
<string>context</string>
<string>request</string>
<string>portal</string>
<string>N_</string>
<string>_getitem_</string>
<string>at_date</string>
<string>section_category</string>
<string>simulation_state</string>
<string>gap_root</string>
<string>gap_list</string>
<string>None</string>
<string>from_date</string>
<string>simulation_state</string>
<string>False</string>
<string>expand_accounts</string>
<string>show_parent_accounts</string>
<string>show_balanced_accounts</string>
<string>show_empty_accounts</string>
<string>section_uid</string>
<string>period_start_date</string>
<string>dict</string>
<string>valid_accounting_period</string>
<string>date</string>
<string>_getiter_</string>
<string>uid</string>
<string>section</string>
<string>ap</string>
<string>DateTime</string>
<string>currency</string>
<string>precision</string>
<string>True</string>
<string>_write_</string>
<string>result</string>
<string>params</string>
<string>balance_columns</string>
</tuple>
</value>
</item>
......
<?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>
<none/>
</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.PythonScripts.standard import Object\n
request = container.REQUEST\n
\n
initial_debit_balance = request[\'TrialBalance.total_initial_debit_balance\']\n
initial_credit_balance = request[\'TrialBalance.total_initial_credit_balance\']\n
debit = request[\'TrialBalance.debit\']\n
credit = request[\'TrialBalance.credit\']\n
\n
return [ Object( initial_debit_balance=initial_debit_balance,\n
initial_credit_balance=initial_credit_balance,\n
debit=debit,\n
credit=credit,\n
final_debit_balance=initial_debit_balance + debit,\n
final_credit_balance=initial_credit_balance + credit ) ]\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>**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>0</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>kw</string>
<string>Products.PythonScripts.standard</string>
<string>Object</string>
<string>_getattr_</string>
<string>container</string>
<string>request</string>
<string>_getitem_</string>
<string>initial_debit_balance</string>
<string>initial_credit_balance</string>
<string>debit</string>
<string>credit</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>AccountModule_statAccountListForTrialBalance</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -79,10 +79,11 @@
<key> <string>Default</string> </key>
<value>
<list>
<string>period_start_date</string>
<string>from_date</string>
<string>at_date</string>
<string>transaction_section_category</string>
<string>transaction_simulation_state</string>
<string>section_category</string>
<string>simulation_state</string>
</list>
</value>
</item>
......
......@@ -194,6 +194,14 @@
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden_day_is_last_day</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hide_day</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_order</string> </key>
<value>
......@@ -466,7 +474,7 @@
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>here/REQUEST/at_date</string> </value>
<value> <string>request/at_date | nothing</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -194,6 +194,14 @@
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden_day_is_last_day</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hide_day</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_order</string> </key>
<value>
......@@ -466,7 +474,7 @@
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>here/REQUEST/from_date | nothing</string> </value>
<value> <string>request/from_date | nothing</string> </value>
</item>
</dictionary>
</pickle>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.StandardFields</string>
<string>DateTimeField</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>period_start_date</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>datetime_out_of_range</string> </key>
<value> <string>The date and time you entered were out of range.</string> </value>
</item>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
<item>
<key> <string>not_datetime</string> </key>
<value> <string>You did not enter a valid date and time.</string> </value>
</item>
<item>
<key> <string>required_not_found</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>allow_empty_time</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>ampm_time_style</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>date_only</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>date_separator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default_now</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>end_datetime</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_order</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_style</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>start_datetime</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time_separator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>sub_form</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>allow_empty_time</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>ampm_time_style</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>date_only</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>date_separator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_now</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>end_datetime</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden_day_is_last_day</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hide_day</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_order</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>input_style</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>start_datetime</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time_separator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>allow_empty_time</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>ampm_time_style</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>date_only</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>date_separator</string> </key>
<value> <string>/</string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>default_now</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>end_datetime</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>hidden_day_is_last_day</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>hide_day</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>input_order</string> </key>
<value> <string>ymd</string> </value>
</item>
<item>
<key> <string>input_style</string> </key>
<value> <string>text</string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>start_datetime</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>time_separator</string> </key>
<value> <string>:</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Period Start Date</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.Form</string>
<string>BasicForm</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>fields</string> </key>
<value>
<dictionary>
<item>
<key> <string>ampm</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
<item>
<key> <string>day</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>hour</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent>
</value>
</item>
<item>
<key> <string>minute</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAg=</string> </persistent>
</value>
</item>
<item>
<key> <string>month</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAk=</string> </persistent>
</value>
</item>
<item>
<key> <string>year</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAo=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<list>
<string>Default</string>
<string>date</string>
<string>time</string>
</list>
</value>
</item>
<item>
<key> <string>groups</string> </key>
<value>
<dictionary>
<item>
<key> <string>Default</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>date</string> </key>
<value>
<list>
<string>year</string>
<string>month</string>
<string>day</string>
</list>
</value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<list>
<string>hour</string>
<string>minute</string>
<string>ampm</string>
</list>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>stored_encoding</string> </key>
<value> <string>ISO-8859-1</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Basic Form</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.TALESField</string>
<string>TALESMethod</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>request/period_start_date | nothing</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.TALESField</string>
<string>TALESMethod</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>preferences/getPreferredDateOrder</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.StandardFields</string>
<string>StringField</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>ampm</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
<item>
<key> <string>required_not_found</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
<item>
<key> <string>too_long</string> </key>
<value> <string>Too much input was given.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_length</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>truncate</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_length</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>truncate</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <int>2</int> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <int>2</int> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>max_length</string> </key>
<value> <int>2</int> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>am/pm</string> </value>
</item>
<item>
<key> <string>truncate</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.StandardFields</string>
<string>IntegerField</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>day</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
<item>
<key> <string>integer_out_of_range</string> </key>
<value> <string>The integer you entered was out of range.</string> </value>
</item>
<item>
<key> <string>not_integer</string> </key>
<value> <string>You did not enter an integer.</string> </value>
</item>
<item>
<key> <string>required_not_found</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>end</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>start</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>end</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>start</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <int>2</int> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <int>2</int> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>end</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>start</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Day</string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="7" aka="AAAAAAAAAAc=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.StandardFields</string>
<string>IntegerField</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>hour</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
<item>
<key> <string>integer_out_of_range</string> </key>
<value> <string>The integer you entered was out of range.</string> </value>
</item>
<item>
<key> <string>not_integer</string> </key>
<value> <string>You did not enter an integer.</string> </value>
</item>
<item>
<key> <string>required_not_found</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>end</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>start</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>end</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>start</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <int>2</int> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <int>2</int> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>end</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>start</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Hour</string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="8" aka="AAAAAAAAAAg=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.StandardFields</string>
<string>IntegerField</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>minute</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
<item>
<key> <string>integer_out_of_range</string> </key>
<value> <string>The integer you entered was out of range.</string> </value>
</item>
<item>
<key> <string>not_integer</string> </key>
<value> <string>You did not enter an integer.</string> </value>
</item>
<item>
<key> <string>required_not_found</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>end</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>start</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>end</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>start</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <int>2</int> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <int>2</int> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>end</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>start</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Minute</string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="9" aka="AAAAAAAAAAk=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.StandardFields</string>
<string>IntegerField</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>month</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
<item>
<key> <string>integer_out_of_range</string> </key>
<value> <string>The integer you entered was out of range.</string> </value>
</item>
<item>
<key> <string>not_integer</string> </key>
<value> <string>You did not enter an integer.</string> </value>
</item>
<item>
<key> <string>required_not_found</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>end</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>start</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>end</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>start</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <int>2</int> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <int>2</int> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>end</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>start</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Month</string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="10" aka="AAAAAAAAAAo=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.StandardFields</string>
<string>IntegerField</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>year</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
<item>
<key> <string>integer_out_of_range</string> </key>
<value> <string>The integer you entered was out of range.</string> </value>
</item>
<item>
<key> <string>not_integer</string> </key>
<value> <string>You did not enter an integer.</string> </value>
</item>
<item>
<key> <string>required_not_found</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>end</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>start</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>end</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>start</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>end</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>start</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Year</string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -14,7 +14,7 @@
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>transaction_section_category</string> </value>
<value> <string>section_category</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -279,7 +279,7 @@
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python:here.getPortalObject().portal_categories.resolveCategory(here.REQUEST.transaction_section_category).getLogicalPath()</string> </value>
<value> <string>python:here.getPortalObject().portal_categories.resolveCategory(request[\'section_category\']).getLogicalPath()</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -14,7 +14,7 @@
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>transaction_simulation_state</string> </value>
<value> <string>simulation_state</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -317,7 +317,7 @@
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python:[here.Localizer.erp5_ui.gettext(x).encode(\'utf8\') for x in here.REQUEST.get(\'transaction_simulation_state\')]</string> </value>
<value> <string>python:[here.Localizer.erp5_ui.gettext(x).encode(\'utf8\') for x in request[\'simulation_state\']]</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -80,22 +80,18 @@
<item>
<key> <string>center</string> </key>
<value>
<list>
<string>your_gap_root</string>
<string>your_gap_list</string>
</list>
<list/>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list>
<string>your_transaction_section_category</string>
<string>your_section_category</string>
<string>your_from_date</string>
<string>your_at_date</string>
<string>your_expand_accounts</string>
<string>your_show_parent_accounts</string>
<string>your_show_balanced_accounts</string>
<string>your_show_empty_accounts</string>
<string>your_portal_skin</string>
</list>
</value>
......@@ -104,7 +100,7 @@
<key> <string>right</string> </key>
<value>
<list>
<string>your_transaction_simulation_state</string>
<string>your_simulation_state</string>
</list>
</value>
</item>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.StandardFields</string>
<string>MultiListField</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>your_gap_list</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
<item>
<key> <string>required_not_found</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
<item>
<key> <string>unknown_selection</string> </key>
<value> <string>You selected an item that was not in the list.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra_item</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>view_separator</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra_item</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>view_separator</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra_item</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>6</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>GAP</string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>view_separator</string> </key>
<value> <string encoding="cdata"><![CDATA[
<br/>
]]></string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.TALESField</string>
<string>TALESMethod</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: here.Account_getGapItemList()[1:]</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.StandardFields</string>
<string>ListField</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>your_gap_root</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
<item>
<key> <string>required_not_found</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
<item>
<key> <string>unknown_selection</string> </key>
<value> <string>You selected an item that was not in the list.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra_item</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>first_item</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra_item</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>first_item</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra_item</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>first_item</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>GAP Root</string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.TALESField</string>
<string>TALESMethod</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>preferences/getPreferredAccountingTransactionGap</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.TALESField</string>
<string>TALESMethod</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python:here.AccountModule_getAvailableGapList()</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -14,7 +14,7 @@
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>your_transaction_section_category</string> </value>
<value> <string>your_section_category</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......
......@@ -14,7 +14,7 @@
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>your_show_balanced_accounts</string> </value>
<value> <string>your_show_empty_accounts</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -163,7 +163,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Show Balanced Accounts</string> </value>
<value> <string>Show Accounts Without Transactions</string> </value>
</item>
</dictionary>
</value>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.StandardFields</string>
<string>CheckBoxField</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>your_show_parent_accounts</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Show Parents Accounts</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -14,7 +14,7 @@
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>your_transaction_simulation_state</string> </value>
<value> <string>your_simulation_state</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -164,7 +164,9 @@
</item>
<item>
<key> <string>size</string> </key>
<value> <string></string> </value>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>title</string> </key>
......@@ -301,4 +303,23 @@
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.TALESField</string>
<string>TALESMethod</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: len(field.get_value(\'items\'))</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
214
\ No newline at end of file
209
\ 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