From 6a8545f0bf078c930dd296158231d6dea8449a85 Mon Sep 17 00:00:00 2001 From: pso Date: Tue, 5 Oct 2010 15:06:13 +0530 Subject: [PATCH 01/59] [IMP] project modules: Security modifs bzr revid: pso@tinyerp.com-20101005093613-rxbwdwf22ecne1vc --- addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml | 2 +- addons/project/board_project_manager_view.xml | 2 +- addons/project/project_view.xml | 6 +++--- addons/project/report/project_report_view.xml | 2 +- addons/project/security/ir.model.access.csv | 8 ++++++++ addons/project_gtd/project_gtd_view.xml | 2 +- addons/project_gtd/security/ir.model.access.csv | 2 ++ addons/project_issue/project_issue_view.xml | 2 +- addons/project_issue/report/project_issue_report_view.xml | 2 +- addons/project_issue/security/ir.model.access.csv | 7 +++++++ addons/project_long_term/project_long_term_view.xml | 6 +++--- addons/project_long_term/security/ir.model.access.csv | 5 +++++ addons/project_messages/__openerp__.py | 3 ++- addons/project_messages/security/ir.model.access.csv | 1 + addons/project_planning/project_planning_view.xml | 2 +- addons/project_planning/security/ir.model.access.csv | 2 ++ addons/project_scrum/security/ir.model.access.csv | 3 +++ addons/project_timesheet/security/ir.model.access.csv | 8 ++++++++ 18 files changed, 51 insertions(+), 14 deletions(-) diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml index f078be2dbe1..eae91291247 100644 --- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml +++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml @@ -200,7 +200,7 @@ + parent="base.menu_main_pm" sequence="5" groups="project.group_project_finance_user"/> - + diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 6efc64dd494..7034afd9f3b 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -5,10 +5,10 @@ + groups="group_project_manager,group_project_user,base.group_system,group_project_finance_user"/> - + @@ -492,7 +492,7 @@ - + diff --git a/addons/project/report/project_report_view.xml b/addons/project/report/project_report_view.xml index 9521d321000..0657d4f4e5d 100644 --- a/addons/project/report/project_report_view.xml +++ b/addons/project/report/project_report_view.xml @@ -147,7 +147,7 @@ Get detailed analysis by task - + diff --git a/addons/project/security/ir.model.access.csv b/addons/project/security/ir.model.access.csv index cdd939c79ec..933409ac823 100644 --- a/addons/project/security/ir.model.access.csv +++ b/addons/project/security/ir.model.access.csv @@ -28,3 +28,11 @@ "access_project_vs_hours_system","project.vs.hours.system","model_project_vs_hours","base.group_system",1,0,0,0 "access_project_task_sale_user","project.task salesman","model_project_task","base.group_sale_salesman",1,0,0,0 "access_project_project_sale_user","project.project salesman","model_project_project","base.group_sale_salesman",1,0,0,0 +"access_project_project_project_financial_user","project.project.project.financial.user","model_project_project","group_project_finance_user",1,0,0,0 +"access_project_task_project_financial_user","project.task.project.financial.user","model_project_task","group_project_finance_user",1,0,0,0 +"access_project_task_work_project_financial_user","project.task.work.project.financial.user","model_project_task_work","group_project_finance_user",1,0,0,0 +"access_report_project_task_user_project_financial_user","report.project.task.user.project.financial.user","model_report_project_task_user","group_project_finance_user",1,0,0,0 +"access_project_board_project_financial_user","board.board.project.financial.user","board.model_board_board","group_project_finance_user",1,0,0,0 +"access_account_analytic_account_project_financial_user","account.analytic.account.project.financial.user","analytic.model_account_analytic_account","group_project_finance_user",1,0,0,0 +"access_project_task_type_project_financial_user","project.task.type.project.financial.user","model_project_task_type","group_project_finance_user",1,0,0,0 +"access_project_vs_hours_project_financial_user","project.vs.hours.project.financial.user","model_project_vs_hours","group_project_finance_user",1,0,0,0 diff --git a/addons/project_gtd/project_gtd_view.xml b/addons/project_gtd/project_gtd_view.xml index 99e87fcb325..9c7d32509a9 100644 --- a/addons/project_gtd/project_gtd_view.xml +++ b/addons/project_gtd/project_gtd_view.xml @@ -30,7 +30,7 @@ project.gtd.context - diff --git a/addons/project_gtd/security/ir.model.access.csv b/addons/project_gtd/security/ir.model.access.csv index 210ac9f6c4a..0986ea1570f 100644 --- a/addons/project_gtd/security/ir.model.access.csv +++ b/addons/project_gtd/security/ir.model.access.csv @@ -7,3 +7,5 @@ "access_project_gtd_timebox_manager","project.gtd.timebox project manager","model_project_gtd_timebox","project.group_project_manager",1,1,1,1 "access_project_gtd_context_system","project.gtd.context system","model_project_gtd_context","base.group_system",1,1,1,1 "access_project_gtd_timebox_system","project.gtd.timebox system","model_project_gtd_timebox","base.group_system",1,1,1,1 +"access_project_gtd_context_finacial_user","project.gtd.context.financial.user","model_project_gtd_context","project.group_project_finance_user",1,0,0,0 +"access_project_gtd_timebox_finacial_user","project.gtd.timebox.financial.user","model_project_gtd_timebox","project.group_project_finance_user",1,0,0,0 \ No newline at end of file diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index a66dfe90560..a6738442f60 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -2,7 +2,7 @@ - + Issue Version diff --git a/addons/project_issue/report/project_issue_report_view.xml b/addons/project_issue/report/project_issue_report_view.xml index 5d5a0489fa9..7078de1e495 100644 --- a/addons/project_issue/report/project_issue_report_view.xml +++ b/addons/project_issue/report/project_issue_report_view.xml @@ -177,7 +177,7 @@ - + diff --git a/addons/project_issue/security/ir.model.access.csv b/addons/project_issue/security/ir.model.access.csv index 1fe83d68c28..6681e7aface 100755 --- a/addons/project_issue/security/ir.model.access.csv +++ b/addons/project_issue/security/ir.model.access.csv @@ -20,3 +20,10 @@ "access_hr_timesheet_sheet_sheet_project_manager","hr_timesheet_sheet.sheet manager","hr_timesheet_sheet.model_hr_timesheet_sheet_sheet","project.group_project_manager",1,0,0,0 "access_hr_analytic_timesheet_system","hr_analytic_timesheet system","hr_timesheet_sheet.model_hr_analytic_timesheet","base.group_system",1,0,0,0 "access_hr_timesheet_sheet_sheet_project_system","hr_timesheet_sheet.sheet system","hr_timesheet_sheet.model_hr_timesheet_sheet_sheet","base.group_system",1,0,0,0 +"access_project_issue_version_financial_user","project.issue.version.financial.user","model_project_issue_version","project.group_project_finance_user",1,0,0,0 +"access_crm_case_categ_financial_user","crm.case.categ.financial.user","crm.model_crm_case_categ","project.group_project_finance_user",1,0,0,0 +"access_crm_case_stage_financial_user","crm.case.stage.financial.user","crm.model_crm_case_stage","project.group_project_finance_user",1,0,0,0 +"access_project_issue_report_financial_user","project.issue.report.financial.user","model_project_issue_report","project.group_project_finance_user",1,0,0,0 +"access_project_issue_board_project_financial_user","board.board.project.issue.financial.user","board.model_board_board","project.group_project_finance_user",1,0,0,0 +"access_project_issue_project_financial_user","project.issue.financial.user","model_project_issue","project.group_project_finance_user",1,0,0,0 +"access_mailgate_message_project_financial_user","mailgate.message.financial.user","mail_gateway.model_mailgate_message","project.group_project_finance_user",1,0,0,0 diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index 3412ba7ca08..890ca25ef0d 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -372,17 +372,17 @@ # ------------------------------------------------------ - + diff --git a/addons/project_long_term/security/ir.model.access.csv b/addons/project_long_term/security/ir.model.access.csv index 7af7984d7e6..a2bd95395c7 100644 --- a/addons/project_long_term/security/ir.model.access.csv +++ b/addons/project_long_term/security/ir.model.access.csv @@ -8,3 +8,8 @@ "access_resource_resource_user","resource.resource user","resource.model_resource_resource","project.group_project_user",1,0,1,1 "access_resource_calendar_leaves_user","resource.calendar.leaves user","resource.model_resource_calendar_leaves","project.group_project_user",1,1,1,1 "access_resource_resource_manager","resource.resource manager","resource.model_resource_resource","project.group_project_manager",1,1,1,1 +"access_project_resource_allocation_financial_user","project.resource.allocation.financial.user","model_project_resource_allocation","project.group_project_finance_user",1,0,0,0 +"access_project_phase_financial_user","project.phase.financial.user","model_project_phase","project.group_project_finance_user",1,0,0,0 +"access_resource_resource_financial_user","resource.resource.financial.user","model_resource_resource","project.group_project_finance_user",1,0,0,0 +"access_resource_calendar_financial_user","resource.calendar.financial.user","resource.model_resource_calendar","project.group_project_finance_user",1,0,0,0 +"access_resource_calendar_financial_user","resource.calendar.financial.user","resource.model_resource_calendar_leaves","project.group_project_finance_user",1,0,0,0 diff --git a/addons/project_messages/__openerp__.py b/addons/project_messages/__openerp__.py index 352fe797f22..6cd83e2a256 100644 --- a/addons/project_messages/__openerp__.py +++ b/addons/project_messages/__openerp__.py @@ -32,7 +32,8 @@ """, 'website': 'http://www.openerp.com', 'init_xml': [], - 'update_xml': ['project_messages_view.xml'], + 'update_xml': ['project_messages_view.xml', + 'security/ir.model.access.csv'], 'demo_xml': [], 'installable': True, 'active': False, diff --git a/addons/project_messages/security/ir.model.access.csv b/addons/project_messages/security/ir.model.access.csv index fb0b4e8255a..a6b76f0784c 100644 --- a/addons/project_messages/security/ir.model.access.csv +++ b/addons/project_messages/security/ir.model.access.csv @@ -1,3 +1,4 @@ "id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" "access_project_messages","project.messages","model_project_messages","project.group_project_user",1,1,1,1 "access_project_messages_manager","project.messages manager","model_project_messages","project.group_project_manager",1,1,1,1 +"access_project_messages_financial_user","project.messages.financial.user","model_project_messages","project.group_project_finance_user",1,0,0,0 diff --git a/addons/project_planning/project_planning_view.xml b/addons/project_planning/project_planning_view.xml index 9363413e4a2..3bde49a8b5f 100644 --- a/addons/project_planning/project_planning_view.xml +++ b/addons/project_planning/project_planning_view.xml @@ -220,7 +220,7 @@ parent="base.menu_main_pm" /> + id="menu_report_account_analytic_planning" parent="base.menu_project_long_term" sequence="3" groups="project.group_project_user,project.group_project_manager,base.group_system,project.group_project_finance_user"/> diff --git a/addons/membership/report/report_membership_view.xml b/addons/membership/report/report_membership_view.xml index abe8b44bcba..291efee4834 100644 --- a/addons/membership/report/report_membership_view.xml +++ b/addons/membership/report/report_membership_view.xml @@ -116,7 +116,8 @@ + id="menu_report_membership" + groups="base.group_partner_manager"/> diff --git a/addons/membership/security/ir.model.access.csv b/addons/membership/security/ir.model.access.csv index 6cf3eb755c2..f3d91646c44 100644 --- a/addons/membership/security/ir.model.access.csv +++ b/addons/membership/security/ir.model.access.csv @@ -1,4 +1,4 @@ "id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" -"access_membership_membership_line_partner_manager","membership.membership_line partner_manager","model_membership_membership_line","base.group_partner_manager",1,0,0,0 +"access_membership_membership_line_partner_manager","membership.membership_line partner_manager","model_membership_membership_line","base.group_partner_manager",1,1,1,1 "access_membership_membership_line","membership.membership_line","model_membership_membership_line",,1,0,0,0 "access_report_membership","report.membership","model_report_membership","base.group_partner_manager",1,0,0,0 From a0ac32cec0cb5f548226fa734efe76520c23349d Mon Sep 17 00:00:00 2001 From: Mustufa Rangwala Date: Mon, 11 Oct 2010 14:16:22 +0530 Subject: [PATCH 26/59] [REF] account: menu string name updated for cash register to cash registers bzr revid: mra@mra-laptop-20101011084622-l0intwt9fslh4b2r --- addons/account/account_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index e7e1c055c32..dd1011b1c33 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -2578,7 +2578,7 @@ - Cash Register + Cash Registers ir.actions.act_window account.bank.statement form From cc49a86ab373b61b427704bb88ba348b8ac71b0c Mon Sep 17 00:00:00 2001 From: vra Date: Mon, 11 Oct 2010 14:28:23 +0530 Subject: [PATCH 27/59] [IMP] account_budget: improved the budget reports rml and sxw. bzr revid: vra@tinyerp.com-20101011085823-0zgt1j9ip72zd8vv --- .../report/analytic_account_budget_report.rml | 10 +++++----- addons/account_budget/report/budget_report.rml | 17 +++++------------ .../report/crossovered_budget_report.rml | 8 ++++---- 3 files changed, 14 insertions(+), 21 deletions(-) diff --git a/addons/account_budget/report/analytic_account_budget_report.rml b/addons/account_budget/report/analytic_account_budget_report.rml index ea800685470..10b54482ae7 100644 --- a/addons/account_budget/report/analytic_account_budget_report.rml +++ b/addons/account_budget/report/analytic_account_budget_report.rml @@ -128,16 +128,16 @@ Description - Theoretical Amount + Theoretical Amt - Planned Amount + Planned Amt - Practical Amount + Practical Amt - Perc(%) + Perc(%) @@ -166,7 +166,7 @@ - [[ repeatIn(funct_total(data['form']),'b') ]] Total([[ company.currency_id.code ]]) : + [[ repeatIn(funct_total(data['form']),'b') ]] Total: [[ formatLang(b['tot_theo']) ]] [[ company.currency_id.symbol ]] diff --git a/addons/account_budget/report/budget_report.rml b/addons/account_budget/report/budget_report.rml index cd12f60108d..577e03af9f4 100644 --- a/addons/account_budget/report/budget_report.rml +++ b/addons/account_budget/report/budget_report.rml @@ -161,13 +161,6 @@ - - - - Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]] - - - @@ -180,19 +173,19 @@ A/c No. - Budget + Budget - Period Budget + Period Budget - Performance + Performance - Spread + Spread - % performance + % performance diff --git a/addons/account_budget/report/crossovered_budget_report.rml b/addons/account_budget/report/crossovered_budget_report.rml index e297c8b3ca2..0533042822a 100644 --- a/addons/account_budget/report/crossovered_budget_report.rml +++ b/addons/account_budget/report/crossovered_budget_report.rml @@ -127,16 +127,16 @@ Description - Theoretical Amount + Theoretical Amt - Planned Amount + Planned Amt - Practical Amount + Practical Amt - Perc(%) + Perc(%) From 23536f523426e69aa9dff5975c05bfdc44058196 Mon Sep 17 00:00:00 2001 From: vth Date: Mon, 11 Oct 2010 14:37:18 +0530 Subject: [PATCH 28/59] [FIX] account: bzr revid: vth@tinyerp.com-20101011090718-xbv7khokdw6u2jrl --- addons/account/project/project_view.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml index fd52619fb10..8006a972915 100644 --- a/addons/account/project/project_view.xml +++ b/addons/account/project/project_view.xml @@ -182,6 +182,7 @@ + From fc0bf8f9b5cbf9ddd0ee42b6cb9295221bc4c57e Mon Sep 17 00:00:00 2001 From: Mustufa Rangwala Date: Mon, 11 Oct 2010 14:37:37 +0530 Subject: [PATCH 29/59] [REF] bzr revid: mra@mra-laptop-20101011090737-vlzoqec2p2jf1sgq --- addons/account/account_cash_statement.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/addons/account/account_cash_statement.py b/addons/account/account_cash_statement.py index 445072605ed..6431454b715 100644 --- a/addons/account/account_cash_statement.py +++ b/addons/account/account_cash_statement.py @@ -151,15 +151,14 @@ class account_cash_statement(osv.osv): res[r] = round(res[r], 2) return res - def _get_company(self, cr, uid, context={}): + def _get_company(self, cr, uid, context=None): user_pool = self.pool.get('res.users') company_pool = self.pool.get('res.company') - user = user_pool.browse(cr, uid, uid, context) - company_id = user.company_id and user.company_id.id + user = user_pool.browse(cr, uid, uid, context=context) + company_id = user.company_id if not company_id: - company_id = company_pool.search(cr, uid, [])[0] - - return company_id + company_id = company_pool.search(cr, uid, []) + return company_id and company_id[0] or False def _get_cash_open_box_lines(self, cr, uid, context={}): res = [] From 1aa17c185e850454fb642512bc63c14bb3ca7bf9 Mon Sep 17 00:00:00 2001 From: Mustufa Rangwala Date: Mon, 11 Oct 2010 14:38:32 +0530 Subject: [PATCH 30/59] [FIX] Analytic journal items => Search view bzr revid: mra@mra-laptop-20101011090832-dr4a1nb6i594wyz7 --- addons/account/project/project_view.xml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml index 8006a972915..d5249310276 100644 --- a/addons/account/project/project_view.xml +++ b/addons/account/project/project_view.xml @@ -180,6 +180,7 @@ + @@ -431,13 +432,13 @@ - From 0bfdeafc6331f4531a8e92caf16ac1fcaa900d9d Mon Sep 17 00:00:00 2001 From: vth Date: Mon, 11 Oct 2010 15:02:40 +0530 Subject: [PATCH 31/59] [REF] account/project/analytical account: change the spelling in demo file administratif to administrative bzr revid: vth@tinyerp.com-20101011093240-kv4hwwvda3po4z8l --- addons/account/project/analytic_account_demo.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/account/project/analytic_account_demo.xml b/addons/account/project/analytic_account_demo.xml index 3727f7741bf..8f33f70f856 100644 --- a/addons/account/project/analytic_account_demo.xml +++ b/addons/account/project/analytic_account_demo.xml @@ -198,7 +198,7 @@ - Administratif + Administrative 1 From 5785d49b746262fe1b4e9b7e35e13c26de605185 Mon Sep 17 00:00:00 2001 From: Mustufa Rangwala Date: Mon, 11 Oct 2010 15:25:42 +0530 Subject: [PATCH 32/59] [REF] bzr revid: mra@mra-laptop-20101011095542-exml7h0edupu3q8w --- addons/account/project/project_view.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml index d5249310276..809f69673fe 100644 --- a/addons/account/project/project_view.xml +++ b/addons/account/project/project_view.xml @@ -180,7 +180,6 @@ - From 1efa951effb07b835f2a6a0727535caa0cea935b Mon Sep 17 00:00:00 2001 From: "ARA (OpenERP)" Date: Mon, 11 Oct 2010 15:46:12 +0530 Subject: [PATCH 33/59] [REF] cleaning code of account_payment bzr revid: ara@tinyerp.com-20101011101612-g5kumq1dr7i73bn3 --- addons/account_payment/__init__.py | 2 +- addons/account_payment/__openerp__.py | 6 ++--- addons/account_payment/account_move_line.py | 22 +++++++++---------- addons/account_payment/account_payment.py | 2 +- addons/account_payment/report/__init__.py | 6 ++--- .../account_payment/report/payment_order.py | 12 +++++----- .../wizard/account_payment_order.py | 2 +- .../wizard/account_payment_pay.py | 2 +- .../account_payment_populate_statement.py | 6 ++--- 9 files changed, 30 insertions(+), 30 deletions(-) diff --git a/addons/account_payment/__init__.py b/addons/account_payment/__init__.py index 82a05aa73e9..6188de6a9da 100644 --- a/addons/account_payment/__init__.py +++ b/addons/account_payment/__init__.py @@ -29,4 +29,4 @@ import account_move_line import account_invoice import report -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/account_payment/__openerp__.py b/addons/account_payment/__openerp__.py index be0ca2a127b..7ccafd90eb4 100644 --- a/addons/account_payment/__openerp__.py +++ b/addons/account_payment/__openerp__.py @@ -28,9 +28,9 @@ "depends": ["account"], "init_xml": [], "description": """ - This module provides : - * a more efficient way to manage invoice payment. - * a basic mechanism to easily plug various automated payment. +This module provides : +* a more efficient way to manage invoice payment. +* a basic mechanism to easily plug various automated payment. """, 'author': 'OpenERP SA', 'depends': ['account_voucher'], diff --git a/addons/account_payment/account_move_line.py b/addons/account_payment/account_move_line.py index 3f9b6c4b094..2b9ea22d824 100644 --- a/addons/account_payment/account_move_line.py +++ b/addons/account_payment/account_move_line.py @@ -47,7 +47,7 @@ class account_move_line(osv.osv): return r def _to_pay_search(self, cr, uid, obj, name, args, context): - if not len(args): + if not args: return [] line_obj = self.pool.get('account.move.line') query = line_obj._query_get(cr, uid, context={}) @@ -63,17 +63,17 @@ class account_move_line(osv.osv): ) %(operator)s %%s ''' % {'operator': x[1]}, args)) sql_args = tuple(map(itemgetter(2), args)) - cr.execute(('''select id - from account_move_line l - where account_id in (select id - from account_account - where type=%s and active) - and reconcile_id is null - and credit > 0 - and ''' + where + ' and ' + query), ('payable',)+sql_args ) + cr.execute(('''SELECT id + FROM account_move_line l + WHERE account_id IN (select id + FROM account_account + WHERE type=%s AND active) + AND reconcile_id IS null + AND credit > 0 + AND ''' + where + ' and ' + query), ('payable',)+sql_args ) res = cr.fetchall() - if not len(res): + if not res: return [('id','=','0')] return [('id','in',map(lambda x:x[0], res))] @@ -110,7 +110,7 @@ class account_move_line(osv.osv): return line2bank _columns = { - 'amount_to_pay' : fields.function(amount_to_pay, method=True, + 'amount_to_pay': fields.function(amount_to_pay, method=True, type='float', string='Amount to pay', fnct_search=_to_pay_search), } diff --git a/addons/account_payment/account_payment.py b/addons/account_payment/account_payment.py index 1c0596ddf96..e4a121fb03e 100644 --- a/addons/account_payment/account_payment.py +++ b/addons/account_payment/account_payment.py @@ -330,7 +330,7 @@ class payment_line(osv.osv): 'info_owner': fields.function(info_owner, string="Owner Account", method=True, type="text", help='Address of the Main Partner'), 'info_partner': fields.function(info_partner, string="Destination Account", method=True, type="text", help='Address of the Ordering Customer.'), 'date': fields.date('Payment Date', help="If no payment date is specified, the bank will treat this payment line directly"), - 'create_date': fields.datetime('Created' , readonly=True), + 'create_date': fields.datetime('Created', readonly=True), 'state': fields.selection([('normal','Free'), ('structured','Structured')], 'Communication Type', required=True), 'bank_statement_line_id': fields.many2one('account.bank.statement.line', 'Bank statement line') } diff --git a/addons/account_payment/report/__init__.py b/addons/account_payment/report/__init__.py index 5a5c1dab1f2..e9d7f4013ac 100644 --- a/addons/account_payment/report/__init__.py +++ b/addons/account_payment/report/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- ############################################################################## -# +# # OpenERP, Open Source Management Solution # Copyright (C) 2004-2010 Tiny SPRL (). # @@ -15,9 +15,9 @@ # 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 . # ############################################################################## import payment_order -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/account_payment/report/payment_order.py b/addons/account_payment/report/payment_order.py index a00c7a7871b..e0b0713c614 100644 --- a/addons/account_payment/report/payment_order.py +++ b/addons/account_payment/report/payment_order.py @@ -31,11 +31,11 @@ class payment_order(report_sxw.rml_parse): self.localcontext.update( { 'time': time, 'get_invoice_name': self._get_invoice_name, - 'get_company_currency' : self._get_company_currency, - 'get_company_currency_symbol': self._get_company_currency_symbol, - 'get_amount_total_in_currency' : self._get_amount_total_in_currency, - 'get_amount_total' : self._get_amount_total, - 'get_account_name' : self._get_account_name, + 'get_company_currency': self._get_company_currency, + 'get_company_currency_symbol': self._get_company_currency_symbol, + 'get_amount_total_in_currency': self._get_amount_total_in_currency, + 'get_amount_total': self._get_amount_total, + 'get_account_name': self._get_account_name, }) def _get_invoice_name(self, invoice_id): @@ -87,4 +87,4 @@ class payment_order(report_sxw.rml_parse): report_sxw.report_sxw('report.payment.order', 'payment.order', 'addons/account_payment/report/payment_order.rml', parser=payment_order, header="external") -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/account_payment/wizard/account_payment_order.py b/addons/account_payment/wizard/account_payment_order.py index 97a66e937ca..4a070f05a27 100644 --- a/addons/account_payment/wizard/account_payment_order.py +++ b/addons/account_payment/wizard/account_payment_order.py @@ -28,7 +28,7 @@ class payment_order_create(osv.osv_memory): Create a payment object with lines corresponding to the account move line to pay according to the date and the mode provided by the user. Hypothesis: - - Small number of non-reconcilied move line , payment mode and bank account type, + - Small number of non-reconcilied move line, payment mode and bank account type, - Big number of partner and bank account. If a type is given, unsuitable account Entry lines are ignored. diff --git a/addons/account_payment/wizard/account_payment_pay.py b/addons/account_payment/wizard/account_payment_pay.py index 49858151670..132ab33af2c 100644 --- a/addons/account_payment/wizard/account_payment_pay.py +++ b/addons/account_payment/wizard/account_payment_pay.py @@ -36,7 +36,7 @@ class account_payment_make_payment(osv.osv_memory): obj_payment_order.set_done(cr, uid, context['active_id'], context) return {} # t = order.mode and order.mode.type.code or 'manual' -# if t == 'manual' : +# if t == 'manual': # obj_payment_order.set_done(cr,uid,context['active_id'],context) # return {} # diff --git a/addons/account_payment/wizard/account_payment_populate_statement.py b/addons/account_payment/wizard/account_payment_populate_statement.py index 53c9f14b6e8..7697d4eea6d 100644 --- a/addons/account_payment/wizard/account_payment_populate_statement.py +++ b/addons/account_payment/wizard/account_payment_populate_statement.py @@ -77,13 +77,13 @@ class account_payment_populate_statement(osv.osv_memory): if line.partner_id: # line['partner_id'] = mv.partner_id.id - if amount < 0 : + if amount < 0: account = line.partner_id.property_account_payable.id - else : + else: account = line.partner_id.property_account_receivable.id if line.move_line_id: - voucher_res = { 'type': 'payment' , + voucher_res = { 'type': 'payment', 'name': line.name, 'partner_id': line.partner_id.id, 'journal_id': statement.journal_id.id, From fa8bd9305df3ee312c0a6af2ad7a8347cfa27e86 Mon Sep 17 00:00:00 2001 From: vth Date: Mon, 11 Oct 2010 15:53:00 +0530 Subject: [PATCH 34/59] [REF] account bzr revid: vth@tinyerp.com-20101011102300-59rukbdh3ps9m2dm --- .../account_analytic_analysis.py | 14 +++---- .../account_analytic_plans.py | 6 +-- .../report/crossovered_analytic.py | 8 ++-- addons/analytic/analytic.py | 38 +++++++++---------- .../analytic_journal_billing_rate.py | 8 ++-- .../analytic_user_function.py | 2 +- 6 files changed, 38 insertions(+), 38 deletions(-) diff --git a/addons/account_analytic_analysis/account_analytic_analysis.py b/addons/account_analytic_analysis/account_analytic_analysis.py index d9e9bf3907b..108b6acfc97 100644 --- a/addons/account_analytic_analysis/account_analytic_analysis.py +++ b/addons/account_analytic_analysis/account_analytic_analysis.py @@ -146,7 +146,7 @@ class account_analytic_account(osv.osv): from account_analytic_line \ where account_id IN %s \ and invoice_id is null \ - GROUP BY account_analytic_line.account_id" ,(parent_ids,)) + GROUP BY account_analytic_line.account_id", (parent_ids,)) for account_id, lwd in cr.fetchall(): if account_id not in res: res[account_id] = {} @@ -258,7 +258,7 @@ class account_analytic_account(osv.osv): on account_analytic_line.journal_id = account_analytic_journal.id \ where account_analytic_line.account_id IN %s \ and account_analytic_journal.type = 'sale' \ - group by account_analytic_line.account_id" ,(parent_ids,)) + group by account_analytic_line.account_id", (parent_ids,)) for account_id, sum in cr.fetchall(): res[account_id] = round(sum,2) @@ -436,7 +436,7 @@ class account_analytic_account_summary_user(osv.osv): 'account_id': fields.many2one('account.analytic.account', 'Analytic Account', readonly=True), 'unit_amount': fields.function(_unit_amount, method=True, type='float', string='Total Time'), - 'user' : fields.many2one('res.users', 'User'), + 'user': fields.many2one('res.users', 'User'), } def init(self, cr): @@ -484,7 +484,7 @@ class account_analytic_account_summary_user(osv.osv): if fields==None: fields = self._columns.keys() - # construct a clause for the rules : + # construct a clause for the rules: d1, d2, tables = self.pool.get('ir.rule').domain_get(cr, user, self._name, 'read', context=context) # all inherited fields + all non inherited fields for which the attribute whose name is in load is True @@ -493,7 +493,7 @@ class account_analytic_account_summary_user(osv.osv): res = [] cr.execute('SELECT MAX(id) FROM res_users') max_user = cr.fetchone()[0] - if len(fields_pre) : + if fields_pre: fields_pre2 = map(lambda x: (x in ('create_date', 'write_date')) and ('date_trunc(\'second\', '+x+') as '+x) or '"'+x+'"', fields_pre) for i in range(0, len(ids), cr.IN_MAX): sub_ids = ids[i:i+cr.IN_MAX] @@ -661,14 +661,14 @@ class account_analytic_account_summary_month(osv.osv): if fields==None: fields = self._columns.keys() - # construct a clause for the rules : + # construct a clause for the rules: d1, d2, tables = self.pool.get('ir.rule').domain_get(cr, user, self._name) # all inherited fields + all non inherited fields for which the attribute whose name is in load is True fields_pre = filter(lambda x: x in self._columns and getattr(self._columns[x],'_classic_write'), fields) + self._inherits.values() res = [] - if len(fields_pre) : + if fields_pre: fields_pre2 = map(lambda x: (x in ('create_date', 'write_date')) and ('date_trunc(\'second\', '+x+') as '+x) or '"'+x+'"', fields_pre) for i in range(0, len(ids), cr.IN_MAX): sub_ids = ids[i:i+cr.IN_MAX] diff --git a/addons/account_analytic_plans/account_analytic_plans.py b/addons/account_analytic_plans/account_analytic_plans.py index e85275a9bba..73b0fcb301d 100644 --- a/addons/account_analytic_plans/account_analytic_plans.py +++ b/addons/account_analytic_plans/account_analytic_plans.py @@ -200,10 +200,10 @@ class account_analytic_plan_instance(osv.osv): for l in temp_list: if vals.has_key(l): for tempo in vals[l]: - if acct_anal_acct.search(cr, uid, [('parent_id','child_of',[item.root_analytic_id.id]),('id','=',tempo[2]['analytic_account_id'])]): + if acct_anal_acct.search(cr, uid,[('parent_id','child_of',[item.root_analytic_id.id]),('id','=',tempo[2]['analytic_account_id'])]): total_per_plan += tempo[2]['rate'] if total_per_plan < item.min_required or total_per_plan > item.max_required: - raise osv.except_osv(_('Value Error') ,_('The Total Should be Between %s and %s') % (str(item.min_required), str(item.max_required))) + raise osv.except_osv(_('Value Error'),_('The Total Should be Between %s and %s') % (str(item.min_required), str(item.max_required))) return super(account_analytic_plan_instance, self).create(cr, uid, vals, context) @@ -240,7 +240,7 @@ class account_analytic_plan_instance_line(osv.osv): 'rate': 100.0 } def name_get(self, cr, uid, ids, context=None): - if not len(ids): + if not ids: return [] reads = self.read(cr, uid, ids, ['analytic_account_id'], context) res = [] diff --git a/addons/account_analytic_plans/report/crossovered_analytic.py b/addons/account_analytic_plans/report/crossovered_analytic.py index f8a975a4c25..f4d35f936e1 100644 --- a/addons/account_analytic_plans/report/crossovered_analytic.py +++ b/addons/account_analytic_plans/report/crossovered_analytic.py @@ -29,8 +29,8 @@ class crossovered_analytic(report_sxw.rml_parse): self.localcontext.update( { 'time': time, 'lines': self._lines, - 'ref_lines' : self._ref_lines, - 'find_children':self.find_children, + 'ref_lines': self._ref_lines, + 'find_children': self.find_children, }) self.base_amount = 0.00 @@ -99,7 +99,7 @@ class crossovered_analytic(report_sxw.rml_parse): if selected_ids: query="SELECT sum(aal.amount) AS amt, sum(aal.unit_amount) AS qty FROM account_analytic_line AS aal, account_analytic_account AS aaa \ WHERE aal.account_id=aaa.id AND aal.id IN ("+','.join(map(str,selected_ids))+") AND (aal.journal_id " + journal +") AND aal.date>='"+ str(form['date1']) +"'"" AND aal.date<='" + str(form['date2']) + "'" - + self.cr.execute(query) info=self.cr.dictfetchall() @@ -133,7 +133,7 @@ class crossovered_analytic(report_sxw.rml_parse): for acc_id in self.final_list: selected_ids = line_pool.search(self.cr,self.uid,[('account_id','=',acc_id),('move_id','in',self.dict_acc_ref[form['ref']])]) if selected_ids: - query="SELECT aaa.code as code , sum(aal.amount) AS amt, sum(aal.unit_amount) AS qty,aaa.name as acc_name,aal.account_id as id FROM account_analytic_line AS aal, account_analytic_account AS aaa \ + query="SELECT aaa.code as code, sum(aal.amount) AS amt, sum(aal.unit_amount) AS qty,aaa.name as acc_name,aal.account_id as id FROM account_analytic_line AS aal, account_analytic_account AS aaa \ WHERE aal.account_id=aaa.id AND aal.id IN ("+','.join(map(str,selected_ids))+") AND (aal.journal_id " + journal +") AND aal.date>='"+ str(form['date1']) +"'"" AND aal.date<='" + str(form['date2']) + "'"" GROUP BY aal.account_id,aaa.name,aaa.code ORDER BY aal.account_id" self.cr.execute(query) diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py index 66c74a72bc9..5f68cf98c1a 100644 --- a/addons/analytic/analytic.py +++ b/addons/analytic/analytic.py @@ -156,7 +156,7 @@ class account_analytic_account(osv.osv): return dict([(i, res[i]) for i in ids]) def name_get(self, cr, uid, ids, context=None): - if not len(ids): + if not ids: return [] res = [] for account in self.browse(cr, uid, ids, context=context): @@ -174,7 +174,7 @@ class account_analytic_account(osv.osv): return dict(res) _columns = { - 'name' : fields.char('Account Name', size=128, required=True), + 'name': fields.char('Account Name', size=128, required=True), 'complete_name': fields.function(_complete_name_calc, method=True, type='char', string='Full Account Name'), 'code': fields.char('Account Code', size=24), 'type': fields.selection([('view','View'), ('normal','Normal')], 'Account Type', help='If you select the View Type, it means you won\'t allow to create journal entries using that account.'), @@ -182,14 +182,14 @@ class account_analytic_account(osv.osv): 'parent_id': fields.many2one('account.analytic.account', 'Parent Analytic Account', select=2), 'child_ids': fields.one2many('account.analytic.account', 'parent_id', 'Child Accounts'), 'line_ids': fields.one2many('account.analytic.line', 'account_id', 'Analytic Entries'), - 'balance' : fields.function(_balance_calc, method=True, type='float', string='Balance'), - 'debit' : fields.function(_debit_calc, method=True, type='float', string='Debit'), - 'credit' : fields.function(_credit_calc, method=True, type='float', string='Credit'), + 'balance': fields.function(_balance_calc, method=True, type='float', string='Balance'), + 'debit': fields.function(_debit_calc, method=True, type='float', string='Debit'), + 'credit': fields.function(_credit_calc, method=True, type='float', string='Credit'), 'quantity': fields.function(_quantity_calc, method=True, type='float', string='Quantity'), 'quantity_max': fields.float('Maximum Quantity', help='Sets the higher limit of quantity of hours.'), - 'partner_id' : fields.many2one('res.partner', 'Associated Partner'), - 'contact_id' : fields.many2one('res.partner.address', 'Contact'), - 'user_id' : fields.many2one('res.users', 'Account Manager'), + 'partner_id': fields.many2one('res.partner', 'Associated Partner'), + 'contact_id': fields.many2one('res.partner.address', 'Contact'), + 'user_id': fields.many2one('res.users', 'Account Manager'), 'date_start': fields.date('Date Start'), 'date': fields.date('Date End'), 'company_id': fields.many2one('res.company', 'Company', required=True), @@ -210,10 +210,10 @@ class account_analytic_account(osv.osv): return self.pool.get('res.company').search(cr, uid, [('parent_id', '=', False)])[0] _defaults = { - 'type' : 'normal', + 'type': 'normal', 'company_id': _default_company, - 'state' : 'open', - 'user_id' : lambda self, cr, uid, ctx : uid, + 'state': 'open', + 'user_id': lambda self, cr, uid, ctx: uid, 'partner_id': lambda self, cr, uid, ctx: ctx.get('partner_id', False), 'contact_id': lambda self, cr, uid, ctx: ctx.get('contact_id', False), 'date_start': time.strftime('%Y-%m-%d') @@ -244,7 +244,7 @@ class account_analytic_account(osv.osv): partner = parent['partner_id'][0] else: partner = False - res = {'value' : {}} + res = {'value': {}} if partner: res['value']['partner_id'] = partner return res @@ -271,19 +271,19 @@ class account_analytic_line(osv.osv): _description = 'Analytic Line' _columns = { - 'name' : fields.char('Description', size=256, required=True), - 'date' : fields.date('Date', required=True, select=1), - 'amount' : fields.float('Amount', required=True, help='Calculated by multiplying the quantity and the price given in the Product\'s cost price. Always expressed in the company main currency.', digits_compute=dp.get_precision('Account')), - 'unit_amount' : fields.float('Quantity', help='Specifies the amount of quantity to count.'), - 'account_id' : fields.many2one('account.analytic.account', 'Analytic Account', required=True, ondelete='cascade', select=True), - 'user_id' : fields.many2one('res.users', 'User'), + 'name': fields.char('Description', size=256, required=True), + 'date': fields.date('Date', required=True, select=1), + 'amount': fields.float('Amount', required=True, help='Calculated by multiplying the quantity and the price given in the Product\'s cost price. Always expressed in the company main currency.', digits_compute=dp.get_precision('Account')), + 'unit_amount': fields.float('Quantity', help='Specifies the amount of quantity to count.'), + 'account_id': fields.many2one('account.analytic.account', 'Analytic Account', required=True, ondelete='cascade', select=True), + 'user_id': fields.many2one('res.users', 'User'), 'company_id': fields.related('account_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True), } _defaults = { 'date': time.strftime('%Y-%m-%d'), 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.analytic.line', context=c), - 'amount' : 0.00 + 'amount': 0.00 } _order = 'date desc' diff --git a/addons/analytic_journal_billing_rate/analytic_journal_billing_rate.py b/addons/analytic_journal_billing_rate/analytic_journal_billing_rate.py index 609d1cad7d9..5718a9fdaa7 100644 --- a/addons/analytic_journal_billing_rate/analytic_journal_billing_rate.py +++ b/addons/analytic_journal_billing_rate/analytic_journal_billing_rate.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 . # ############################################################################## @@ -38,7 +38,7 @@ class account_analytic_account(osv.osv): _inherit = "account.analytic.account" _columns = { - 'journal_rate_ids' : fields.one2many('analytic_journal_rate_grid', 'account_id', 'Invoicing Rate per Journal'), + 'journal_rate_ids': fields.one2many('analytic_journal_rate_grid', 'account_id', 'Invoicing Rate per Journal'), } account_analytic_account() @@ -92,7 +92,7 @@ class hr_analytic_timesheet(osv.osv): if to_invoice: res.setdefault('value',{}) res['value']['to_invoice'] = to_invoice[0] - + return res hr_analytic_timesheet() diff --git a/addons/analytic_user_function/analytic_user_function.py b/addons/analytic_user_function/analytic_user_function.py index 21fe0a7da29..04f66fb8daa 100644 --- a/addons/analytic_user_function/analytic_user_function.py +++ b/addons/analytic_user_function/analytic_user_function.py @@ -40,7 +40,7 @@ class account_analytic_account(osv.osv): _inherit = "account.analytic.account" _columns = { - 'user_product_ids' : fields.one2many('analytic_user_funct_grid', 'account_id', 'Users/Products Rel.'), + 'user_product_ids': fields.one2many('analytic_user_funct_grid', 'account_id', 'Users/Products Rel.'), } account_analytic_account() From f7ff15290fea31b526c6372025b34d113c37a81d Mon Sep 17 00:00:00 2001 From: ssi Date: Mon, 11 Oct 2010 16:16:16 +0530 Subject: [PATCH 35/59] [IMP]:project_planning: view improved bzr revid: ssi@tinyerp.com-20101011104616-gfwbu80xmxnu0u2c --- addons/project_planning/board_project_planning_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project_planning/board_project_planning_view.xml b/addons/project_planning/board_project_planning_view.xml index b48ab78dec2..a059d21d053 100644 --- a/addons/project_planning/board_project_planning_view.xml +++ b/addons/project_planning/board_project_planning_view.xml @@ -12,7 +12,7 @@ - " + From 15da4879d949b075b7620d1baeaf2621586df7fc Mon Sep 17 00:00:00 2001 From: Mustufa Rangwala Date: Mon, 11 Oct 2010 16:21:16 +0530 Subject: [PATCH 36/59] [REF] Account followup bzr revid: mra@mra-laptop-20101011105116-oe24vzkv2etdehcl --- addons/account_followup/account_followup.py | 8 ++++---- .../wizard/account_followup_print.py | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/addons/account_followup/account_followup.py b/addons/account_followup/account_followup.py index 02986acb184..1d0ca8a500c 100644 --- a/addons/account_followup/account_followup.py +++ b/addons/account_followup/account_followup.py @@ -32,7 +32,7 @@ class followup(osv.osv): } _defaults = { 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'account_followup.followup', context=c), - } + } followup() @@ -46,7 +46,7 @@ class followup_line(osv.osv): 'start': fields.selection([('days','Net Days'),('end_of_month','End of Month')], 'Type of Term', size=64, required=True), 'followup_id': fields.many2one('account_followup.followup', 'Follow Ups', required=True, ondelete="cascade"), 'description': fields.text('Printed Message', translate=True), - } + } followup_line() @@ -63,7 +63,7 @@ class res_company(osv.osv): _inherit = "res.company" _columns = { 'follow_up_msg' : fields.text('Follow-up Message', translate=True), - } + } _defaults = { 'overdue_msg': ''' @@ -80,7 +80,7 @@ Thanks, %(user_signature)s %(company_name)s ''' - } + } res_company() diff --git a/addons/account_followup/wizard/account_followup_print.py b/addons/account_followup/wizard/account_followup_print.py index fe635a080c7..be353220e99 100644 --- a/addons/account_followup/wizard/account_followup_print.py +++ b/addons/account_followup/wizard/account_followup_print.py @@ -61,12 +61,12 @@ class account_followup_print(osv.osv_memory): 'views': [(resource_id,'form')], 'type': 'ir.actions.act_window', 'target': 'new', - } + } _defaults = { 'date': time.strftime('%Y-%m-%d'), 'followup_id': _get_followup, - } + } account_followup_print() @@ -80,7 +80,7 @@ class account_followup_print_all(osv.osv_memory): 'partner_lang': fields.boolean('Send Email in Partner Language', help='Do not change message text, if you want to send email in partner language, or configure from company'), 'email_body': fields.text('Email body'), 'summary': fields.text('Summary', required=True, readonly=True) - } + } def _get_summary(self, cr, uid, context=None): if context is None: context = {} @@ -285,14 +285,14 @@ class account_followup_print_all(osv.osv_memory): 'ids': [], 'model': 'account_followup.followup', 'form': data - } + } return { 'type': 'ir.actions.report.xml', 'report_name': 'account_followup.followup.print', 'datas': datas, - } + } account_followup_print_all() -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file From faf70e7b3af98de4aefa60529ff03d054ec72503 Mon Sep 17 00:00:00 2001 From: "psi (Open ERP)" Date: Mon, 11 Oct 2010 16:55:50 +0530 Subject: [PATCH 37/59] [IMP] account_analytic_analysis, account_analytic_default, account_analytic_plans: code cleaning bzr revid: psi@tinyerp.co.in-20101011112550-ygkqmzmuhu1j7dm3 --- .../account_analytic_entries_report_view.xml | 24 +- .../account_analytic_analysis.py | 217 +++++++++--------- .../account_analytic_default.py | 71 +++--- .../account_analytic_plans.py | 181 ++++++++------- .../report/crossovered_analytic.py | 71 +++--- .../wizard/account_crossovered_analytic.py | 23 +- .../wizard/analytic_plan_create_model.py | 12 +- 7 files changed, 300 insertions(+), 299 deletions(-) diff --git a/addons/account/report/account_analytic_entries_report_view.xml b/addons/account/report/account_analytic_entries_report_view.xml index 34d23826e80..6f1094599b5 100644 --- a/addons/account/report/account_analytic_entries_report_view.xml +++ b/addons/account/report/account_analytic_entries_report_view.xml @@ -56,18 +56,7 @@ - - - - - - - - - - - - + @@ -83,6 +72,17 @@ + + + + + + + + + + + diff --git a/addons/account_analytic_analysis/account_analytic_analysis.py b/addons/account_analytic_analysis/account_analytic_analysis.py index 108b6acfc97..633524e3aaa 100644 --- a/addons/account_analytic_analysis/account_analytic_analysis.py +++ b/addons/account_analytic_analysis/account_analytic_analysis.py @@ -34,7 +34,7 @@ class account_analytic_account(osv.osv): dp = 2 res = dict([(i, {}) for i in ids]) - parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)])) + parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)], context=context)) accounts = self.browse(cr, uid, ids, context=context) for f in fields: @@ -62,10 +62,10 @@ class account_analytic_account(osv.osv): for id in ids: res[id][f] = 0.0 if parent_ids: - cr.execute("select account_analytic_line.account_id, max(date) \ - from account_analytic_line \ - where account_id IN %s \ - and invoice_id is not null \ + cr.execute("SELECT account_analytic_line.account_id, MAX(date) \ + FROM account_analytic_line \ + WHERE account_id IN %s \ + AND invoice_id IS NOT NULL \ GROUP BY account_analytic_line.account_id;", (parent_ids,)) for account_id, sum in cr.fetchall(): if account_id not in res: @@ -85,25 +85,25 @@ class account_analytic_account(osv.osv): # This computation doesn't take care of pricelist ! # Just consider list_price cr.execute("""SELECT account_analytic_account.id, \ - COALESCE(sum (product_template.list_price * \ + COALESCE(SUM (product_template.list_price * \ account_analytic_line.unit_amount * \ - ((100-hr_timesheet_invoice_factor.factor)/100)),0.0) \ + ((100-hr_timesheet_invoice_factor.factor)/100)), 0.0) \ AS ca_to_invoice \ FROM product_template \ - join product_product \ - on product_template.id = product_product.product_tmpl_id \ + JOIN product_product \ + ON product_template.id = product_product.product_tmpl_id \ JOIN account_analytic_line \ - on account_analytic_line.product_id = product_product.id \ + ON account_analytic_line.product_id = product_product.id \ JOIN account_analytic_journal \ - on account_analytic_line.journal_id = account_analytic_journal.id \ + ON account_analytic_line.journal_id = account_analytic_journal.id \ JOIN account_analytic_account \ - on account_analytic_account.id = account_analytic_line.account_id \ + ON account_analytic_account.id = account_analytic_line.account_id \ JOIN hr_timesheet_invoice_factor \ - on hr_timesheet_invoice_factor.id = account_analytic_account.to_invoice \ + ON hr_timesheet_invoice_factor.id = account_analytic_account.to_invoice \ WHERE account_analytic_account.id IN %s \ - AND account_analytic_line.invoice_id is null \ + AND account_analytic_line.invoice_id IS NULL \ AND account_analytic_line.to_invoice IS NOT NULL \ - and account_analytic_journal.type in ('purchase','general') \ + AND account_analytic_journal.type IN ('purchase','general') \ GROUP BY account_analytic_account.id;""", (parent_ids,)) for account_id, sum in cr.fetchall(): if account_id not in res: @@ -124,13 +124,13 @@ class account_analytic_account(osv.osv): for id in ids: res[id][f] = '' if parent_ids: - cr.execute ("select account_analytic_line.account_id, \ - date(max(account_invoice.date_invoice)) \ - from account_analytic_line \ - join account_invoice \ - on account_analytic_line.invoice_id = account_invoice.id \ - where account_analytic_line.account_id IN %s \ - and account_analytic_line.invoice_id is not null \ + cr.execute ("SELECT account_analytic_line.account_id, \ + DATE(MAX(account_invoice.date_invoice)) \ + FROM account_analytic_line \ + JOIN account_invoice \ + ON account_analytic_line.invoice_id = account_invoice.id \ + WHERE account_analytic_line.account_id IN %s \ + AND account_analytic_line.invoice_id IS NOT NULL \ GROUP BY account_analytic_line.account_id",(parent_ids,)) for account_id, lid in cr.fetchall(): res[account_id][f] = lid @@ -142,11 +142,11 @@ class account_analytic_account(osv.osv): for id in ids: res[id][f] = '' if parent_ids: - cr.execute("select account_analytic_line.account_id, max(date) \ - from account_analytic_line \ - where account_id IN %s \ - and invoice_id is null \ - GROUP BY account_analytic_line.account_id", (parent_ids,)) + cr.execute("SELECT account_analytic_line.account_id, MAX(date) \ + FROM account_analytic_line \ + WHERE account_id IN %s \ + AND invoice_id IS NULL \ + GROUP BY account_analytic_line.account_id" ,(parent_ids,)) for account_id, lwd in cr.fetchall(): if account_id not in res: res[account_id] = {} @@ -159,13 +159,13 @@ class account_analytic_account(osv.osv): for id in ids: res[id][f] = 0.0 if parent_ids: - cr.execute("select account_analytic_line.account_id, COALESCE(sum(unit_amount),0.0) \ - from account_analytic_line \ - join account_analytic_journal \ - on account_analytic_line.journal_id = account_analytic_journal.id \ - where account_analytic_line.account_id IN %s \ - and account_analytic_journal.type='general' \ - and invoice_id is null \ + cr.execute("SELECT account_analytic_line.account_id, COALESCE(SUM(unit_amount), 0.0) \ + FROM account_analytic_line \ + JOIN account_analytic_journal \ + ON account_analytic_line.journal_id = account_analytic_journal.id \ + WHERE account_analytic_line.account_id IN %s \ + AND account_analytic_journal.type='general' \ + AND invoice_id IS NULL \ AND to_invoice IS NOT NULL \ GROUP BY account_analytic_line.account_id;",(parent_ids,)) for account_id, sua in cr.fetchall(): @@ -182,12 +182,12 @@ class account_analytic_account(osv.osv): for id in ids: res[id][f] = 0.0 if parent_ids: - cr.execute("select account_analytic_line.account_id,COALESCE(SUM(unit_amount),0.0) \ - from account_analytic_line \ - join account_analytic_journal \ - on account_analytic_line.journal_id = account_analytic_journal.id \ - where account_analytic_line.account_id IN %s \ - and account_analytic_journal.type='general' \ + cr.execute("SELECT account_analytic_line.account_id, COALESCE(SUM(unit_amount), 0.0) \ + FROM account_analytic_line \ + JOIN account_analytic_journal \ + ON account_analytic_line.journal_id = account_analytic_journal.id \ + WHERE account_analytic_line.account_id IN %s \ + AND account_analytic_journal.type='general' \ GROUP BY account_analytic_line.account_id",(parent_ids,)) ff = cr.fetchall() for account_id, hq in ff: @@ -211,24 +211,24 @@ class account_analytic_account(osv.osv): # This computation doesn't take care of pricelist ! # Just consider list_price if parent_ids: - cr.execute("""select account_analytic_line.account_id as account_id, \ - COALESCE(sum((account_analytic_line.unit_amount * pt.list_price) \ + cr.execute("""SELECT account_analytic_line.account_id AS account_id, \ + COALESCE(SUM((account_analytic_line.unit_amount * pt.list_price) \ - (account_analytic_line.unit_amount * pt.list_price \ - * hr.factor)),0.0) as somme - from account_analytic_line \ - left join account_analytic_journal \ - on (account_analytic_line.journal_id = account_analytic_journal.id) \ - join product_product pp \ - on (account_analytic_line.product_id = pp.id) \ - join product_template pt \ - on (pp.product_tmpl_id = pt.id) \ - join account_analytic_account a \ - on (a.id=account_analytic_line.account_id) \ - join hr_timesheet_invoice_factor hr \ - on (hr.id=a.to_invoice) \ - where account_analytic_line.account_id IN %s \ - and a.to_invoice IS NOT NULL \ - and account_analytic_journal.type IN ('purchase','general') + * hr.factor)), 0.0) AS somme + FROM account_analytic_line \ + LEFT JOIN account_analytic_journal \ + ON (account_analytic_line.journal_id = account_analytic_journal.id) \ + JOIN product_product pp \ + ON (account_analytic_line.product_id = pp.id) \ + JOIN product_template pt \ + ON (pp.product_tmpl_id = pt.id) \ + JOIN account_analytic_account a \ + ON (a.id=account_analytic_line.account_id) \ + JOIN hr_timesheet_invoice_factor hr \ + ON (hr.id=a.to_invoice) \ + WHERE account_analytic_line.account_id IN %s \ + AND a.to_invoice IS NOT NULL \ + AND account_analytic_journal.type IN ('purchase', 'general') GROUP BY account_analytic_line.account_id""",(parent_ids,)) for account_id, sum in cr.fetchall(): res2[account_id] = round(sum, dp) @@ -250,53 +250,51 @@ class account_analytic_account(osv.osv): def _ca_invoiced_calc(self, cr, uid, ids, name, arg, context=None): res = {} - parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)])) + parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)], context=context)) if parent_ids: - cr.execute("select account_analytic_line.account_id, COALESCE(sum(amount_currency),0.0) \ - from account_analytic_line \ - join account_analytic_journal \ - on account_analytic_line.journal_id = account_analytic_journal.id \ - where account_analytic_line.account_id IN %s \ - and account_analytic_journal.type = 'sale' \ - group by account_analytic_line.account_id", (parent_ids,)) + cr.execute("SELECT account_analytic_line.account_id, COALESCE(SUM(amount_currency), 0.0) \ + FROM account_analytic_line \ + JOIN account_analytic_journal \ + ON account_analytic_line.journal_id = account_analytic_journal.id \ + WHERE account_analytic_line.account_id IN %s \ + AND account_analytic_journal.type = 'sale' \ + GROUP BY account_analytic_line.account_id", (parent_ids,)) for account_id, sum in cr.fetchall(): res[account_id] = round(sum,2) - - return self._compute_currency_for_level_tree(cr, uid, ids, parent_ids, res, context) + return self._compute_currency_for_level_tree(cr, uid, ids, parent_ids, res, context=context) def _total_cost_calc(self, cr, uid, ids, name, arg, context=None): res = {} - parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)])) + parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)], context=context)) if parent_ids: - cr.execute("""select account_analytic_line.account_id,COALESCE(sum(amount_currency),0.0) \ - - from account_analytic_line \ - join account_analytic_journal \ - on account_analytic_line.journal_id = account_analytic_journal.id \ - where account_analytic_line.account_id IN %s \ - and amount<0 \ + cr.execute("""SELECT account_analytic_line.account_id, COALESCE(SUM(amount_currency), 0.0) \ + FROM account_analytic_line \ + JOIN account_analytic_journal \ + ON account_analytic_line.journal_id = account_analytic_journal.id \ + WHERE account_analytic_line.account_id IN %s \ + AND amount<0 \ GROUP BY account_analytic_line.account_id""",(parent_ids,)) for account_id, sum in cr.fetchall(): res[account_id] = round(sum,2) - return self._compute_currency_for_level_tree(cr, uid, ids, parent_ids, res, context) + return self._compute_currency_for_level_tree(cr, uid, ids, parent_ids, res, context=context) def _remaining_hours_calc(self, cr, uid, ids, name, arg, context=None): res = {} - for account in self.browse(cr, uid, ids): + for account in self.browse(cr, uid, ids, context=context): if account.quantity_max != 0: res[account.id] = account.quantity_max - account.hours_quantity else: - res[account.id]=0.0 + res[account.id] = 0.0 for id in ids: res[id] = round(res.get(id, 0.0),2) return res def _hours_qtt_invoiced_calc(self, cr, uid, ids, name, arg, context=None): res = {} - for account in self.browse(cr, uid, ids): + for account in self.browse(cr, uid, ids, context=context): res[account.id] = account.hours_quantity - account.hours_qtt_non_invoiced if res[account.id] < 0: - res[account.id]=0.0 + res[account.id] = 0.0 for id in ids: res[id] = round(res.get(id, 0.0),2) return res @@ -414,7 +412,7 @@ class account_analytic_account_summary_user(osv.osv): max_user = cr.fetchone()[0] account_ids = [int(str(x/max_user - (x%max_user == 0 and 1 or 0))) for x in ids] user_ids = [int(str(x-((x/max_user - (x%max_user == 0 and 1 or 0)) *max_user))) for x in ids] - parent_ids = tuple(account_obj.search(cr, uid, [('parent_id', 'child_of', account_ids)])) + parent_ids = tuple(account_obj.search(cr, uid, [('parent_id', 'child_of', account_ids)], context=context)) if parent_ids: cr.execute('SELECT id, unit_amount ' \ 'FROM account_analytic_analysis_summary_user ' \ @@ -477,19 +475,19 @@ class account_analytic_account_summary_user(osv.osv): def _read_flat(self, cr, user, ids, fields, context=None, load='_classic_read'): if not context: - context={} + context = {} if not ids: return [] - if fields==None: + if fields is None: fields = self._columns.keys() + res_trans_obj = self.pool.get('ir.translation') # construct a clause for the rules: d1, d2, tables = self.pool.get('ir.rule').domain_get(cr, user, self._name, 'read', context=context) # all inherited fields + all non inherited fields for which the attribute whose name is in load is True fields_pre = filter(lambda x: x in self._columns and getattr(self._columns[x],'_classic_write'), fields) + self._inherits.values() - res = [] cr.execute('SELECT MAX(id) FROM res_users') max_user = cr.fetchone()[0] @@ -498,9 +496,9 @@ class account_analytic_account_summary_user(osv.osv): for i in range(0, len(ids), cr.IN_MAX): sub_ids = ids[i:i+cr.IN_MAX] if d1: - cr.execute('select %s from \"%s\" where id IN (%s) ' \ - 'and account_id IN (%s) ' \ - 'and "user" IN (%s) and %s order by %s' % \ + cr.execute('SELECT %s FROM \"%s\" WHERE id IN (%s) ' \ + 'AND account_id IN (%s) ' \ + 'AND "user" IN (%s) AND %s ORDER BY %s' % \ (','.join(fields_pre2 + ['id']), self._table, ','.join([str(x) for x in sub_ids]), ','.join([str(x/max_user - (x%max_user == 0 and 1 or 0)) for x in sub_ids]), @@ -510,9 +508,9 @@ class account_analytic_account_summary_user(osv.osv): raise except_orm(_('AccessError'), _('You try to bypass an access rule (Document type: %s).') % self._description) else: - cr.execute('select %s from \"%s\" where id IN (%s) ' \ - 'and account_id IN (%s) ' \ - 'and "user" IN (%s) order by %s' % \ + cr.execute('SELECT %s FROM \"%s\" WHERE id IN (%s) ' \ + 'AND account_id IN (%s) ' \ + 'AND "user" IN (%s) ORDER BY %s' % \ (','.join(fields_pre2 + ['id']), self._table, ','.join([str(x) for x in sub_ids]), ','.join([str(x/max_user - (x%max_user == 0 and 1 or 0)) for x in sub_ids]), @@ -521,7 +519,6 @@ class account_analytic_account_summary_user(osv.osv): res.extend(cr.dictfetchall()) else: res = map(lambda x: {'id': x}, ids) - res_trans_obj = self.pool.get('ir.translation') for f in fields_pre: if self._columns[f].translate: ids = map(lambda x: x['id'], res) @@ -579,7 +576,7 @@ class account_analytic_account_summary_month(osv.osv): account_obj = self.pool.get('account.analytic.account') account_ids = [int(str(int(x))[:-6]) for x in ids] month_ids = [int(str(int(x))[-6:]) for x in ids] - parent_ids = tuple(account_obj.search(cr, uid, [('parent_id', 'child_of', account_ids)])) + parent_ids = tuple(account_obj.search(cr, uid, [('parent_id', 'child_of', account_ids)], context=context)) if parent_ids: cr.execute('SELECT id, unit_amount ' \ 'FROM account_analytic_analysis_summary_month ' \ @@ -598,11 +595,9 @@ class account_analytic_account_summary_month(osv.osv): return res _columns = { - 'account_id': fields.many2one('account.analytic.account', 'Analytic Account', - readonly=True), - 'unit_amount': fields.function(_unit_amount, method=True, type='float', - string='Total Time'), - 'month': fields.char('Month', size=25, readonly=True), + 'account_id': fields.many2one('account.analytic.account', 'Analytic Account', readonly=True), + 'unit_amount': fields.function(_unit_amount, method=True, type='float', string='Total Time'), + 'month': fields.char('Month', size=32, readonly=True), } def init(self, cr): @@ -654,28 +649,27 @@ class account_analytic_account_summary_month(osv.osv): def _read_flat(self, cr, user, ids, fields, context=None, load='_classic_read'): if not context: - context={} + context = {} if not ids: return [] - if fields==None: + if fields is None: fields = self._columns.keys() - - # construct a clause for the rules: - d1, d2, tables = self.pool.get('ir.rule').domain_get(cr, user, self._name) + res_trans_obj = self.pool.get('ir.translation') + # construct a clause for the rules : + d1, d2, tables= self.pool.get('ir.rule').domain_get(cr, user, self._name) # all inherited fields + all non inherited fields for which the attribute whose name is in load is True fields_pre = filter(lambda x: x in self._columns and getattr(self._columns[x],'_classic_write'), fields) + self._inherits.values() - res = [] if fields_pre: fields_pre2 = map(lambda x: (x in ('create_date', 'write_date')) and ('date_trunc(\'second\', '+x+') as '+x) or '"'+x+'"', fields_pre) for i in range(0, len(ids), cr.IN_MAX): sub_ids = ids[i:i+cr.IN_MAX] if d1: - cr.execute('select %s from \"%s\" where id IN (%s) ' \ - 'and account_id IN (%s) ' \ - 'and month_id IN (%s) and %s order by %s' % \ + cr.execute('SELECT %s FROM \"%s\" WHERE id IN (%s) ' \ + 'AND account_id IN (%s) ' \ + 'AND month_id IN (%s) AND %s ORDER BY %s' % \ (','.join(fields_pre2 + ['id']), self._table, ','.join([str(x) for x in sub_ids]), ','.join([str(x)[:-6] for x in sub_ids]), @@ -685,9 +679,9 @@ class account_analytic_account_summary_month(osv.osv): raise except_orm(_('AccessError'), _('You try to bypass an access rule (Document type: %s).') % self._description) else: - cr.execute('select %s from \"%s\" where id IN (%s) ' \ - 'and account_id IN (%s) ' \ - 'and month_id IN (%s) order by %s' % \ + cr.execute('SELECT %s FROM \"%s\" WHERE id IN (%s) ' \ + 'AND account_id IN (%s) ' \ + 'AND month_id IN (%s) ORDER BY %s' % \ (','.join(fields_pre2 + ['id']), self._table, ','.join([str(x) for x in sub_ids]), ','.join([str(x)[:-6] for x in sub_ids]), @@ -697,7 +691,6 @@ class account_analytic_account_summary_month(osv.osv): else: res = map(lambda x: {'id': x}, ids) - res_trans_obj = self.pool.get('ir.translation') for f in fields_pre: if self._columns[f].translate: ids = map(lambda x: x['id'], res) @@ -739,10 +732,8 @@ class account_analytic_account_summary_month(osv.osv): res2 = self._columns[f].get(cr, self, ids, f, user, context=context, values=res) for record in res: record[f] = res2[record['id']] - return res account_analytic_account_summary_month() -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/account_analytic_default/account_analytic_default.py b/addons/account_analytic_default/account_analytic_default.py index dce86597a4c..ebc78956a93 100644 --- a/addons/account_analytic_default/account_analytic_default.py +++ b/addons/account_analytic_default/account_analytic_default.py @@ -21,13 +21,13 @@ import time -from osv import fields,osv +from osv import fields, osv class account_analytic_default(osv.osv): - _name = 'account.analytic.default' - _description = 'Analytic Distribution' - _rec_name = 'analytic_id' - _order = 'sequence' + _name = "account.analytic.default" + _description = "Analytic Distribution" + _rec_name = "analytic_id" + _order = "sequence" _columns = { 'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of analytic distribution."), 'analytic_id': fields.many2one('account.analytic.account', 'Analytic Account'), @@ -38,50 +38,50 @@ class account_analytic_default(osv.osv): 'date_start': fields.date('Start Date'), 'date_stop': fields.date('End Date'), } - + def account_get(self, cr, uid, product_id=None, partner_id=None, user_id=None, date=None, context=None): domain = [] if product_id: - domain += ['|',('product_id','=',product_id)] - domain += [('product_id','=',False)] + domain += ['|', ('product_id', '=', product_id)] + domain += [('product_id','=', False)] if partner_id: - domain += ['|',('partner_id','=',partner_id)] - domain += [('partner_id','=',False)] + domain += ['|', ('partner_id', '=', partner_id)] + domain += [('partner_id', '=', False)] if user_id: - domain += ['|',('user_id','=',user_id)] - domain += [('user_id','=',False)] + domain += ['|',('user_id', '=', user_id)] + domain += [('user_id','=', False)] if date: - domain += ['|',('date_start','<=',date),('date_start','=',False)] - domain += ['|',('date_stop','>=',date),('date_stop','=',False)] + domain += ['|', ('date_start', '<=', date), ('date_start', '=', False)] + domain += ['|', ('date_stop', '>=', date), ('date_stop', '=', False)] best_index = -1 res = False for rec in self.browse(cr, uid, self.search(cr, uid, domain, context=context), context=context): index = 0 - if rec.product_id: index+=1 - if rec.partner_id: index+=1 - if rec.user_id: index+=1 - if rec.date_start: index+=1 - if rec.date_stop: index+=1 - if index>best_index: + if rec.product_id: index += 1 + if rec.partner_id: index += 1 + if rec.user_id: index += 1 + if rec.date_start: index += 1 + if rec.date_stop: index += 1 + if index > best_index: res = rec best_index = index return res - + account_analytic_default() class account_invoice_line(osv.osv): - _inherit = 'account.invoice.line' - _description = 'Invoice Line' + _inherit = "account.invoice.line" + _description = "Invoice Line" def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context=None): - res_prod = super(account_invoice_line,self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id=currency_id, context=context) - rec = self.pool.get('account.analytic.default').account_get(cr, uid, product, partner_id, uid, time.strftime('%Y-%m-%d'), context) + res_prod = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id=currency_id, context=context) + rec = self.pool.get('account.analytic.default').account_get(cr, uid, product, partner_id, uid, time.strftime('%Y-%m-%d'), context=context) if rec: - res_prod['value'].update({'account_analytic_id':rec.analytic_id.id}) + res_prod['value'].update({'account_analytic_id': rec.analytic_id.id}) else: - res_prod['value'].update({'account_analytic_id':False}) + res_prod['value'].update({'account_analytic_id': False}) return res_prod - + account_invoice_line() @@ -95,28 +95,27 @@ class stock_picking(osv.osv): if rec: return rec.analytic_id.id - return super(stock_picking, self)._get_account_analytic_invoice(cursor, - user, picking, move_line) + return super(stock_picking, self)._get_account_analytic_invoice(cursor, user, picking, move_line) stock_picking() class sale_order_line(osv.osv): - _inherit = 'sale.order.line' + _inherit = "sale.order.line" # Method overridden to set the analytic account by default on criterion match def invoice_line_create(self, cr, uid, ids, context=None): - create_ids = super(sale_order_line,self).invoice_line_create(cr, uid, ids, context) + create_ids = super(sale_order_line, self).invoice_line_create(cr, uid, ids, context=context) if not ids: return create_ids - sale_line = self.browse(cr, uid, ids[0], context) + sale_line = self.browse(cr, uid, ids[0], context=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, sale_line.order_id.user_id.id, time.strftime('%Y-%m-%d'), context) + for line in inv_line_obj.browse(cr, uid, create_ids, context=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=context) if rec: - inv_line_obj.write(cr, uid, [line.id], {'account_analytic_id':rec.analytic_id.id}, context=context) + inv_line_obj.write(cr, uid, [line.id], {'account_analytic_id': rec.analytic_id.id}, context=context) return create_ids sale_order_line() diff --git a/addons/account_analytic_plans/account_analytic_plans.py b/addons/account_analytic_plans/account_analytic_plans.py index 73b0fcb301d..0e3ec4b33ca 100644 --- a/addons/account_analytic_plans/account_analytic_plans.py +++ b/addons/account_analytic_plans/account_analytic_plans.py @@ -18,8 +18,9 @@ # along with this program. If not, see . # ############################################################################## -from lxml import etree + import time +from lxml import etree from osv import fields, osv import tools @@ -34,10 +35,10 @@ class one2many_mod2(fields.one2many): res[id] = [] ids2 = None if 'journal_id' in context: - journal = obj.pool.get('account.journal').browse(cr, user, context['journal_id'], context) + journal = obj.pool.get('account.journal').browse(cr, user, context['journal_id'], context=context) pnum = int(name[7]) -1 plan = journal.plan_id - if plan and len(plan.plan_ids)>pnum: + if plan and len(plan.plan_ids) > pnum: acc_id = plan.plan_ids[pnum].root_analytic_id.id ids2 = obj.pool.get(self._obj).search(cr, user, [(self._fields_id,'in',ids),('analytic_account_id','child_of',[acc_id])], limit=self._limit) if ids2 is None: @@ -50,8 +51,8 @@ class account_analytic_plan(osv.osv): _name = "account.analytic.plan" _description = "Analytic Plan" _columns = { - 'name': fields.char('Analytic Plan', size=64, required=True, select=True,), - 'plan_ids': fields.one2many('account.analytic.plan.line','plan_id','Analytic Plans'), + 'name': fields.char('Analytic Plan', size=64, required=True, select=True), + 'plan_ids': fields.one2many('account.analytic.plan.line', 'plan_id', 'Analytic Plans'), } account_analytic_plan() @@ -61,10 +62,10 @@ class account_analytic_plan_line(osv.osv): _description = "Analytic Plan Line" _order = "sequence, id" _columns = { - 'plan_id':fields.many2one('account.analytic.plan','Analytic Plan'), + 'plan_id': fields.many2one('account.analytic.plan','Analytic Plan'), 'name': fields.char('Plan Name', size=64, required=True, select=True), - 'sequence':fields.integer('Sequence'), - 'root_analytic_id': fields.many2one('account.analytic.account','Root Account',help="Root account of this plan.",required=False), + 'sequence': fields.integer('Sequence'), + 'root_analytic_id': fields.many2one('account.analytic.account', 'Root Account', help="Root account of this plan.", required=False), 'min_required': fields.float('Minimum Allowed (%)'), 'max_required': fields.float('Maximum Allowed (%)'), } @@ -76,27 +77,28 @@ class account_analytic_plan_line(osv.osv): account_analytic_plan_line() class account_analytic_plan_instance(osv.osv): - _name = 'account.analytic.plan.instance' - _description = 'Analytic Plan Instance' + _name = "account.analytic.plan.instance" + _description = "Analytic Plan Instance" _columns = { - 'name':fields.char('Analytic Distribution', size=64), - 'code':fields.char('Distribution Code', size=16), + 'name': fields.char('Analytic Distribution', size=64), + 'code': fields.char('Distribution Code', size=16), 'journal_id': fields.many2one('account.analytic.journal', 'Analytic Journal' ), - 'account_ids':fields.one2many('account.analytic.plan.instance.line', 'plan_id', 'Account Id'), - 'account1_ids':one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account1 Id'), - 'account2_ids':one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account2 Id'), - 'account3_ids':one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account3 Id'), - 'account4_ids':one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account4 Id'), - 'account5_ids':one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account5 Id'), - 'account6_ids':one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account6 Id'), - 'plan_id':fields.many2one('account.analytic.plan', "Model's Plan"), + 'account_ids': fields.one2many('account.analytic.plan.instance.line', 'plan_id', 'Account Id'), + 'account1_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account1 Id'), + 'account2_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account2 Id'), + 'account3_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account3 Id'), + 'account4_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account4 Id'), + 'account5_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account5 Id'), + 'account6_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account6 Id'), + 'plan_id': fields.many2one('account.analytic.plan', "Model's Plan"), } def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False): if context is None: context = {} + journal_obj = self.pool.get('account.journal') if context.get('journal_id', False): - journal = self.pool.get('account.journal').browse(cr, user, [context['journal_id']], context=context)[0] + journal = journal_obj.browse(cr, user, [context['journal_id']], context=context)[0] analytic_journal = journal.analytic_journal_id and journal.analytic_journal_id.id or False args.append('|') args.append(('journal_id', '=', analytic_journal)) @@ -108,15 +110,16 @@ class account_analytic_plan_instance(osv.osv): def copy(self, cr, uid, id, default=None, context=None): if not default: default = {} - default.update({'account1_ids':False, 'account2_ids':False, 'account3_ids':False, + default.update({'account1_ids':False, 'account2_ids':False, 'account3_ids':False, 'account4_ids':False, 'account5_ids':False, 'account6_ids':False}) - return super(account_analytic_plan_instance, self).copy(cr, uid, id, default, context) + return super(account_analytic_plan_instance, self).copy(cr, uid, id, default, context=context) def _default_journal(self, cr, uid, context=None): if not context: context = {} + journal_obj = self.pool.get('account.journal') if context.has_key('journal_id') and context['journal_id']: - journal = self.pool.get('account.journal').browse(cr, uid, context['journal_id']) + journal = journal_obj.browse(cr, uid, context['journal_id'], context=context) if journal.analytic_journal_id: return journal.analytic_journal_id.id return False @@ -127,7 +130,7 @@ class account_analytic_plan_instance(osv.osv): } def name_get(self, cr, uid, ids, context=None): res = [] - for inst in self.browse(cr, uid, ids, context): + for inst in self.browse(cr, uid, ids, context=context): name = inst.name or '/' if name and inst.code: name=name+' ('+inst.code+')' @@ -135,7 +138,7 @@ class account_analytic_plan_instance(osv.osv): return res def name_search(self, cr, uid, name, args=None, operator='ilike', context=None, limit=100): - args= args or [] + args = args or [] if name: ids = self.search(cr, uid, [('code', '=', name)] + args, limit=limit, context=context or {}) if not ids: @@ -145,15 +148,16 @@ class account_analytic_plan_instance(osv.osv): return self.name_get(cr, uid, ids, context or {}) def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): - wiz_id = self.pool.get('ir.actions.act_window').search(cr, uid, [("name","=","analytic.plan.create.model.action")]) + wiz_id = self.pool.get('ir.actions.act_window').search(cr, uid, [("name","=","analytic.plan.create.model.action")], context=context) res = super(account_analytic_plan_instance,self).fields_view_get(cr, uid, view_id, view_type, context, toolbar=toolbar, submenu=submenu) - + journal_obj = self.pool.get('account.journal') + analytic_plan_obj = self.pool.get('account.analytic.plan') if (res['type']=='form'): plan_id = False - if context.get('journal_id',False): - plan_id = self.pool.get('account.journal').browse(cr, uid, int(context['journal_id']), context).plan_id - elif context.get('plan_id',False): - plan_id = self.pool.get('account.analytic.plan').browse(cr, uid, int(context['plan_id']), context) + if context.get('journal_id', False): + plan_id = journal_obj.browse(cr, uid, int(context['journal_id']), context=context).plan_id + elif context.get('plan_id', False): + plan_id = analytic_plan_obj.browse(cr, uid, int(context['plan_id']), context=context) if plan_id: i=1 @@ -183,40 +187,43 @@ class account_analytic_plan_instance(osv.osv): return res def create(self, cr, uid, vals, context=None): + journal_obj = self.pool.get('account.journal') + ana_plan_instance_obj = self.pool.get('account.analytic.plan.instance') + acct_anal_acct = self.pool.get('account.analytic.account') + acct_anal_plan_line_obj = self.pool.get('account.analytic.plan.line') if context and 'journal_id' in context: - journal= self.pool.get('account.journal').browse(cr, uid, context['journal_id']) + journal = journal_obj.browse(cr, uid, context['journal_id'], context=context) - pids = self.pool.get('account.analytic.plan.instance').search(cr, uid, [('name','=',vals['name']),('code','=',vals['code']),('plan_id','<>',False)]) + pids = ana_plan_instance_obj.search(cr, uid, [('name','=',vals['name']), ('code','=',vals['code']), ('plan_id','<>',False)], context=context) if pids: raise osv.except_osv(_('Error'), _('A model having this name and code already exists !')) - acct_anal_acct = self.pool.get('account.analytic.account') - acct_anal_plan_line_obj = self.pool.get('account.analytic.plan.line') - res = acct_anal_plan_line_obj.search(cr, uid, [('plan_id','=',journal.plan_id.id)]) + res = acct_anal_plan_line_obj.search(cr, uid, [('plan_id','=',journal.plan_id.id)], context=context) for i in res: total_per_plan = 0 - item = acct_anal_plan_line_obj.browse(cr, uid, i) - temp_list=['account1_ids','account2_ids','account3_ids','account4_ids','account5_ids','account6_ids'] + item = acct_anal_plan_line_obj.browse(cr, uid, i, context=context) + temp_list = ['account1_ids','account2_ids','account3_ids','account4_ids','account5_ids','account6_ids'] for l in temp_list: if vals.has_key(l): for tempo in vals[l]: - if acct_anal_acct.search(cr, uid,[('parent_id','child_of',[item.root_analytic_id.id]),('id','=',tempo[2]['analytic_account_id'])]): + if acct_anal_acct.search(cr, uid, [('parent_id', 'child_of', [item.root_analytic_id.id]), ('id', '=', tempo[2]['analytic_account_id'])], context=context): total_per_plan += tempo[2]['rate'] if total_per_plan < item.min_required or total_per_plan > item.max_required: raise osv.except_osv(_('Value Error'),_('The Total Should be Between %s and %s') % (str(item.min_required), str(item.max_required))) - return super(account_analytic_plan_instance, self).create(cr, uid, vals, context) + return super(account_analytic_plan_instance, self).create(cr, uid, vals, context=context) def write(self, cr, uid, ids, vals, context=None, check=True, update_check=True): - this = self.browse(cr, uid, ids[0]) + this = self.browse(cr, uid, ids[0], context=context) + invoice_line_obj = self.pool.get('account.invoice.line') if this.plan_id and not vals.has_key('plan_id'): #this instance is a model, so we have to create a new plan instance instead of modifying it #copy the existing model - temp_id = self.copy(cr, uid, this.id, None, context) + temp_id = self.copy(cr, uid, this.id, None, context=context) #get the list of the invoice line that were linked to the model - list = self.pool.get('account.invoice.line').search(cr, uid, [('analytics_id','=',this.id)]) + lists = invoice_line_obj.search(cr, uid, [('analytics_id','=',this.id)], context=context) #make them link to the copy - self.pool.get('account.invoice.line').write(cr, uid, list, {'analytics_id':temp_id}, context) + invoice_line_obj.write(cr, uid, lists, {'analytics_id':temp_id}, context=context) #and finally modify the old model to be not a model anymore vals['plan_id'] = False @@ -224,17 +231,17 @@ class account_analytic_plan_instance(osv.osv): vals['name'] = this.name and (str(this.name)+'*') or "*" if not vals.has_key('code'): vals['code'] = this.code and (str(this.code)+'*') or "*" - return super(account_analytic_plan_instance, self).write(cr, uid, ids, vals, context) + return super(account_analytic_plan_instance, self).write(cr, uid, ids, vals, context=context) account_analytic_plan_instance() class account_analytic_plan_instance_line(osv.osv): - _name='account.analytic.plan.instance.line' - _description = 'Analytic Instance Line' - _columns={ - 'plan_id':fields.many2one('account.analytic.plan.instance', 'Plan Id'), - 'analytic_account_id':fields.many2one('account.analytic.account', 'Analytic Account', required=True), - 'rate':fields.float('Rate (%)', required=True), + _name = "account.analytic.plan.instance.line" + _description = "Analytic Instance Line" + _columns = { + 'plan_id': fields.many2one('account.analytic.plan.instance', 'Plan Id'), + 'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account', required=True), + 'rate': fields.float('Rate (%)', required=True), } _defaults = { 'rate': 100.0 @@ -242,7 +249,7 @@ class account_analytic_plan_instance_line(osv.osv): def name_get(self, cr, uid, ids, context=None): if not ids: return [] - reads = self.read(cr, uid, ids, ['analytic_account_id'], context) + reads = self.read(cr, uid, ids, ['analytic_account_id'], context=context) res = [] for record in reads: res.append((record['id'], record['analytic_account_id'])) @@ -251,44 +258,44 @@ class account_analytic_plan_instance_line(osv.osv): account_analytic_plan_instance_line() class account_journal(osv.osv): - _inherit='account.journal' - _name='account.journal' + _inherit = "account.journal" + _name = "account.journal" _columns = { - 'plan_id':fields.many2one('account.analytic.plan', 'Analytic Plans'), + 'plan_id': fields.many2one('account.analytic.plan', 'Analytic Plans'), } account_journal() class account_invoice_line(osv.osv): - _inherit='account.invoice.line' - _name='account.invoice.line' + _inherit = "account.invoice.line" + _name = "account.invoice.line" _columns = { - 'analytics_id':fields.many2one('account.analytic.plan.instance', 'Analytic Distribution'), + 'analytics_id': fields.many2one('account.analytic.plan.instance', 'Analytic Distribution'), } def create(self, cr, uid, vals, context=None): - if 'analytics_id' in vals and isinstance(vals['analytics_id'],tuple): + if 'analytics_id' in vals and isinstance(vals['analytics_id'], tuple): vals['analytics_id'] = vals['analytics_id'][0] - return super(account_invoice_line, self).create(cr, uid, vals, context) + return super(account_invoice_line, self).create(cr, uid, vals, context=context) def move_line_get_item(self, cr, uid, line, context=None): - res= super(account_invoice_line,self).move_line_get_item(cr, uid, line, context={}) - res ['analytics_id']=line.analytics_id and line.analytics_id.id or False + res = super(account_invoice_line, self).move_line_get_item(cr, uid, line, context=context) + res ['analytics_id'] = line.analytics_id and line.analytics_id.id or False return res def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context=None): - res_prod = super(account_invoice_line,self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id, context=context) - rec = self.pool.get('account.analytic.default').account_get(cr, uid, product, partner_id, uid, time.strftime('%Y-%m-%d'), context) + res_prod = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id, context=context) + rec = self.pool.get('account.analytic.default').account_get(cr, uid, product, partner_id, uid, time.strftime('%Y-%m-%d'), context=context) if rec and rec.analytics_id: - res_prod['value'].update({'analytics_id':rec.analytics_id.id}) + res_prod['value'].update({'analytics_id': rec.analytics_id.id}) return res_prod account_invoice_line() class account_move_line(osv.osv): - _inherit='account.move.line' - _name='account.move.line' + _inherit = "account.move.line" + _name = "account.move.line" _columns = { 'analytics_id':fields.many2one('account.analytic.plan.instance', 'Analytic Distribution'), } @@ -300,9 +307,9 @@ class account_move_line(osv.osv): return data def create_analytic_lines(self, cr, uid, ids, context=None): - super(account_move_line, self).create_analytic_lines(cr, uid, ids, context) + super(account_move_line, self).create_analytic_lines(cr, uid, ids, context=context) analytic_line_obj = self.pool.get('account.analytic.line') - for line in self.browse(cr, uid, ids, context): + for line in self.browse(cr, uid, ids, context=context): if line.analytics_id: if not line.journal_id.analytic_journal_id: raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal!") % (line.journal_id.name,)) @@ -333,24 +340,25 @@ account_move_line() class account_invoice(osv.osv): _name = "account.invoice" - _inherit="account.invoice" + _inherit = "account.invoice" def line_get_convert(self, cr, uid, x, part, date, context=None): - res=super(account_invoice,self).line_get_convert(cr, uid, x, part, date, context) - res['analytics_id']=x.get('analytics_id',False) + res=super(account_invoice,self).line_get_convert(cr, uid, x, part, date, context=context) + res['analytics_id'] = x.get('analytics_id', False) return res def _get_analytic_lines(self, cr, uid, id): inv = self.browse(cr, uid, [id])[0] cur_obj = self.pool.get('res.currency') + invoice_line_obj = self.pool.get('account.invoice.line') + acct_ins_obj = self.pool.get('account.analytic.plan.instance') company_currency = inv.company_id.currency_id.id if inv.type in ('out_invoice', 'in_refund'): sign = 1 else: sign = -1 - iml = self.pool.get('account.invoice.line').move_line_get(cr, uid, inv.id) - acct_ins_obj = self.pool.get('account.analytic.plan.instance') + iml = invoice_line_obj.move_line_get(cr, uid, inv.id) for il in iml: if il.get('analytics_id', False): @@ -369,8 +377,8 @@ class account_invoice(osv.osv): al_vals = { 'name': il['name'], 'date': inv['date_invoice'], - 'unit_amount':qtty, - 'product_id':il['product_id'], + 'unit_amount': qtty, + 'product_id': il['product_id'], 'account_id': line2.analytic_account_id.id, 'amount': amt, 'product_uom_id': il['uos_id'], @@ -378,7 +386,7 @@ class account_invoice(osv.osv): 'journal_id': self._get_journal_analytic(cr, uid, inv.type), 'ref': ref, } - il['analytic_lines'].append((0,0,al_vals)) + il['analytic_lines'].append((0, 0, al_vals)) return iml account_invoice() @@ -391,7 +399,7 @@ class account_analytic_plan(osv.osv): account_analytic_plan() class analytic_default(osv.osv): - _inherit = 'account.analytic.default' + _inherit = "account.analytic.default" _columns = { 'analytics_id': fields.many2one('account.analytic.plan.instance', 'Analytic Distribution'), } @@ -399,21 +407,20 @@ class analytic_default(osv.osv): analytic_default() class sale_order_line(osv.osv): - _inherit = 'sale.order.line' + _inherit = "sale.order.line" # Method overridden to set the analytic account by default on criterion match def invoice_line_create(self, cr, uid, ids, context=None): - create_ids = super(sale_order_line,self).invoice_line_create(cr, uid, ids, context) + create_ids = super(sale_order_line,self).invoice_line_create(cr, uid, ids, context=context) + inv_line_obj = self.pool.get('account.invoice.line') + acct_anal_def_obj = self.pool.get('account.analytic.default') if ids: - sale_line = self.browse(cr, uid, ids[0], context) - inv_line_obj = self.pool.get('account.invoice.line') - acct_anal_def_obj = self.pool.get('account.analytic.default') - - for line in inv_line_obj.browse(cr, uid, create_ids, context): + sale_line = self.browse(cr, uid, ids[0], context=context) + for line in inv_line_obj.browse(cr, uid, create_ids, context=context): rec = acct_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) if rec: - inv_line_obj.write(cr, uid, [line.id], {'analytics_id':rec.analytics_id.id}, context=context) + inv_line_obj.write(cr, uid, [line.id], {'analytics_id': rec.analytics_id.id}, context=context) return create_ids sale_order_line() diff --git a/addons/account_analytic_plans/report/crossovered_analytic.py b/addons/account_analytic_plans/report/crossovered_analytic.py index f4d35f936e1..67b25ae6013 100644 --- a/addons/account_analytic_plans/report/crossovered_analytic.py +++ b/addons/account_analytic_plans/report/crossovered_analytic.py @@ -39,11 +39,12 @@ class crossovered_analytic(report_sxw.rml_parse): final_list = [] parent_list = [] set_list = [] + analytic_obj = self.pool.get('account.analytic.account') for id in ref_ids: # to avoid duplicate entries if id not in to_return_ids: - to_return_ids.append(self.pool.get('account.analytic.account').search(self.cr,self.uid,[('parent_id','child_of',[id])])) - data_accnt = self.pool.get('account.analytic.account').browse(self.cr,self.uid,to_return_ids[0]) + to_return_ids.append(analytic_obj.search(self.cr,self.uid,[('parent_id','child_of',[id])])) + data_accnt = analytic_obj.browse(self.cr,self.uid,to_return_ids[0]) for data in data_accnt: if data.parent_id and data.parent_id.id == ref_ids[0]: parent_list.append(data.id) @@ -54,7 +55,7 @@ class crossovered_analytic(report_sxw.rml_parse): def set_account(self,cats): lst = [] - category = self.pool.get('account.analytic.account').read(self.cr,self.uid,cats) + category = self.pool.get('account.analytic.account').read(self.cr, self.uid, cats) for cat in category: lst.append(cat['id']) if cat['child_ids']: @@ -75,44 +76,44 @@ class crossovered_analytic(report_sxw.rml_parse): else: journal = 'is not null' - query_general = "select id from account_analytic_line where (journal_id " + journal +") AND date>='"+ str(form['date1']) +"'"" AND date<='" + str(form['date2']) + "'" + query_general = "SELECT id FROM account_analytic_line WHERE (journal_id " + journal +") AND date>='"+ str(form['date1']) +"'"" AND date<='" + str(form['date2']) + "'" self.cr.execute(query_general) - l_ids=self.cr.fetchall() + l_ids = self.cr.fetchall() line_ids = [x[0] for x in l_ids] obj_line = line_pool.browse(self.cr,self.uid,line_ids) #this structure will be usefull for easily knowing the account_analytic_line that are related to the reference account. At this purpose, we save the move_id of analytic lines. self.dict_acc_ref[form['ref']] = [] - children_list = self.pool.get('account.analytic.account').search(self.cr,self.uid,[('parent_id','child_of',[form['ref']])]) + children_list = acc_pool.search(self.cr, self.uid, [('parent_id', 'child_of', [form['ref']])]) for obj in obj_line: if obj.account_id.id in children_list: if obj.move_id and obj.move_id.id not in self.dict_acc_ref[form['ref']]: self.dict_acc_ref[form['ref']].append(obj.move_id.id) - res['ref_name'] = acc_pool.name_get(self.cr,self.uid,[form['ref']])[0][1] - res['ref_code'] = acc_pool.browse(self.cr,self.uid,form['ref']).code + res['ref_name'] = acc_pool.name_get(self.cr, self.uid, [form['ref']])[0][1] + res['ref_code'] = acc_pool.browse(self.cr, self.uid, form['ref']).code self.final_list = children_list - selected_ids = line_pool.search(self.cr,self.uid,[('account_id','in',self.final_list)]) + selected_ids = line_pool.search(self.cr, self.uid, [('account_id', 'in' ,self.final_list)]) if selected_ids: - query="SELECT sum(aal.amount) AS amt, sum(aal.unit_amount) AS qty FROM account_analytic_line AS aal, account_analytic_account AS aaa \ - WHERE aal.account_id=aaa.id AND aal.id IN ("+','.join(map(str,selected_ids))+") AND (aal.journal_id " + journal +") AND aal.date>='"+ str(form['date1']) +"'"" AND aal.date<='" + str(form['date2']) + "'" + query = "SELECT SUM(aal.amount) AS amt, SUM(aal.unit_amount) AS qty FROM account_analytic_line AS aal, account_analytic_account AS aaa \ + WHERE aal.account_id = aaa.id AND aal.id IN ("+','.join(map(str,selected_ids))+") AND (aal.journal_id " + journal +") AND aal.date>='"+ str(form['date1']) +"'"" AND aal.date<='" + str(form['date2']) + "'" self.cr.execute(query) info=self.cr.dictfetchall() - res['ref_qty']=info[0]['qty'] - res['ref_amt']=info[0]['amt'] - self.base_amount= info[0]['amt'] - res['ref_qty']=0.0 - res['ref_amt']=0.0 - self.base_amount= 0.0 + res['ref_qty'] = info[0]['qty'] + res['ref_amt'] = info[0]['amt'] + self.base_amount = info[0]['amt'] + res['ref_qty'] = 0.0 + res['ref_amt'] = 0.0 + self.base_amount = 0.0 result.append(res) return result - def _lines(self,form,ids={}): + def _lines(self, form, ids={}): if not ids: ids = self.ids @@ -122,43 +123,43 @@ class crossovered_analytic(report_sxw.rml_parse): journal= 'is not null' acc_pool = self.pool.get('account.analytic.account') - line_pool=self.pool.get('account.analytic.line') - acc_id=[] - final=[] - child_ids=[] - self.list_ids=[] + line_pool = self.pool.get('account.analytic.line') + acc_id = [] + final = [] + child_ids = [] + self.list_ids = [] self.final_list = self.find_children(ids) for acc_id in self.final_list: - selected_ids = line_pool.search(self.cr,self.uid,[('account_id','=',acc_id),('move_id','in',self.dict_acc_ref[form['ref']])]) + selected_ids = line_pool.search(self.cr, self.uid, [('account_id','=',acc_id), ('move_id', 'in', self.dict_acc_ref[form['ref']])]) if selected_ids: - query="SELECT aaa.code as code, sum(aal.amount) AS amt, sum(aal.unit_amount) AS qty,aaa.name as acc_name,aal.account_id as id FROM account_analytic_line AS aal, account_analytic_account AS aaa \ + query="SELECT aaa.code AS code, SUM(aal.amount) AS amt, SUM(aal.unit_amount) AS qty, aaa.name AS acc_name, aal.account_id AS id FROM account_analytic_line AS aal, account_analytic_account AS aaa \ WHERE aal.account_id=aaa.id AND aal.id IN ("+','.join(map(str,selected_ids))+") AND (aal.journal_id " + journal +") AND aal.date>='"+ str(form['date1']) +"'"" AND aal.date<='" + str(form['date2']) + "'"" GROUP BY aal.account_id,aaa.name,aaa.code ORDER BY aal.account_id" self.cr.execute(query) res = self.cr.dictfetchall() if res: for element in res: - if self.base_amount<>0.00: - element['perc']= (element['amt'] / self.base_amount) * 100.00 + if self.base_amount <> 0.00: + element['perc'] = (element['amt'] / self.base_amount) * 100.00 else: - element['perc']=0.00 + element['perc'] = 0.00 else: - result={} - res=[] - result['id']=acc_id - data_account = acc_pool.browse(self.cr,self.uid,acc_id) - result['acc_name']=data_account.name + result = {} + res = [] + result['id'] = acc_id + data_account = acc_pool.browse(self.cr, self.uid, acc_id) + result['acc_name'] = data_account.name result['code'] = data_account.code - result['amt']=result['qty']=result['perc']=0.00 + result['amt'] = result['qty'] = result['perc'] = 0.00 if not form['empty_line']: res.append(result) else: result = {} res = [] result['id'] = acc_id - data_account = acc_pool.browse(self.cr,self.uid,acc_id) + data_account = acc_pool.browse(self.cr, self.uid, acc_id) result['acc_name'] = data_account.name result['code'] = data_account.code result['amt'] = result['qty'] = result['perc'] = 0.00 diff --git a/addons/account_analytic_plans/wizard/account_crossovered_analytic.py b/addons/account_analytic_plans/wizard/account_crossovered_analytic.py index 97df80e23fc..2b36fec2cc9 100644 --- a/addons/account_analytic_plans/wizard/account_crossovered_analytic.py +++ b/addons/account_analytic_plans/wizard/account_crossovered_analytic.py @@ -18,37 +18,38 @@ # along with this program. If not, see . # ############################################################################## + import time from osv import osv, fields from tools.translate import _ class account_crossovered_analytic(osv.osv_memory): - _name = 'account.crossovered.analytic' - _description = 'Print Crossovered Analytic' + _name = "account.crossovered.analytic" + _description = "Print Crossovered Analytic" _columns = { 'date1': fields.date('Start Date', required=True), 'date2': fields.date('End Date', required=True), 'journal_ids': fields.many2many('account.analytic.journal', 'crossovered_journal_rel', 'crossover_id', 'journal_id', 'Analytic Journal'), 'ref': fields.many2one('account.analytic.account', 'Analytic Account Reference', required=False), 'empty_line': fields.boolean('Dont show empty lines'), - } + } _defaults = { - 'date1': lambda *a: time.strftime('%Y-01-01'), - 'date2': lambda *a: time.strftime('%Y-%m-%d'), - } + 'date1': time.strftime('%Y-01-01'), + 'date2': time.strftime('%Y-%m-%d'), + } def print_report(self, cr, uid, ids, context=None): - cr.execute('select account_id from account_analytic_line') + cr.execute('SELECT account_id FROM account_analytic_line') res = cr.fetchall() acc_ids = [x[0] for x in res] data = self.read(cr, uid, ids, [], context=context)[0] - obj_acc = self.pool.get('account.analytic.account').browse(cr, uid, data['ref']) + obj_acc = self.pool.get('account.analytic.account').browse(cr, uid, data['ref'], context=context) name = obj_acc.name - account_ids = self.pool.get('account.analytic.account').search(cr, uid, [('parent_id', 'child_of', [data['ref']])]) + account_ids = self.pool.get('account.analytic.account').search(cr, uid, [('parent_id', 'child_of', [data['ref']])], context=context) flag = True for acc in account_ids: @@ -62,12 +63,12 @@ class account_crossovered_analytic(osv.osv_memory): 'ids': [], 'model': 'account.analytic.account', 'form': data - } + } return { 'type': 'ir.actions.report.xml', 'report_name': 'account.analytic.account.crossovered.analytic', 'datas': datas, - } + } account_crossovered_analytic() diff --git a/addons/account_analytic_plans/wizard/analytic_plan_create_model.py b/addons/account_analytic_plans/wizard/analytic_plan_create_model.py index dc108d1700a..777421798cd 100644 --- a/addons/account_analytic_plans/wizard/analytic_plan_create_model.py +++ b/addons/account_analytic_plans/wizard/analytic_plan_create_model.py @@ -18,24 +18,26 @@ # along with this program. If not, see . # ############################################################################## + from osv import osv from tools.translate import _ class analytic_plan_create_model(osv.osv_memory): - _name = 'analytic.plan.create.model' - _description = 'analytic.plan.create.model' + _name = "analytic.plan.create.model" + _description = "analytic.plan.create.model" def activate(self, cr, uid, ids, context=None): plan_obj = self.pool.get('account.analytic.plan.instance') mod_obj = self.pool.get('ir.model.data') + anlytic_plan_obj = self.pool.get('account.analytic.plan') if 'active_id' in context and context['active_id']: plan = plan_obj.browse(cr, uid, context['active_id'], context=context) if (not plan.name) or (not plan.code): raise osv.except_osv(_('Error'), _('Please put a name and a code before saving the model !')) - pids = self.pool.get('account.analytic.plan').search(cr, uid, [], context=context) - if (not pids): + pids = anlytic_plan_obj.search(cr, uid, [], context=context) + if not pids: raise osv.except_osv(_('Error'), _('No analytic plan defined !')) - plan_obj.write(cr, uid, [context['active_id']], {'plan_id':pids[0]}) + plan_obj.write(cr, uid, [context['active_id']], {'plan_id':pids[0]}, context=context) model_data_ids = mod_obj.search(cr, uid, [('model', '=', 'ir.ui.view'),('name', '=', 'view_analytic_plan_create_model')], context=context) resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id'] From 6b8353e933af1506a2e5521400ba7effc2bd1c82 Mon Sep 17 00:00:00 2001 From: "ARA (OpenERP)" Date: Mon, 11 Oct 2010 16:58:45 +0530 Subject: [PATCH 38/59] [FIX] Fix the account yml warning bzr revid: ara@tinyerp.com-20101011112845-tii4g0uiokjmdp24 --- addons/account/test/account_report.yml | 58 +++++++++++++------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/addons/account/test/account_report.yml b/addons/account/test/account_report.yml index 7e4295da45b..5bb868cd5d2 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')], {}, {}) @@ -32,7 +32,7 @@ name : Tax Code Test - 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')], {}, {}) @@ -51,7 +51,7 @@ - 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')], {}, {}) @@ -65,6 +65,8 @@ import netsvc, tools, os, time import datetime from mx.DateTime import * + import warnings + warnings.filterwarnings('ignore',".*struct integer overflow masking is deprecated*") start = datetime.date.fromtimestamp(time.mktime(time.strptime(time.strftime('%Y-%m-%d'), "%Y-%m-%d"))) start = DateTime(int(start.year), int(start.month), int(start.day)) res = {} @@ -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) @@ -281,7 +283,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': {'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, {}) @@ -302,9 +304,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 +326,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, {}) From affab14974d28c1da6b672bb924114f9e9c3fb9d Mon Sep 17 00:00:00 2001 From: vth Date: Mon, 11 Oct 2010 18:08:01 +0530 Subject: [PATCH 39/59] [IMP] account payment : For make payment , method directly called from the account_payment.py instead of wizard bzr revid: vth@tinyerp.com-20101011123801-x0oqn20p5azfxkxs --- addons/account_payment/account_payment.py | 14 ++++++-------- addons/account_payment/account_payment_view.xml | 5 ++--- .../account_payment/account_payment_workflow.xml | 8 +++++--- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/addons/account_payment/account_payment.py b/addons/account_payment/account_payment.py index e4a121fb03e..a70e8fb75c3 100644 --- a/addons/account_payment/account_payment.py +++ b/addons/account_payment/account_payment.py @@ -18,6 +18,7 @@ # along with this program. If not, see . # ############################################################################## + import time from osv import osv, fields @@ -118,11 +119,10 @@ class payment_order(osv.osv): self.write(cr, uid, order['id'],{'reference':reference}) return True - def set_done(self, cr, uid, id, *args): - self.write(cr,uid,id,{'date_done': time.strftime('%Y-%m-%d'), - 'state': 'done',}) + def set_done(self, cr, uid, ids, *args): wf_service = netsvc.LocalService("workflow") - wf_service.trg_validate(uid, 'payment.order', id, 'done', cr) + self.write(cr, uid, ids, {'date_done': time.strftime('%Y-%m-%d')}) + wf_service.trg_validate(uid, 'payment.order', ids[0], 'done', cr) return True def copy(self, cr, uid, id, default={}, context=None): @@ -162,7 +162,6 @@ class payment_line(osv.osv): _name = 'payment.line' _description = 'Payment Line' - def translate(self, orig): return { "due_date": "date_maturity", @@ -337,7 +336,7 @@ class payment_line(osv.osv): _defaults = { 'name': lambda obj, cursor, user, context: obj.pool.get('ir.sequence' ).get(cursor, user, 'payment.line'), - 'state': lambda *args: 'normal', + 'state': 'normal', 'currency': _get_currency, 'company_currency': _get_currency, 'date': _get_date, @@ -438,5 +437,4 @@ class payment_line(osv.osv): payment_line() -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/account_payment/account_payment_view.xml b/addons/account_payment/account_payment_view.xml index e9238ec62f9..01c8965f9a4 100644 --- a/addons/account_payment/account_payment_view.xml +++ b/addons/account_payment/account_payment_view.xml @@ -142,7 +142,7 @@