+ Payments are used to register liquidity movements (send, collect or transfer money).
+ You can then process those payments by your own means or by using installed facilities.
+
@@ -275,8 +279,10 @@
inline
-
+
+
diff --git a/addons/account_asset/account_asset.py b/addons/account_asset/account_asset.py
index 1372e16e4da..7a326a8df7a 100644
--- a/addons/account_asset/account_asset.py
+++ b/addons/account_asset/account_asset.py
@@ -243,16 +243,14 @@ class account_asset_asset(osv.osv):
'company_id': fields.many2one('res.company', 'Company', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'note': fields.text('Note'),
'category_id': fields.many2one('account.asset.category', 'Asset Category', required=True, change_default=True, readonly=True, states={'draft':[('readonly',False)]}),
- 'parent_id': fields.many2one('account.asset.asset', 'Parent Asset', readonly=True, states={'draft':[('readonly',False)]}),
- 'child_ids': fields.one2many('account.asset.asset', 'parent_id', 'Children Assets', copy=True),
'purchase_date': fields.date('Purchase Date', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'state': fields.selection([('draft','Draft'),('open','Running'),('close','Close')], 'Status', required=True, copy=False,
help="When an asset is created, the status is 'Draft'.\n" \
"If the asset is confirmed, the status goes in 'Running' and the depreciation lines can be posted in the accounting.\n" \
"You can manually close an asset when the depreciation is over. If the last line of depreciation is posted, the asset automatically goes in that status."),
'active': fields.boolean('Active'),
- 'partner_id': fields.many2one('res.partner', 'Partner', readonly=True, states={'draft':[('readonly',False)]}),
- 'method': fields.selection([('linear','Linear: Computed on basis of Gross Value / Number of Depreciations'),('degressive','Degressive: Computed on basis of Residual Value * Degressive Factor')], 'Computation Method', required=True, readonly=True, states={'draft':[('readonly',False)]}, help="Choose the method to use to compute the amount of depreciation lines.\n"\
+ 'partner_id': fields.many2one('res.partner', 'Supplier', readonly=True, states={'draft':[('readonly',False)]}),
+ 'method': fields.selection([('linear','Linear'),('degressive','Degressive')], 'Computation Method', required=True, readonly=True, states={'draft':[('readonly',False)]}, help="Choose the method to use to compute the amount of depreciation lines.\n"\
" * Linear: Calculated on basis of: Gross Value / Number of Depreciations\n" \
" * Degressive: Calculated on basis of: Residual Value * Degressive Factor"),
'method_number': fields.integer('Number of Depreciations', readonly=True, states={'draft':[('readonly',False)]}, help="The number of depreciations needed to depreciate your asset"),
@@ -293,7 +291,6 @@ class account_asset_asset(osv.osv):
return True
_constraints = [
- (_check_recursion, 'Error ! You cannot create recursive assets.', ['parent_id']),
(_check_prorata, 'Prorata temporis can be applied only for time method "number of depreciations".', ['prorata']),
]
diff --git a/addons/account_asset/account_asset_demo.yml b/addons/account_asset/account_asset_demo.yml
index b5381b1e73c..cdfdfbbbd46 100644
--- a/addons/account_asset/account_asset_demo.yml
+++ b/addons/account_asset/account_asset_demo.yml
@@ -43,7 +43,6 @@
'name': 'V6 Engine and 10 inches tires',
'purchase_value': 2800.0,
'category_id': ref('account_asset_category_fixedassets0'),
- 'parent_id': ref('account_asset_asset_vehicles0'),
}
self._update(cr, uid, 'account.asset.asset', 'account_asset', vals, 'account_asset_asset_cab0')
vals = {
diff --git a/addons/account_asset/account_asset_view.xml b/addons/account_asset/account_asset_view.xml
index 901b9372970..d5a9f609329 100644
--- a/addons/account_asset/account_asset_view.xml
+++ b/addons/account_asset/account_asset_view.xml
@@ -98,7 +98,6 @@
-
@@ -179,7 +178,6 @@
account.asset.asset.treeaccount.asset.asset
- child_ids
@@ -198,7 +196,6 @@
account.asset.asset.hierarchyaccount.asset.asset
- child_ids
@@ -277,7 +274,7 @@
Asset Hierarchyaccount.asset.assettree
- [('parent_id','=',False)]
+ []
diff --git a/addons/account_asset/test/account_asset_demo_test.xml b/addons/account_asset/test/account_asset_demo_test.xml
index ff968e904e2..4fbfd8e4a44 100644
--- a/addons/account_asset/test/account_asset_demo_test.xml
+++ b/addons/account_asset/test/account_asset_demo_test.xml
@@ -54,7 +54,6 @@
V6 Engine and 10 inches tires
-
diff --git a/addons/account_voucher/__init__.py b/addons/account_voucher/__init__.py
index ecb9dbc9202..74022c65875 100644
--- a/addons/account_voucher/__init__.py
+++ b/addons/account_voucher/__init__.py
@@ -20,4 +20,3 @@
##############################################################################
import account_voucher
-import report
diff --git a/addons/account_voucher/__openerp__.py b/addons/account_voucher/__openerp__.py
index 52758f6e488..bd7a34b4c58 100644
--- a/addons/account_voucher/__openerp__.py
+++ b/addons/account_voucher/__openerp__.py
@@ -51,7 +51,6 @@ This module manages:
'security/ir.model.access.csv',
'account_voucher_view.xml',
'voucher_sales_purchase_view.xml',
- 'report/account_voucher_sales_receipt_view.xml',
'security/account_voucher_security.xml',
'account_voucher_data.xml',
],
diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py
index e12b265cea4..ae4b436baa1 100644
--- a/addons/account_voucher/account_voucher.py
+++ b/addons/account_voucher/account_voucher.py
@@ -100,7 +100,7 @@ class AccountVoucher(models.Model):
\n* The \'Pro-forma\' when voucher is in Pro-forma status,voucher does not have an voucher number. \
\n* The \'Posted\' status is used when user create voucher,a voucher number is generated and voucher entries are created in account \
\n* The \'Cancelled\' status is used when user cancel voucher.')
- reference = fields.Char('Supplier Reference', readonly=True, states={'draft': [('readonly', False)]},
+ reference = fields.Char('Bill Reference', readonly=True, states={'draft': [('readonly', False)]},
help="The partner reference of this document.", copy=False)
amount = fields.Monetary(string='Total', store=True, readonly=True, compute='_compute_total')
tax_amount = fields.Monetary(readonly=True, store=True, compute='_compute_total')
@@ -111,7 +111,7 @@ class AccountVoucher(models.Model):
paid = fields.Boolean(compute='_check_paid', help="The Voucher has been totally paid.")
pay_now = fields.Selection([
('pay_now', 'Pay Directly'),
- ('pay_later', 'Pay Later or Group Funds'),
+ ('pay_later', 'Pay Later'),
], 'Payment', select=True, readonly=True, states={'draft': [('readonly', False)]}, default='pay_now')
date_due = fields.Date('Due Date', readonly=True, select=True, states={'draft': [('readonly', False)]})
audit = fields.Boolean('To Review', related="move_id.to_check", help='Check this box if you are unsure of that journal entry and if you want to note it as \'to be reviewed\' by an accounting expert.')
diff --git a/addons/account_voucher/report/__init__.py b/addons/account_voucher/report/__init__.py
deleted file mode 100644
index a5e5272517b..00000000000
--- a/addons/account_voucher/report/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# 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 .
-#
-##############################################################################
-
-import account_voucher_sales_receipt
diff --git a/addons/account_voucher/report/account_voucher_sales_receipt.py b/addons/account_voucher/report/account_voucher_sales_receipt.py
deleted file mode 100644
index d3d43d579f8..00000000000
--- a/addons/account_voucher/report/account_voucher_sales_receipt.py
+++ /dev/null
@@ -1,114 +0,0 @@
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# 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 .
-#
-##############################################################################
-
-from openerp import tools
-from openerp import models, fields
-
-class sale_receipt_report(models.Model):
- _name = "sale.receipt.report"
- _description = "Sales Receipt Statistics"
- _auto = False
- _rec_name = 'date'
- date = fields.Date(readonly=True)
- currency_id = fields.Many2one('res.currency', string='Currency', readonly=True)
- journal_id = fields.Many2one('account.journal', string='Journal', readonly=True)
- partner_id = fields.Many2one('res.partner', string='Partner', readonly=True)
- company_id = fields.Many2one('res.company', string='Company', readonly=True)
- user_id = fields.Many2one('res.users', string='Salesperson', readonly=True)
- price_total = fields.Float(string='Total Without Tax', readonly=True)
- price_total_tax = fields.Float(string='Total With Tax', readonly=True)
- nbr = fields.Integer(string='# of Voucher Lines', readonly=True)
- type = fields.Selection([
- ('sale', 'Sale'),
- ('purchase', 'Purchase'),
- ], readonly=True)
- state = fields.Selection([
- ('draft', 'Draft'),
- ('proforma', 'Pro-forma'),
- ('posted', 'Posted'),
- ('cancel', 'Cancelled')
- ], string='Voucher Status', readonly=True)
- pay_now = fields.Selection([
- ('pay_now', 'Pay Directly'),
- ('pay_later', 'Pay Later or Group Funds'),
- ], string='Payment', readonly=True)
- date_due = fields.Date(string='Due Date', readonly=True)
- account_id = fields.Many2one('account.account', string='Account', readonly=True, domain=[('deprecated', '=', False)])
- delay_to_pay = fields.Float(string='Avg. Delay To Pay', readonly=True, group_operator="avg")
- due_delay = fields.Float(string='Avg. Due Delay', readonly=True, group_operator="avg")
-
- _order = 'date desc'
-
- def init(self, cr):
- tools.drop_view_if_exists(cr, 'sale_receipt_report')
- cr.execute("""
- create or replace view sale_receipt_report as (
- select min(avl.id) as id,
- av.date as date,
- av.partner_id as partner_id,
- aj.currency_id as currency_id,
- av.journal_id as journal_id,
- rp.user_id as user_id,
- av.company_id as company_id,
- count(avl.*) as nbr,
- av.voucher_type as type,
- av.state,
- av.pay_now,
- av.date_due as date_due,
- av.account_id as account_id,
- sum(av.amount-av.tax_amount)/(select count(l.id) from account_voucher_line as l
- left join account_voucher as a ON (a.id=l.voucher_id)
- where a.id=av.id) as price_total,
- sum(av.amount)/(select count(l.id) from account_voucher_line as l
- left join account_voucher as a ON (a.id=l.voucher_id)
- where a.id=av.id) as price_total_tax,
- sum((select extract(epoch from avg(date_trunc('day',aml.date)-date_trunc('day',l.create_date)))/(24*60*60)::decimal(16,2)
- from account_move_line as aml
- left join account_voucher as a ON (a.move_id=aml.move_id)
- left join account_voucher_line as l ON (a.id=l.voucher_id)
- where a.id=av.id)) as delay_to_pay,
- sum((select extract(epoch from avg(date_trunc('day',a.date_due)-date_trunc('day',a.date)))/(24*60*60)::decimal(16,2)
- from account_move_line as aml
- left join account_voucher as a ON (a.move_id=aml.move_id)
- left join account_voucher_line as l ON (a.id=l.voucher_id)
- where a.id=av.id)) as due_delay
- from account_voucher_line as avl
- left join account_voucher as av on (av.id=avl.voucher_id)
- left join res_partner as rp ON (rp.id=av.partner_id)
- left join account_journal as aj ON (aj.id=av.journal_id)
- where av.voucher_type='sale' and aj.type='sale'
- group by
- av.date,
- av.id,
- av.partner_id,
- aj.currency_id,
- av.journal_id,
- rp.user_id,
- av.company_id,
- av.voucher_type,
- av.state,
- av.date_due,
- av.account_id,
- av.tax_amount,
- av.amount,
- av.tax_amount,
- av.pay_now
- )
- """)
diff --git a/addons/account_voucher/report/account_voucher_sales_receipt_view.xml b/addons/account_voucher/report/account_voucher_sales_receipt_view.xml
deleted file mode 100644
index c43175438d4..00000000000
--- a/addons/account_voucher/report/account_voucher_sales_receipt_view.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
- sale.receipt.report.pivot
- sale.receipt.report
-
-
-
-
-
-
-
-
-
-
- sale.receipt.report.graph
- sale.receipt.report
-
-
-
-
-
-
-
-
-
-
- sale.receipt.report.search
- sale.receipt.report
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Sales Receipts Analysis
- sale.receipt.report
- form
- pivot,graph
- {'search_default_year':1,'search_default_month':1,'search_default_partner':1, 'search_default_customer':1}
-
-
-
- From this report, you can have an overview of the amount invoiced
- to your customer as well as payment delays. The tool search can
- also be used to personalise your Invoices reports and so, match
- this analysis to your needs.
-
+ Odoo will ensure the whole process is followed; the expense
+ sheet is validated by manager(s), the employee is reimbursed
+ from his expenses, some expenses must be re-invoiced to the
+ customers.
+