[Erp5-report] r6371 - /erp5/trunk/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_ac...
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Mar 31 01:39:15 CEST 2006
Author: kevin
Date: Fri Mar 31 01:39:13 2006
New Revision: 6371
URL: http://svn.erp5.org?rev=6371&view=rev
Log:
* Add a test on portal type to bypass bad acquisition of group category from person to Orignisation. This help us filter employee of the source_section: because of acquisition via subordination they are seen as part of the group but in this accounting context group define a business unit composed of organisation.
* Light reformating of code.
* Don't call getSourceInventory and getDestinationInventory twice.
Modified:
erp5/trunk/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountingTransactionModule_getJournalAccountingTransactionList.xml
Modified: erp5/trunk/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountingTransactionModule_getJournalAccountingTransactionList.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountingTransactionModule_getJournalAccountingTransactionList.xml?rev=6371&r1=6370&r2=6371&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountingTransactionModule_getJournalAccountingTransactionList.xml (original)
+++ erp5/trunk/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountingTransactionModule_getJournalAccountingTransactionList.xml Fri Mar 31 01:39:13 2006
@@ -69,21 +69,19 @@
<value> <string encoding="cdata"><![CDATA[
"""\n
-Journal entries, for use with AccountingTransactionModule_viewJournal\n
-\n
-return a list of dictionnaries like that : \n
- \n
-{\n
- \'date\' : Date\n
- \'description\' : String\n
- \'currency\' : String\n
- \'lines\' : {\n
- \'debtor\' : Bool, \n
- \'account_gap_id\' : String\n
- \'account_name\' : String # with extra-description (ie. bank name if a bank, organisation name if an other party)\n
- \'amount\' : Float\n
- }\n
-}\n
+ Journal entries, for use with AccountingTransactionModule_viewJournal\n
+\n
+ return a list of dictionnaries like that :\n
+\n
+ { \'date\' : Date\n
+ , \'description\': String\n
+ , \'currency\' : String\n
+ , \'lines\' : { \'debtor\' : Bool\n
+ , \'account_gap_id\': String\n
+ , \'account_name\' : String # with extra-description (ie. bank name if a bank, organisation name if an other party)\n
+ , \'amount\' : Float\n
+ }\n
+ }\n
"""\n
\n
request = context.REQUEST\n
@@ -95,58 +93,60 @@
\n
N_ = context.Base_translateString\n
\n
-params = {\n
- \'sort_on\' : \'delivery.start_date\',\n
- \'at_date\' : at_date,\n
- \'simulation_state\': transaction_simulation_state,\n
- \'section_category\' : transaction_section_category,\n
- \'portal_type\': transaction_portal_type,\n
-}\n
+params = { \'sort_on\' : \'delivery.start_date\'\n
+ , \'at_date\' : at_date\n
+ , \'simulation_state\': transaction_simulation_state\n
+ , \'section_category\': transaction_section_category\n
+ , \'portal_type\' : transaction_portal_type\n
+ }\n
\n
if from_date:\n
params[\'from_date\'] = from_date\n
\n
-result=[]\n
-journal_total_debit = 0\n
+result = []\n
+journal_total_debit = 0\n
journal_total_credit = 0\n
\n
-for transaction in context\\\n
- .AccountingTransactionModule_zGetAccountingTransactionList(\n
- selection_params = params, selection=None, **params):\n
- transaction = transaction.getObject()\n
- \n
+zGetList = context.AccountingTransactionModule_zGetAccountingTransactionList\n
+transaction_list = zGetList( selection_params = params\n
+ , selection = None\n
+ , **params\n
+ )\n
+\n
+for transaction in transaction_list:\n
+ transaction = transaction.getObject()\n
destination_section = transaction.getDestinationSectionValue()\n
- we_are_destination = destination_section is not None and (\'group/%s\' %\n
- destination_section.getProperty(\'group\', \'\'))\\\n
- .startswith(transaction_section_category)\n
- source_section = transaction.getSourceSectionValue()\n
+ source_section = transaction.getSourceSectionValue()\n
+\n
+ # add a test on portal type to bypass bad acquisition of group category from person to Orignisation\n
+ # This help us filter employee of the source_section: because of acquisition via subordination they are seen as part of the group but in this accounting context group define a business unit composed of organisation\n
+ we_are_destination = (destination_section is not None) and (\'group/%s\' %\n
+ destination_section.getGroup(\'\')).startswith(transaction_section_category) and destination_section.getPortalType() == "Organisation"\n
we_are_source = (source_section is not None) and (\'group/%s\' %\n
- source_section.getProperty(\'group\', \'\'))\\\n
- .startswith(transaction_section_category)\n
- \n
- if we_are_source :\n
+ source_section.getGroup(\'\')).startswith(transaction_section_category) and source_section.getPortalType() == "Organisation"\n
+\n
+ if we_are_source:\n
specific_reference = transaction.getSourceReference()\n
date = transaction.getStartDate()\n
- else :\n
+ else:\n
specific_reference = transaction.getDestinationReference()\n
date = transaction.getStopDate()\n
- \n
+\n
lines = []\n
- transaction_dict={\n
- \'date\' : context.Base_FormatDate( date ),\n
- \'description\' : N_("${transaction_title} (Transaction Reference "+\n
- "= ${transaction_reference},\\n Creation Date = "+\n
- "${creation_date} \\n Currency = ${currency_title})" ,\n
- mapping = { "transaction_title": unicode(transaction.getTitle()\n
- or \'\', \'utf8\'),\n
- "transaction_reference": unicode(\n
- specific_reference or \'\', \'utf8\'),\n
- "creation_date" : context.Base_FormatDate(\n
- transaction.getCreationDate()),\n
- "currency_title" : transaction.getResourceTitle() or \'\'\n
- }),\n
- \'lines\' : lines, }\n
- \n
+ transaction_dict = { \\\n
+ \'date\' : context.Base_FormatDate( date )\n
+ , \'lines\' : lines\n
+ , \'description\': N_( "${transaction_title} (Transaction Reference " +\n
+ "= ${transaction_reference},\\n Creation Date = " +\n
+ "${creation_date} \\n Currency = ${currency_title})"\n
+ , mapping = { "transaction_title": unicode(transaction.getTitle() or \'\', \'utf8\')\n
+ , "transaction_reference": unicode(specific_reference or \'\', \'utf8\')\n
+ , "creation_date": context.Base_FormatDate(transaction.getCreationDate())\n
+ , "currency_title": transaction.getResourceTitle() or \'\'\n
+ }\n
+ )\n
+ }\n
+\n
result.append(transaction_dict)\n
transaction_lines = transaction.contentValues(\n
filter = {\'portal_type\' : context.getPortalAccountingMovementTypeList()})\n
@@ -159,71 +159,66 @@
transaction_lines.sort(lambda x,y: cmp(\n
y.getObject().getDestinationInventoriatedTotalAssetPrice(),\n
x.getObject().getDestinationInventoriatedTotalAssetPrice()))\n
- \n
- for line in transaction_lines :\n
+\n
+ for line in transaction_lines:\n
line = line.getObject()\n
+\n
if we_are_source :\n
- debtor = (line.getSourceInventoriatedTotalAssetPrice() > 0)\n
+ debit = line.getSourceInventoriatedTotalAssetDebit() or 0.0\n
+ credit = line.getSourceInventoriatedTotalAssetCredit() or 0.0\n
+ debtor = (line.getSourceInventoriatedTotalAssetPrice() > 0)\n
account = line.getSourceValue()\n
if account is None: continue\n
- if account.isMemberOf( \'account_type/asset/cash\' ) :\n
- account_description = "%s (%s)"%(\n
- line.getSourceTitle(),\n
- line.getSourcePaymentTitle())\n
- elif account.getAccountType() in (\n
- \'asset/receivable\',\n
- \'liability/payable\'):\n
- account_description = "%s (%s)"%(\n
- line.getSourceTitle(),\n
- line.getDestinationSectionTitle())\n
- else :\n
+ if account.isMemberOf(\'account_type/asset/cash\'):\n
+ account_description = "%s (%s)" % ( line.getSourceTitle()\n
+ , line.getSourcePaymentTitle()\n
+ )\n
+ elif account.getAccountType() in (\'asset/receivable\', \'liability/payable\'):\n
+ account_description = "%s (%s)" % ( line.getSourceTitle()\n
+ , line.getDestinationSectionTitle()\n
+ )\n
+ else:\n
account_description = line.getSourceTitle()\n
- lines.append({\n
- \'debtor\' : debtor,\n
- \'account_gap_id\' : account.Account_getGapId(),\n
- \'account_name\' : account_description,\n
- \'amount\' : debtor and (\n
- line.getSourceInventoriatedTotalAssetDebit()) \\\n
- or ( line.getSourceInventoriatedTotalAssetCredit())\n
- })\n
- if debtor :\n
- journal_total_debit += line.getSourceInventoriatedTotalAssetDebit()\n
+ lines.append({ \'debtor\' : debtor\n
+ , \'account_gap_id\': account.Account_getGapId()\n
+ , \'account_name\' : account_description\n
+ , \'amount\' : debtor and (debit) or (credit)\n
+ })\n
+ if debtor:\n
+ journal_total_debit += debit\n
else:\n
- journal_total_credit += line.getSourceInventoriatedTotalAssetCredit()\n
- \n
- if we_are_destination :\n
- debtor = (line.getDestinationInventoriatedTotalAssetDebit() >\n
- line.getDestinationInventoriatedTotalAssetCredit())\n
+ journal_total_credit += credit\n
+\n
+ if we_are_destination:\n
+ debit = line.getDestinationInventoriatedTotalAssetDebit() or 0.0\n
+ credit = line.getDestinationInventoriatedTotalAssetCredit() or 0.0\n
+ debtor = (debit > credit)\n
account = line.getDestinationValue()\n
- if account is None : continue\n
- if account.isMemberOf( \'account_type/asset/cash\' ) :\n
- account_description = "%s (%s)"%(\n
- line.getDestinationTitle(),\n
- line.getDestinationPaymentTitle())\n
- elif account.getAccountType() in (\n
- \'asset/receivable\',\n
- \'liability/payable\'):\n
- account_description = "%s (%s)"%(\n
- line.getDestinationTitle(),\n
- line.getSourceSectionTitle())\n
- else :\n
+ if account is None: continue\n
+ if account.isMemberOf(\'account_type/asset/cash\'):\n
+ account_description = "%s (%s)" % ( line.getDestinationTitle()\n
+ , line.getDestinationPaymentTitle()\n
+ )\n
+ elif account.getAccountType() in (\'asset/receivable\' ,\'liability/payable\'):\n
+ account_description = "%s (%s)" % ( line.getDestinationTitle()\n
+ , line.getSourceSectionTitle()\n
+ )\n
+ else:\n
account_description = line.getDestinationTitle()\n
- lines.append({\n
- \'debtor\' : debtor,\n
- \'account_gap_id\' : account.Account_getGapId(),\n
- \'account_name\' : account_description,\n
- \'amount\' : debtor and (\n
- line.getDestinationInventoriatedTotalAssetDebit()) \\\n
- or ( line.getDestinationInventoriatedTotalAssetCredit())\n
- })\n
- if debtor :\n
- journal_total_debit += line.getDestinationInventoriatedTotalAssetDebit()\n
+ lines.append({ \'debtor\' : debtor\n
+ , \'account_gap_id\': account.Account_getGapId()\n
+ , \'account_name\' : account_description\n
+ , \'amount\' : debtor and (debit) or (credit)\n
+ })\n
+ if debtor:\n
+ journal_total_debit += debit\n
else:\n
- journal_total_credit += line.getDestinationInventoriatedTotalAssetCredit()\n
- \n
-return result + [{ "journal_total_debit": journal_total_debit,\n
- "journal_total_credit": journal_total_credit }]\n
-# vim: syntax=python\n
+ journal_total_credit += credit\n
+\n
+\n
+return result + [{ "journal_total_debit" : journal_total_debit\n
+ , "journal_total_credit": journal_total_credit\n
+ }]\n
]]></string> </value>
@@ -288,12 +283,14 @@
<string>result</string>
<string>journal_total_debit</string>
<string>journal_total_credit</string>
+ <string>zGetList</string>
+ <string>_apply_</string>
+ <string>transaction_list</string>
<string>_getiter_</string>
- <string>_apply_</string>
<string>transaction</string>
<string>destination_section</string>
+ <string>source_section</string>
<string>we_are_destination</string>
- <string>source_section</string>
<string>we_are_source</string>
<string>specific_reference</string>
<string>date</string>
@@ -302,6 +299,8 @@
<string>transaction_dict</string>
<string>transaction_lines</string>
<string>line</string>
+ <string>debit</string>
+ <string>credit</string>
<string>debtor</string>
<string>account</string>
<string>account_description</string>
More information about the Erp5-report
mailing list