Commit 0153f990 authored by Jérome Perrin's avatar Jérome Perrin

use total_price instead of quantity

be side independant


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@5617 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent d384dc78
......@@ -72,16 +72,23 @@ LOG=lambda message: context.log("AccountModule_statBalance", message)\n
\n
# read settings from user preference\n
preference = context.getPortalObject().portal_preferences\n
from_date = preference.getPreferredAccountingTransactionFromDate()\n
from_date = preference.getPreferredAccountingTransactionFromDate()\\\n
or kw.get(\'from_date\', None)\n
if from_date :\n
params[\'from_date\'] = from_date\n
at_date = preference.getPreferredAccountingTransactionAtDate()\n
\n
at_date = preference.getPreferredAccountingTransactionAtDate()\\\n
or kw.get(\'at_date\', None)\n
if at_date :\n
params[\'at_date\'] = at_date\n
simulation_state = preference.getPreferredAccountingTransactionSimulationStateList()\n
\n
simulation_state = preference.getPreferredAccountingTransactionSimulationStateList()\\\n
or kw.get(\'simulation_state\', kw.get(\'transaction_simulation_state\', None))\n
if simulation_state :\n
params[\'simulation_state\'] = simulation_state\n
section_category = preference.getPreferredAccountingTransactionSectionCategory()\n
\n
section_category = preference.getPreferredAccountingTransactionSectionCategory()\\\n
or kw.get(\'section_category\', kw.get(\'transaction_section_category\', None))\n
if section_category :\n
params[\'section_category\'] = section_category\n
\n
......@@ -116,12 +123,14 @@ if kw.get(\'omit_input\'):\n
if kw.get(\'omit_output\'):\n
params[\'omit_output\'] = 1\n
\n
context.log(\'params\', params)\n
context.log(\'at_date\', at_date)\n
results = context.Resource_zStatInventory(omit_simulation=1,\n
**params)\n
row = results[0]\n
total = 0\n
if row.quantity :\n
total = row.quantity or 0.00\n
if row.total_price :\n
total = row.total_price or 0.00\n
return total\n
\n
# FIXME:\n
......@@ -145,7 +154,7 @@ return context.portal_simulation.getInventory( omit_simulation=1, **params )\n
</item>
<item>
<key> <string>_filepath</string> </key>
<value> <string>Script (Python):/nexedi/portal_skins/erp5_accounting/AccountModule_statBalance</string> </value>
<value> <string>Script (Python):/erp5/portal_skins/erp5_accounting/AccountModule_statBalance</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
......@@ -183,6 +192,7 @@ return context.portal_simulation.getInventory( omit_simulation=1, **params )\n
<string>LOG</string>
<string>context</string>
<string>preference</string>
<string>None</string>
<string>from_date</string>
<string>_write_</string>
<string>at_date</string>
......
......@@ -104,12 +104,16 @@ net_balance = 0.0\n
# \n
for l in result:\n
o = l.getObject()\n
net_balance += l.source_balance or 0.0\n
net_balance += l.balance or 0.0\n
if o is not None:\n
c = o.asContext(net_balance = net_balance,\n
source_balance=l.source_balance,\n
source_credit=l.source_credit,\n
source_debit=l.source_debit )\n
c = o.asContext( net_balance = net_balance,\n
balance=l.balance,\n
credit=l.credit,\n
debit=l.debit,\n
section_title=l.section_title,\n
specific_reference=l.specific_reference,\n
date=l.date,\n
)\n
new_result.append(c)\n
\n
return new_result\n
......@@ -130,7 +134,7 @@ return new_result\n
</item>
<item>
<key> <string>_filepath</string> </key>
<value> <string>Script (Python):/nexedi/portal_skins/erp5_accounting/BankAccount_getAccountingTransactionList</string> </value>
<value> <string>Script (Python):/erp5/portal_skins/erp5_accounting/BankAccount_getAccountingTransactionList</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
......
......@@ -134,18 +134,18 @@
<key> <string>_keys</string> </key>
<value>
<list>
<string>getUid</string>
<string>getParentUid</string>
<string>query</string>
<string>omit_input</string>
<string>omit_output</string>
<string>resource_uid</string>
<string>from_date</string>
<string>at_date</string>
<string>to_date</string>
<string>transaction_simulation_state</string>
<string>node_uid</string>
<string>stat</string>
<string>getUid</string>
<string>getParentUid</string>
<string>query</string>
<string>omit_input</string>
<string>omit_output</string>
<string>resource_uid</string>
<string>from_date</string>
<string>at_date</string>
<string>to_date</string>
<string>transaction_simulation_state</string>
<string>node_uid</string>
<string>stat</string>
</list>
</value>
</item>
......@@ -195,7 +195,9 @@ stat</string> </value>
</item>
<item>
<key> <string>connection_hook</string> </key>
<value> <string></string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>connection_id</string> </key>
......@@ -220,14 +222,18 @@ stat</string> </value>
<dtml-if getParentUid>\n
SELECT\n
<dtml-if stat>\n
SUM(stock.quantity) AS quantity\n
SUM(stock.total_price) AS quantity\n
<dtml-else>\n
catalog.uid\n
, catalog.path\n
-- , @runningTotal:=IFNULL(SUM(IF(stock.quantity < 0, - stock.quantity, 0)), 0) - IFNULL(SUM(IF(stock.quantity > 0, stock.quantity, 0)), 0) + @runningTotal AS net_balance\n
, IFNULL(SUM(IF(stock.quantity > 0, stock.quantity, 0)), 0) AS source_debit\n
, IFNULL(SUM(IF(stock.quantity < 0, - stock.quantity, 0)), 0) AS source_credit\n
, - IFNULL(SUM(IF(stock.quantity < 0, - stock.quantity, 0)), 0) + IFNULL(SUM(IF(stock.quantity > 0, stock.quantity, 0)), 0) AS source_balance\n
, stock.date as date\n
, section.title as section_title\n
, IF(delivery.source_section_uid = stock.section_uid,\n
catalog.source_reference, catalog.destination_reference) AS specific_reference\n
, IFNULL(SUM(IF(stock.total_price > 0, stock.total_price, 0)), 0) AS debit\n
, IFNULL(SUM(IF(stock.total_price < 0, - stock.total_price, 0)), 0) AS credit\n
, - IFNULL(SUM(IF(stock.total_price < 0, - stock.total_price, 0)), 0)\n
+ IFNULL(SUM(IF(stock.total_price > 0, stock.total_price, 0)), 0) AS balance\n
</dtml-if>\n
FROM\n
movement\n
......@@ -236,29 +242,36 @@ FROM\n
, catalog\n
, catalog AS node\n
, category AS node_category\n
, catalog AS section\n
, delivery\n
<dtml-if query>\n
, category\n
</dtml-if>\n
WHERE stock.section_uid = <dtml-var getParentUid>\n
AND stock.payment_uid = <dtml-var getUid>\n
AND child.uid = stock.uid \n
AND stock.mirror_section_uid = section.uid\n
AND delivery.uid = catalog.uid\n
AND child.uid = stock.uid\n
AND child.parent_uid = catalog.uid\n
AND movement.uid = stock.uid\n
AND movement.is_accountable = 1\n
AND node.uid = stock.node_uid\n
AND node.uid = node_category.uid\n
AND node_category.category_uid = <dtml-sqlvar "portal_categories.account_type.asset.cash.getUid()" type="int">\n
AND node_category.category_uid = <dtml-sqlvar\n
"portal_categories.account_type.asset.cash.getUid()" type="int">\n
<dtml-if node_uid>\n
AND (\n
<dtml-in node_uid>\n
stock.node_uid = <dtml-sqlvar sequence-item type="int"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
stock.node_uid = <dtml-sqlvar sequence-item type="int">\n
<dtml-unless sequence-end> OR </dtml-unless>\n
</dtml-in>\n
)\n
</dtml-if>\n
<dtml-if resource_uid>\n
AND (\n
<dtml-in resource_uid>\n
movement.resource_uid = <dtml-sqlvar sequence-item type="int"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
movement.resource_uid = <dtml-sqlvar sequence-item type="int">\n
<dtml-unless sequence-end> OR </dtml-unless>\n
</dtml-in>\n
)\n
</dtml-if>\n
......@@ -272,15 +285,16 @@ WHERE stock.section_uid = <dtml-var getParentUid>\n
AND stock.date < <dtml-sqlvar to_date type="datetime">\n
</dtml-if>\n
<dtml-if omit_input>\n
AND stock.quantity > 0\n
AND stock.total_price > 0\n
</dtml-if>\n
<dtml-if omit_output>\n
AND stock.quantity < 0\n
AND stock.total_price < 0\n
</dtml-if>\n
<dtml-if transaction_simulation_state>\n
AND (\n
<dtml-in transaction_simulation_state>\n
catalog.simulation_state = <dtml-sqlvar sequence-item type="string"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
catalog.simulation_state = <dtml-sqlvar sequence-item type="string">\n
<dtml-unless sequence-end> OR </dtml-unless>\n
</dtml-in>\n
)\n
</dtml-if>\n
......@@ -289,9 +303,9 @@ WHERE stock.section_uid = <dtml-var getParentUid>\n
AND <dtml-var query>\n
</dtml-if>\n
<dtml-unless stat>\n
GROUP BY catalog.uid\n
GROUP BY catalog.uid\n
</dtml-unless>\n
ORDER BY stock.date, movement.uid\n
ORDER BY stock.date, movement.uid\n
</dtml-if>\n
......@@ -334,14 +348,18 @@ ORDER BY stock.date, movement.uid\n
<dtml-if getParentUid>\n
SELECT\n
<dtml-if stat>\n
SUM(stock.quantity) AS quantity\n
SUM(stock.total_price) AS quantity\n
<dtml-else>\n
catalog.uid\n
, catalog.path\n
-- , @runningTotal:=IFNULL(SUM(IF(stock.quantity < 0, - stock.quantity, 0)), 0) - IFNULL(SUM(IF(stock.quantity > 0, stock.quantity, 0)), 0) + @runningTotal AS net_balance\n
, IFNULL(SUM(IF(stock.quantity > 0, stock.quantity, 0)), 0) AS source_debit\n
, IFNULL(SUM(IF(stock.quantity < 0, - stock.quantity, 0)), 0) AS source_credit\n
, - IFNULL(SUM(IF(stock.quantity < 0, - stock.quantity, 0)), 0) + IFNULL(SUM(IF(stock.quantity > 0, stock.quantity, 0)), 0) AS source_balance\n
, stock.date as date\n
, section.title as section_title\n
, IF(delivery.source_section_uid = stock.section_uid,\n
catalog.source_reference, catalog.destination_reference) AS specific_reference\n
, IFNULL(SUM(IF(stock.total_price > 0, stock.total_price, 0)), 0) AS debit\n
, IFNULL(SUM(IF(stock.total_price < 0, - stock.total_price, 0)), 0) AS credit\n
, - IFNULL(SUM(IF(stock.total_price < 0, - stock.total_price, 0)), 0)\n
+ IFNULL(SUM(IF(stock.total_price > 0, stock.total_price, 0)), 0) AS balance\n
</dtml-if>\n
FROM\n
movement\n
......@@ -350,29 +368,36 @@ FROM\n
, catalog\n
, catalog AS node\n
, category AS node_category\n
, catalog AS section\n
, delivery\n
<dtml-if query>\n
, category\n
</dtml-if>\n
WHERE stock.section_uid = <dtml-var getParentUid>\n
AND stock.payment_uid = <dtml-var getUid>\n
AND child.uid = stock.uid \n
AND stock.mirror_section_uid = section.uid\n
AND delivery.uid = catalog.uid\n
AND child.uid = stock.uid\n
AND child.parent_uid = catalog.uid\n
AND movement.uid = stock.uid\n
AND movement.is_accountable = 1\n
AND node.uid = stock.node_uid\n
AND node.uid = node_category.uid\n
AND node_category.category_uid = <dtml-sqlvar "portal_categories.account_type.asset.cash.getUid()" type="int">\n
AND node_category.category_uid = <dtml-sqlvar\n
"portal_categories.account_type.asset.cash.getUid()" type="int">\n
<dtml-if node_uid>\n
AND (\n
<dtml-in node_uid>\n
stock.node_uid = <dtml-sqlvar sequence-item type="int"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
stock.node_uid = <dtml-sqlvar sequence-item type="int">\n
<dtml-unless sequence-end> OR </dtml-unless>\n
</dtml-in>\n
)\n
</dtml-if>\n
<dtml-if resource_uid>\n
AND (\n
<dtml-in resource_uid>\n
movement.resource_uid = <dtml-sqlvar sequence-item type="int"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
movement.resource_uid = <dtml-sqlvar sequence-item type="int">\n
<dtml-unless sequence-end> OR </dtml-unless>\n
</dtml-in>\n
)\n
</dtml-if>\n
......@@ -386,15 +411,16 @@ WHERE stock.section_uid = <dtml-var getParentUid>\n
AND stock.date < <dtml-sqlvar to_date type="datetime">\n
</dtml-if>\n
<dtml-if omit_input>\n
AND stock.quantity > 0\n
AND stock.total_price > 0\n
</dtml-if>\n
<dtml-if omit_output>\n
AND stock.quantity < 0\n
AND stock.total_price < 0\n
</dtml-if>\n
<dtml-if transaction_simulation_state>\n
AND (\n
<dtml-in transaction_simulation_state>\n
catalog.simulation_state = <dtml-sqlvar sequence-item type="string"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
catalog.simulation_state = <dtml-sqlvar sequence-item type="string">\n
<dtml-unless sequence-end> OR </dtml-unless>\n
</dtml-in>\n
)\n
</dtml-if>\n
......@@ -403,9 +429,9 @@ WHERE stock.section_uid = <dtml-var getParentUid>\n
AND <dtml-var query>\n
</dtml-if>\n
<dtml-unless stat>\n
GROUP BY catalog.uid\n
GROUP BY catalog.uid\n
</dtml-unless>\n
ORDER BY stock.date, movement.uid\n
ORDER BY stock.date, movement.uid\n
</dtml-if>\n
......
......@@ -77,13 +77,18 @@ preference = context.getPortalObject().portal_preferences\n
from_date = preference.getPreferredAccountingTransactionFromDate()\n
if from_date :\n
kwd[\'from_date\'] = from_date\n
\n
at_date = preference.getPreferredAccountingTransactionAtDate()\n
if at_date :\n
kwd[\'at_date\'] = at_date\n
simulation_state = preference.getPreferredAccountingTransactionSimulationStateList()\n
\n
simulation_state = preference\\\n
.getPreferredAccountingTransactionSimulationStateList()\n
if simulation_state :\n
kwd[\'transaction_simulation_state\'] = simulation_state\n
section_category = preference.getPreferredAccountingTransactionSectionCategory()\n
\n
section_category = preference\\\n
.getPreferredAccountingTransactionSectionCategory()\n
if section_category :\n
kwd[\'transaction_section_category\'] = section_category\n
\n
......@@ -93,9 +98,9 @@ if kw.has_key(\'transaction_portal_type\'):\n
kwd[\'transaction_portal_type\'] = kw[\'transaction_portal_type\']\n
\n
\n
# FIXME: same problem as in BankAccount_getAccountingTransactionList\n
\n
#LOG("SQL used: %s" % context.Entity_zGetAccountingTransactionList(src__=1, **kwd))\n
# FIXME: same problem as in BankAccount_getAccountingTransactionList\n
# LOG("SQL used: %s" % context.Entity_zGetAccountingTransactionList(src__=1, **kwd))\n
\n
new_result = []\n
result = context.Entity_zGetAccountingTransactionList(**kwd)\n
......@@ -104,17 +109,20 @@ if src__:\n
net_balance = 0.0\n
for l in result:\n
o = l.getObject()\n
net_balance += l.source_balance or 0.0\n
net_balance += l.balance or 0.0\n
if o is not None:\n
c = o.asContext(net_balance = net_balance,\n
source_balance=l.source_balance,\n
source_credit=l.source_credit,\n
source_debit=l.source_debit,\n
c = o.asContext( net_balance = net_balance,\n
balance=l.balance,\n
credit=l.credit,\n
debit=l.debit,\n
date=l.date,\n
section_title=l.section_title,\n
parent_reference=l.parent_reference,\n
parent_source_reference=l.parent_source_reference,\n
translated_simulation_state_title = o.getTranslatedSimulationStateTitle(),\n
portal_type=l.portal_type )\n
parent_specific_reference=l.parent_specific_reference,\n
translated_simulation_state_title =\n
o.getTranslatedSimulationStateTitle(),\n
portal_type=l.portal_type,\n
account_uid=l.account_uid, )\n
new_result.append(c)\n
\n
return new_result\n
......@@ -135,7 +143,7 @@ return new_result\n
</item>
<item>
<key> <string>_filepath</string> </key>
<value> <string>Script (Python):/nexedi/portal_skins/erp5_accounting/Entity_getAccountingTransactionList</string> </value>
<value> <string>Script (Python):/erp5/portal_skins/erp5_accounting/Entity_getAccountingTransactionList</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
......
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