@@ -116,7 +118,7 @@
Document: Customer account statement
Date: [[ formatLang(time.strftime('%Y-%m-%d'),date=True) ]]
- Customer Ref: [[ o.ref or '' ]]
+ Customer Ref: [[ o.ref or ' ']]
@@ -181,10 +183,10 @@
[[ line['date_maturity'] and formatLang(line['date_maturity'],date=True) or '' ]]
- [[ (line['account_id']['type'] == 'receivable' and formatLang(line['debit']) or 0) or (line['account_id']['type'] == 'payable' and formatLang(line['credit'] * -1) or ' ') ]]
+ [[ (line['account_id']['type'] == 'receivable' and formatLang(line['debit']) or 0) or (line['account_id']['type'] == 'payable' and formatLang(line['credit'] * -1) or ' ') ]]
- [[ (line['account_id']['type'] == 'receivable' and formatLang(line['credit']) or 0) or (line['account_id']['type'] == 'payable' and formatLang(line['debit'] * -1) or 0) ]]
+ [[ (line['account_id']['type'] == 'receivable' and formatLang(line['credit']) or 0) or (line['account_id']['type'] == 'payable' and formatLang(line['debit'] * -1) or 0) ]]
[[ formatLang((line['date_maturity'] < time.strftime('%Y-%m-%d'))) and formatLang(line['debit'] - line['credit']) ]] [[ company.currency_id.symbol ]]
@@ -195,7 +197,7 @@
-
+
@@ -206,7 +208,7 @@
Sub-Total :
- [[ formatLang((reduce(lambda x, y: x + ((y['account_id']['type'] == 'receivable' and y['debit'] or 0) or (y['account_id']['type'] == 'payable' and y['credit'] * -1 or 0)), getLines(o), 0))) ]]
+ [[ formatLang((reduce(lambda x, y: x + ((y['account_id']['type'] == 'receivable' and y['debit'] or 0) or (y['account_id']['type'] == 'payable' and y['credit'] * -1 or 0)), getLines(o), 0))) ]]
[[ formatLang((reduce(lambda x, y: x + ((y['account_id']['type'] == 'receivable' and y['credit'] or 0) or (y['account_id']['type'] == 'payable' and y['debit'] * -1 or 0)), getLines(o), 0))) ]]
@@ -220,6 +222,8 @@
+
+
@@ -230,25 +234,21 @@
Balance :
- [[ formatLang((reduce(lambda x, y: x +(y['debit'] - y['credit']), getLines(o), 0))) ]] [[ company.currency_id.symbol ]]
+ [[ formatLang((reduce(lambda x, y: x +(y['debit'] - y['credit']), getLines(o), 0))) ]] [[ company.currency_id.symbol ]]
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
Total amount due: [[ formatLang((reduce(lambda x, y: x + (y['debit'] - y['credit']), getLines(o), 0))) ]] [[ company.currency_id.symbol ]].
diff --git a/addons/account/report/tax_report.rml b/addons/account/report/tax_report.rml
index 9ad4ff56112..2434437e803 100644
--- a/addons/account/report/tax_report.rml
+++ b/addons/account/report/tax_report.rml
@@ -104,7 +104,7 @@
- Taxes
+ Tax Statement
Tax Name
diff --git a/addons/account/test/account_report.yml b/addons/account/test/account_report.yml
index 7e4295da45b..4bc3b807d28 100644
--- a/addons/account/test/account_report.yml
+++ b/addons/account/test/account_report.yml
@@ -1,6 +1,6 @@
-
In order to test the PDF reports defined on an invoice, we will print an Invoice Report
--
+-
!python {model: account.invoice}: |
import netsvc, tools, os
(data, format) = netsvc.LocalService('report.account.invoice').create(cr, uid, [ref('account.test_invoice_1')], {}, {})
@@ -9,7 +9,7 @@
-
In order to test the PDF reports defined on a partner, we will print the Overdue Report
--
+-
!python {model: res.partner}: |
import netsvc, tools, os
(data, format) = netsvc.LocalService('report.account.overdue').create(cr, uid, [ref('base.res_partner_asus'),ref('base.res_partner_agrolait'),ref('base.res_partner_c2c')], {}, {})
@@ -18,7 +18,7 @@
-
In order to test the PDF reports defined on Account Move, we will print the Voucher Report
--
+-
!python {model: account.move}: |
import netsvc, tools, os
(data, format) = netsvc.LocalService('report.account.move.voucher').create(cr, uid, [ref('account.account_move_0')], {}, {})
@@ -30,28 +30,30 @@
-
!record {model: account.tax.code, id: account_tax_code_0}:
name : Tax Code Test
+ sign : 10.00
-
Print Tax Code entries report
--
+-
!python {model: account.tax.code}: |
import netsvc, tools, os
(data, format) = netsvc.LocalService('report.account.tax.code.entries').create(cr, uid, [ref('account_tax_code_0')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-tax-code-entries.'+format), 'wb+').write(data)
+
-
Print Vat Declaration Report
-
!python {model: account.tax.code}: |
import netsvc, tools, os
data_dict = {'model': 'ir.ui.menu', 'form': {'based_on': 'invoices','company_id':ref('base.main_company'),'periods':[]}}
- (data, format) = netsvc.LocalService('report.account.vat.declaration').create(cr, uid, [ref("account_tax_code_0")], data_dict, {})
+ (data, format) = netsvc.LocalService('report.account.vat.declaration').create(cr, uid, [ref("account_move_0")], data_dict, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-vat-declaration.'+format), 'wb+').write(data)
-
In order to test the PDF reports defined on an invoice, we will print an invoice
--
+-
!python {model: account.invoice}: |
import netsvc, tools, os
(data, format) = netsvc.LocalService('report.account.invoice').create(cr, uid, [ref('account.test_invoice_1')], {}, {})
@@ -84,9 +86,9 @@
ctx['fiscalyear'] = fy_id
ctx['journal_ids'] = journal_ids
ctx['chart_account_id'] = ref('account.chart0')
-
+
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
-
+
data_dict = {'model': 'ir.ui.menu', 'form': {'chart_account_id':ref('account.chart0'),'initial_balance': 1, 'periods': period_list,'journal_ids':journal_ids, 'page_split': 0, 'date_from': time.strftime('%Y-%m-%d'), 'period_length': 30, 'amount_currency': 0,'query_line' : query_line, 'result_selection': 'customer','direction_selection': 'past','fiscalyear_id':fy_id}}
data_dict['form'].update(res)
(data, format) = netsvc.LocalService('report.account.aged_trial_balance').create(cr, uid, [], data_dict, {})
@@ -122,10 +124,10 @@
(data, format) = netsvc.LocalService('report.account.account.balance').create(cr, uid, [ref('account.bal'),ref('account.gpf')], data_dict, {'periods': []})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-account_balance-normal.'+format), 'wb+').write(data)
-
+
data_dict.update({'model': 'ir.ui.menu'})
data_dict['form'].update({'active_ids':[ref('account.bal'),ref('account.gpf')]})
-
+
(data, format) = netsvc.LocalService('report.account.account.balance').create(cr, uid, [], data_dict, {'periods': []})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-account_balance-normal-menu.'+format), 'wb+').write(data)
@@ -145,16 +147,16 @@
ctx['fiscalyear'] = fy_id
ctx['journal_ids'] = journal_ids
ctx['chart_account_id'] = ref('account.chart0')
-
+
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
data_dict = {'model': 'account.journal.period', 'id':journal_period_ids[0], 'form': {'chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','amount_currency': 0,'compare_pattern': 'none','account_choice': 'moves','landscape':0,'period_manner': 'actual','fiscalyear_id': fy_id ,'query_line':query_line,'target_move': 'all','periods': period_list,'journal_ids':journal_ids,'id':ref('account.bal') }}
(data, format) = netsvc.LocalService('report.account.central.journal').create(cr, uid, journal_period_ids, data_dict, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-central_journal.'+format), 'wb+').write(data)
-
+
data_dict.update({'model': 'ir.ui.menu'})
data_dict['form'].update({'active_ids':journal_period_ids})
-
+
(data, format) = netsvc.LocalService('report.account.central.journal').create(cr, uid, [], data_dict, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-central_journal-menu.'+format), 'wb+').write(data)
@@ -167,13 +169,13 @@
period_list = self.pool.get('account.period').search(cr, uid, [('fiscalyear_id', 'in', [fy_id])], context=context)
journal_ids = [ref('account.sales_journal'),ref('account.refund_sales_journal'),ref('account.expenses_journal'),ref('account.refund_expenses_journal'),ref('account.bank_journal'),ref('account.check_journal'),ref('account.cash_journal')]
journal_period_ids = self.pool.get('account.journal.period').search(cr, uid, [('journal_id', 'in', journal_ids), ('period_id', 'in', period_list)], context=context)
-
+
obj_move = self.pool.get('account.move.line')
ctx = {}
ctx['fiscalyear'] = fy_id
ctx['journal_ids'] = journal_ids
ctx['chart_account_id'] = ref('account.chart0')
-
+
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
data_dict = {'model': 'ir.ui.menu','id':journal_period_ids[0], 'form': {'chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','amount_currency': 0,'compare_pattern': 'none','account_choice': 'moves','landscape':0,'period_manner': 'actual','fiscalyear_id': fy_id ,'query_line':query_line,'target_move': 'all','periods': period_list,'journal_ids':journal_ids, 'active_ids':journal_period_ids}}
(data, format) = netsvc.LocalService('report.account.general.journal').create(cr, uid, journal_period_ids, data_dict, {})
@@ -189,15 +191,15 @@
period_list = self.pool.get('account.period').search(cr, uid, [('fiscalyear_id', 'in', [fy_id])], context=context)
journal_ids = [ref('account.sales_journal'),ref('account.refund_sales_journal'),ref('account.expenses_journal'),ref('account.refund_expenses_journal'),ref('account.bank_journal'),ref('account.check_journal'),ref('account.cash_journal')]
acc_ids = [ref('account.bal'),ref('account.gpf')]
-
+
obj_move = self.pool.get('account.move.line')
ctx = {}
ctx['fiscalyear'] = fy_id
ctx['journal_ids'] = journal_ids
ctx['chart_account_id'] = ref('account.chart0')
-
+
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
-
+
data_dict = {'model': 'account.account', 'form': {'initial_balance': 1,'initial_bal_query': query_line,'chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','sortby': 'sort_date','amount_currency': 0,'landscape':0,'period_manner': 'actual','fiscalyear_id': fy_id ,'query_line':query_line,'target_move': 'all','periods': period_list,'journal_ids':journal_ids,'id':ref('account.bal') }}
(data, format) = netsvc.LocalService('report.account.general.ledger').create(cr, uid, acc_ids, data_dict, {})
if tools.config['test_report_directory']:
@@ -217,15 +219,15 @@
period_list = self.pool.get('account.period').search(cr, uid, [('fiscalyear_id', 'in', [fy_id])], context=context)
journal_ids = [ref('account.sales_journal'),ref('account.refund_sales_journal'),ref('account.expenses_journal'),ref('account.refund_expenses_journal'),ref('account.bank_journal'),ref('account.check_journal'),ref('account.cash_journal')]
acc_ids = [ref('account.bal'),ref('account.gpf')]
-
+
obj_move = self.pool.get('account.move.line')
ctx = {}
ctx['fiscalyear'] = fy_id
ctx['journal_ids'] = journal_ids
ctx['chart_account_id'] = ref('account.chart0')
-
+
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
-
+
data_dict = {'model': 'account.account', 'form': {'initial_balance': 1,'initial_bal_query':query_line,'chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','sortby': 'sort_date','amount_currency': 0,'landscape':1,'period_manner': 'actual','fiscalyear_id': fy_id ,'query_line':query_line,'target_move': 'all','periods': period_list,'journal_ids':journal_ids,'id':ref('account.bal') }}
(data, format) = netsvc.LocalService('report.account.general.ledger_landscape').create(cr, uid, acc_ids, data_dict, {})
if tools.config['test_report_directory']:
@@ -252,17 +254,17 @@
ctx['fiscalyear'] = fy_id
ctx['journal_ids'] = journal_ids
ctx['chart_account_id'] = ref('account.chart0')
-
+
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
-
+
data_dict = {'model': 'account.journal.period', 'id':journal_period_ids[0], 'form': {'sort_selection': 'date','chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','amount_currency': 0,'compare_pattern': 'none','account_choice': 'moves','landscape':0,'period_manner': 'actual','fiscalyear_id': fy_id ,'query_line':query_line,'target_move': 'all','periods': period_list,'journal_ids':journal_ids,'id':ref('account.bal') }}
(data, format) = netsvc.LocalService('report.account.journal.period.print').create(cr, uid, journal_period_ids, data_dict, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-print_journal.'+format), 'wb+').write(data)
-
+
data_dict.update({'model': 'ir.ui.menu'})
data_dict['form'].update({'active_ids':journal_period_ids})
-
+
(data, format) = netsvc.LocalService('report.account.journal.period.print').create(cr, uid, [], data_dict, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-print_journal-menu.'+format), 'wb+').write(data)
@@ -275,16 +277,17 @@
fy_id = ref('account.data_fiscalyear')
period_list = self.pool.get('account.period').search(cr, uid, [('fiscalyear_id', 'in', [fy_id])], context=context)
journal_ids = [ref('account.sales_journal'),ref('account.refund_sales_journal'),ref('account.expenses_journal'),ref('account.refund_expenses_journal'),ref('account.bank_journal'),ref('account.check_journal'),ref('account.cash_journal')]
-
+ journal_period_ids = self.pool.get('account.journal.period').search(cr, uid, [('journal_id', 'in', journal_ids), ('period_id', 'in', period_list)], context=context)
obj_move = self.pool.get('account.move.line')
ctx = {}
ctx['fiscalyear'] = fy_id
ctx['journal_ids'] = journal_ids
ctx['chart_account_id'] = ref('account.chart0')
-
+
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
- data_dict = {'model': 'ir.ui.menu', 'form': {'result_selection': 'customer','chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','display_type': 0,'journal_ids':journal_ids,'display_partner': 'non-zero_balance','fiscalyear': fy_id ,'target_move': 'all','query_line':query_line}}
- (data, format) = netsvc.LocalService('report.account.partner.balance').create(cr, uid, [], data_dict, {})
+
+ data_dict = {'model': 'ir.ui.menu', 'form': {'result_selection': 'customer','chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','display_type': 0,'journal_ids':journal_ids,'active_ids':journal_period_ids,'display_partner': 'all','fiscalyear': fy_id ,'target_move': 'all','query_line':query_line}}
+ (data, format) = netsvc.LocalService('report.account.partner.balance').create(cr, uid, journal_period_ids, data_dict, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-partner_balance.'+format), 'wb+').write(data)
@@ -302,9 +305,9 @@
ctx['fiscalyear'] = fy_id
ctx['journal_ids'] = journal_ids
ctx['chart_account_id'] = ref('account.chart0')
-
+
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
-
+
data_dict = {'model': 'ir.ui.menu', 'form': {'initial_bal_query':query_line,'amount_currency': 0,'reconcil': True,'initial_balance':1,'page_split': True,'result_selection': 'customer','chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','display_type': 0,'journal_ids':journal_ids,'display_partner': 'non-zero_balance','fiscalyear': fy_id ,'target_move': 'all','query_line':query_line}}
(data, format) = netsvc.LocalService('report.account.third_party_ledger').create(cr, uid, [], data_dict, {})
if tools.config['test_report_directory']:
@@ -324,7 +327,7 @@
ctx['fiscalyear'] = fy_id
ctx['journal_ids'] = journal_ids
ctx['chart_account_id'] = ref('account.chart0')
-
+
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
data_dict = {'model': 'ir.ui.menu', 'form': {'initial_bal_query':query_line,'amount_currency': 0,'reconcil': True,'initial_balance':1,'page_split': False,'result_selection': 'customer','chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','display_type': 0,'journal_ids':journal_ids,'display_partner': 'non-zero_balance','fiscalyear': fy_id ,'target_move': 'all','query_line':query_line}}
(data, format) = netsvc.LocalService('report.account.third_party_ledger_other').create(cr, uid, [], data_dict, {})
diff --git a/addons/account/test/account_validate_account_move.yml b/addons/account/test/account_validate_account_move.yml
index 37d64ead528..9a733d8ad5f 100644
--- a/addons/account/test/account_validate_account_move.yml
+++ b/addons/account/test/account_validate_account_move.yml
@@ -1,3 +1,12 @@
+-
+ Demo data for Account tax code
+-
+ !record {model: account.tax.code, id: account_tax_code_0}:
+ name : Tax Code Test
+ sign : 1.00
+-
+
+
-
In order to test the 'Validate Journal Entries' wizard in OpenERP, I created an account move
@@ -20,6 +29,7 @@
- journal_id: account.bank_journal
period_id: account.period_6
ref: '2010010'
+ tax_code_id: account_tax_code_0
tax_amount: 0.0
account_id: account.a_recv
amount_currency: 0.0
diff --git a/addons/account/wizard/account_automatic_reconcile.py b/addons/account/wizard/account_automatic_reconcile.py
index efce4bc4da4..f94082445da 100644
--- a/addons/account/wizard/account_automatic_reconcile.py
+++ b/addons/account/wizard/account_automatic_reconcile.py
@@ -200,7 +200,8 @@ class account_automatic_reconcile(osv.osv_memory):
"AND partner_id=%s " \
"AND reconcile_id IS NULL " \
"AND state <> 'draft' " \
- "AND debit > 0",
+ "AND debit > 0 " \
+ "ORDER BY date_maturity",
(account_id, partner_id))
debits = cr.fetchall()
@@ -212,7 +213,8 @@ class account_automatic_reconcile(osv.osv_memory):
"AND partner_id=%s " \
"AND reconcile_id IS NULL " \
"AND state <> 'draft' " \
- "AND credit > 0",
+ "AND credit > 0 " \
+ "ORDER BY date_maturity",
(account_id, partner_id))
credits = cr.fetchall()
diff --git a/addons/account/wizard/account_vat_view.xml b/addons/account/wizard/account_vat_view.xml
index c8a6645f744..72c6fa768e5 100644
--- a/addons/account/wizard/account_vat_view.xml
+++ b/addons/account/wizard/account_vat_view.xml
@@ -16,7 +16,7 @@
-
+
diff --git a/addons/account_analytic_default/account_analytic_default.py b/addons/account_analytic_default/account_analytic_default.py
index d0405e1ff52..dce86597a4c 100644
--- a/addons/account_analytic_default/account_analytic_default.py
+++ b/addons/account_analytic_default/account_analytic_default.py
@@ -111,8 +111,9 @@ class sale_order_line(osv.osv):
sale_line = self.browse(cr, uid, ids[0], context)
inv_line_obj = self.pool.get('account.invoice.line')
anal_def_obj = self.pool.get('account.analytic.default')
+
for line in inv_line_obj.browse(cr, uid, create_ids, context):
- rec = anal_def_obj.account_get(cr, uid, line.product_id.id, sale_line.order_id.partner_id.id, uid, time.strftime('%Y-%m-%d'), context)
+ rec = anal_def_obj.account_get(cr, uid, line.product_id.id, sale_line.order_id.partner_id.id, sale_line.order_id.user_id.id, time.strftime('%Y-%m-%d'), context)
if rec:
inv_line_obj.write(cr, uid, [line.id], {'account_analytic_id':rec.analytic_id.id}, context=context)
diff --git a/addons/account_analytic_default/account_analytic_default_view.xml b/addons/account_analytic_default/account_analytic_default_view.xml
index 95a39eb11e6..939d8474250 100644
--- a/addons/account_analytic_default/account_analytic_default_view.xml
+++ b/addons/account_analytic_default/account_analytic_default_view.xml
@@ -53,14 +53,14 @@
-
+
Analytic Defaults
account.analytic.default
form
tree,form
-
+
-
+
+
+
-
+
diff --git a/addons/association/profile_association.xml b/addons/association/profile_association.xml
index 8460cfa6cc9..d5a5baab946 100644
--- a/addons/association/profile_association.xml
+++ b/addons/association/profile_association.xml
@@ -48,8 +48,9 @@
-
- 3
+
+ 3
+ always
diff --git a/addons/base_report_designer/base_report_designer_installer.xml b/addons/base_report_designer/base_report_designer_installer.xml
index 4ea4970d19a..2c0cf191e4e 100644
--- a/addons/base_report_designer/base_report_designer_installer.xml
+++ b/addons/base_report_designer/base_report_designer_installer.xml
@@ -19,7 +19,7 @@
This plug-in allows you to create/modify OpenERP Reports into OpenOffice Writer.
-
+
@@ -29,10 +29,10 @@
type="object" string="Skip" colspan="1" invisible="context.get('menu',False)"/>
-
- 15
-
-
+
+ 15
+
+
@@ -55,12 +55,11 @@
-
- 3
+
+ 3
+ always
-
-
OpenERP Report Designer
ir.actions.act_window
diff --git a/addons/base_setup/base_setup_installer.xml b/addons/base_setup/base_setup_installer.xml
index 4245f3da206..041feb6d05c 100644
--- a/addons/base_setup/base_setup_installer.xml
+++ b/addons/base_setup/base_setup_installer.xml
@@ -54,6 +54,7 @@
2
+ always
diff --git a/addons/base_setup/base_setup_todo.xml b/addons/base_setup/base_setup_todo.xml
index 8151442855b..56c205b16c9 100644
--- a/addons/base_setup/base_setup_todo.xml
+++ b/addons/base_setup/base_setup_todo.xml
@@ -67,7 +67,7 @@
3
- onskip
+ always
diff --git a/addons/crm/board_crm_view.xml b/addons/crm/board_crm_view.xml
index 8aa1d96d403..c299741280a 100644
--- a/addons/crm/board_crm_view.xml
+++ b/addons/crm/board_crm_view.xml
@@ -17,7 +17,7 @@
-
+
crm.lead.report.graph
crm.lead.report
@@ -29,7 +29,7 @@
-
+
Opportunities
crm.lead
@@ -71,7 +71,7 @@
tree,form
[('user_id','=',uid),('state','=','open'), ('type', '=', 'opportunity')]
-
+
tree
@@ -111,11 +111,11 @@
- CRM - Dashboard Form
+ Sales Dashboard Form
board.board
form
-
- CRM Dashboard
+ Sales Dashboard
board.board
form
form
@@ -154,10 +154,10 @@
-
+
\ No newline at end of file
diff --git a/addons/crm/crm_installer_view.xml b/addons/crm/crm_installer_view.xml
index ece3bae31ec..35ff5a0a7cc 100644
--- a/addons/crm/crm_installer_view.xml
+++ b/addons/crm/crm_installer_view.xml
@@ -25,24 +25,24 @@
Configure
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -59,9 +59,10 @@
-
- 3
-
+
+ 3
+ always
+
diff --git a/addons/delivery/report/shipping.rml b/addons/delivery/report/shipping.rml
index 2c7107c2386..a4ed29bc643 100644
--- a/addons/delivery/report/shipping.rml
+++ b/addons/delivery/report/shipping.rml
@@ -179,7 +179,7 @@
- Designation
+ Description
Lot
@@ -215,4 +215,4 @@
-
\ No newline at end of file
+
diff --git a/addons/delivery/test/delivery_report.yml b/addons/delivery/test/delivery_report.yml
index ed3a859f23d..a88b6bd1942 100644
--- a/addons/delivery/test/delivery_report.yml
+++ b/addons/delivery/test/delivery_report.yml
@@ -1,8 +1,36 @@
+
+-
+
+ In Order to test the delivery report I create picking with move lines.
+-
+ !record {model: stock.picking, id: stock_picking_delivery}:
+ name: test_picking
+ origin: SO001
+ address_id: base.res_partner_address_4
+ company_id: base.main_company
+ date: '2010-05-11 15:18:52'
+ invoice_state: none
+ move_lines:
+ - company_id: base.main_company
+ date_planned: '2010-05-11 15:18:57'
+ location_dest_id: stock.stock_location_customers
+ location_id: stock.stock_location_stock
+ name: HP CD writers
+ product_id: product.product_product_pc1
+ product_qty: 3.0
+ product_uom: product.product_uom_unit
+ date: '2010-05-11 15:18:57'
+ product_uos_qty: 3.0
+ move_type: direct
+ type: out
+
+
+
-
In order to test the PDF reports defined on a Delievry, we will print a Delivery Order report
-
!python {model: stock.picking}: |
import netsvc, tools, os
- (data, format) = netsvc.LocalService('report.sale.shipping').create(cr, uid, [ref('stock.stock_picking_1')], {}, {})
+ (data, format) = netsvc.LocalService('report.sale.shipping').create(cr, uid, [ref('stock_picking_delivery')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'delievry-shipping'+format), 'wb+').write(data)
diff --git a/addons/document_ics/document_ics_config_wizard.xml b/addons/document_ics/document_ics_config_wizard.xml
index d19951deb38..e58f48cad4c 100644
--- a/addons/document_ics/document_ics_config_wizard.xml
+++ b/addons/document_ics/document_ics_config_wizard.xml
@@ -54,6 +54,7 @@
register configuration wizard
diff --git a/addons/hr/hr_installer.xml b/addons/hr/hr_installer.xml
index 0f396e65a8b..5ccbaefa3f5 100644
--- a/addons/hr/hr_installer.xml
+++ b/addons/hr/hr_installer.xml
@@ -52,6 +52,7 @@
3
+ always
diff --git a/addons/hr_attendance/report/hr_custom_default.xsl b/addons/hr_attendance/report/hr_custom_default.xsl
index 39e71d6d53e..e8b133da1b0 100644
--- a/addons/hr_attendance/report/hr_custom_default.xsl
+++ b/addons/hr_attendance/report/hr_custom_default.xsl
@@ -9,8 +9,6 @@
-
- /
1.3cm 19.3cm 28.5cm 19.3cm
@@ -23,8 +21,6 @@
-
- /
1.3cm 19.3cm 28.5cm 19.3cm
diff --git a/addons/hr_attendance/report/timesheet.py b/addons/hr_attendance/report/timesheet.py
index 1465be81bc8..b0845422655 100644
--- a/addons/hr_attendance/report/timesheet.py
+++ b/addons/hr_attendance/report/timesheet.py
@@ -41,8 +41,8 @@ class report_custom(report_rml):
start_date = datetime.strptime(datas['form']['init_date'], '%Y-%m-%d')
end_date = datetime.strptime(datas['form']['end_date'], '%Y-%m-%d')
- first_monday = start_date - relativedelta(days=start_date.day_of_week)
- last_monday = end_date + relativedelta(days=7 - end_date.day_of_week)
+ first_monday = start_date - relativedelta(days=start_date.date().weekday())
+ last_monday = end_date + relativedelta(days=7 - end_date.date().weekday())
if last_monday < first_monday:
first_monday, last_monday = last_monday, first_monday
@@ -82,7 +82,7 @@ class report_custom(report_rml):
for att in attendances:
dt = datetime.strptime(att['name'], '%Y-%m-%d %H:%M:%S')
if att['action'] == 'sign_out':
- week_wh[ldt.day_of_week] = week_wh.get(ldt.day_of_week, 0) + (dt - ldt).hours
+ week_wh[ldt.date().weekday()] = week_wh.get(ldt.date().weekday(), 0) + ((dt - ldt).seconds/3600)
ldt = dt
# Week xml representation
diff --git a/addons/hr_expense/report/expense.rml b/addons/hr_expense/report/expense.rml
index fa9e78c68cd..7d7be76ea8e 100644
--- a/addons/hr_expense/report/expense.rml
+++ b/addons/hr_expense/report/expense.rml
@@ -115,9 +115,9 @@
- HR Expenses [[ o.name or '' ]]
-
-
+ HR Expenses
+
+ [[ o.name or '' ]]
@@ -166,10 +166,10 @@
Unit Price
- Qty
+ Qty
- Total Price([[ o.currency_id.code ]])
+ Total Price
@@ -181,7 +181,7 @@
- [[ formatLang(line.date_value,date = True) ]]
+ [[ formatLang(line.date_value,date=True) ]]
[[ line.name or '' ]] [[ line.description or '' ]]
@@ -259,7 +259,7 @@
- [[ setTag('para','xpre') ]] [[ o.note or '' ]]
+ [[ o.note or '' ]] [[ setTag('para','xpre') ]]
diff --git a/addons/hr_holidays/migrations/1.5/post-01-convert-limits-into-requests.py b/addons/hr_holidays/migrations/1.5/post-01-convert-limits-into-requests.py
index 5ee6e894cf5..a59dbbf85eb 100644
--- a/addons/hr_holidays/migrations/1.5/post-01-convert-limits-into-requests.py
+++ b/addons/hr_holidays/migrations/1.5/post-01-convert-limits-into-requests.py
@@ -21,14 +21,15 @@
__name__ = "Convert the Holidays Per User limits into positive leave request"
def migrate(cr, version):
- cr.execute("""SELECT id, employee_id, holiday_status, max_leaves, notes, create_uid
- FROM hr_holidays_per_user;""")
- for record in cr.fetchall():
- cr.execute("""INSERT INTO hr_holidays
- (employee_id, type, allocation_type, name, holiday_status_id,
- state, number_of_days, notes, manager_id) VALUES
- (%s, 'add', 'company', 'imported holiday_per_user', %s,
- 'validated', %s, %s, %s) """, (record[1],record[2],record[3],record[4],record[5]))
+# cr.execute("""SELECT id, employee_id, holiday_status, max_leaves, notes, create_uid
+# FROM hr_holidays_per_user;""")
+# for record in cr.fetchall():
+# cr.execute("""INSERT INTO hr_holidays
+# (employee_id, type, allocation_type, name, holiday_status_id,
+# state, number_of_days, notes, manager_id) VALUES
+# (%s, 'add', 'company', 'imported holiday_per_user', %s,
+# 'validated', %s, %s, %s) """, (record[1],record[2],record[3],record[4],record[5]))
+ return {}
diff --git a/addons/hr_holidays/report/hr_custom_default.xsl b/addons/hr_holidays/report/hr_custom_default.xsl
index 39e71d6d53e..e8b133da1b0 100644
--- a/addons/hr_holidays/report/hr_custom_default.xsl
+++ b/addons/hr_holidays/report/hr_custom_default.xsl
@@ -9,8 +9,6 @@
-
- /
1.3cm 19.3cm 28.5cm 19.3cm
@@ -23,8 +21,6 @@
-
- /
1.3cm 19.3cm 28.5cm 19.3cm
diff --git a/addons/hr_payroll/report/report_employees_detail.py b/addons/hr_payroll/report/report_employees_detail.py
index d36df160ad2..c3d90c4eac7 100644
--- a/addons/hr_payroll/report/report_employees_detail.py
+++ b/addons/hr_payroll/report/report_employees_detail.py
@@ -227,7 +227,7 @@ class employees_salary_report(rml_parse.rml_parse):
def get_monthly_total(self):
return self.month_total_list
-report_sxw.report_sxw('report.employees.salary', 'hr.payslip', 'hr_payroll/report/report_employees_detail.rml', parser=employees_salary_report,header=3)
+report_sxw.report_sxw('report.employees.salary', 'hr.payslip', 'hr_payroll/report/report_employees_detail.rml', parser=employees_salary_report,header='internal landscape')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_payroll/report/report_employees_detail.rml b/addons/hr_payroll/report/report_employees_detail.rml
index 1988d932ce2..28ebe20d007 100644
--- a/addons/hr_payroll/report/report_employees_detail.rml
+++ b/addons/hr_payroll/report/report_employees_detail.rml
@@ -86,33 +86,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -122,20 +108,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -144,20 +130,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -166,24 +152,38 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -292,10 +292,10 @@
[[ o.name ]]
- Other Id
+ PAN No.
- [[ o.otherid or '' ]]
+ [[ o.pan_no or ' ']]
Address
@@ -332,7 +332,7 @@
[[ repeatIn(get_periods(data['form']),'m') ]]
-
+
Title
@@ -378,13 +378,7 @@
-
-
-
-
-
-
@@ -393,56 +387,53 @@
- [[ repeatIn(get_allow(),'e1') ]]
-
+ [[ repeatIn(get_allow(),'e1') ]]
+
[[ e1[0] ]]
- [[ formatLang(e1[1]) ]]
+ [[ formatLang(e1[1]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e1[2]) ]]
+ [[ formatLang(e1[2]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e1[3]) ]]
+ [[ formatLang(e1[3]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e1[4]) ]]
+ [[ formatLang(e1[4]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e1[5]) ]]
+ [[ formatLang(e1[5]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e1[6]) ]]
+ [[ formatLang(e1[6]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e1[7]) ]]
+ [[ formatLang(e1[7]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e1[8]) ]]
+ [[ formatLang(e1[8]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e1[9]) ]]
+ [[ formatLang(e1[9]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e1[10]) ]]
+ [[ formatLang(e1[10]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e1[11]) ]]
+ [[ formatLang(e1[11]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e1[12]) ]]
+ [[ formatLang(e1[12]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e1[13]) ]]
+ [[ formatLang(e1[13]) ]] [[ company.currency_id.symbol ]]
-
-
-
@@ -452,56 +443,53 @@
- [[ repeatIn(get_deduct(),'e2') ]]
-
+ [[ repeatIn(get_deduct(),'e2') ]]
+
[[ e2[0] ]]
- [[ formatLang(e2[1]) ]]
+ [[ formatLang(e2[1]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e2[2]) ]]
+ [[ formatLang(e2[2]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e2[3]) ]]
+ [[ formatLang(e2[3]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e2[4]) ]]
+ [[ formatLang(e2[4]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e2[5]) ]]
+ [[ formatLang(e2[5]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e2[6]) ]]
+ [[ formatLang(e2[6]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e2[7]) ]]
+ [[ formatLang(e2[7]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e2[8]) ]]
+ [[ formatLang(e2[8]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e2[9]) ]]
+ [[ formatLang(e2[9]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e2[10]) ]]
+ [[ formatLang(e2[10]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e2[11]) ]]
+ [[ formatLang(e2[11]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e2[12]) ]]
+ [[ formatLang(e2[12]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e2[13]) ]]
+ [[ formatLang(e2[13]) ]] [[ company.currency_id.symbol ]]
-
-
-
@@ -511,107 +499,98 @@
- [[ repeatIn(get_other(),'e3') ]]
-
+ [[ repeatIn(get_other(),'e3') ]]
+
[[ e3[0] ]]
- [[ formatLang(e3[1]) ]]
+ [[ formatLang(e3[1]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e3[2]) ]]
+ [[ formatLang(e3[2]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e3[3]) ]]
+ [[ formatLang(e3[3]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e3[4]) ]]
+ [[ formatLang(e3[4]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e3[5]) ]]
+ [[ formatLang(e3[5]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e3[6]) ]]
+ [[ formatLang(e3[6]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e3[7]) ]]
+ [[ formatLang(e3[7]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e3[8]) ]]
+ [[ formatLang(e3[8]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e3[9]) ]]
+ [[ formatLang(e3[9]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e3[10]) ]]
+ [[ formatLang(e3[10]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e3[11]) ]]
+ [[ formatLang(e3[11]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e3[12]) ]]
+ [[ formatLang(e3[12]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(e3[13]) ]]
+ [[ formatLang(e3[13]) ]] [[ company.currency_id.symbol ]]
-
-
-
-
-
-
-
-
-
[[ get_monthly_total()[0] ]]
- [[ formatLang(get_monthly_total()[1]) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[1]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[2]) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[2]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[3]) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[3]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[4]) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[4]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[5]) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[5]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[6]) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[6]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[7]) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[7]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[8]) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[8]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[9]) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[9]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[10]) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[10]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[11]) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[11]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[12]) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[12]) ]] [[ company.currency_id.symbol ]]
- [[ formatLang(get_total()) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(get_total()) ]] [[ company.currency_id.symbol ]]
@@ -619,11 +598,8 @@
-
-
-
-
+
\ No newline at end of file
diff --git a/addons/hr_payroll/report/report_year_report.rml b/addons/hr_payroll/report/report_year_report.rml
index 4c32436955a..d103d35185f 100755
--- a/addons/hr_payroll/report/report_year_report.rml
+++ b/addons/hr_payroll/report/report_year_report.rml
@@ -63,11 +63,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
@@ -134,7 +147,7 @@
[[ repeatIn(get_periods(data['form']),'m') ]]
-
+
Name
@@ -176,7 +189,7 @@
[[ m[11] ]]
- Total([[company.currency_id.code]])
+ Total
@@ -185,7 +198,7 @@
[[ repeatIn(get_employee(data['form']),'e') ]]
-
+
[[ e[0] ]]
@@ -231,23 +244,14 @@
-
-
-
-
-
-
-
-
-
- [[ repeatIn(get_months_tol(),'t') ]]
-
+ [[ repeatIn(get_months_tol(),'t') ]]
+
- Total([[company.currency_id.code]])
+ Total
[[ formatLang(t[1]) ]] [[company.currency_id.symbol]]
@@ -298,4 +302,4 @@
-
+
\ No newline at end of file
diff --git a/addons/hr_payroll/report/report_year_salary.py b/addons/hr_payroll/report/report_year_salary.py
index a85d7328973..5e03e4710a6 100755
--- a/addons/hr_payroll/report/report_year_salary.py
+++ b/addons/hr_payroll/report/report_year_salary.py
@@ -105,7 +105,7 @@ class year_salary_report(rml_parse.rml_parse):
self.total += item[count]
return self.total
-report_sxw.report_sxw('report.year.salary', 'hr.payslip', 'hr_payroll/report/report_year_report.rml', parser=year_salary_report,header=3)
+report_sxw.report_sxw('report.year.salary', 'hr.payslip', 'hr_payroll/report/report_year_report.rml', parser=year_salary_report,header='internal landscape')
diff --git a/addons/hr_payroll/report/rml_parse.py b/addons/hr_payroll/report/rml_parse.py
index 2e3ca9dc019..7abb29711b6 100755
--- a/addons/hr_payroll/report/rml_parse.py
+++ b/addons/hr_payroll/report/rml_parse.py
@@ -151,10 +151,10 @@ class rml_parse(report_sxw.rml_parse):
print Stringer
return Stringer
- def _add_header(self, node, header=1):
- if header==2:
+ def _add_header(self, node, header='external'):
+ if header=='internal':
rml_head = self.rml_header2
- elif header==3:
+ elif header=='internal landscape':
rml_head = self.rml_header3
else:
rml_head = self.rml_header
diff --git a/addons/hr_timesheet/report/custom_default.xsl b/addons/hr_timesheet/report/custom_default.xsl
index 39e71d6d53e..e8b133da1b0 100644
--- a/addons/hr_timesheet/report/custom_default.xsl
+++ b/addons/hr_timesheet/report/custom_default.xsl
@@ -9,8 +9,6 @@
-
- /
1.3cm 19.3cm 28.5cm 19.3cm
@@ -23,8 +21,6 @@
-
- /
1.3cm 19.3cm 28.5cm 19.3cm
diff --git a/addons/hr_timesheet_invoice/board_hr_timesheet_invoice.xml b/addons/hr_timesheet_invoice/board_hr_timesheet_invoice.xml
index ff61617661c..792ea34ae53 100644
--- a/addons/hr_timesheet_invoice/board_hr_timesheet_invoice.xml
+++ b/addons/hr_timesheet_invoice/board_hr_timesheet_invoice.xml
@@ -11,7 +11,7 @@
graph,tree
-
+
-
+
timesheet.uninvoiced.line.tree
diff --git a/addons/hr_timesheet_invoice/report/cost_ledger.py b/addons/hr_timesheet_invoice/report/cost_ledger.py
index 8daf40fded6..18de548ad1c 100644
--- a/addons/hr_timesheet_invoice/report/cost_ledger.py
+++ b/addons/hr_timesheet_invoice/report/cost_ledger.py
@@ -167,7 +167,7 @@ report_sxw.report_sxw(
'report.hr.timesheet.invoice.account.analytic.account.cost_ledger',
'account.analytic.account',
'addons/hr_timesheet_invoice/report/cost_ledger.rml',
- parser=account_analytic_cost_ledger, header=False)
+ parser=account_analytic_cost_ledger, header='internal')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
index 55e25e4001c..ce074715888 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
@@ -178,6 +178,21 @@ class hr_timesheet_sheet(osv.osv):
def copy(self, cr, uid, ids, *args, **argv):
raise osv.except_osv(_('Error !'), _('You cannot duplicate a timesheet !'))
+ def create(self, cr, uid, vals, *args, **argv):
+ if 'employee_id' in vals:
+ if not self.pool.get('hr.employee').browse(cr, uid, vals['employee_id']).user_id:
+ raise osv.except_osv(_('Error !'), _('You cannot create a timesheet for an employee that does not have any user defined !'))
+ return super(hr_timesheet_sheet, self).create(cr, uid, vals, *args, **argv)
+
+ def write(self, cr, uid, ids, vals, *args, **argv):
+ if 'employee_id' in vals:
+ new_user_id = self.pool.get('hr.employee').browse(cr, uid, vals['employee_id']).user_id.id or False
+ if not new_user_id:
+ raise osv.except_osv(_('Error !'), _('You cannot create a timesheet for an employee that does not have any user defined !'))
+ if not self._sheet_date(cr, uid, ids, forced_user_id=new_user_id):
+ raise osv.except_osv(_('Error !'), _('You can not have 2 timesheets that overlaps !\nPlease use the menu \'My Current Timesheet\' to avoid this problem.'))
+ return super(hr_timesheet_sheet, self).write(cr, uid, ids, vals, *args, **argv)
+
def button_confirm(self, cr, uid, ids, context=None):
if context is None:
context = {}
@@ -262,8 +277,8 @@ class hr_timesheet_sheet(osv.osv):
_columns = {
'name': fields.char('Description', size=64, select=1,
states={'confirm':[('readonly', True)], 'done':[('readonly', True)]}),
- 'user_id': fields.many2one('res.users', 'User', required=True, select=1,
- states={'confirm':[('readonly', True)], 'done':[('readonly', True)]}),
+ 'employee_id': fields.many2one('hr.employee', 'Employee', required=True),
+ 'user_id': fields.related('employee_id', 'user_id', type="many2one", relation="res.users", store=True, string="User", required=False, readonly=True),#fields.many2one('res.users', 'User', required=True, select=1, states={'confirm':[('readonly', True)], 'done':[('readonly', True)]}),
'date_from': fields.date('Date from', required=True, select=1, readonly=True, states={'new':[('readonly', False)]}),
'date_to': fields.date('Date to', required=True, select=1, readonly=True, states={'new':[('readonly', False)]}),
'date_current': fields.date('Current date', required=True),
@@ -320,24 +335,24 @@ class hr_timesheet_sheet(osv.osv):
return time.strftime('%Y-%m-%d')
_defaults = {
- 'user_id': lambda self,cr,uid,c: uid,
'date_from' : _default_date_from,
'date_current' : lambda *a: time.strftime('%Y-%m-%d'),
'date_to' : _default_date_to,
'state': 'new',
- 'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'hr_timesheet_sheet.sheet', context=c)
+ 'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'hr_timesheet_sheet.sheet', context=c)
}
- def _sheet_date(self, cr, uid, ids):
+ def _sheet_date(self, cr, uid, ids, forced_user_id=False):
for sheet in self.browse(cr, uid, ids):
- cr.execute('SELECT id \
+ new_user_id = forced_user_id or sheet.user_id and sheet.user_id.id
+ if new_user_id:
+ cr.execute('SELECT id \
FROM hr_timesheet_sheet_sheet \
WHERE (date_from < %s and %s < date_to) \
AND user_id=%s \
- AND id <> %s', (sheet.date_to, sheet.date_from,
- sheet.user_id.id, sheet.id))
- if cr.fetchall():
- return False
+ AND id <> %s',(sheet.date_to, sheet.date_from, new_user_id, sheet.id))
+ if cr.fetchall():
+ return False
return True
def _date_current_check(self, cr, uid, ids):
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_demo.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_demo.xml
index b22a88c5036..dedac8377a7 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_demo.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_demo.xml
@@ -4,6 +4,7 @@
Sheet 0
+
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
index decf3b16b6b..231aba040e7 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
@@ -1,25 +1,6 @@
-
- hr.timesheet.sheet.tree
- hr_timesheet_sheet.sheet
- tree
-
-
-
-
-
-
-
-
-
-
-
-
-
-
hr.timesheet.sheet.graph
hr_timesheet_sheet.sheet
@@ -71,7 +52,7 @@
-
+
@@ -167,7 +148,7 @@
-
+
-
+
@@ -190,7 +171,7 @@
hr_timesheet_sheet.sheet
form
- {'search_default_my_timesheet':1, 'search_default_user_id':uid }
+ {'search_default_my_timesheet':1, }
Employees can encode their time spent on the different projects. A project is an analytic account and the time spent on a project generate costs on the analytic account.
@@ -312,18 +293,19 @@
src_model="hr_timesheet_sheet.sheet"/>
- hr.timesheet.sheet.tree.simplified
+ hr.timesheet.sheet.tree
hr_timesheet_sheet.sheet
tree
-
+
+
-
-
-
-
+
+
+
+
diff --git a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml
index 08abc6db63b..a015ff933d2 100644
--- a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml
+++ b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml
@@ -34,11 +34,11 @@
+
+
+
-
-
-
diff --git a/addons/hr_timesheet_sheet/test/test_hr_timesheet_sheet.yml b/addons/hr_timesheet_sheet/test/test_hr_timesheet_sheet.yml
index bb5752d6c9e..808045eb677 100644
--- a/addons/hr_timesheet_sheet/test/test_hr_timesheet_sheet.yml
+++ b/addons/hr_timesheet_sheet/test/test_hr_timesheet_sheet.yml
@@ -70,6 +70,7 @@
name: Week-22(2010)
state: new
user_id: base.user_root
+ employee_id: 'hr_employee_employee0'
-
Now , at the time of login, I create Attendances and perform "Sign In" action.
-
diff --git a/addons/knowledge/knowledge_installer.xml b/addons/knowledge/knowledge_installer.xml
index 681bf2253d5..1fa6cab9865 100644
--- a/addons/knowledge/knowledge_installer.xml
+++ b/addons/knowledge/knowledge_installer.xml
@@ -53,6 +53,7 @@
3
+ always
diff --git a/addons/marketing/marketing_view.xml b/addons/marketing/marketing_view.xml
index 6cd35f3a533..9edd7689484 100644
--- a/addons/marketing/marketing_view.xml
+++ b/addons/marketing/marketing_view.xml
@@ -50,6 +50,7 @@
3
+ always
diff --git a/addons/mrp/mrp_installer.xml b/addons/mrp/mrp_installer.xml
index d317cf6face..ff0c01f8e18 100644
--- a/addons/mrp/mrp_installer.xml
+++ b/addons/mrp/mrp_installer.xml
@@ -48,6 +48,7 @@
3
+ always
diff --git a/addons/mrp/report/custom_default.xsl b/addons/mrp/report/custom_default.xsl
index 103128eb9f4..aa5eb22d8e0 100644
--- a/addons/mrp/report/custom_default.xsl
+++ b/addons/mrp/report/custom_default.xsl
@@ -19,8 +19,6 @@
-
- /
1.3cm 28.1cm 20cm 28.1cm
@@ -35,8 +33,6 @@
-
- /
1.3cm 28.1cm 20cm 28.1cm
diff --git a/addons/point_of_sale/report/account_statement.py b/addons/point_of_sale/report/account_statement.py
index dc492651bb2..79f86151198 100644
--- a/addons/point_of_sale/report/account_statement.py
+++ b/addons/point_of_sale/report/account_statement.py
@@ -26,7 +26,7 @@ from report import report_sxw
class account_statement(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
- super(account_statement, self).__init__(cr, uid, name, context)
+ super(account_statement, self).__init__(cr, uid, name, context=context)
self.total = 0.0
self.localcontext.update({
'time': time,
diff --git a/addons/point_of_sale/report/account_statement.rml b/addons/point_of_sale/report/account_statement.rml
index ed26143aa4e..c576828cac1 100644
--- a/addons/point_of_sale/report/account_statement.rml
+++ b/addons/point_of_sale/report/account_statement.rml
@@ -216,10 +216,10 @@
[[ formatLang(statement.closing_date,date=True) ]]
- [[ formatLang(statement.balance_start, digits=get_digits(dp='Account')) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(statement.balance_start)]] [[ company.currency_id.symbol ]]
- [[ formatLang(statement.balance_end_real, digits=get_digits(dp='Account')) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(statement.balance_end_real)]] [[ company.currency_id.symbol ]]
@@ -238,7 +238,7 @@
Partner
- Amount ([[ company.currency_id.code ]])
+ Amount
@@ -247,14 +247,13 @@
[[ repeatIn(statement.line_ids,'line_ids') and ' ' or removeParentNode('blockTable') ]]
[[ repeatIn(get_data(statement), 'line_ids')]]
-
- [[ line_ids['name'] ]]
+ [[ line_ids.name ]]
[[ line_ids.partner_id.name ]]
- [[ formatLang(line_ids.amount, digits=get_digits(dp='Account')) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(line_ids.amount) ]] [[ company.currency_id.symbol ]]
@@ -269,7 +268,7 @@
Total :
- [[ formatLang(get_total(statement.line_ids), digits=get_digits(dp='Account')) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(get_total(statement.line_ids)) ]] [[ company.currency_id.symbol ]]
diff --git a/addons/point_of_sale/report/all_closed_cashbox_of_the_day.py b/addons/point_of_sale/report/all_closed_cashbox_of_the_day.py
index 28b96f7aebe..337a121bd41 100644
--- a/addons/point_of_sale/report/all_closed_cashbox_of_the_day.py
+++ b/addons/point_of_sale/report/all_closed_cashbox_of_the_day.py
@@ -26,7 +26,7 @@ from report import report_sxw
class all_closed_cashbox_of_the_day(report_sxw.rml_parse):
#TOFIX: sql injection problem: SQL Request must be pass from sql injection...
def __init__(self, cr, uid, name, context):
- super(all_closed_cashbox_of_the_day, self).__init__(cr, uid, name, context)
+ super(all_closed_cashbox_of_the_day, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
'time': time,
'get_data':self._get_data,
diff --git a/addons/point_of_sale/report/all_closed_cashbox_of_the_day.rml b/addons/point_of_sale/report/all_closed_cashbox_of_the_day.rml
index f75c08dbadb..658e7e958b9 100644
--- a/addons/point_of_sale/report/all_closed_cashbox_of_the_day.rml
+++ b/addons/point_of_sale/report/all_closed_cashbox_of_the_day.rml
@@ -10,134 +10,86 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
+
+
@@ -151,34 +103,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+ [[ repeatIn(objects,'statement') ]]
-
+
+
+
+ Today's Closed Cashbox
+
+
+
+
Company
@@ -186,11 +125,9 @@
User
-
+
-
-
-
+
[[ company.name ]]
@@ -200,10 +137,10 @@
-
+
-
+
St.Name
@@ -224,76 +161,89 @@
Ending Balance
+
+
- Total :
+ Total:
-
+
+
+
-
+
+
+
-
+
+
+
- [[ formatLang(get_net_total_starting(user)[1]) ]]
+ [[ formatLang(get_net_total_starting(user)[1]) ]] [[company.currency_id.symbol]]
- [[ formatLang(get_net_total(user)) ]]
+ [[ formatLang(get_net_total(user)) ]] [[company.currency_id.symbol]]
-
-
-[[ repeatIn(get_data(user),'statement') ]]
-
-
-
- [[ statement['statement'] ]]
-
-
- [[ statement['journal'] ]]
-
-
- [[ statement['date'] ]]
-
-
- [[ statement['closing_date'] ]]
-
-
- [[ (get_bal(statement)) or '0.00' ]]
-
-
- [[ formatLang(get_sub_total(user,statement['journal_id'],statement['date'])) ]]
-
-
-
-
-
- [[ repeatIn(get_lines(statement),'line_ids') ]]
-
-
-
- [[ line_ids['name'] ]]
-
-
- [[ get_partner(line_ids) or removeParentNode('font') ]]
-
-
- [[ get_user(line_ids) or removeParentNode('font') ]]
-
-
-
- [[ formatLang(line_ids['amount']) ]]
-
-
-
-
+
+ [[ repeatIn(get_data(user),'statement') ]]
+
+
+
+ [[ statement['statement'] ]]
+
+
+ [[ statement['journal'] ]]
+
+
+ [[ statement['date'] ]]
+
+
+ [[ statement['closing_date'] ]]
+
+
+ [[ (get_bal(statement)) or '0.00' ]] [[company.currency_id.symbol]]
+
+
+ [[ formatLang(get_sub_total(user,statement['journal_id'],statement['date'])) ]] [[company.currency_id.symbol]]
+
+
+
+
+ [[ repeatIn(get_lines(statement),'line_ids') ]]
+
+
+
+ [[ line_ids['name'] ]]
+
+
+
+
+
+ [[ get_partner(line_ids) or removeParentNode('font') ]]
+
+
+ [[ get_user(line_ids) or removeParentNode('font') ]]
+
+
+
+
+
+
+
+ [[ formatLang(line_ids['amount']) ]] [[company.currency_id.symbol]]
+
+
+
+
+
+
+
-
-
-
diff --git a/addons/point_of_sale/report/pos_details.py b/addons/point_of_sale/report/pos_details.py
index d1e881befac..26d427a3036 100644
--- a/addons/point_of_sale/report/pos_details.py
+++ b/addons/point_of_sale/report/pos_details.py
@@ -177,7 +177,7 @@ class pos_details(report_sxw.rml_parse):
return form['date_end']
def __init__(self, cr, uid, name, context):
- super(pos_details, self).__init__(cr, uid, name, context)
+ super(pos_details, self).__init__(cr, uid, name, context=context)
self.total = 0.0
self.qty = 0.0
self.invoice_id = ''
diff --git a/addons/point_of_sale/report/pos_details.rml b/addons/point_of_sale/report/pos_details.rml
index f3bebade402..045adf0763c 100644
--- a/addons/point_of_sale/report/pos_details.rml
+++ b/addons/point_of_sale/report/pos_details.rml
@@ -20,9 +20,12 @@
-
+
+
+
+
@@ -34,9 +37,12 @@
-
+
+
+
+
@@ -102,19 +108,25 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -162,7 +174,7 @@
-
+
Company
@@ -171,11 +183,14 @@
Print Date
- Period
+ Start Period
+
+
+ End Period
-
+
[[ company.name ]]
@@ -184,7 +199,10 @@
[[ formatLang(time.strftime('%Y-%m-%d'),date=True) ]]
- [[ formatLang(getperiod(data['form']),date = True) ]] - [[ formatLang(getperiod2(data['form']),date = True) ]]
+ [[ formatLang(getperiod(data['form']),date = True) ]]
+
+
+ [[ formatLang(getperiod2(data['form']),date = True) ]]
@@ -203,16 +221,16 @@
Product
- Price ([[ company.currency_id.code ]])
+ Price
Qty
- Disc ([[ company.currency_id.code ]])
+ Disc
- Invoiced ([[ company.currency_id.code ]])
+ Invoiced
@@ -306,13 +324,13 @@
-
+
Sales total
- [[ formatLang(getsalestotal2(data['form'],user)) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(getsalestotal2(data['form'],user)) ]] [[ company.currency_id.symbol ]]
@@ -320,7 +338,7 @@
Qty of product
- [[ formatLang(getqtytotal2(data['form'],user)) ]]
+ [[ formatLang(getqtytotal2(data['form'],user)) ]]
@@ -328,7 +346,7 @@
Total invoiced
- [[ formatLang(getsuminvoice2(data['form'],user)) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(getsuminvoice2(data['form'],user)) ]] [[ company.currency_id.symbol ]]
@@ -336,7 +354,7 @@
Total discount
- [[ formatLang(getsumdisc(objects)) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(getsumdisc(objects)) ]] [[ company.currency_id.symbol ]]
@@ -344,7 +362,7 @@
Total paid
- [[ formatLang(getpaidtotal2(data['form'],user)) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(getpaidtotal2(data['form'],user)) ]] [[ company.currency_id.symbol ]]
@@ -352,7 +370,7 @@
Total of the day
- [[ formatLang(gettotalofthaday(data['form'])) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(gettotalofthaday(data['form'])) ]] [[ company.currency_id.symbol ]]
@@ -360,4 +378,4 @@
-
\ No newline at end of file
+
diff --git a/addons/point_of_sale/report/pos_details_summary.py b/addons/point_of_sale/report/pos_details_summary.py
index 7a57e17bf87..a629929e204 100644
--- a/addons/point_of_sale/report/pos_details_summary.py
+++ b/addons/point_of_sale/report/pos_details_summary.py
@@ -24,6 +24,23 @@ from report import report_sxw
class pos_details_summary(report_sxw.rml_parse):
+ def __init__(self, cr, uid, name, context):
+ super(pos_details_summary, self).__init__(cr, uid, name, context=context)
+ self.total = 0.0
+ self.localcontext.update({
+ 'time': time,
+ 'strip_name': self._strip_name,
+ 'getpayments': self._get_payments,
+ 'getqtytotal': self._get_qty_total,
+ 'getsumdisc': self._get_sum_discount,
+ 'getpaidtotal': self._paid_total,
+ 'gettotalofthaday': self._total_of_the_day,
+ 'getsuminvoice': self._sum_invoice,
+ 'gettaxamount': self._get_tax_amount,
+ 'getsalestotal': self._get_sales_total,
+ 'getperiod': self._get_period,
+ 'getcompany':self.get_company
+ })
def get_company(self,objects):
comp=[obj.company_id.name for obj in objects]
@@ -111,23 +128,7 @@ class pos_details_summary(report_sxw.rml_parse):
else:
return '%s - %s' % (min_date, max_date)
- def __init__(self, cr, uid, name, context):
- super(pos_details_summary, self).__init__(cr, uid, name, context)
- self.total = 0.0
- self.localcontext.update({
- 'time': time,
- 'strip_name': self._strip_name,
- 'getpayments': self._get_payments,
- 'getqtytotal': self._get_qty_total,
- 'getsumdisc': self._get_sum_discount,
- 'getpaidtotal': self._paid_total,
- 'gettotalofthaday': self._total_of_the_day,
- 'getsuminvoice': self._sum_invoice,
- 'gettaxamount': self._get_tax_amount,
- 'getsalestotal': self._get_sales_total,
- 'getperiod': self._get_period,
- 'getcompany':self.get_company
- })
+
report_sxw.report_sxw('report.pos.details_summary',
'pos.order',
diff --git a/addons/point_of_sale/report/pos_details_summary.rml b/addons/point_of_sale/report/pos_details_summary.rml
index aa559eb9961..5f68c7869f0 100644
--- a/addons/point_of_sale/report/pos_details_summary.rml
+++ b/addons/point_of_sale/report/pos_details_summary.rml
@@ -1,6 +1,6 @@
-
+
@@ -80,18 +80,25 @@
-
+
+
+
+
+
+
+
+
+
-
-
+
@@ -100,6 +107,8 @@
+
+
@@ -138,8 +147,11 @@
- Details of Sales
-
+
+
+
+ Details of Sales
+
@@ -247,7 +259,7 @@
Sales total
- [[ '%d' % getsalestotal(objects) ]]
+ [[ '%d' % getsalestotal(objects) ]] [[company.currency_id.symbol ]]
@@ -255,7 +267,7 @@
Qty of product
- [[ '%d' % getqtytotal(objects) ]]
+ [[ '%d' % getqtytotal(objects) ]]
@@ -263,7 +275,7 @@
Total invoiced
- [[ '%.2f' % getsuminvoice(objects) ]][[ company.currency_id.symbol ]]
+ [[ '%.2f' % getsuminvoice(objects) ]] [[ company.currency_id.symbol ]]
@@ -271,7 +283,7 @@
Total discount
- [[ '%.2f' % getsumdisc(objects) ]][[ company.currency_id.symbol ]]
+ [[ '%.2f' % getsumdisc(objects) ]] [[ company.currency_id.symbol ]]
@@ -279,7 +291,7 @@
Total paid
- [[ '%.2f' % getpaidtotal(objects) ]][[ company.currency_id.symbol ]]
+ [[ '%.2f' % getpaidtotal(objects) ]] [[ company.currency_id.symbol ]]
@@ -287,7 +299,7 @@
Total of the day
- [[ '%.2f' % gettotalofthaday(objects) ]][[ company.currency_id.symbol ]]
+ [[ '%.2f' % gettotalofthaday(objects) ]] [[ company.currency_id.symbol ]]
@@ -295,4 +307,4 @@
-
\ No newline at end of file
+
diff --git a/addons/point_of_sale/report/pos_invoice.py b/addons/point_of_sale/report/pos_invoice.py
index 649eb727f0c..7217b8be553 100644
--- a/addons/point_of_sale/report/pos_invoice.py
+++ b/addons/point_of_sale/report/pos_invoice.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
@@ -28,11 +28,11 @@ from tools.translate import _
class pos_invoice(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
- super(pos_invoice, self).__init__(cr, uid, name, context)
+ super(pos_invoice, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
'time': time,
})
-
+
def set_context(self, objects, data, ids, report_type=None):
super(pos_invoice, self).set_context(objects, data, ids, report_type)
diff --git a/addons/point_of_sale/report/pos_lines.py b/addons/point_of_sale/report/pos_lines.py
index ad855087cad..cb45b107931 100644
--- a/addons/point_of_sale/report/pos_lines.py
+++ b/addons/point_of_sale/report/pos_lines.py
@@ -26,7 +26,7 @@ from report import report_sxw
class pos_lines(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
- super(pos_lines, self).__init__(cr, uid, name, context)
+ super(pos_lines, self).__init__(cr, uid, name, context=context)
self.total = 0.0
self.localcontext.update({
'time': time,
diff --git a/addons/point_of_sale/report/pos_lines.rml b/addons/point_of_sale/report/pos_lines.rml
index fd3bbf9c43c..7f2d97f1c18 100644
--- a/addons/point_of_sale/report/pos_lines.rml
+++ b/addons/point_of_sale/report/pos_lines.rml
@@ -73,7 +73,6 @@
-
@@ -184,16 +183,16 @@
[[taxes(l)]]
- [[ formatLang(l.qty) ]] [[l.product_id.uom_id.name]]
+ [[ formatLang(l.qty) ]]
- [[ formatLang(l.price_unit) ]]
+ [[ formatLang(l.price_unit) ]] [[o.pricelist_id.currency_id. symbol ]]
[[ formatLang(l.discount) ]]
- [[ formatLang(l.price_subtotal) ]][[o.pricelist_id.currency_id. symbol ]]
+ [[ formatLang(l.price_subtotal) ]] [[o.pricelist_id.currency_id. symbol ]]
@@ -221,7 +220,7 @@
- Net Total :
+ Net Total
[[ formatLang(o.amount_total) ]] [[o.pricelist_id.currency_id.symbol ]]
@@ -249,7 +248,7 @@
- Taxes :
+ Taxes
[[ formatLang(o.amount_tax) ]] [[o.pricelist_id.currency_id. symbol ]]
@@ -277,7 +276,7 @@
- Total :
+ Total
[[ formatLang(o.amount_total + o.amount_tax) ]] [[o.pricelist_id.currency_id. symbol ]]
diff --git a/addons/point_of_sale/report/pos_payment_report.py b/addons/point_of_sale/report/pos_payment_report.py
index 3d82025da89..dc5653551a2 100644
--- a/addons/point_of_sale/report/pos_payment_report.py
+++ b/addons/point_of_sale/report/pos_payment_report.py
@@ -25,7 +25,7 @@ from report import report_sxw
class pos_payment_report(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
- super(pos_payment_report, self).__init__(cr, uid, name, context)
+ super(pos_payment_report, self).__init__(cr, uid, name, context=context)
self.total = 0.0
self.localcontext.update({
'time': time,
diff --git a/addons/point_of_sale/report/pos_payment_report.rml b/addons/point_of_sale/report/pos_payment_report.rml
index e62b4bd1290..01fcdf355e1 100644
--- a/addons/point_of_sale/report/pos_payment_report.rml
+++ b/addons/point_of_sale/report/pos_payment_report.rml
@@ -161,10 +161,10 @@
Disc. (%)
- Unit Price ([[ company.currency_id.code ]])
+ Unit Price
- Total ([[ company.currency_id.code ]])
+ Total
@@ -212,7 +212,7 @@
- Net Total
+ Net Total:
[[ formatLang(pos_payment_total(o)) or removeParentNode('blockTable')]] [[ company.currency_id.symbol ]]
diff --git a/addons/point_of_sale/report/pos_payment_report_date.py b/addons/point_of_sale/report/pos_payment_report_date.py
index e492e929b7c..362ff569f72 100644
--- a/addons/point_of_sale/report/pos_payment_report_date.py
+++ b/addons/point_of_sale/report/pos_payment_report_date.py
@@ -25,7 +25,7 @@ from report import report_sxw
class pos_payment_report_date(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
- super(pos_payment_report_date, self).__init__(cr, uid, name, context)
+ super(pos_payment_report_date, self).__init__(cr, uid, name, context=context)
self.total = 0.0
self.localcontext.update({
'time': time,
diff --git a/addons/point_of_sale/report/pos_payment_report_date.rml b/addons/point_of_sale/report/pos_payment_report_date.rml
index 846eaf1f861..35e605d0bff 100644
--- a/addons/point_of_sale/report/pos_payment_report_date.rml
+++ b/addons/point_of_sale/report/pos_payment_report_date.rml
@@ -98,7 +98,7 @@
- Payment
+ Sales Lines
@@ -140,10 +140,10 @@
Disc(%)
- Unit Price ([[ company.currency_id.code ]])
+ Unit Price
- Total ([[ company.currency_id.code ]])
+ Total
@@ -187,7 +187,7 @@
- Total
+ Total:
[[ formatLang(pos_payment_date_total(data['form'])) or removeParentNode('blockTable')]] [[ company.currency_id.symbol ]]
@@ -198,4 +198,4 @@
-
\ No newline at end of file
+
diff --git a/addons/point_of_sale/report/pos_payment_report_user.py b/addons/point_of_sale/report/pos_payment_report_user.py
index c7f31ffcd6f..1a982457895 100644
--- a/addons/point_of_sale/report/pos_payment_report_user.py
+++ b/addons/point_of_sale/report/pos_payment_report_user.py
@@ -24,7 +24,7 @@ from report import report_sxw
class pos_payment_report_user(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
- super(pos_payment_report_user, self).__init__(cr, uid, name, context)
+ super(pos_payment_report_user, self).__init__(cr, uid, name, context=context)
self.total = 0.0
self.localcontext.update({
'time': time,
diff --git a/addons/point_of_sale/report/pos_payment_report_user.rml b/addons/point_of_sale/report/pos_payment_report_user.rml
index fc874e52dac..4779fad9e6b 100644
--- a/addons/point_of_sale/report/pos_payment_report_user.rml
+++ b/addons/point_of_sale/report/pos_payment_report_user.rml
@@ -1,8 +1,8 @@
-
+
-
+
@@ -10,35 +10,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -46,9 +40,8 @@
-
-
+
@@ -56,31 +49,26 @@
-
-
+
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
+
@@ -90,8 +78,8 @@
-
-
+
+
@@ -105,17 +93,21 @@
-
+
-
-
+ [[ repeatIn(objects,'order') ]]
+
-
+
-
+ Payment By User
+
+
+
+
Company
@@ -125,7 +117,7 @@
-
+
[[ company.name ]]
@@ -138,32 +130,31 @@
-
+
-
+
Product
- Qty
+ Qty
- Disc. (%)
+ Disc(%)
- Unit Price
+ Unit Price
- Total
+ Total
-
+
-
- [[ repeatIn(pos_payment_user(data['form']), 'line_ids') ]]
-
+ [[ repeatIn(pos_payment_user(data['form']), 'line_ids') ]]
+
[[ line_ids['name'] ]]
@@ -178,38 +169,38 @@
[[ formatLang(line_ids['price_unit']) ]]
- [[ formatLang(line_ids['total']) ]]
+ [[ formatLang(line_ids['total']) ]] [[company.currency_id.symbol]]
-
-
-
+
+
-
+
-
+
-
+
- Total :
+ Total:
- [[ formatLang(pos_payment_user_total(data['form'])) or removeParentNode('blockTable')]]
+ [[ formatLang(pos_payment_user_total(data['form'])) or removeParentNode('blockTable')]] [[company.currency_id.symbol]]
-
-
-
+
+
+
+
diff --git a/addons/point_of_sale/report/pos_receipt.py b/addons/point_of_sale/report/pos_receipt.py
index 51e8e4d0f1b..9be543fb89b 100644
--- a/addons/point_of_sale/report/pos_receipt.py
+++ b/addons/point_of_sale/report/pos_receipt.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
@@ -33,7 +33,7 @@ def titlize(journal_name):
class order(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
- super(order, self).__init__(cr, uid, name, context)
+ super(order, self).__init__(cr, uid, name, context=context)
user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid)
partner = user.company_id.partner_id
diff --git a/addons/point_of_sale/report/pos_receipt_with_remboursment.py b/addons/point_of_sale/report/pos_receipt_with_remboursment.py
index d96cad52097..3286f40c5b7 100644
--- a/addons/point_of_sale/report/pos_receipt_with_remboursment.py
+++ b/addons/point_of_sale/report/pos_receipt_with_remboursment.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
@@ -27,7 +27,7 @@ import pooler
class order(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
- super(order, self).__init__(cr, uid, name, context)
+ super(order, self).__init__(cr, uid, name, context=context)
user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid)
partner = user.company_id.partner_id
diff --git a/addons/point_of_sale/report/pos_receipt_with_remboursment.rml b/addons/point_of_sale/report/pos_receipt_with_remboursment.rml
index 32dea8dcd48..9c25d5f4a89 100644
--- a/addons/point_of_sale/report/pos_receipt_with_remboursment.rml
+++ b/addons/point_of_sale/report/pos_receipt_with_remboursment.rml
@@ -125,7 +125,7 @@
- [[ get_journal_amt(o)[0] ]] : [[ get_journal_amt(o)[1] ]]
+ [[ get_journal_amt(o)[1] ]]
diff --git a/addons/point_of_sale/report/pos_receipt_without_remboursment.py b/addons/point_of_sale/report/pos_receipt_without_remboursment.py
index a84b0588dae..58d7052b287 100644
--- a/addons/point_of_sale/report/pos_receipt_without_remboursment.py
+++ b/addons/point_of_sale/report/pos_receipt_without_remboursment.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
@@ -27,7 +27,7 @@ import pooler
class order(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
- super(order, self).__init__(cr, uid, name, context)
+ super(order, self).__init__(cr, uid, name, context=context)
user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid)
partner = user.company_id.partner_id
diff --git a/addons/point_of_sale/report/pos_receipt_without_remboursment.rml b/addons/point_of_sale/report/pos_receipt_without_remboursment.rml
index 4e3b8ec64e1..ff6ebc3132c 100644
--- a/addons/point_of_sale/report/pos_receipt_without_remboursment.rml
+++ b/addons/point_of_sale/report/pos_receipt_without_remboursment.rml
@@ -127,12 +127,12 @@
[[ get_journal_amt(o)[0] ]] : [[ get_journal_amt(o)[1] ]]
-
- [[ repeatIn((o.state=='cancel' and o.statement_ids) and [1] or [], 'p') ]]
-
- Ce bon est valide jusqu'au [[ time.strftime('%d/%m/%Y', time.strptime(o.date_validity,'%Y-%m-%d')) ]].
-
-
+
+
+
+
+
+
diff --git a/addons/point_of_sale/report/pos_sales_user.py b/addons/point_of_sale/report/pos_sales_user.py
index 4032f035bdf..a764fa112b9 100644
--- a/addons/point_of_sale/report/pos_sales_user.py
+++ b/addons/point_of_sale/report/pos_sales_user.py
@@ -25,7 +25,7 @@ from report import report_sxw
class pos_sales_user(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
- super(pos_sales_user, self).__init__(cr, uid, name, context)
+ super(pos_sales_user, self).__init__(cr, uid, name, context=context)
self.total = 0.0
self.localcontext.update({
'time': time,
diff --git a/addons/point_of_sale/report/pos_sales_user.rml b/addons/point_of_sale/report/pos_sales_user.rml
index cb817035a46..5a98c092a3a 100644
--- a/addons/point_of_sale/report/pos_sales_user.rml
+++ b/addons/point_of_sale/report/pos_sales_user.rml
@@ -1,8 +1,8 @@
-
+
-
+
@@ -10,35 +10,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -46,9 +40,8 @@
-
-
+
@@ -56,32 +49,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
@@ -91,8 +73,8 @@
-
-
+
+
@@ -106,17 +88,21 @@
-
+
-
-
+ [[ repeatIn(objects,'order') ]]
+
-
+
-
+ Sales Report
+
+
+
+
Company
@@ -126,7 +112,7 @@
-
+
[[ company.name ]]
@@ -139,10 +125,10 @@
-
+
-
+
Name
@@ -151,23 +137,22 @@
Date Order
- User
+ User
- State
+ State
Company
-
+
-
-
- [[ repeatIn(get_data(data['form']), 'line_ids')]]
-
+
+ [[ repeatIn(get_data(data['form']), 'line_ids')]]
+
- [[ line_ids['pos'] ]]
+ [[ line_ids['pos'] ]]
[[ formatLang(line_ids['date_order'],date_time = True) ]]
@@ -176,13 +161,19 @@
[[ line_ids['user'] ]]
- [[ line_ids['state'] ]]
+ [[ line_ids['state'] ]]
[[ line_ids['name'] ]]
-
+
+
+
+
+
+
+
diff --git a/addons/point_of_sale/report/pos_sales_user_today.py b/addons/point_of_sale/report/pos_sales_user_today.py
index 7c9b9b5a563..3a8b8bb1bba 100644
--- a/addons/point_of_sale/report/pos_sales_user_today.py
+++ b/addons/point_of_sale/report/pos_sales_user_today.py
@@ -25,7 +25,7 @@ from report import report_sxw
class pos_sales_user_today(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
- super(pos_sales_user_today, self).__init__(cr, uid, name, context)
+ super(pos_sales_user_today, self).__init__(cr, uid, name, context=context)
self.total = 0.0
self.localcontext.update({
'time': time,
diff --git a/addons/point_of_sale/report/pos_sales_user_today.rml b/addons/point_of_sale/report/pos_sales_user_today.rml
index 39f6ddacb4c..9f1bc6eb14b 100644
--- a/addons/point_of_sale/report/pos_sales_user_today.rml
+++ b/addons/point_of_sale/report/pos_sales_user_today.rml
@@ -1,8 +1,8 @@
-
+
-
+
@@ -10,35 +10,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -46,9 +40,8 @@
-
-
+
@@ -56,31 +49,22 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
@@ -90,8 +74,8 @@
-
-
+
+
@@ -105,17 +89,21 @@
-
+
-
-
+ [[ repeatIn(objects,'order') ]]
+
-
+
-
+ Today's Sales By User
+
+
+
+
Company
@@ -125,7 +113,7 @@
-
+
[[ company.name ]]
@@ -138,10 +126,10 @@
-
+
-
+
Name
@@ -150,23 +138,22 @@
Date Order
- User
+ User
- State
+ State
Company
-
+
-
-
- [[ repeatIn(get_data(data['form']), 'line_ids')]]
-
+
+ [[ repeatIn(get_data(data['form']), 'line_ids')]]
+
- [[ line_ids['pos'] ]]
+ [[ line_ids['pos'] ]]
[[ formatLang(line_ids['date_order'],date_time = True) ]]
@@ -175,13 +162,16 @@
[[ line_ids['user'] ]]
- [[ line_ids['state'] ]]
+ [[ line_ids['state'] ]]
[[ line_ids['name'] ]]
-
+
+
+
+
diff --git a/addons/point_of_sale/report/pos_sales_user_today_current_user.py b/addons/point_of_sale/report/pos_sales_user_today_current_user.py
index 7f4a8f827f5..ed793b4277e 100644
--- a/addons/point_of_sale/report/pos_sales_user_today_current_user.py
+++ b/addons/point_of_sale/report/pos_sales_user_today_current_user.py
@@ -25,7 +25,7 @@ from report import report_sxw
class pos_sales_user_today_current_user(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
- super(pos_sales_user_today_current_user, self).__init__(cr, uid, name, context)
+ super(pos_sales_user_today_current_user, self).__init__(cr, uid, name, context=context)
self.total = 0.0
self.qty = 0.0
self.localcontext.update({
diff --git a/addons/point_of_sale/report/pos_sales_user_today_current_user.rml b/addons/point_of_sale/report/pos_sales_user_today_current_user.rml
index 475d045252b..c4d046ad9f8 100644
--- a/addons/point_of_sale/report/pos_sales_user_today_current_user.rml
+++ b/addons/point_of_sale/report/pos_sales_user_today_current_user.rml
@@ -1,8 +1,8 @@
-
+
-
+
@@ -10,76 +10,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
+
-
-
-
+
+
-
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
@@ -89,8 +84,8 @@
-
-
+
+
@@ -104,17 +99,21 @@
-
+
-
-
+ [[ repeatIn(objects,'order') ]]
+
-
+
-
+ Today's Sales By Current User
+
+
+
+
Company
@@ -127,7 +126,7 @@
-
+
[[ company.name ]]
@@ -136,17 +135,17 @@
[[ formatLang(time.strftime('%Y-%m-%d'),date = True) ]]
- [[ (get_user(user)) ]]
+ [[ (get_user(user)) ]]
-
+
-
+
-
+
Name
@@ -160,12 +159,11 @@
Total
-
+
-
-
- [[ repeatIn(get_data_current_user(user), 'line_ids')]]
-
+
+ [[ repeatIn(get_data_current_user(user), 'line_ids')]]
+
[[ line_ids['name'] ]]
@@ -177,26 +175,31 @@
[[ formatLang(line_ids['qty']) ]]
- [[ formatLang(line_ids['total']) ]]
-
-
-
-
-
-
-
-
-
-
- Total :
-
-
- [[ formatLang((get_data_current_user_qty(user))) ]]
-
-
- [[ formatLang((get_data_current_user_tot(user))) ]]
+ [[ formatLang(line_ids['total']) ]] [[company.currency_id.symbol]]
+
+
+
+
+
+
+
+
+
+ Total :
+
+
+ [[ formatLang((get_data_current_user_qty(user))) ]]
+
+
+ [[ formatLang((get_data_current_user_tot(user))) or removeParentNode('blockTable')]] [[company.currency_id.symbol]]
+
+
+
+
+
+
diff --git a/addons/point_of_sale/report/pos_users_product.py b/addons/point_of_sale/report/pos_users_product.py
index 141445bcafe..83a02d49832 100644
--- a/addons/point_of_sale/report/pos_users_product.py
+++ b/addons/point_of_sale/report/pos_users_product.py
@@ -25,7 +25,7 @@ from report import report_sxw
class pos_user_product(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
- super(pos_user_product, self).__init__(cr, uid, name, context)
+ super(pos_user_product, self).__init__(cr, uid, name, context=context)
self.total = 0.0
self.localcontext.update({
'time': time,
diff --git a/addons/point_of_sale/report/pos_users_product.rml b/addons/point_of_sale/report/pos_users_product.rml
index 24059dcbb0b..d5c7d6a9996 100644
--- a/addons/point_of_sale/report/pos_users_product.rml
+++ b/addons/point_of_sale/report/pos_users_product.rml
@@ -1,6 +1,6 @@
-
+
@@ -175,7 +175,7 @@
-
+
Product
@@ -184,11 +184,11 @@
Qty
- Amount ([[ company.currency_id.code ]])
+ Amount
-
+
[[ repeatIn(get_data(statement), 'line_ids') and ' ' or removeParentNode('blockTable') ]]
@@ -199,11 +199,11 @@
[[ formatLang(line_ids['qty']) ]]
- [[ formatLang(line_ids['amt']) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(line_ids['amt']) ]] [[ company.currency_id.symbol ]]
-
+
@@ -214,7 +214,7 @@
Total :
- [[ formatLang(get_total()) ]][[ company.currency_id.symbol ]]
+ [[ formatLang(get_total()) ]] [[ company.currency_id.symbol ]]
@@ -222,4 +222,4 @@
-
\ No newline at end of file
+
diff --git a/addons/point_of_sale/statement_report.xml b/addons/point_of_sale/statement_report.xml
index fb1be16419e..a81d51a2679 100644
--- a/addons/point_of_sale/statement_report.xml
+++ b/addons/point_of_sale/statement_report.xml
@@ -25,7 +25,7 @@
-
+
diff --git a/addons/point_of_sale/test/pos_report.yml b/addons/point_of_sale/test/pos_report.yml
index 08052356104..933635ac499 100644
--- a/addons/point_of_sale/test/pos_report.yml
+++ b/addons/point_of_sale/test/pos_report.yml
@@ -12,7 +12,8 @@
-
!python {model: pos.order}: |
import netsvc, tools, os
- (data, format) = netsvc.LocalService('report.pos.invoice').create(cr, uid, [ref('point_of_sale.order_pos1'), ref('point_of_sale.order_pos2')], {}, {})
+ data_dict = {'model':'ir.ui.menu', 'form':{ 'invoice_wanted':1}}
+ (data, format) = netsvc.LocalService('report.pos.invoice').create(cr, uid, [ref('point_of_sale.order_pos1')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'point_of_sale-invoice report'+format), 'wb+').write(data)
@@ -52,7 +53,7 @@
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'point_of_sale-receipt without reimbursement report'+format), 'wb+').write(data)
-
- In order to test the PDF reports defined on a Point Of Sale, we will print a POS Payment Report Report
+ In order to test the PDF reports defined on a Point Of Sale, we will print a POS Payment Report
-
!python {model: ir.ui.menu}: |
import netsvc, tools, os, time
@@ -84,6 +85,13 @@
balance_end_real: 0.0
date: '2010-05-19'
journal_id: account_journal_cash0
+ line_ids:
+ - name: statement
+ date: "2010-10-13"
+ type: customer
+ account_id: account_account_sales0
+ amount: 100
+ partner_id: base.res_partner_agrolait
period_id: account.period_5
state: 'draft'
-
@@ -133,7 +141,7 @@
-
!python {model: pos.order}: |
import netsvc, tools, os, time
- (data, format) = netsvc.LocalService('report.pos.payment.report').create(cr, uid, [ref('point_of_sale.order_pos1'), ref('point_of_sale.order_pos2')], {}, {})
+ (data, format) = netsvc.LocalService('report.pos.payment.report').create(cr, uid, [ref('point_of_sale.pos_order_pos0')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'point_of_sale-payment_report'+format), 'wb+').write(data)
-
@@ -152,4 +160,4 @@
import netsvc, tools, os, time
(data, format) = netsvc.LocalService('report.pos.sales.user.today.current.user').create(cr, uid, [ref('point_of_sale.order_pos1'), ref('point_of_sale.order_pos2')], {}, {})
if tools.config['test_report_directory']:
- file(os.path.join(tools.config['test_report_directory'], 'point_of_sale-sales_today_current_user_report'+format), 'wb+').write(data)
\ No newline at end of file
+ file(os.path.join(tools.config['test_report_directory'], 'point_of_sale-sales_today_current_user_report'+format), 'wb+').write(data)
diff --git a/addons/profile_tools/misc_tools_installer.xml b/addons/profile_tools/misc_tools_installer.xml
index bc445e7818f..b59f95ab908 100644
--- a/addons/profile_tools/misc_tools_installer.xml
+++ b/addons/profile_tools/misc_tools_installer.xml
@@ -46,6 +46,7 @@
+ always
3
diff --git a/addons/project/board_project_manager_view.xml b/addons/project/board_project_manager_view.xml
index 12559b0629b..d92592a9f38 100644
--- a/addons/project/board_project_manager_view.xml
+++ b/addons/project/board_project_manager_view.xml
@@ -10,43 +10,12 @@
Board for project managers
-->
+ domain="[('manager', '=', uid)]"
+ id="act_my_project" name="My projects"
+ res_model="project.project" view_mode="tree,form"
+ view_type="form"/>
-
- board.project.manager.form
- board.board
- form
-
-
-
-
-
-
- Project Manager Dashboard
- board.board
- form
- form
- menu
-
-
-
-
-
diff --git a/addons/project/board_project_view.xml b/addons/project/board_project_view.xml
index c3b4b0c8000..275a969cbe9 100644
--- a/addons/project/board_project_view.xml
+++ b/addons/project/board_project_view.xml
@@ -86,16 +86,16 @@