[MERGE]:lp:~openerp-dev/openobject-addons/report_dev
bzr revid: apa@tinyerp.com-20101123100829-aw03hf8llt3kypi5
This commit is contained in:
@@ -312,7 +312,7 @@ class account_account(osv.osv):
|
||||
def _get_company_currency(self, cr, uid, ids, field_name, arg, context={}):
|
||||
result = {}
|
||||
for rec in self.browse(cr, uid, ids, context):
|
||||
result[rec.id] = (rec.company_id.currency_id.id,rec.company_id.currency_id.code)
|
||||
result[rec.id] = (rec.company_id.currency_id.id,rec.company_id.currency_id.symbol)
|
||||
return result
|
||||
|
||||
def _get_child_ids(self, cr, uid, ids, field_name, arg, context={}):
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<!-- This file must be loaded _after_ account_demo.xml ! -->
|
||||
<!-- This file must be loaded _after_ account_demo.xml ! -->
|
||||
<record id="test_invoice_1" model="account.invoice">
|
||||
<field name="currency_id" ref="base.EUR"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
@@ -19,8 +19,8 @@
|
||||
<field name="base">5.00</field>
|
||||
<field name="amount">100.00</field>
|
||||
<field name="account_id" ref="account.ova"/>
|
||||
<field name="invoice_id" ref="test_invoice_1"/>
|
||||
</record>
|
||||
<field name="invoice_id" ref="test_invoice_1"/>
|
||||
</record>
|
||||
<record id="test_invoice_1_line_1" model="account.invoice.line">
|
||||
<field name="name">Basic computer with Dvorak keyboard and left-handed mouse</field>
|
||||
<field name="invoice_id" ref="test_invoice_1"/>
|
||||
@@ -34,19 +34,19 @@
|
||||
<field name="price_unit">800</field>
|
||||
<field name="quantity">2</field>
|
||||
<field name="account_id" ref="account.a_sale"/>
|
||||
</record>
|
||||
|
||||
</record>
|
||||
|
||||
<assert id="test_invoice_1" model="account.invoice" string="The currency unit of Test invoice 1 is EUR">
|
||||
<test expr="currency_id.code">EUR</test>
|
||||
<test expr="currency_id.symbol">€</test>
|
||||
</assert>
|
||||
|
||||
|
||||
<assert id="test_invoice_1" model="account.invoice" severity="error" string="The amount of Test invoice 1 is correct">
|
||||
<test expr="sum([l.price_subtotal for l in invoice_line]) == 1850"/>
|
||||
<test expr="sum([l.price_subtotal for l in invoice_line]) == amount_untaxed"/>
|
||||
</assert>
|
||||
|
||||
|
||||
<workflow action="invoice_open" model="account.invoice" ref="test_invoice_1"/>
|
||||
|
||||
|
||||
<assert id="test_invoice_1" model="account.invoice" string="Test invoice 1 is now open">
|
||||
<test expr="state">open</test>
|
||||
</assert>
|
||||
@@ -62,7 +62,7 @@
|
||||
<!-- context = --> <value eval="{}"/>
|
||||
<!-- name = --> <value eval="str('Payment from ASUStek')"/>
|
||||
</function>
|
||||
|
||||
|
||||
<assert id="test_invoice_1" model="account.invoice" string="Test invoice 1 is now paid">
|
||||
<test expr="state">paid</test>
|
||||
</assert>
|
||||
|
||||
@@ -1235,7 +1235,7 @@ class account_invoice(osv.osv):
|
||||
if (not round(total,self.pool.get('decimal.precision').precision_get(cr, uid, 'Account'))) or writeoff_acc_id:
|
||||
self.pool.get('account.move.line').reconcile(cr, uid, line_ids, 'manual', writeoff_acc_id, writeoff_period_id, writeoff_journal_id, context)
|
||||
else:
|
||||
code = invoice.currency_id.code
|
||||
code = invoice.currency_id.symbol
|
||||
# TODO: use currency's formatting function
|
||||
msg = _("Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)") % \
|
||||
(name, pay_amount, code, invoice.amount_total, code, total, code)
|
||||
|
||||
@@ -90,15 +90,13 @@ class general_ledger(report_sxw.rml_parse, common_report_header):
|
||||
})
|
||||
self.context = context
|
||||
|
||||
def _ellipsis(self, orig_str, maxlen=100, ellipsis='...'):
|
||||
maxlen = maxlen - len(ellipsis)
|
||||
if maxlen <= 0:
|
||||
maxlen = 1
|
||||
new_str = orig_str[:maxlen]
|
||||
return new_str
|
||||
def _ellipsis(self, char, size=100, truncation_str='...'):
|
||||
if len(char) <= size:
|
||||
return char
|
||||
return char[:size-len(truncation_str)] + truncation_str
|
||||
|
||||
def _strip_name(self, name, maxlen=50):
|
||||
return self._ellipsis(name, maxlen, ' ...')
|
||||
return self._ellipsis(name, maxlen)
|
||||
|
||||
def _sum_currency_amount_account(self, account):
|
||||
self.cr.execute('SELECT sum(l.amount_currency) AS tot_currency \
|
||||
@@ -317,4 +315,4 @@ class general_ledger(report_sxw.rml_parse, common_report_header):
|
||||
report_sxw.report_sxw('report.account.general.ledger', 'account.account', 'addons/account/report/account_general_ledger.rml', parser=general_ledger, header='internal')
|
||||
report_sxw.report_sxw('report.account.general.ledger_landscape', 'account.account', 'addons/account/report/account_general_ledger_landscape.rml', parser=general_ledger, header='internal landscape')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -271,6 +271,7 @@
|
||||
<pto>
|
||||
<pto_header>
|
||||
<blockTable colWidths="40.0,50.0,105.0,67.0,65.0,130.0,50.0,70.0,65.0,75.0,70.0" style="Table7">[[data['form']['amount_currency'] == True or removeParentNode('blockTable')]]
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Date</para>
|
||||
|
||||
@@ -136,7 +136,7 @@ class common_report_header(object):
|
||||
|
||||
def _get_currency(self, data):
|
||||
if data.get('form', False) and data['form'].get('chart_account_id', False):
|
||||
return pooler.get_pool(self.cr.dbname).get('account.account').browse(self.cr, self.uid, data['form']['chart_account_id']).company_id.currency_id.code
|
||||
return ''
|
||||
return pooler.get_pool(self.cr.dbname).get('account.account').browse(self.cr, self.uid, data['form']['chart_account_id']).company_id.currency_id.symbol
|
||||
return ''
|
||||
|
||||
#vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -28,7 +28,7 @@
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="view_crm_opportunity_user_stage_graph">
|
||||
<field name="name">Opportunities By Stage Per User - Graph</field>
|
||||
<field name="model">crm.lead.report</field>
|
||||
@@ -43,12 +43,13 @@
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="act_oppor_categ">
|
||||
<field name="res_model">Opportunities By Categories</field>
|
||||
<field name="res_model">Opportunities by Categories</field>
|
||||
<field name="res_model">crm.lead.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree,form</field>
|
||||
<field name="view_id" ref="view_crm_opportunity_categ_graph"/>
|
||||
<field name="domain">[('state', 'not in', ('done', 'cancel')), ('type', '=', 'opportunity')]</field>
|
||||
<field name="context">{'search_default_Category':1}</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="act_opportunity_stage">
|
||||
@@ -57,6 +58,7 @@
|
||||
<field name="view_mode">graph,tree,form</field>
|
||||
<field name="view_id" ref="view_crm_opportunity_stage_graph"/>
|
||||
<field name="domain">[('state', 'not in', ('done', 'cancel')), ('type', '=', 'opportunity')]</field>
|
||||
<field name="context">{'search_default_Stage':1}</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="act_oppor_stage_user">
|
||||
@@ -66,6 +68,7 @@
|
||||
<field name="view_mode">graph,tree,form</field>
|
||||
<field name="view_id" ref="view_crm_opportunity_user_stage_graph"/>
|
||||
<field name="domain">[('state','!=','cancel')]</field>
|
||||
<field name="context">{'search_default_Stage':1}</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="board_crm_statistical_form">
|
||||
@@ -77,14 +80,14 @@
|
||||
<hpaned>
|
||||
<child1>
|
||||
<action
|
||||
string="Opportunities By Categories"
|
||||
string="Opportunities by Categories"
|
||||
name="%(act_oppor_categ)d"
|
||||
colspan="4"
|
||||
height="200"
|
||||
width="250"/>
|
||||
|
||||
<action
|
||||
string="Opportunities By Stage"
|
||||
string="Opportunities by Stage"
|
||||
name="%(act_opportunity_stage)d"
|
||||
height="200"
|
||||
colspan="4"/>
|
||||
|
||||
@@ -18,17 +18,6 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_report_crm_oppor_tree" model="ir.ui.view">
|
||||
<field name="name">crm.lead.report.tree</field>
|
||||
<field name="model">crm.lead.report</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Opportunity Analysis">
|
||||
<field name="stage_id"/>
|
||||
<field name="planned_revenue"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_report_crm_oppor_graph" model="ir.ui.view">
|
||||
<field name="name">crm.lead.report.graph</field>
|
||||
<field name="model">crm.lead.report</field>
|
||||
@@ -110,21 +99,9 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree,form</field>
|
||||
<field name="view_id" ref="view_report_crm_oppor_graph"/>
|
||||
<field name="domain">['&', '&', ('user_id','=',uid), ('type', '=', 'opportunity'), '!' , '&', ('state', '=', 'done'), ('date_closed','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%Y-%m-%d'))]</field>
|
||||
<field name="context">{'group_by_no_leaf':1,'group_by':['stage_id']}</field>
|
||||
<field name="domain">['&', '&', ('user_id','=',uid), ('type', '=', 'opportunity'), '!' , '&', ('state', '=', 'done'), ('date_closed','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%Y-%m-%d'))]</field>
|
||||
<field name="context">{'search_default_Stage':1}</field>
|
||||
</record>
|
||||
<record id="open_view_report_crm_oppor_graph" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
<field name="view_mode">graph</field>
|
||||
<field name="view_id" ref="view_report_crm_oppor_graph"/>
|
||||
<field name="act_window_id" ref="act_my_oppor_stage"/>
|
||||
</record>
|
||||
<record id="open_view_report_crm_oppor_tree" model="ir.actions.act_window.view">
|
||||
<field eval="2" name="sequence"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="view_report_crm_oppor_tree"/>
|
||||
<field name="act_window_id" ref="act_my_oppor_stage"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="act_sales_pipeline">
|
||||
<field name="res_model">crm.lead.report</field>
|
||||
|
||||
@@ -136,9 +136,9 @@
|
||||
domain="[]"
|
||||
context="{'group_by':'company_id'}" />
|
||||
<separator orientation="vertical" />
|
||||
<filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/>
|
||||
<filter string="Stage" name="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/>
|
||||
<filter string="Priority" icon="terp-rating-rated" domain="[]" context="{'group_by':'priority'}" />
|
||||
<filter string="Category" icon="terp-stock_symbol-selection"
|
||||
<filter string="Category" name="Category" icon="terp-stock_symbol-selection"
|
||||
domain="[]" context="{'group_by':'categ_id'}" />
|
||||
<filter string="Campaign" icon="terp-gtk-jump-to-rtl"
|
||||
domain="[]" context="{'group_by':'type_id'}" />
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
<hpaned position="100">
|
||||
<child1>
|
||||
<action name="%(sale.action_quotation_for_sale)d" string="Quotations"/>
|
||||
<action width="510" name="%(sale.action_view_sales_by_month)d" string="Sales By Month"/>
|
||||
<action width="510" name="%(sale.action_view_sales_by_month)d" string="Sales by Month"/>
|
||||
</child1>
|
||||
<child2>
|
||||
<action name="%(sale.action_sales_by_salesman)d" string="Sales By Salesman"/>
|
||||
<action name="%(sale.action_sales_by_partner)d" string="Sales By Customer"/>
|
||||
<action name="%(sale.action_sales_by_salesman)d" string="Sales by Salesman"/>
|
||||
<action name="%(sale.action_sales_by_partner)d" string="Sales by Customer"/>
|
||||
<action name="%(sale.action_sales_product_total_price)d" string="Sales by Product's Category"/>
|
||||
</child2>
|
||||
</hpaned>
|
||||
|
||||
@@ -97,11 +97,11 @@
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="10" col="12">
|
||||
<filter string="Salesman" icon="terp-personal" name="User" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Partner" icon="terp-partner" name="Customer" context="{'group_by':'partner_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id','set_visible':True}"/>
|
||||
<filter string="Default UoM" icon="terp-mrp" context="{'group_by':'uom_name'}"/>
|
||||
<filter string="Category of Product" icon="terp-stock_symbol-selection" context="{'group_by':'categ_id'}"/>
|
||||
<filter string="Category of Product" icon="terp-stock_symbol-selection" name="Category" context="{'group_by':'categ_id'}"/>
|
||||
<separator orientation="vertical" groups="analytic.group_analytic_accounting"/>
|
||||
<filter string="Analytic Account" icon="terp-folder-green" context="{'group_by':'analytic_account_id'}" groups="analytic.group_analytic_accounting"/>
|
||||
<separator orientation="vertical" groups="analytic.group_analytic_accounting"/>
|
||||
@@ -133,24 +133,12 @@
|
||||
<menuitem action="action_order_report_all" id="menu_report_product_all" parent="base.next_id_64" sequence="1" groups="base.group_sale_manager"/>
|
||||
|
||||
<!--This views used in board_sale module -->
|
||||
<record id="view_sales_by_partner_tree" model="ir.ui.view">
|
||||
<field name="name">sales.by.partner.tree</field>
|
||||
<field name="model">sale.report</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Sales By Partner">
|
||||
<field name="partner_id"/>
|
||||
<field name="price_total"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_sales_by_partner_graph" model="ir.ui.view">
|
||||
<field name="name">sales.by.partner.graph</field>
|
||||
<field name="model">sale.report</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Sales By Partner" type="bar">
|
||||
<graph string="Sales by Partner" type="bar">
|
||||
<field name="partner_id" />
|
||||
<field name="price_total" operator="+"/>
|
||||
</graph>
|
||||
@@ -158,37 +146,13 @@
|
||||
</record>
|
||||
|
||||
<record id="action_sales_by_partner" model="ir.actions.act_window">
|
||||
<field name="name">Sales By Partner</field>
|
||||
<field name="name">Sales by Partner</field>
|
||||
<field name="res_model">sale.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree</field>
|
||||
<field name="domain">[('state','in',('manual','progress')),('date','<=', time.strftime('%Y-%m-%d')),('date','>',(datetime.date.today()-datetime.timedelta(days=90)).strftime('%Y-%m-%d'))]</field>
|
||||
<field name="view_id" ref="view_sales_by_partner_graph"/>
|
||||
<field name="context">{'group_by_no_leaf':1,'group_by':['partner_id']}</field>
|
||||
</record>
|
||||
<record id="open_view_sales_by_partner_graph" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
<field name="view_mode">graph</field>
|
||||
<field name="view_id" ref="view_sales_by_partner_graph"/>
|
||||
<field name="act_window_id" ref="action_sales_by_partner"/>
|
||||
</record>
|
||||
<record id="open_view_sales_by_partner_tree" model="ir.actions.act_window.view">
|
||||
<field eval="2" name="sequence"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="view_sales_by_partner_tree"/>
|
||||
<field name="act_window_id" ref="action_sales_by_partner"/>
|
||||
</record>
|
||||
|
||||
<record id="view_sales_by_salesman_tree" model="ir.ui.view">
|
||||
<field name="name">sales.by.salesman.tree</field>
|
||||
<field name="model">sale.report</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Sales By Salesman">
|
||||
<field name="user_id"/>
|
||||
<field name="price_total"/>
|
||||
</tree>
|
||||
</field>
|
||||
<field name="context">{'search_default_Customer':1}</field>
|
||||
</record>
|
||||
|
||||
<record id="view_sales_by_salesman_graph" model="ir.ui.view">
|
||||
@@ -196,7 +160,7 @@
|
||||
<field name="model">sale.report</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Sales By Salesman" type="bar">
|
||||
<graph string="Sales by Salesman" type="bar">
|
||||
<field name="user_id" />
|
||||
<field name="price_total" operator="+"/>
|
||||
</graph>
|
||||
@@ -204,36 +168,13 @@
|
||||
</record>
|
||||
|
||||
<record id="action_sales_by_salesman" model="ir.actions.act_window">
|
||||
<field name="name">Sales By Salesman</field>
|
||||
<field name="name">Sales by Salesman</field>
|
||||
<field name="res_model">sale.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree</field>
|
||||
<field name="domain">[('state','in',('manual','progress','done')),('date','<=', time.strftime('%Y-%m-%d')),('date','>',(datetime.date.today()-datetime.timedelta(days=90)).strftime('%Y-%m-%d'))]</field>
|
||||
<field name="view_id" ref="view_sales_by_salesman_graph"/>
|
||||
<field name="context">{'group_by_no_leaf':1,'group_by':['user_id']}</field>
|
||||
</record>
|
||||
<record id="open_view_sales_by_salesman_graph" model="ir.actions.act_window.view">
|
||||
<field eval="7" name="sequence"/>
|
||||
<field name="view_mode">graph</field>
|
||||
<field name="view_id" ref="view_sales_by_salesman_graph"/>
|
||||
<field name="act_window_id" ref="action_sales_by_salesman"/>
|
||||
</record>
|
||||
<record id="open_view_sales_by_salesman_tree" model="ir.actions.act_window.view">
|
||||
<field eval="9" name="sequence"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="view_sales_by_salesman_tree"/>
|
||||
<field name="act_window_id" ref="action_sales_by_salesman"/>
|
||||
</record>
|
||||
<record id="view_sales_product_total_price_tree" model="ir.ui.view">
|
||||
<field name="name">sold.product.total.price.tree</field>
|
||||
<field name="model">sale.report</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Sales by Product Category">
|
||||
<field name="categ_id"/>
|
||||
<field name="price_total"/>
|
||||
</tree>
|
||||
</field>
|
||||
<field name="context">{'search_default_User':1}</field>
|
||||
</record>
|
||||
|
||||
<record id="view_sales_product_total_price_graph" model="ir.ui.view">
|
||||
@@ -255,20 +196,8 @@
|
||||
<field name="view_mode">graph,tree</field>
|
||||
<field name="domain">[('state','in',('manual','progress','done')),('date','>',(datetime.date.today()-datetime.timedelta(days=90)).strftime('%Y-%m-%d'))]</field>
|
||||
<field name="view_id" ref="view_sales_product_total_price_graph"/>
|
||||
<field name="context">{'group_by_no_leaf':1,'group_by':['categ_id']}</field>
|
||||
<field name="context">{'search_default_Category':1}</field>
|
||||
</record>
|
||||
<record id="open_view_sales_product_total_price_graph" model="ir.actions.act_window.view">
|
||||
<field eval="3" name="sequence"/>
|
||||
<field name="view_mode">graph</field>
|
||||
<field name="view_id" ref="view_sales_product_total_price_graph"/>
|
||||
<field name="act_window_id" ref="action_sales_product_total_price"/>
|
||||
</record>
|
||||
<record id="open_view_sales_product_total_price_tree" model="ir.actions.act_window.view">
|
||||
<field eval="4" name="sequence"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="view_sales_product_total_price_tree"/>
|
||||
<field name="act_window_id" ref="action_sales_product_total_price"/>
|
||||
</record>
|
||||
|
||||
<record id="view_sales_by_month_tree" model="ir.ui.view">
|
||||
<field name="name">view.sales.by.month.tree</field>
|
||||
@@ -283,7 +212,7 @@
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_view_sales_by_month" model="ir.actions.act_window">
|
||||
<field name="name">Sales By Month</field>
|
||||
<field name="name">Sales by Month</field>
|
||||
<field name="res_model">sale.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
|
||||
Reference in New Issue
Block a user