diff --git a/addons/account/__openerp__.py b/addons/account/__openerp__.py
index fba1bd8736f..27aca6fb9fa 100644
--- a/addons/account/__openerp__.py
+++ b/addons/account/__openerp__.py
@@ -106,6 +106,7 @@ module named account_voucher.
'partner_view.xml',
'data/account_data.xml',
'data/data_account_type.xml',
+ 'data/configurable_account_chart.xml',
'account_invoice_workflow.xml',
'project/project_view.xml',
'project/project_report.xml',
diff --git a/addons/account/account_analytic_line.py b/addons/account/account_analytic_line.py
index da0bc96bda9..280b813380f 100644
--- a/addons/account/account_analytic_line.py
+++ b/addons/account/account_analytic_line.py
@@ -27,7 +27,7 @@ class account_analytic_line(osv.osv):
_inherit = 'account.analytic.line'
_description = 'Analytic Line'
_columns = {
- 'product_uom_id': fields.many2one('product.uom', 'UoM'),
+ 'product_uom_id': fields.many2one('product.uom', 'Unit of Measure'),
'product_id': fields.many2one('product.product', 'Product'),
'general_account_id': fields.many2one('account.account', 'General Account', required=True, ondelete='restrict'),
'move_id': fields.many2one('account.move.line', 'Move Line', ondelete='cascade', select=True),
diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py
index 17120ee265e..573b8f17524 100644
--- a/addons/account/account_move_line.py
+++ b/addons/account/account_move_line.py
@@ -474,7 +474,7 @@ class account_move_line(osv.osv):
_columns = {
'name': fields.char('Name', size=64, required=True),
'quantity': fields.float('Quantity', digits=(16,2), help="The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports."),
- 'product_uom_id': fields.many2one('product.uom', 'UoM'),
+ 'product_uom_id': fields.many2one('product.uom', 'Unit of Measure'),
'product_id': fields.many2one('product.product', 'Product'),
'debit': fields.float('Debit', digits_compute=dp.get_precision('Account')),
'credit': fields.float('Credit', digits_compute=dp.get_precision('Account')),
diff --git a/addons/account/configurable_account_chart.xml b/addons/account/data/configurable_account_chart.xml
similarity index 100%
rename from addons/account/configurable_account_chart.xml
rename to addons/account/data/configurable_account_chart.xml
diff --git a/addons/account/installer.py b/addons/account/installer.py
index f0111d6645a..dc072787f96 100644
--- a/addons/account/installer.py
+++ b/addons/account/installer.py
@@ -123,11 +123,6 @@ class account_installer(osv.osv_memory):
context = {}
fy_obj = self.pool.get('account.fiscalyear')
for res in self.read(cr, uid, ids, context=context):
- if 'charts' in res and res['charts'] == 'configurable':
- #load generic chart of account
- fp = tools.file_open(opj('account', 'configurable_account_chart.xml'))
- tools.convert_xml_import(cr, 'account', fp, {}, 'init', True, None)
- fp.close()
if 'date_start' in res and 'date_stop' in res:
f_ids = fy_obj.search(cr, uid, [('date_start', '<=', res['date_start']), ('date_stop', '>=', res['date_stop']), ('company_id', '=', res['company_id'][0])], context=context)
if not f_ids:
diff --git a/addons/account/report/account_analytic_entries_report.py b/addons/account/report/account_analytic_entries_report.py
index 1b7e7f9a84b..02c1c508237 100644
--- a/addons/account/report/account_analytic_entries_report.py
+++ b/addons/account/report/account_analytic_entries_report.py
@@ -43,7 +43,7 @@ class analytic_entries_report(osv.osv):
'journal_id': fields.many2one('account.analytic.journal', 'Journal', required=True),
'move_id': fields.many2one('account.move.line', 'Move', required=True),
'product_id': fields.many2one('product.product', 'Product', required=True),
- 'product_uom_id': fields.many2one('product.uom', 'Product UOM', required=True),
+ 'product_uom_id': fields.many2one('product.uom', 'Product Unit of Measure', required=True),
'amount': fields.float('Amount', readonly=True),
'unit_amount': fields.float('Quantity', readonly=True),
'nbr': fields.integer('#Entries', readonly=True),
diff --git a/addons/account/report/account_analytic_entries_report_view.xml b/addons/account/report/account_analytic_entries_report_view.xml
index 4e8f708b62e..b7fe606a83e 100644
--- a/addons/account/report/account_analytic_entries_report_view.xml
+++ b/addons/account/report/account_analytic_entries_report_view.xml
@@ -76,7 +76,7 @@
-
+
diff --git a/addons/account/report/account_entries_report.py b/addons/account/report/account_entries_report.py
index 29e40c7d5ad..56085b13453 100644
--- a/addons/account/report/account_entries_report.py
+++ b/addons/account/report/account_entries_report.py
@@ -50,7 +50,7 @@ class account_entries_report(osv.osv):
'journal_id': fields.many2one('account.journal', 'Journal', readonly=True),
'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', readonly=True),
'product_id': fields.many2one('product.product', 'Product', readonly=True),
- 'product_uom_id': fields.many2one('product.uom', 'Product UOM', readonly=True),
+ 'product_uom_id': fields.many2one('product.uom', 'Product Unit of Measure', readonly=True),
'move_state': fields.selection([('draft','Unposted'), ('posted','Posted')], 'State', readonly=True),
'move_line_state': fields.selection([('draft','Unbalanced'), ('valid','Valid')], 'State of Move Line', readonly=True),
'reconcile_id': fields.many2one('account.move.reconcile', readonly=True),
diff --git a/addons/account/report/account_invoice_report.py b/addons/account/report/account_invoice_report.py
index 2fbe641dba3..f50ee46d63e 100644
--- a/addons/account/report/account_invoice_report.py
+++ b/addons/account/report/account_invoice_report.py
@@ -36,7 +36,7 @@ class account_invoice_report(osv.osv):
('10','October'), ('11','November'), ('12','December')], 'Month', readonly=True),
'product_id': fields.many2one('product.product', 'Product', readonly=True),
'product_qty':fields.float('Qty', readonly=True),
- 'uom_name': fields.char('Reference UoM', size=128, readonly=True),
+ 'uom_name': fields.char('Reference Unit of Measure', size=128, readonly=True),
'payment_term': fields.many2one('account.payment.term', 'Payment Term', readonly=True),
'period_id': fields.many2one('account.period', 'Force Period', domain=[('state','<>','done')], readonly=True),
'fiscal_position': fields.many2one('account.fiscal.position', 'Fiscal Position', readonly=True),
diff --git a/addons/account/res_config.py b/addons/account/res_config.py
index ebdf84be35e..c1b9bfb3007 100644
--- a/addons/account/res_config.py
+++ b/addons/account/res_config.py
@@ -36,11 +36,11 @@ class account_config_settings(osv.osv_memory):
_columns = {
'company_id': fields.many2one('res.company', 'Company', required=True),
'has_default_company': fields.boolean('Has default company', readonly=True),
-
'expects_chart_of_accounts': fields.related('company_id', 'expects_chart_of_accounts', type='boolean',
- string='Chart of Accounts for this Company'),
+ string='Chart of Accounts for this Company',
+ help="""Check this box if this company is a legal entity."""),
'currency_id': fields.related('company_id', 'currency_id', type='many2one', relation='res.currency', required=True,
- string='Main currency', help="Main currency of the company."),
+ string='Default Company Currency', help="Main currency of the company."),
'paypal_account': fields.related('company_id', 'paypal_account', type='char', size=128,
string='Paypal account', help="Paypal account (email) for receiving online payments (credit card, etc.)"),
'company_footer': fields.related('company_id', 'rml_footer2', type='char', size=250, readonly=True,
@@ -74,22 +74,22 @@ class account_config_settings(osv.osv_memory):
'purchase_refund_sequence_prefix': fields.related('purchase_refund_journal_id', 'sequence_id', 'prefix', type='char', string='Supplier Refund Sequence'),
'purchase_refund_sequence_next': fields.related('purchase_refund_journal_id', 'sequence_id', 'number_next', type='integer', string='Next Supplier Refund Number'),
- 'module_account_check_writing': fields.boolean('Support check writings',
+ 'module_account_check_writing': fields.boolean('Check Writing',
help="""This allows you to check writing and printing.
This installs the module account_check_writing."""),
'module_account_accountant': fields.boolean('Accountant Features',
- help="""This allows you to access all the accounting features, like the journal items and the chart of accounts.
- This installs the module account_accountant."""),
+ help="""If you do not check this box, you will be able to do Invoicing & Payments, but not accounting (Journal Items, Chart of Accounts, ...)."""),
'module_account_asset': fields.boolean('Assets Management',
help="""This allows you to manage the assets owned by a company or a person.
It keeps track of the depreciation occurred on those assets, and creates account move for those depreciation lines.
- This installs the module account_asset."""),
- 'module_account_budget': fields.boolean('Budgets Management',
+ This installs the module account_asset. If you do not check this box, you will be able to do invoicing & payments,
+ but not accounting (Journal Items, Chart of Accounts, ...) """),
+ 'module_account_budget': fields.boolean('Budget Management',
help="""This allows accountants to manage analytic and crossovered budgets.
Once the master budgets and the budgets are defined,
the project managers can set the planned amount on each analytic account.
This installs the module account_budget."""),
- 'module_account_payment': fields.boolean('Supplier Payment Orders',
+ 'module_account_payment': fields.boolean('Manage Payment Orders',
help="""This allows you to create and manage your payment orders, with purposes to
* serve as base for an easy plug-in of various automated payment mechanisms, and
* provide a more efficient way to manage invoice payments.
@@ -97,17 +97,10 @@ class account_config_settings(osv.osv_memory):
'module_account_voucher': fields.boolean('Manage Customer Payments',
help="""This includes all the basic requirements of voucher entries for bank, cash, sales, purchase, expense, contra, etc.
This installs the module account_voucher."""),
- 'module_account_followup': fields.boolean('Customer Follow-Ups',
+ 'module_account_followup': fields.boolean('Manage Customer Payment Follow-Ups',
help="""This allows to automate letters for unpaid invoices, with multi-level recalls.
This installs the module account_followup."""),
- 'module_account_analytic_plans': fields.boolean('Support Multiple Analytic Plans',
- help="""This allows to use several analytic plans, according to the general journal.
- This installs the module account_analytic_plans."""),
- 'module_account_analytic_default': fields.boolean('Rules for Analytic Assignation',
- help="""Set default values for your analytic accounts.
- Allows to automatically select analytic accounts based on criteria like product, partner, user, company, date.
- This installs the module account_analytic_default."""),
- 'module_account_invoice_layout': fields.boolean('Allow notes and subtotals',
+ 'module_account_invoice_layout': fields.boolean('Allow Notes and Subtotals',
help="""This provides some features to improve the layout of invoices.
It gives you the possibility to:
* order all the lines of an invoice
@@ -118,9 +111,10 @@ class account_config_settings(osv.osv_memory):
'group_proforma_invoices': fields.boolean('Allow Pro-forma Invoices',
implied_group='account.group_proforma_invoices',
help="Allows you to put invoices in pro-forma state."),
-
'default_sale_tax': fields.many2one('account.tax', 'Default Sale Tax'),
'default_purchase_tax': fields.many2one('account.tax', 'Default Purchase Tax'),
+ 'decimal_precision': fields.integer('Decimal Precision',
+ help="""Set the decimal precision for rounding results in accounting."""),
}
def _default_company(self, cr, uid, context=None):
@@ -279,4 +273,13 @@ class account_config_settings(osv.osv_memory):
elif config.period == '3months':
fiscalyear.create_period3(cr, uid, [fiscalyear_id])
+ def get_default_dp(self, cr, uid, fields, context=None):
+ dp = self.pool.get('ir.model.data').get_object(cr, uid, 'product','decimal_account')
+ return {'decimal_precision': dp.digits}
+
+ def set_default_dp(self, cr, uid, ids, context=None):
+ config = self.browse(cr, uid, ids[0], context)
+ dp = self.pool.get('ir.model.data').get_object(cr, uid, 'product','decimal_account')
+ dp.write({'digits': config.decimal_precision})
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/res_config_view.xml b/addons/account/res_config_view.xml
index 115ba8e8431..049cb367e63 100644
--- a/addons/account/res_config_view.xml
+++ b/addons/account/res_config_view.xml
@@ -22,16 +22,17 @@
+
-
+
@@ -56,22 +57,31 @@
-
+
-
+
+
-
+
+
+
+
+
-
+
+
+
+
+
@@ -80,9 +90,17 @@
-
+
+
+
+
+
-
+
+
+
+
+
@@ -96,11 +114,9 @@
-
-
-
-
-
+
+
+
diff --git a/addons/account/wizard/account_invoice_refund.py b/addons/account/wizard/account_invoice_refund.py
index 6cba6ffa826..fea020b5c4b 100644
--- a/addons/account/wizard/account_invoice_refund.py
+++ b/addons/account/wizard/account_invoice_refund.py
@@ -32,11 +32,11 @@ class account_invoice_refund(osv.osv_memory):
_name = "account.invoice.refund"
_description = "Invoice Refund"
_columns = {
- 'date': fields.date('Operation date', help='This date will be used as the invoice date for Refund Invoice and Period will be chosen accordingly!'),
+ 'date': fields.date('Operation Date', help='This date will be used as the invoice date for credit note and period will be chosen accordingly!'),
'period': fields.many2one('account.period', 'Force period'),
- 'journal_id': fields.many2one('account.journal', 'Refund Journal', help='You can select here the journal to use for the refund invoice that will be created. If you leave that field empty, it will use the same journal as the current invoice.'),
+ 'journal_id': fields.many2one('account.journal', 'Refund Journal', help='You can select here the journal to use for the credit note that will be created. If you leave that field empty, it will use the same journal as the current invoice.'),
'description': fields.char('Description', size=128, required=True),
- 'filter_refund': fields.selection([('refund', 'Create a draft Refund'), ('cancel', 'Cancel: refund invoice and reconcile'),('modify', 'Modify: refund invoice, reconcile and create a new draft invoice')], "Refund Method", required=True, help='Refund invoice base on this type. You can not Modify and Cancel if the invoice is already reconciled'),
+ 'filter_refund': fields.selection([('refund', 'Create a draft refund'), ('cancel', 'Cancel: create credit note and reconcile'),('modify', 'Modify: create credit note, reconcile and create a new draft invoice')], "Refund Method", required=True, help='Credit note base on this type. You can not Modify and Cancel if the invoice is already reconciled'),
}
def _get_journal(self, cr, uid, context=None):
diff --git a/addons/account/wizard/account_invoice_refund_view.xml b/addons/account/wizard/account_invoice_refund_view.xml
index c68c9162ce4..57edd62f575 100644
--- a/addons/account/wizard/account_invoice_refund_view.xml
+++ b/addons/account/wizard/account_invoice_refund_view.xml
@@ -7,8 +7,8 @@
account.invoice.refundform
-
diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py
index 6e7db83bbb7..b0706b03719 100644
--- a/addons/hr_expense/hr_expense.py
+++ b/addons/hr_expense/hr_expense.py
@@ -260,7 +260,7 @@ class hr_expense_line(osv.osv):
'unit_amount': fields.float('Unit Price', digits_compute=dp.get_precision('Account')),
'unit_quantity': fields.float('Quantities' ),
'product_id': fields.many2one('product.product', 'Product', domain=[('hr_expense_ok','=',True)]),
- 'uom_id': fields.many2one('product.uom', 'UoM'),
+ 'uom_id': fields.many2one('product.uom', 'Unit of Measure'),
'description': fields.text('Description'),
'analytic_account': fields.many2one('account.analytic.account','Analytic account'),
'ref': fields.char('Reference', size=32),
diff --git a/addons/hr_expense/hr_expense_installer_view.xml b/addons/hr_expense/hr_expense_installer_view.xml
index baabddea059..2f945c6fbcd 100644
--- a/addons/hr_expense/hr_expense_installer_view.xml
+++ b/addons/hr_expense/hr_expense_installer_view.xml
@@ -10,7 +10,7 @@
-
+
diff --git a/addons/hr_holidays/hr_holidays_data.xml b/addons/hr_holidays/hr_holidays_data.xml
index e7837bc9839..d87e347a1d0 100644
--- a/addons/hr_holidays/hr_holidays_data.xml
+++ b/addons/hr_holidays/hr_holidays_data.xml
@@ -4,7 +4,7 @@
- Legal Leaves
+ black
diff --git a/addons/hr_payroll/res_config_view.xml b/addons/hr_payroll/res_config_view.xml
index f2d5886865d..c2f760d8864 100644
--- a/addons/hr_payroll/res_config_view.xml
+++ b/addons/hr_payroll/res_config_view.xml
@@ -7,10 +7,9 @@
form
-
-
+
-
+
diff --git a/addons/hr_recruitment/res_config.py b/addons/hr_recruitment/res_config.py
index eeb36b60ae7..6fe0a7b88dd 100644
--- a/addons/hr_recruitment/res_config.py
+++ b/addons/hr_recruitment/res_config.py
@@ -26,7 +26,7 @@ class hr_applicant_settings(osv.osv_memory):
_inherit = ['hr.config.settings', 'fetchmail.config.settings']
_columns = {
- 'module_document_ftp': fields.boolean('Index & Track Documents',
+ 'module_document_ftp': fields.boolean('Automatic Indexation of Resumes',
help="""Manage your CV's and motivation letter related to all applicants.
This installs the module document_ftp."""),
'fetchmail_applicants': fields.boolean('Create Applicants from Incoming Mails', readonly=True,
diff --git a/addons/hr_timesheet/hr_timesheet.py b/addons/hr_timesheet/hr_timesheet.py
index 1e15e5b19b1..12fbbcdedef 100644
--- a/addons/hr_timesheet/hr_timesheet.py
+++ b/addons/hr_timesheet/hr_timesheet.py
@@ -31,7 +31,7 @@ class hr_employee(osv.osv):
_columns = {
'product_id': fields.many2one('product.product', 'Product', help="Specifies employee's designation as a product with type 'service'."),
'journal_id': fields.many2one('account.analytic.journal', 'Analytic Journal'),
- 'uom_id': fields.related('product_id', 'uom_id', type='many2one', relation='product.uom', string='UoM', store=True, readonly=True)
+ 'uom_id': fields.related('product_id', 'uom_id', type='many2one', relation='product.uom', string='Unit of Measure', store=True, readonly=True)
}
def _getAnalyticJournal(self, cr, uid, context=None):
diff --git a/addons/hr_timesheet_invoice/report/report_analytic.py b/addons/hr_timesheet_invoice/report/report_analytic.py
index d2db7fd4027..7c6651301d2 100644
--- a/addons/hr_timesheet_invoice/report/report_analytic.py
+++ b/addons/hr_timesheet_invoice/report/report_analytic.py
@@ -70,7 +70,7 @@ class report_account_analytic_line_to_invoice(osv.osv):
'name': fields.char('Year',size=64,required=False, readonly=True),
'product_id':fields.many2one('product.product', 'Product', readonly=True),
'account_id':fields.many2one('account.analytic.account', 'Analytic account', readonly=True),
- 'product_uom_id':fields.many2one('product.uom', 'UoM', readonly=True),
+ 'product_uom_id':fields.many2one('product.uom', 'Unit of Measure', readonly=True),
'unit_amount': fields.float('Units', readonly=True),
'sale_price': fields.float('Sale price', readonly=True, digits_compute=dp.get_precision('Sale Price')),
'amount': fields.float('Amount', readonly=True, digits_compute=dp.get_precision('Account')),
diff --git a/addons/hr_timesheet_sheet/res_config.py b/addons/hr_timesheet_sheet/res_config.py
index d7df5950200..24566d668da 100644
--- a/addons/hr_timesheet_sheet/res_config.py
+++ b/addons/hr_timesheet_sheet/res_config.py
@@ -26,7 +26,7 @@ class hr_timesheet_settings(osv.osv_memory):
_columns = {
'timesheet_range': fields.selection([('day','Day'),('week','Week'),('month','Month')],
- 'Timesheet Range', help="Periodicity on which you validate your timesheets."),
+ 'Validate Timesheets Every', help="Periodicity on which you validate your timesheets."),
'timesheet_max_difference': fields.float('Timesheet Allowed Difference (Hours)',
help="""Allowed difference in hours between the sign in/out and the timesheet
computation for one sheet. Set this to 0 if you do not want any control."""),
diff --git a/addons/hr_timesheet_sheet/res_config_view.xml b/addons/hr_timesheet_sheet/res_config_view.xml
index c789bd5106e..6d8c998eec7 100644
--- a/addons/hr_timesheet_sheet/res_config_view.xml
+++ b/addons/hr_timesheet_sheet/res_config_view.xml
@@ -7,11 +7,11 @@
form
-
-
-
-
-
+
+
+
+
+
diff --git a/addons/knowledge/res_config.py b/addons/knowledge/res_config.py
index a43d4377bcd..3f9c5b840f7 100644
--- a/addons/knowledge/res_config.py
+++ b/addons/knowledge/res_config.py
@@ -25,9 +25,9 @@ class knowledge_config_settings(osv.osv_memory):
_name = 'knowledge.config.settings'
_inherit = 'res.config.settings'
_columns = {
- 'module_wiki_faq': fields.boolean('Use a Wiki for Frequently Asked Questions',
+ 'module_wiki_faq': fields.boolean('Internal FAQ as a Wiki',
help="""This installs the module wiki_faq."""),
- 'module_wiki_quality_manual': fields.boolean('Track Quality with a Wiki',
+ 'module_wiki_quality_manual': fields.boolean('Quality Manual as a Wiki',
help="""This installs the module wiki_quality_manual."""),
'module_document': fields.boolean('Document Management',
help="""This is a complete document management system, with: user authentication,
diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py
index 88908884b26..135ae50a71b 100644
--- a/addons/mrp/mrp.py
+++ b/addons/mrp/mrp.py
@@ -206,8 +206,8 @@ class mrp_bom(osv.osv):
'product_id': fields.many2one('product.product', 'Product', required=True),
'product_uos_qty': fields.float('Product UOS Qty'),
'product_uos': fields.many2one('product.uom', 'Product UOS', help="Product UOS (Unit of Sale) is the unit of measurement for the invoicing and promotion of stock."),
- 'product_qty': fields.float('Product Qty', required=True, digits_compute=dp.get_precision('Product UoM')),
- 'product_uom': fields.many2one('product.uom', 'Product UOM', required=True, help="UoM (Unit of Measure) is the unit of measurement for the inventory control"),
+ 'product_qty': fields.float('Product Qty', required=True, digits_compute=dp.get_precision('Product Unit of Measure')),
+ 'product_uom': fields.many2one('product.uom', 'Product Unit of Measure', required=True, help="Unit of Measure (Unit of Measure) is the unit of measurement for the inventory control"),
'product_rounding': fields.float('Product Rounding', help="Rounding applied on the product quantity."),
'product_efficiency': fields.float('Manufacturing Efficiency', required=True, help="A factor of 0.9 means a loss of 10% within the production process."),
'bom_lines': fields.one2many('mrp.bom', 'bom_id', 'BoM Lines'),
@@ -454,8 +454,8 @@ class mrp_production(osv.osv):
'priority': fields.selection([('0','Not urgent'),('1','Normal'),('2','Urgent'),('3','Very Urgent')], 'Priority', select=True),
'product_id': fields.many2one('product.product', 'Product', required=True, readonly=True, states={'draft':[('readonly',False)]}),
- 'product_qty': fields.float('Product Qty', digits_compute=dp.get_precision('Product UoM'), required=True, states={'draft':[('readonly',False)]}, readonly=True),
- 'product_uom': fields.many2one('product.uom', 'Product UOM', required=True, states={'draft':[('readonly',False)]}, readonly=True),
+ 'product_qty': fields.float('Product Qty', digits_compute=dp.get_precision('Product Unit of Measure'), required=True, states={'draft':[('readonly',False)]}, readonly=True),
+ 'product_uom': fields.many2one('product.uom', 'Product Unit of Measure', required=True, states={'draft':[('readonly',False)]}, readonly=True),
'product_uos_qty': fields.float('Product UoS Qty', states={'draft':[('readonly',False)]}, readonly=True),
'product_uos': fields.many2one('product.uom', 'Product UoS', states={'draft':[('readonly',False)]}, readonly=True),
@@ -1112,8 +1112,8 @@ class mrp_production_product_line(osv.osv):
_columns = {
'name': fields.char('Name', size=64, required=True),
'product_id': fields.many2one('product.product', 'Product', required=True),
- 'product_qty': fields.float('Product Qty', digits_compute=dp.get_precision('Product UoM'), required=True),
- 'product_uom': fields.many2one('product.uom', 'Product UOM', required=True),
+ 'product_qty': fields.float('Product Qty', digits_compute=dp.get_precision('Product Unit of Measure'), required=True),
+ 'product_uom': fields.many2one('product.uom', 'Product Unit of Measure', required=True),
'product_uos_qty': fields.float('Product UOS Qty'),
'product_uos': fields.many2one('product.uom', 'Product UOS'),
'production_id': fields.many2one('mrp.production', 'Production Order', select=True),
diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml
index 121567b3e56..980a8f167e0 100644
--- a/addons/mrp/mrp_view.xml
+++ b/addons/mrp/mrp_view.xml
@@ -433,7 +433,7 @@
-
+
@@ -664,7 +664,7 @@
-
+
@@ -712,7 +712,7 @@
-
+
@@ -758,8 +758,8 @@
-
-
+
+
@@ -902,7 +902,7 @@
-
+
-
@@ -924,7 +924,7 @@
icon="terp-stock_effects-object-colorize"
groups="product.group_stock_packaging"
states="draft,assigned,confirmed"/>
-
+
@@ -947,8 +947,8 @@
-
-
+
+
@@ -1121,7 +1121,7 @@
-
+
@@ -1143,7 +1143,7 @@
groups="product.group_stock_packaging"
icon="terp-stock_effects-object-colorize"
states="draft,assigned,confirmed"/>
-
+
@@ -1597,8 +1597,8 @@
icon="gtk-convert" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned" colspan="1"/>
-
-
+
+
diff --git a/addons/stock/wizard/stock_change_product_qty.py b/addons/stock/wizard/stock_change_product_qty.py
index 162aea77f86..3abd41240d3 100644
--- a/addons/stock/wizard/stock_change_product_qty.py
+++ b/addons/stock/wizard/stock_change_product_qty.py
@@ -30,8 +30,8 @@ class stock_change_product_qty(osv.osv_memory):
_description = "Change Product Quantity"
_columns = {
'product_id' : fields.many2one('product.product', 'Product'),
- 'new_quantity': fields.float('Quantity', digits_compute=dp.get_precision('Product UoM'), required=True, help='This quantity is expressed in the Default UoM of the product.'),
- 'prodlot_id': fields.many2one('stock.production.lot', 'Production Lot', domain="[('product_id','=',product_id)]"),
+ 'new_quantity': fields.float('Quantity', digits_compute=dp.get_precision('Product Unit of Measure'), required=True, help='This quantity is expressed in the Default Unit of Measure of the product.'),
+ 'prodlot_id': fields.many2one('stock.production.lot', 'Serial Number', domain="[('product_id','=',product_id)]"),
'location_id': fields.many2one('stock.location', 'Location', required=True, domain="[('usage', '=', 'internal')]"),
}
diff --git a/addons/stock/wizard/stock_inventory_line_split.py b/addons/stock/wizard/stock_inventory_line_split.py
index 1267bc35532..b2d503ff73d 100644
--- a/addons/stock/wizard/stock_inventory_line_split.py
+++ b/addons/stock/wizard/stock_inventory_line_split.py
@@ -27,8 +27,8 @@ class stock_inventory_line_split(osv.osv_memory):
_description = "Split inventory lines"
_columns = {
- 'line_ids': fields.one2many('stock.inventory.line.split.lines', 'wizard_id', 'Production Lots'),
- 'line_exist_ids': fields.one2many('stock.inventory.line.split.lines', 'wizard_exist_id', 'Production Lots'),
+ 'line_ids': fields.one2many('stock.inventory.line.split.lines', 'wizard_id', 'Serial Numbers'),
+ 'line_exist_ids': fields.one2many('stock.inventory.line.split.lines', 'wizard_exist_id', 'Serial Numbers'),
}
def default_get(self, cr, uid, fields, context=None):
@@ -46,7 +46,7 @@ class stock_inventory_line_split(osv.osv_memory):
return res
def split(self, cr, uid, ids, line_ids, context=None):
- """ To split stock inventory lines according to production lot.
+ """ To split stock inventory lines according to serial numbers.
:param line_ids: the ID or list of IDs of inventory lines we want to split
"""
diff --git a/addons/stock/wizard/stock_move.py b/addons/stock/wizard/stock_move.py
index a22ea7280bf..e94bd6f2d32 100644
--- a/addons/stock/wizard/stock_move.py
+++ b/addons/stock/wizard/stock_move.py
@@ -29,8 +29,8 @@ class stock_move_consume(osv.osv_memory):
_columns = {
'product_id': fields.many2one('product.product', 'Product', required=True, select=True),
- 'product_qty': fields.float('Quantity', digits_compute=dp.get_precision('Product UoM'), required=True),
- 'product_uom': fields.many2one('product.uom', 'Product UOM', required=True),
+ 'product_qty': fields.float('Quantity', digits_compute=dp.get_precision('Product Unit of Measure'), required=True),
+ 'product_uom': fields.many2one('product.uom', 'Product Unit of Measure', required=True),
'location_id': fields.many2one('stock.location', 'Location', required=True)
}
@@ -144,7 +144,7 @@ stock_move_scrap()
class split_in_production_lot(osv.osv_memory):
_name = "stock.move.split"
- _description = "Split in Production lots"
+ _description = "Split in Serial Numbers"
def default_get(self, cr, uid, fields, context=None):
if context is None:
@@ -165,11 +165,11 @@ class split_in_production_lot(osv.osv_memory):
return res
_columns = {
- 'qty': fields.float('Quantity', digits_compute=dp.get_precision('Product UoM')),
+ 'qty': fields.float('Quantity', digits_compute=dp.get_precision('Product Unit of Measure')),
'product_id': fields.many2one('product.product', 'Product', required=True, select=True),
- 'product_uom': fields.many2one('product.uom', 'UoM'),
- 'line_ids': fields.one2many('stock.move.split.lines', 'wizard_id', 'Production Lots'),
- 'line_exist_ids': fields.one2many('stock.move.split.lines', 'wizard_exist_id', 'Production Lots'),
+ 'product_uom': fields.many2one('product.uom', 'Unit of Measure'),
+ 'line_ids': fields.one2many('stock.move.split.lines', 'wizard_id', 'Serial Numbers'),
+ 'line_exist_ids': fields.one2many('stock.move.split.lines', 'wizard_exist_id', 'Serial Numbers'),
'use_exist' : fields.boolean('Existing Lots', help="Check this option to select existing lots in the list below, otherwise you should enter new ones line by line."),
'location_id': fields.many2one('stock.location', 'Source Location')
}
@@ -182,7 +182,7 @@ class split_in_production_lot(osv.osv_memory):
return {'type': 'ir.actions.act_window_close'}
def split(self, cr, uid, ids, move_ids, context=None):
- """ To split stock moves into production lot
+ """ To split stock moves into serial numbers
:param move_ids: the ID or list of IDs of stock move we want to split
"""
@@ -210,7 +210,7 @@ class split_in_production_lot(osv.osv_memory):
quantity = line.quantity
total_move_qty += quantity
if total_move_qty > move_qty:
- raise osv.except_osv(_('Processing Error'), _('Production lot quantity %d of %s is larger than available quantity (%d) !') \
+ raise osv.except_osv(_('Processing Error'), _('Serial number quantity %d of %s is larger than available quantity (%d) !') \
% (total_move_qty, move.product_id.name, move_qty))
if quantity <= 0 or move_qty == 0:
continue
@@ -260,11 +260,11 @@ class stock_move_split_lines_exist(osv.osv_memory):
_name = "stock.move.split.lines"
_description = "Stock move Split lines"
_columns = {
- 'name': fields.char('Production Lot', size=64),
- 'quantity': fields.float('Quantity', digits_compute=dp.get_precision('Product UoM')),
+ 'name': fields.char('Serial Number', size=64),
+ 'quantity': fields.float('Quantity', digits_compute=dp.get_precision('Product Unit of Measure')),
'wizard_id': fields.many2one('stock.move.split', 'Parent Wizard'),
'wizard_exist_id': fields.many2one('stock.move.split', 'Parent Wizard (for existing lines)'),
- 'prodlot_id': fields.many2one('stock.production.lot', 'Production Lot'),
+ 'prodlot_id': fields.many2one('stock.production.lot', 'Serial Number'),
}
_defaults = {
'quantity': 1.0,
diff --git a/addons/stock/wizard/stock_move_view.xml b/addons/stock/wizard/stock_move_view.xml
index 3895f93ddc7..577411e3c09 100644
--- a/addons/stock/wizard/stock_move_view.xml
+++ b/addons/stock/wizard/stock_move_view.xml
@@ -93,11 +93,11 @@
-
+
-
+
@@ -105,11 +105,11 @@
-
+
-
+
diff --git a/addons/stock/wizard/stock_partial_picking.py b/addons/stock/wizard/stock_partial_picking.py
index 6f815413497..fcf171a8896 100644
--- a/addons/stock/wizard/stock_partial_picking.py
+++ b/addons/stock/wizard/stock_partial_picking.py
@@ -42,9 +42,9 @@ class stock_partial_picking_line(osv.TransientModel):
_rec_name = 'product_id'
_columns = {
'product_id' : fields.many2one('product.product', string="Product", required=True, ondelete='CASCADE'),
- 'quantity' : fields.float("Quantity", digits_compute=dp.get_precision('Product UoM'), required=True),
+ 'quantity' : fields.float("Quantity", digits_compute=dp.get_precision('Product Unit of Measure'), required=True),
'product_uom': fields.many2one('product.uom', 'Unit of Measure', required=True, ondelete='CASCADE'),
- 'prodlot_id' : fields.many2one('stock.production.lot', 'Production Lot', ondelete='CASCADE'),
+ 'prodlot_id' : fields.many2one('stock.production.lot', 'Serial Number', ondelete='CASCADE'),
'location_id': fields.many2one('stock.location', 'Location', required=True, ondelete='CASCADE', domain = [('usage','<>','view')]),
'location_dest_id': fields.many2one('stock.location', 'Dest. Location', required=True, ondelete='CASCADE',domain = [('usage','<>','view')]),
'move_id' : fields.many2one('stock.move', "Move", ondelete='CASCADE'),
@@ -145,7 +145,7 @@ class stock_partial_picking(osv.osv_memory):
if line_uom.factor and line_uom.factor <> 0:
if qty_in_line_uom <> wizard_line.quantity:
- raise osv.except_osv(_('Warning'), _('The uom rounding does not allow you to ship "%s %s", only roundings of "%s %s" is accepted by the uom.') % (wizard_line.quantity, line_uom.name, line_uom.rounding, line_uom.name))
+ raise osv.except_osv(_('Warning'), _('The unit of measure rounding does not allow you to ship "%s %s", only roundings of "%s %s" is accepted by the Unit of Measure.') % (wizard_line.quantity, line_uom.name, line_uom.rounding, line_uom.name))
if move_id:
#Check rounding Quantity.ex.
#picking: 1kg, uom kg rounding = 0.01 (rounding to 10g),
diff --git a/addons/stock/wizard/stock_return_picking.py b/addons/stock/wizard/stock_return_picking.py
index 689f17cd9b9..07c838d0761 100644
--- a/addons/stock/wizard/stock_return_picking.py
+++ b/addons/stock/wizard/stock_return_picking.py
@@ -31,7 +31,7 @@ class stock_return_picking_memory(osv.osv_memory):
_rec_name = 'product_id'
_columns = {
'product_id' : fields.many2one('product.product', string="Product", required=True),
- 'quantity' : fields.float("Quantity", digits_compute=dp.get_precision('Product UoM'), required=True),
+ 'quantity' : fields.float("Quantity", digits_compute=dp.get_precision('Product Unit of Measure'), required=True),
'wizard_id' : fields.many2one('stock.return.picking', string="Wizard"),
'move_id' : fields.many2one('stock.move', "Move"),
}
diff --git a/addons/stock/wizard/stock_splitinto.py b/addons/stock/wizard/stock_splitinto.py
index 68397cc98f1..d9b34a604cf 100644
--- a/addons/stock/wizard/stock_splitinto.py
+++ b/addons/stock/wizard/stock_splitinto.py
@@ -27,7 +27,7 @@ class stock_split_into(osv.osv_memory):
_name = "stock.split.into"
_description = "Split into"
_columns = {
- 'quantity': fields.float('Quantity',digits_compute=dp.get_precision('Product UoM')),
+ 'quantity': fields.float('Quantity',digits_compute=dp.get_precision('Product Unit of Measure')),
}
_defaults = {
'quantity': lambda *x: 0,
diff --git a/addons/stock_planning/stock_planning.py b/addons/stock_planning/stock_planning.py
index d104d57c62b..417a2a5cb27 100644
--- a/addons/stock_planning/stock_planning.py
+++ b/addons/stock_planning/stock_planning.py
@@ -81,17 +81,17 @@ class stock_sale_forecast(osv.osv):
help = 'Shows which period this forecast concerns.'),
'product_id': fields.many2one('product.product', 'Product', readonly=True, required=True, states={'draft':[('readonly',False)]}, \
help = 'Shows which product this forecast concerns.'),
- 'product_qty': fields.float('Forecast Quantity', digits_compute=dp.get_precision('Product UoM'), required=True, readonly=True, \
+ 'product_qty': fields.float('Forecast Quantity', digits_compute=dp.get_precision('Product Unit of Measure'), required=True, readonly=True, \
states={'draft':[('readonly',False)]}, help= 'Forecast Product quantity.'),
'product_amt': fields.float('Product Amount', readonly=True, states={'draft':[('readonly',False)]}, \
help='Forecast value which will be converted to Product Quantity according to prices.'),
- 'product_uom_categ': fields.many2one('product.uom.categ', 'Product UoM Category'), # Invisible field for product_uom domain
- 'product_uom': fields.many2one('product.uom', 'Product UoM', required=True, readonly=True, states={'draft':[('readonly',False)]}, \
+ 'product_uom_categ': fields.many2one('product.uom.categ', 'Product Unit of Measure Category'), # Invisible field for product_uom domain
+ 'product_uom': fields.many2one('product.uom', 'Product Unit of Measure', required=True, readonly=True, states={'draft':[('readonly',False)]}, \
help = "Unit of Measure used to show the quantities of stock calculation." \
"You can use units form default category or from second category (UoS category)."),
'product_uos_categ' : fields.many2one('product.uom.categ', 'Product UoS Category'), # Invisible field for product_uos domain
# Field used in onchange_uom to check what uom was before change and recalculate quantities according to old uom (active_uom) and new uom.
- 'active_uom': fields.many2one('product.uom', string = "Active UoM"),
+ 'active_uom': fields.many2one('product.uom', string = "Active Unit of Measure"),
'state': fields.selection([('draft','Draft'),('validated','Validated')],'State',readonly=True),
'analyzed_period1_id': fields.many2one('stock.period', 'Period1', readonly=True, states={'draft':[('readonly',False)]},),
'analyzed_period2_id': fields.many2one('stock.period', 'Period2', readonly=True, states={'draft':[('readonly',False)]},),
@@ -452,12 +452,12 @@ class stock_planning(osv.osv):
help = 'Period for this planning. Requisition will be created for beginning of the period.', select=True),
'warehouse_id': fields.many2one('stock.warehouse','Warehouse', required=True),
'product_id': fields.many2one('product.product' , 'Product', required=True, help = 'Product which this planning is created for.'),
- 'product_uom_categ' : fields.many2one('product.uom.categ', 'Product UoM Category'), # Invisible field for product_uom domain
- 'product_uom': fields.many2one('product.uom', 'UoM', required=True, help = "Unit of Measure used to show the quantities of stock calculation." \
+ 'product_uom_categ' : fields.many2one('product.uom.categ', 'Product Unit of Measure Category'), # Invisible field for product_uom domain
+ 'product_uom': fields.many2one('product.uom', 'Unit of Measure', required=True, help = "Unit of Measure used to show the quantities of stock calculation." \
"You can use units from default category or from second category (UoS category)."),
- 'product_uos_categ': fields.many2one('product.uom.categ', 'Product UoM Category'), # Invisible field for product_uos domain
+ 'product_uos_categ': fields.many2one('product.uom.categ', 'Product Unit of Measure Category'), # Invisible field for product_uos domain
# Field used in onchange_uom to check what uom was before change to recalculate quantities according to old uom (active_uom) and new uom.
- 'active_uom': fields.many2one('product.uom', string = "Active UoM"), # It works only in Forecast
+ 'active_uom': fields.many2one('product.uom', string = "Active Unit of Measure"), # It works only in Forecast
'planned_outgoing': fields.float('Planned Out', required=True, \
help = 'Enter planned outgoing quantity from selected Warehouse during the selected Period of selected Product. '\
'To plan this value look at Confirmed Out or Sales Forecasts. This value should be equal or greater than Confirmed Out.'),
diff --git a/addons/stock_planning/stock_planning_view.xml b/addons/stock_planning/stock_planning_view.xml
index b29eb7baace..bd1962a1864 100644
--- a/addons/stock_planning/stock_planning_view.xml
+++ b/addons/stock_planning/stock_planning_view.xml
@@ -204,7 +204,7 @@
-
+