Many label changes, one functional (spelling) fix in passing.

bzr revid: gsg@pinot-grigio-20090127111546-96d4h0r74pvs43qu
This commit is contained in:
Geoff Gardiner 2009-01-27 11:15:46 +00:00
parent 78e7b89475
commit 9049abc55c
55 changed files with 255 additions and 255 deletions

View File

@ -101,7 +101,7 @@ class account_account_type(osv.osv):
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of account types."),
'partner_account': fields.boolean('Partner account'),
'close_method': fields.selection([('none','None'), ('balance','Balance'), ('detail','Detail'),('unreconciled','Unreconciled')], 'Deferral Method', required=True),
'sign': fields.selection([(-1, 'Negative'), (1, 'Positive')], 'Sign on Reports', required=True, help='Allows to change the displayed amount of the balance in the reports, in order to see positive results instead of negative ones in expenses accounts.'),
'sign': fields.selection([(-1, 'Negative'), (1, 'Positive')], 'Sign on Reports', required=True, help='Allows you to change the sign of the balance amount displayed in the reports, so that you can see positive figures instead of negative ones in expenses accounts.'),
}
_defaults = {
'close_method': lambda *a: 'none',
@ -267,11 +267,11 @@ class account_account(osv.osv):
'parent_id': fields.many2one('account.account','Parent', ondelete='cascade'),
'child_parent_ids':fields.one2many('account.account','parent_id','Children'),
'child_consol_ids':fields.many2many('account.account', 'account_account_consol_rel', 'child_id', 'parent_id', 'Consolidated Children'),
'child_id': fields.function(_get_child_ids, method=True, type='many2many',relation="account.account",string="Children Accounts"),
'child_id': fields.function(_get_child_ids, method=True, type='many2many',relation="account.account",string="Child Accounts"),
'balance': fields.function(__compute, digits=(16,2), method=True, string='Balance', multi='balance'),
'credit': fields.function(__compute, digits=(16,2), method=True, string='Credit', multi='balance'),
'debit': fields.function(__compute, digits=(16,2), method=True, string='Debit', multi='balance'),
'reconcile': fields.boolean('Reconcile', help="Check this account if the user can make a reconciliation of the entries in this account."),
'reconcile': fields.boolean('Reconcile', help="Check this if the user is allowed to reconcile entries in this account."),
'shortcut': fields.char('Shortcut', size=12),
'tax_ids': fields.many2many('account.tax', 'account_account_tax_default_rel',
'account_id','tax_id', 'Default Taxes'),
@ -284,10 +284,10 @@ class account_account(osv.osv):
'parent_right': fields.integer('Parent Right', select=1),
'currency_mode': fields.selection([('current','At Date'),('average','Average Rate')], 'Outgoing Currencies Rate',
help=
'This will select how is computed the current currency rate for outgoing transactions. '\
'In most countries the legal method is "average" but only a few softwares are able to '\
'manage this. So if you import from another software, you may have to use the rate at date. ' \
'Incoming transactions, always use the rate at date.', \
'This will select how the current currency rate for outgoing transactions is computed. '\
'In most countries the legal method is "average" but only a few software systems are able to '\
'manage this. So if you import from another software system you may have to use the rate at date. ' \
'Incoming transactions always use the rate at date.', \
required=True),
'check_history': fields.boolean('Display History',
help="Check this box if you want to print all entries when printing the General Ledger, "\
@ -451,14 +451,14 @@ class account_journal(osv.osv):
'view_id': fields.many2one('account.journal.view', 'View', required=True, help="Gives the view used when writing or browsing entries in this journal. The view tell Open ERP which fields should be visible, required or readonly and in which order. You can create your own view for a faster encoding in each journal."),
'default_credit_account_id': fields.many2one('account.account', 'Default Credit Account', domain="[('type','!=','view')]"),
'default_debit_account_id': fields.many2one('account.account', 'Default Debit Account', domain="[('type','!=','view')]"),
'centralisation': fields.boolean('Centralised counterpart', help="Check this box if you want that each entry doesn't create a counterpart but share the same counterpart for each entry of this journal. This is used in fiscal year closing."),
'centralisation': fields.boolean('Centralised counterpart', help="Check this box to determine that each entry of this journal won't create a new counterpart but will share the same counterpart. This is used in fiscal year closing."),
'update_posted': fields.boolean('Allow Cancelling Entries'),
'group_invoice_lines': fields.boolean('Group invoice lines', help="If this box is cheked, the system will try to group the accouting lines when generating them from invoices."),
'group_invoice_lines': fields.boolean('Group invoice lines', help="If this box is checked, the system will try to group the accounting lines when generating them from invoices."),
'sequence_id': fields.many2one('ir.sequence', 'Entry Sequence', help="The sequence gives the display order for a list of journals", required=True),
'user_id': fields.many2one('res.users', 'User', help="The responsible user of this journal"),
'user_id': fields.many2one('res.users', 'User', help="The user responsible for this journal"),
'groups_id': fields.many2many('res.groups', 'account_journal_group_rel', 'journal_id', 'group_id', 'Groups'),
'currency': fields.many2one('res.currency', 'Currency', help='The currency used to enter statement'),
'entry_posted': fields.boolean('Skip \'Draft\' State for Created Entries', help='Check this box if you don\'t want that new account moves pass through the \'draft\' state and goes direclty to the \'posted state\' without any manual validation.'),
'entry_posted': fields.boolean('Skip \'Draft\' State for Created Entries', help='Check this box if you don\'t want new account moves to pass through the \'draft\' state and instead goes directly to the \'posted state\' without any manual validation.'),
'company_id': fields.related('default_credit_account_id','company_id',type='many2one', relation="res.company", string="Company"),
'invoice_sequence_id': fields.many2one('ir.sequence', 'Invoice Sequence', \
help="The sequence used for invoice numbers in this journal."),
@ -501,10 +501,10 @@ class account_fiscalyear(osv.osv):
'code': fields.char('Code', size=6, required=True),
'company_id': fields.many2one('res.company', 'Company',
help="Keep empty if the fiscal year belongs to several companies."),
'date_start': fields.date('Start date', required=True),
'date_stop': fields.date('End date', required=True),
'date_start': fields.date('Start Date', required=True),
'date_stop': fields.date('End Date', required=True),
'period_ids': fields.one2many('account.period', 'fiscalyear_id', 'Periods'),
'state': fields.selection([('draft','Draft'), ('done','Done')], 'Status', redonly=True),
'state': fields.selection([('draft','Draft'), ('done','Done')], 'Status', readonly=True),
}
_defaults = {
@ -519,7 +519,7 @@ class account_fiscalyear(osv.osv):
return True
_constraints = [
(_check_duration, 'Error ! The date duration of the Fiscal Year is invalid. ', ['date_stop'])
(_check_duration, 'Error ! The duration of the Fiscal Year is invalid. ', ['date_stop'])
]
def create_period3(self,cr, uid, ids, context={}):
@ -565,8 +565,8 @@ class account_period(osv.osv):
'code': fields.char('Code', size=12),
'special': fields.boolean('Opening/Closing Period', size=12,
help="These periods can overlap."),
'date_start': fields.date('Start of period', required=True, states={'done':[('readonly',True)]}),
'date_stop': fields.date('End of period', required=True, states={'done':[('readonly',True)]}),
'date_start': fields.date('Start of Period', required=True, states={'done':[('readonly',True)]}),
'date_stop': fields.date('End of Period', required=True, states={'done':[('readonly',True)]}),
'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', required=True, states={'done':[('readonly',True)]}, select=True),
'state': fields.selection([('draft','Draft'), ('done','Done')], 'Status', readonly=True)
}
@ -595,8 +595,8 @@ class account_period(osv.osv):
return True
_constraints = [
(_check_duration, 'Error ! The date duration of the Period(s) is invalid. ', ['date_stop']),
(_check_year_limit, 'Invalid period ! Some periods overlap or the date duration is not in the limit of the fiscal year. ', ['date_stop'])
(_check_duration, 'Error ! The duration of the Period(s) is/are invalid. ', ['date_stop']),
(_check_year_limit, 'Invalid period ! Some periods overlap or the date period is not in the scope of the fiscal year. ', ['date_stop'])
]
def next(self, cr, uid, period, step, context={}):
@ -777,10 +777,10 @@ class account_move(osv.osv):
_constraints = [
(_check_centralisation,
'You can not create more than one move per period on centralized journal',
'You cannot create more than one move per period on centralized journal',
['journal_id']),
(_check_period_journal,
'You can not create entries on different period/journal in the same move',
'You cannot create entries on different periods/journals in the same move',
['line_id']),
]
def post(self, cr, uid, ids, context=None):
@ -799,7 +799,7 @@ class account_move(osv.osv):
cr.execute('update account_move set state=%s where id in ('+','.join(map(str,ids))+')', ('posted',))
else:
raise osv.except_osv(_('Integrity Error !'), _('You can not validate a non balanced entry !'))
raise osv.except_osv(_('Integrity Error !'), _('You can not validate a non-balanced entry !'))
return True
def button_validate(self, cursor, user, ids, context=None):
@ -808,7 +808,7 @@ class account_move(osv.osv):
def button_cancel(self, cr, uid, ids, context={}):
for line in self.browse(cr, uid, ids, context):
if not line.journal_id.update_posted:
raise osv.except_osv(_('Error !'), _('You can not modify a posted entry of this journal !\nYou should mark the journal to allow canceling entries.'))
raise osv.except_osv(_('Error !'), _('You can not modify a posted entry of this journal !\nYou should set the journal to allow cancelling entries if you want to do that.'))
if len(ids):
cr.execute('update account_move set state=%s where id in ('+','.join(map(str,ids))+')', ('draft',))
return True
@ -960,7 +960,7 @@ class account_move(osv.osv):
if line.account_id.currency_id:
if line.account_id.currency_id.id != line.currency_id.id and (line.account_id.currency_id.id != line.account_id.company_id.currency_id.id or line.currency_id):
raise osv.except_osv(_('Error'), _("""Couldn't create move with currency different than the secondary currency of the account "%s - %s". Clear the secondary currency field of the account definition if you want to accept all currencies.""" % (line.account_id.code, line.account_id.name)))
raise osv.except_osv(_('Error'), _("""Couldn't create move with currency different from the secondary currency of the account "%s - %s". Clear the secondary currency field of the account definition if you want to accept all currencies.""" % (line.account_id.code, line.account_id.name)))
if abs(amount) < 0.0001:
if not len(line_draft_ids):
@ -1024,7 +1024,7 @@ class account_move_reconcile(osv.osv):
_columns = {
'name': fields.char('Name', size=64, required=True),
'type': fields.char('Type', size=16, required=True),
'line_id': fields.one2many('account.move.line', 'reconcile_id', 'Entry lines'),
'line_id': fields.one2many('account.move.line', 'reconcile_id', 'Entry Lines'),
'line_partial_ids': fields.one2many('account.move.line', 'reconcile_partial_id', 'Partial Entry lines'),
'create_date': fields.date('Creation date', readonly=True),
}
@ -1135,11 +1135,11 @@ class account_tax_code(osv.osv):
'sum': fields.function(_sum_year, method=True, string="Year Sum"),
'sum_period': fields.function(_sum_period, method=True, string="Period Sum"),
'parent_id': fields.many2one('account.tax.code', 'Parent Code', select=True),
'child_ids': fields.one2many('account.tax.code', 'parent_id', 'Childs Codes'),
'child_ids': fields.one2many('account.tax.code', 'parent_id', 'Child Codes'),
'line_ids': fields.one2many('account.move.line', 'tax_code_id', 'Lines'),
'company_id': fields.many2one('res.company', 'Company', required=True),
'sign': fields.float('Sign for parent', required=True),
'notprintable':fields.boolean("Not Printable in Invoice", help="Check this box if you don't want that any vat related to this Tax Code appears on invoices"),
'notprintable':fields.boolean("Not Printable in Invoice", help="Check this box if you don't want any VAT related to this Tax Code to appear on invoices"),
}
@ -1193,24 +1193,24 @@ class account_tax(osv.osv):
_name = 'account.tax'
_description = 'Tax'
_columns = {
'name': fields.char('Tax Name', size=64, required=True, translate=True, help="This name will be used to be displayed on reports"),
'sequence': fields.integer('Sequence', required=True, help="The sequence field is used to order the taxes lines from the lowest sequences to the higher ones. The order is important if you have a tax that have several tax childs. In this case, the evaluation order is important."),
'name': fields.char('Tax Name', size=64, required=True, translate=True, help="This name will be displayed on reports"),
'sequence': fields.integer('Sequence', required=True, help="The sequence field is used to order the tax lines from the lowest sequences to the higher ones. The order is important if you have a tax with several tax children. In this case, the evaluation order is important."),
'amount': fields.float('Amount', required=True, digits=(14,4)),
'active': fields.boolean('Active'),
'type': fields.selection( [('percent','Percent'), ('fixed','Fixed'), ('none','None'), ('code','Python Code'),('balance','Balance')], 'Tax Type', required=True,
help="The computation method for the tax amount."),
'applicable_type': fields.selection( [('true','True'), ('code','Python Code')], 'Applicable Type', required=True,
help="If not applicable (computed through a Python code), the tax do not appears on the invoice."),
'domain':fields.char('Domain', size=32, help="This field is only used if you develop your own module allowing developpers to create specific taxes in a custom domain."),
help="If not applicable (computed through a Python code), the tax won't appear on the invoice."),
'domain':fields.char('Domain', size=32, help="This field is only used if you develop your own module allowing developers to create specific taxes in a custom domain."),
'account_collected_id':fields.many2one('account.account', 'Invoice Tax Account'),
'account_paid_id':fields.many2one('account.account', 'Refund Tax Account'),
'parent_id':fields.many2one('account.tax', 'Parent Tax Account', select=True),
'child_ids':fields.one2many('account.tax', 'parent_id', 'Childs Tax Account'),
'child_depend':fields.boolean('Tax on Childs', help="Indicate if the tax computation is based on the value computed for the computation of child taxes or based on the total amount."),
'child_ids':fields.one2many('account.tax', 'parent_id', 'Child Tax Accounts'),
'child_depend':fields.boolean('Tax on Children', help="Set if the tax computation is based on the computation of child taxes rather than on the total amount."),
'python_compute':fields.text('Python Code'),
'python_compute_inv':fields.text('Python Code (reverse)'),
'python_applicable':fields.text('Python Code'),
'tax_group': fields.selection([('vat','VAT'),('other','Other')], 'Tax Group', help="If a default tax if given in the partner it only override taxes from account (or product) of the same group."),
'tax_group': fields.selection([('vat','VAT'),('other','Other')], 'Tax Group', help="If a default tax is given in the partner it only overrides taxes from accounts (or products) in the same group."),
#
# Fields used for the VAT declaration
@ -1229,7 +1229,7 @@ class account_tax(osv.osv):
'include_base_amount': fields.boolean('Include in base amount', help="Indicate if the amount of tax must be included in the base amount for the computation of the next taxes"),
'company_id': fields.many2one('res.company', 'Company', required=True),
'description': fields.char('Tax Code',size=32),
'price_include': fields.boolean('Tax Included in Price', help="Check this is the price you use on the product and invoices is including this tax."),
'price_include': fields.boolean('Tax Included in Price', help="Check this if the price you use on the product and invoices includes this tax."),
'type_tax_use': fields.selection([('sale','Sale'),('purchase','Purchase'),('all','All')], 'Tax Application', required=True)
}
@ -1527,8 +1527,8 @@ class account_model_line(osv.osv):
_description = "Account Model Entries"
_columns = {
'name': fields.char('Name', size=64, required=True),
'sequence': fields.integer('Sequence', required=True, help="The sequence field is used to order the resources from the lowest sequences to the higher ones"),
'quantity': fields.float('Quantity', digits=(16,2), help="The optionnal quantity on entries"),
'sequence': fields.integer('Sequence', required=True, help="The sequence field is used to order the resources from lower sequences to higher ones"),
'quantity': fields.float('Quantity', digits=(16,2), help="The optional quantity on entries"),
'debit': fields.float('Debit', digits=(16,2)),
'credit': fields.float('Credit', digits=(16,2)),
@ -1565,11 +1565,11 @@ class account_subscription(osv.osv):
_description = "Account Subscription"
_columns = {
'name': fields.char('Name', size=64, required=True),
'ref': fields.char('Ref.', size=16),
'ref': fields.char('Ref', size=16),
'model_id': fields.many2one('account.model', 'Model', required=True),
'date_start': fields.date('Starting date', required=True),
'period_total': fields.integer('Number of period', required=True),
'date_start': fields.date('Start Date', required=True),
'period_total': fields.integer('Number of Periods', required=True),
'period_nbr': fields.integer('Period', required=True),
'period_type': fields.selection([('day','days'),('month','month'),('year','year')], 'Period Type', required=True),
'state': fields.selection([('draft','Draft'),('running','Running'),('done','Done')], 'Status', required=True, readonly=True),
@ -1670,8 +1670,8 @@ class account_config_wizard(osv.osv_memory):
_columns = {
'name':fields.char('Name', required=True, size=64, help="Name of the fiscal year as displayed on screens."),
'code':fields.char('Code', required=True, size=64, help="Name of the fiscal year as displayed in reports."),
'date1': fields.date('Starting Date', required=True),
'date2': fields.date('Ending Date', required=True),
'date1': fields.date('Start Date', required=True),
'date2': fields.date('End Date', required=True),
'period':fields.selection([('month','Month'),('3months','3 Months')], 'Periods', required=True),
'charts' : fields.selection(_get_charts, 'Charts of Account',required=True)
}
@ -1758,7 +1758,7 @@ class account_account_template(osv.osv):
('closed','Closed'),
], 'Internal Type', required=True,),
'user_type': fields.many2one('account.account.type', 'Account Type', required=True),
'reconcile': fields.boolean('Allow Reconciliation', help="Check this option if the user can make a reconciliation of the entries in this account."),
'reconcile': fields.boolean('Allow Reconciliation', help="Check this option if you want the user to reconcile entries in this account."),
'shortcut': fields.char('Shortcut', size=12),
'note': fields.text('Note'),
'parent_id': fields.many2one('account.account.template','Parent Account Template', ondelete='cascade'),
@ -1811,9 +1811,9 @@ class account_tax_code_template(osv.osv):
'code': fields.char('Case Code', size=64),
'info': fields.text('Description'),
'parent_id': fields.many2one('account.tax.code.template', 'Parent Code', select=True),
'child_ids': fields.one2many('account.tax.code.template', 'parent_id', 'Childs Codes'),
'child_ids': fields.one2many('account.tax.code.template', 'parent_id', 'Child Codes'),
'sign': fields.float('Sign for parent', required=True),
'notprintable':fields.boolean("Not Printable in Invoice", help="Check this box if you don't want that any vat related to this Tax Code appears on invoices"),
'notprintable':fields.boolean("Not Printable in Invoice", help="Check this box if you don't want any VAT related to this Tax Code to appear on invoices"),
}
_defaults = {
@ -1875,7 +1875,7 @@ class account_tax_template(osv.osv):
_columns = {
'chart_template_id': fields.many2one('account.chart.template', 'Chart Template', required=True),
'name': fields.char('Tax Name', size=64, required=True),
'sequence': fields.integer('Sequence', required=True, help="The sequence field is used to order the taxes lines from the lowest sequences to the higher ones. The order is important if you have a tax that have several tax children. In this case, the evaluation order is important."),
'sequence': fields.integer('Sequence', required=True, help="The sequence field is used to order the taxes lines from lower sequences to higher ones. The order is important if you have a tax that has several tax children. In this case, the evaluation order is important."),
'amount': fields.float('Amount', required=True, digits=(14,4)),
'type': fields.selection( [('percent','Percent'), ('fixed','Fixed'), ('none','None'), ('code','Python Code')], 'Tax Type', required=True),
'applicable_type': fields.selection( [('true','True'), ('code','Python Code')], 'Applicable Type', required=True),
@ -1883,7 +1883,7 @@ class account_tax_template(osv.osv):
'account_collected_id':fields.many2one('account.account.template', 'Invoice Tax Account'),
'account_paid_id':fields.many2one('account.account.template', 'Refund Tax Account'),
'parent_id':fields.many2one('account.tax.template', 'Parent Tax Account', select=True),
'child_depend':fields.boolean('Tax on Childs', help="Indicate if the tax computation is based on the value computed for the computation of child taxes or based on the total amount."),
'child_depend':fields.boolean('Tax on Children', help="Indicate if the tax computation is based on the value computed for the computation of child taxes or based on the total amount."),
'python_compute':fields.text('Python Code'),
'python_compute_inv':fields.text('Python Code (reverse)'),
'python_applicable':fields.text('Python Code'),
@ -1903,9 +1903,9 @@ class account_tax_template(osv.osv):
'ref_tax_code_id': fields.many2one('account.tax.code.template', 'Refund Tax Code', help="Use this code for the VAT declaration."),
'ref_base_sign': fields.float('Base Code Sign', help="Usually 1 or -1."),
'ref_tax_sign': fields.float('Tax Code Sign', help="Usually 1 or -1."),
'include_base_amount': fields.boolean('Include in base amount', help="Indicate if the amount of tax must be included in the base amount for the computation of the next taxes."),
'include_base_amount': fields.boolean('Include in Base Amount', help="Set if the amount of tax must be included in the base amount before computing the next taxes."),
'description': fields.char('Internal Name', size=32),
'type_tax_use': fields.selection([('sale','Sale'),('purchase','Purchase')], 'Tax Use in')
'type_tax_use': fields.selection([('sale','Sale'),('purchase','Purchase')], 'Tax Use In')
}
def name_get(self, cr, uid, ids, context={}):
@ -1951,15 +1951,15 @@ class account_fiscal_position_template(osv.osv):
_columns = {
'name': fields.char('Fiscal Position Template', size=64, translate=True, required=True),
'chart_template_id': fields.many2one('account.chart.template', 'Chart Template', required=True),
'account_ids': fields.one2many('account.fiscal.position.account.template', 'position_id', 'Accounts Mapping'),
'tax_ids': fields.one2many('account.fiscal.position.tax.template', 'position_id', 'Taxes Mapping')
'account_ids': fields.one2many('account.fiscal.position.account.template', 'position_id', 'Account Mapping'),
'tax_ids': fields.one2many('account.fiscal.position.tax.template', 'position_id', 'Tax Mapping')
}
account_fiscal_position_template()
class account_fiscal_position_tax_template(osv.osv):
_name = 'account.fiscal.position.tax.template'
_description = 'Fiscal Position Template Taxes Mapping'
_description = 'Fiscal Position Template Tax Mapping'
_rec_name = 'position_id'
_columns = {
@ -1972,7 +1972,7 @@ account_fiscal_position_tax_template()
class account_fiscal_position_account_template(osv.osv):
_name = 'account.fiscal.position.account.template'
_description = 'Fiscal Position Template Accounts Mapping'
_description = 'Fiscal Position Template Account Mapping'
_rec_name = 'position_id'
_columns = {
'position_id': fields.many2one('account.fiscal.position.template', 'Fiscal Position', required=True, ondelete='cascade'),
@ -1987,15 +1987,15 @@ account_fiscal_position_account_template()
class wizard_multi_charts_accounts(osv.osv_memory):
"""
Create a new account chart for a company.
Wizards ask:
Wizards ask for:
* a company
* an account chart template
* a number of digits for formatting code of non-view accounts
* a list of bank account owned by the company
* a list of bank accounts owned by the company
Then, the wizard:
* generates all accounts from the template and assign them to the right company
* generates all accounts from the template and assigns them to the right company
* generates all taxes and tax codes, changing account assignations
* generates all accounting properties and assign correctly
* generates all accounting properties and assigns them correctly
"""
_name='wizard.multi.charts.accounts'

View File

@ -82,7 +82,7 @@ class account_invoice(osv.osv):
tt = type2journal.get(type_inv, 'sale')
result = self.pool.get('account.analytic.journal').search(cr, uid, [('type','=',tt)], context=context)
if not result:
raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal of type '%s' !") % (tt,))
raise osv.except_osv(_('No Analytic Journal !'),_("You must define an analytic journal of type '%s' !") % (tt,))
return result[0]
def _get_type(self, cr, uid, context=None):
@ -221,7 +221,7 @@ class account_invoice(osv.osv):
'payment_term': fields.many2one('account.payment.term', 'Payment Term',readonly=True, states={'draft':[('readonly',False)]},
help="If you use payment terms, the due date will be computed automatically at the generation "\
"of accounting entries. If you keep the payment term and the due date empty, it means direct payment. "\
"The payment term may compute several due dates: 50% now, 50% in one month."),
"The payment term may compute several due dates, for example 50% now, 50% in one month."),
'period_id': fields.many2one('account.period', 'Force Period', domain=[('state','<>','done')], help="Keep empty to use the period of the validation date."),
'account_id': fields.many2one('account.account', 'Account', required=True, readonly=True, states={'draft':[('readonly',False)]}, help="The partner account used for this invoice."),
@ -295,7 +295,7 @@ class account_invoice(osv.osv):
if t['state'] in ('draft', 'cancel'):
unlink_ids.append(t['id'])
else:
raise osv.except_osv(_('Invalid action !'), _('Cannot delete invoice(s) which are already opened or paid !'))
raise osv.except_osv(_('Invalid action !'), _('Cannot delete invoice(s) that are already opened or paid !'))
osv.osv.unlink(self, cr, uid, unlink_ids, context=context)
return True
@ -489,7 +489,7 @@ class account_invoice(osv.osv):
continue
if inv.type in ('in_invoice', 'in_refund') and abs(inv.check_total - inv.amount_total) >= (inv.currency_id.rounding/2.0):
raise osv.except_osv(_('Bad total !'), _('Please verify the price of the invoice !\nThe real total does not match the computed total.'))
raise osv.except_osv(_('Bad total !'), _('Please verify the price of the invoice !\nThe actual total does not match the computed total.'))
if not inv.date_invoice:
self.write(cr, uid, [inv.id], {'date_invoice':time.strftime('%Y-%m-%d')})
company_currency = inv.company_id.currency_id.id
@ -511,7 +511,7 @@ class account_invoice(osv.osv):
key = (tax.tax_code_id.id, tax.base_code_id.id, tax.account_id.id)
tax_key.append(key)
if not key in compute_taxes:
raise osv.except_osv(_('Warning !'), _('Global taxes defined, but not in invoice lines !'))
raise osv.except_osv(_('Warning !'), _('Global taxes defined, but are not in invoice lines !'))
base = compute_taxes[key]['base']
if abs(base - tax.base) > inv.company_id.currency_id.rounding:
raise osv.except_osv(_('Warning !'), _('Tax base different !\nClick on compute to update tax base'))
@ -1085,9 +1085,9 @@ class account_invoice_tax(osv.osv):
'manual': fields.boolean('Manual'),
'sequence': fields.integer('Sequence'),
'base_code_id': fields.many2one('account.tax.code', 'Base Code', help="The case of the tax declaration."),
'base_code_id': fields.many2one('account.tax.code', 'Base Code', help="The account basis of the tax declaration."),
'base_amount': fields.float('Base Code Amount', digits=(16,2)),
'tax_code_id': fields.many2one('account.tax.code', 'Tax Code', help="The case of the tax declaration."),
'tax_code_id': fields.many2one('account.tax.code', 'Tax Code', help="The tax basis of the tax declaration."),
'tax_amount': fields.float('Tax Code Amount', digits=(16,2)),
}
def base_change(self, cr, uid, ids, base):

View File

@ -29,8 +29,8 @@ class account_fiscal_position(osv.osv):
_columns = {
'name': fields.char('Fiscal Position', size=64, translate=True, required=True),
'company_id': fields.many2one('res.company', 'Company'),
'account_ids': fields.one2many('account.fiscal.position.account', 'position_id', 'Accounts Mapping'),
'tax_ids': fields.one2many('account.fiscal.position.tax', 'position_id', 'Taxes Mapping')
'account_ids': fields.one2many('account.fiscal.position.account', 'position_id', 'Account Mapping'),
'tax_ids': fields.one2many('account.fiscal.position.tax', 'position_id', 'Tax Mapping')
}
def map_tax(self, cr, uid, fposition_id, taxes, context={}):
@ -139,7 +139,7 @@ class res_partner(osv.osv):
return [('id','in',map(lambda x:x[0], res))]
_columns = {
'credit': fields.function(_credit_debit_get, fnct_search=_credit_search, method=True, string='Total Receivable', multi='dc', help="Total amount this customer owns you."),
'credit': fields.function(_credit_debit_get, fnct_search=_credit_search, method=True, string='Total Receivable', multi='dc', help="Total amount this customer owes you."),
'debit': fields.function(_credit_debit_get, fnct_search=_debit_search, method=True, string='Total Payable', multi='dc', help="Total amount you have to pay to this supplier."),
'debit_limit': fields.float('Payable Limit'),
'property_account_payable': fields.property(
@ -150,7 +150,7 @@ class res_partner(osv.osv):
method=True,
view_load=True,
domain="[('type', '=', 'payable')]",
help="This account will be used, instead of the default one, as the payable account for the current partner",
help="This account will be used instead of the default one as the payable account for the current partner",
required=True),
'property_account_receivable': fields.property(
'account.account',
@ -160,7 +160,7 @@ class res_partner(osv.osv):
method=True,
view_load=True,
domain="[('type', '=', 'receivable')]",
help="This account will be used, instead of the default one, as the receivable account for the current partner",
help="This account will be used instead of the default one as the receivable account for the current partner",
required=True),
'property_account_position': fields.property(
'account.fiscal.position',
@ -178,7 +178,7 @@ class res_partner(osv.osv):
string ='Payment Term',
method=True,
view_load=True,
help="This payment term will be used, instead of the default one, for the current partner"),
help="This payment term will be used instead of the default one for the current partner"),
'ref_companies': fields.one2many('res.company', 'partner_id',
'Companies that refers to partner'),
}

View File

@ -12,21 +12,21 @@
<field name="company_id"/>
<newline/>
<field name="tax_ids" colspan="4">
<tree string="Taxes Mapping" editable="bottom">
<tree string="Tax Mapping" editable="bottom">
<field name="tax_src_id" domain="[('parent_id','=',False)]"/>
<field name="tax_dest_id" domain="[('parent_id','=',False)]"/>
</tree>
<form string="Taxes Mapping">
<form string="Tax Mapping">
<field name="tax_src_id" domain="[('parent_id','=',False)]"/>
<field name="tax_dest_id" domain="[('parent_id','=',False)]"/>
</form>
</field>
<field name="account_ids" colspan="4">
<tree string="Accounts Mapping" editable="bottom">
<tree string="Account Mapping" editable="bottom">
<field name="account_src_id"/>
<field name="account_dest_id"/>
</tree>
<form string="Accounts Mapping">
<form string="Account Mapping">
<field name="account_src_id"/>
<field name="account_dest_id"/>
</form>

View File

@ -34,7 +34,7 @@ class product_category(osv.osv):
string="Income Account",
method=True,
view_load=True,
help="This account will be used, instead of the default one, to value incoming stock for the current product category"),
help="This account will be used instead of the default one to value incoming stock for the current product category"),
'property_account_expense_categ': fields.property(
'account.account',
type='many2one',
@ -42,7 +42,7 @@ class product_category(osv.osv):
string="Expense Account",
method=True,
view_load=True,
help="This account will be used, instead of the default one, to value outgoing stock for the current product category"),
help="This account will be used instead of the default one to value outgoing stock for the current product category"),
}
product_category()
@ -65,7 +65,7 @@ class product_template(osv.osv):
string="Income Account",
method=True,
view_load=True,
help="This account will be used, instead of the default one, to value incoming stock for the current product"),
help="This account will be used instead of the default one to value incoming stock for the current product"),
'property_account_expense': fields.property(
'account.account',
type='many2one',
@ -73,7 +73,7 @@ class product_template(osv.osv):
string="Expense Account",
method=True,
view_load=True,
help="This account will be used, instead of the default one, to value outgoing stock for the current product"),
help="This account will be used instead of the default one to value outgoing stock for the current product"),
}
product_template()

View File

@ -10,7 +10,7 @@
<notebook position="inside">
<page string="Accounting">
<separator string="Sales Properties" colspan="2"/>
<separator string="Purchases Properties" colspan="2"/>
<separator string="Purchase Properties" colspan="2"/>
<field name="property_account_income" attrs="{'readonly':[('sale_ok','=',0)]}" />
<field name="property_account_expense" attrs="{'readonly':[('purchase_ok','=',0)]}" />
@ -32,7 +32,7 @@
<notebook position="inside">
<page string="Accounting">
<separator string="Sales Properties" colspan="2"/>
<separator string="Purchases Properties" colspan="2"/>
<separator string="Purchase Properties" colspan="2"/>
<field name="property_account_income"/>
<field name="property_account_expense"/>
<field name="supplier_taxes_id"/>

View File

@ -23,7 +23,7 @@
<field name="code">102</field>
</record>
<record id="analytic_journal_trainings" model="account.analytic.account">
<field name="name">Trainings</field>
<field name="name">Training</field>
<field name="code">4</field>
<field name="parent_id" ref="analytic_internal"/>
</record>
@ -68,7 +68,7 @@
<field name="parent_id" ref="analytic_our_super_product"/>
</record>
<record id="analytic_super_product_trainings" model="account.analytic.account">
<field name="name">Trainings</field>
<field name="name">Training</field>
<field name="code">5</field>
<field name="parent_id" ref="analytic_our_super_product"/>
</record>
@ -179,7 +179,7 @@
<field name="parent_id" ref="analytic_project_2"/>
</record>
<record id="analytic_project_1_trainings" model="account.analytic.account">
<field name="name">Trainings</field>
<field name="name">Training</field>
<field name="code">1</field>
<field name="parent_id" ref="analytic_project_1"/>
</record>

View File

@ -124,21 +124,21 @@ class account_analytic_account(osv.osv):
return result
_columns = {
'name' : fields.char('Account name', size=64, required=True),
'complete_name': fields.function(_complete_name_calc, method=True, type='char', string='Account Name'),
'code' : fields.char('Account code', size=24),
'name' : fields.char('Account Name', size=64, required=True),
'complete_name': fields.function(_complete_name_calc, method=True, type='char', string='Full Account Name'),
'code' : fields.char('Account Code', size=24),
'active' : fields.boolean('Active'),
'type': fields.selection([('view','View'), ('normal','Normal')], 'Account type'),
'type': fields.selection([('view','View'), ('normal','Normal')], 'Account Type'),
'description' : fields.text('Description'),
'parent_id': fields.many2one('account.analytic.account', 'Parent analytic account', select=2),
'child_ids': fields.one2many('account.analytic.account', 'parent_id', 'Childs Accounts'),
'line_ids': fields.one2many('account.analytic.line', 'account_id', 'Analytic entries'),
'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'),
'quantity': fields.function(_quantity_calc, method=True, type='float', string='Quantity'),
'quantity_max': fields.float('Maximal quantity'),
'partner_id' : fields.many2one('res.partner', 'Associated partner'),
'quantity_max': fields.float('Maximum Quantity'),
'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'),

View File

@ -39,7 +39,7 @@ def _remove_entries(self, cr, uid, data, context):
pool = pooler.get_pool(cr.dbname)
data_fyear = pool.get('account.fiscalyear').browse(cr,uid,data['form']['fyear_id'])
if not data_fyear.end_journal_period_id:
raise wizard.except_wizard(_('Error'), _('No journal for ending writings have been defined for the fiscal year'))
raise wizard.except_wizard(_('Error'), _('No journal for ending writing has been defined for the fiscal year'))
period_journal = data_fyear.end_journal_period_id
ids_move = pool.get('account.move').search(cr,uid,[('journal_id','=',period_journal.journal_id.id),('period_id','=',period_journal.period_id.id)])
if ids_move:

View File

@ -41,7 +41,7 @@ For example, you can define the following analytic structure:
Here, we have two plans: Projects and Salesman. An invoice line must
be able to write analytic entries in the 2 plans: SubProj 1.1 and
Fabien. The amount can also be splitted. The following example is for
Fabien. The amount can also be split. The following example is for
an invoice that touches the two subproject and assigned to one salesman:
Plan1:

View File

@ -156,16 +156,16 @@ class account_report(osv.osv):
'sequence': fields.integer('Sequence'),
'code': fields.char('Code', size=64, required=True),
'type': fields.selection([
('fiscal', 'Fiscal statement'),
('fiscal', 'Fiscal Statement'),
('indicator','Indicator'),
('view','View'),
('other','Others')],
'Type', required=True),
'expression': fields.char('Expression', size=240, required=True),
'badness_limit' :fields.float('Badness Indicator Limit', digits=(16,2),help='This Value depicts the limit of badness.'),
'goodness_limit' :fields.float('Goodness Indicator Limit', digits=(16,2),help='This Value depicts the limit of goodness.'),
'badness_limit' :fields.float('Badness Indicator Limit', digits=(16,2),help='This Value sets the limit of badness.'),
'goodness_limit' :fields.float('Goodness Indicator Limit', digits=(16,2),help='This Value sets the limit of goodness.'),
'parent_id': fields.many2one('account.report.report', 'Parent'),
'child_ids': fields.one2many('account.report.report', 'parent_id', 'Childs'),
'child_ids': fields.one2many('account.report.report', 'parent_id', 'Children'),
'note': fields.text('Note'),
'amount': fields.function(_amount_get, method=True, string='Value'),
'status': fields.function(_amount_get,
@ -179,8 +179,8 @@ class account_report(osv.osv):
('very good', 'Very Good')
],
string='Status'),
'disp_tree':fields.boolean('Display Tree',help='When the indicators will be printed, if one indicator is set with this field to True, then it will display one more graph with all its children in tree'),
'disp_graph':fields.boolean('Display as a Graph',help='If the field is set to True,information will be printed as a Graph; as an array otherwise.'),
'disp_tree':fields.boolean('Display Tree',help='When the indicators are printed, if one indicator is set with this field to True, then it will display one more graphs with all its children in tree'),
'disp_graph':fields.boolean('Display As Graph',help='If the field is set to True, information will be printed as a Graph, otherwise as an array.'),
# 'style': fields.selection(_style, 'Style', required=True),
# 'color_font' : fields.selection(_color, 'Font Color', help="Font Color for the report"),
# 'color_back' : fields.selection(_color, 'Back Color')

View File

@ -146,7 +146,7 @@
<menuitem action="action_account_report_tree_view_indicator" id="menu_action_account_report_tree_view_indicator" parent="account_report.menu_action_account_report_tree_view"/>
<record id="action_account_report_tree_view_other" model="ir.actions.act_window">
<field name="name">Others reportings</field>
<field name="name">Other reports</field>
<field name="res_model">account.fiscalyear</field>
<field name="view_type">tree</field>
<field name="view_id" ref="view_account_report_tree"/>

View File

@ -94,7 +94,7 @@ class account_report_bs(osv.osv):
'color_back' : fields.many2one('color.rml','Back Color'),
'font_style' : fields.selection(_font, 'Font'),
'parent_id': fields.many2one('account.report.bs', 'Parent'),
'child_id': fields.one2many('account.report.bs', 'parent_id', 'Childs'),
'child_id': fields.one2many('account.report.bs', 'parent_id', 'Children'),
'report_type' : fields.selection([('only_obj', 'Report Objects Only'),('with_account', 'Report Objects With Accounts'),('acc_with_child', 'Report Objects With Accounts and child of Accounts')],"Report Type")
}
_defaults = {

View File

@ -26,8 +26,8 @@
'version': '1.0',
'category': 'Generic Modules/Accounting',
'description': """
India Accounting module includes all the basic requirenment of
Basic Accounting, plus new things which available are:
India Accounting module includes all the basic requirements of
Basic Accounting, plus new things that are available:
* New Invoice - (Local, Retail)
* Invoice Report
* Tax structure

View File

@ -26,7 +26,7 @@
'version': '1.0',
'category': 'Generic Modules/Base',
'description': """
This module can be used by developpers to automatically publish their modules
This module can be used by developers to automatically publish their modules
in a few click to the following websites:
* http://OpenERP.com, section module
* http://TinyForge.org

View File

@ -59,10 +59,10 @@ class crm_case_section(osv.osv):
'code': fields.char('Section Code',size=8),
'active': fields.boolean('Active'),
'sequence': fields.integer('Sequence'),
'user_id': fields.many2one('res.users', 'Responsible'),
'reply_to': fields.char('Reply-To', size=64, help="The email address wich is the 'Reply-To' of all email sent by Open ERP for cases in this section"),
'user_id': fields.many2one('res.users', 'Responsible User'),
'reply_to': fields.char('Reply-To', size=64, help="The email address put in the 'Reply-To' of all emails sent by Open ERP about cases in this section"),
'parent_id': fields.many2one('crm.case.section', 'Parent Section'),
'child_ids': fields.one2many('crm.case.section', 'parent_id', 'Childs Sections'),
'child_ids': fields.one2many('crm.case.section', 'parent_id', 'Child Sections'),
}
_defaults = {
'active': lambda *a: 1,

View File

@ -32,7 +32,7 @@ and requests. It manages key tasks such as communication,
identification, prioritization, assignment, resolution and notification.
This module provide screens like: jobs hiring process, leads, business
opportunities, fund raising trackings, support & helpdesk, calendar of
opportunities, fund raising tracking, support & helpdesk, calendar of
meetings, eso.
""",
'author': 'Tiny',

View File

@ -196,11 +196,11 @@ partner()
class crm_segmentation(osv.osv):
_inherit="crm.segmentation"
_columns={
"answer_yes": fields.many2many("crm_profiling.answer","profile_question_yes_rel","profile","answer","Inclued answers"),
"answer_no": fields.many2many("crm_profiling.answer","profile_question_no_rel","profile","answer","Excluded answers"),
"answer_yes": fields.many2many("crm_profiling.answer","profile_question_yes_rel","profile","answer","Included Answers"),
"answer_no": fields.many2many("crm_profiling.answer","profile_question_no_rel","profile","answer","Excluded Answers"),
'parent_id': fields.many2one('crm.segmentation', 'Parent Profile'),
'child_ids': fields.one2many('crm.segmentation', 'parent_id', 'Childs profile'),
'profiling_active': fields.boolean('Use The Profiling Rules', help='Check if you want to use this tab as part of the segmentation rule. If not checked, the criteria beneath will be ignored')
'child_ids': fields.one2many('crm.segmentation', 'parent_id', 'Child Profiles'),
'profiling_active': fields.boolean('Use The Profiling Rules', help='Check this box if you want to use this tab as part of the segmentation rule. If not checked, the criteria beneath will be ignored')
}
_constraints = [
(orm.orm.check_recursion, 'Error ! You can not create recursive profiles.', ['parent_id'])

View File

@ -25,7 +25,7 @@
'name': 'Carriers and deliveries',
'version': '1.0',
'category': 'Generic Modules/Sales & Purchases',
'description': """Allows to add delivery methods in sales order and packing. You can define your own carrier and delivery grids for prices. When creating invoices from pickings, Open ERP is able to add and compute the shipping line.""",
'description': """Allows you to add delivery methods in sales orders and packing. You can define your own carrier and delivery grids for prices. When creating invoices from picking, Open ERP is able to add and compute the shipping line.""",
'author': 'Tiny',
'depends': ['sale', 'purchase', 'stock'],
'init_xml': ['delivery_data.xml'],

View File

@ -158,7 +158,7 @@
</record>
<record id="action_picking_tree4" model="ir.actions.act_window">
<field name="name">Packings to be invoiced</field>
<field name="name">Packing to be invoiced</field>
<field name="res_model">stock.picking</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>

View File

@ -32,7 +32,7 @@ class res_partner(osv.osv):
string="Delivery Method",
method=True,
view_load=True,
help="This delivery method will be used when invoicing from packings."),
help="This delivery method will be used when invoicing from packing."),
}
res_partner()

View File

@ -27,7 +27,7 @@ from osv import fields,osv
class sale_order(osv.osv):
_inherit = 'sale.order'
_columns = {
'carrier_id':fields.many2one("delivery.carrier","Delivery method", help="Complete this field if you plan to invoice the shipping based on packings made."),
'carrier_id':fields.many2one("delivery.carrier","Delivery method", help="Complete this field if you plan to invoice the shipping based on packing."),
'id': fields.integer('ID', readonly=True,invisible=True),
}

View File

@ -217,23 +217,23 @@ class document_directory(osv.osv):
'create_date': fields.datetime('Date Created', readonly=True),
'create_uid': fields.many2one('res.users', 'Creator', readonly=True),
'file_type': fields.char('Content Type', size=32),
'domain': fields.char('Domain', size=128, help="Use a domain if you want to apply an automatic filter on visible ressources."),
'domain': fields.char('Domain', size=128, help="Use a domain if you want to apply an automatic filter on visible resources."),
'user_id': fields.many2one('res.users', 'Owner'),
'group_ids': fields.many2many('res.groups', 'document_directory_group_rel', 'item_id', 'group_id', 'Groups'),
'parent_id': fields.many2one('document.directory', 'Parent Item'),
'child_ids': fields.one2many('document.directory', 'parent_id', 'Childs'),
'child_ids': fields.one2many('document.directory', 'parent_id', 'Children'),
'file_ids': fields.one2many('ir.attachment', 'parent_id', 'Files'),
'content_ids': fields.one2many('document.directory.content', 'directory_id', 'Virtual Files'),
'type': fields.selection([('directory','Static Directory'),('ressource','Other Ressources')], 'Type', required=True),
'type': fields.selection([('directory','Static Directory'),('ressource','Other Resources')], 'Type', required=True),
'ressource_type_id': fields.many2one('ir.model', 'Directories Mapped to Objects',
help="Select an object here and Open ERP will create a mapping for each of these " \
"objects, using the given domain, when browsing through FTP."),
'ressource_parent_type_id': fields.many2one('ir.model', 'Parent Model',
help="If you put an object here, this directory template will appear bellow all of these objects. " \
"Don't put a parent directory if you select a parent model."),
'ressource_id': fields.integer('Ressource ID'),
'ressource_id': fields.integer('Resource ID'),
'ressource_tree': fields.boolean('Tree Structure',
help="Check this if you want to use the same tree structure than the selected object in the system."),
help="Check this if you want to use the same tree structure as the object selected in the system."),
}
_defaults = {
'user_id': lambda self,cr,uid,ctx: uid,

View File

@ -87,8 +87,8 @@ class hr_employee_category(osv.osv):
_columns = {
'name' : fields.char("Category", size=64, required=True),
'parent_id': fields.many2one('hr.employee.category', 'Parent category', select=True),
'child_ids': fields.one2many('hr.employee.category', 'parent_id', 'Childs Categories')
'parent_id': fields.many2one('hr.employee.category', 'Parent Category', select=True),
'child_ids': fields.one2many('hr.employee.category', 'parent_id', 'Child Categories')
}
def _check_recursion(self, cr, uid, ids):

View File

@ -29,7 +29,7 @@ class hr_department(osv.osv):
'name': fields.char('Department Name', size=64, required=True),
'company_id': fields.many2one('res.company', 'Company', select=True, required=True),
'parent_id': fields.many2one('hr.department', 'Parent Department', select=True),
'child_ids': fields.one2many('hr.department', 'parent_id', 'Childs Departments'),
'child_ids': fields.one2many('hr.department', 'parent_id', 'Child Departments'),
'note': fields.text('Note'),
'manager_id': fields.many2one('res.users', 'Manager', required=True),
'member_ids': fields.many2many('res.users', 'hr_department_user_rel', 'department_id', 'user_id', 'Members'),

View File

@ -22,7 +22,7 @@
<field name="standard_price">30.0</field>
<field name="uom_id" ref="uom_hour"/>
<field name="uom_po_id" ref="uom_hour"/>
<field name="name">Consultancy - Senior Developper</field>
<field name="name">Consultancy - Senior Developer</field>
<field name="categ_id" ref="product.product_category_10"/>
<field name="type">service</field>
<field name="supply_method">produce</field>

View File

@ -108,8 +108,8 @@ class mrp_routing(osv.osv):
'workcenter_lines': fields.one2many('mrp.routing.workcenter', 'routing_id', 'Workcenters'),
'location_id': fields.many2one('stock.location', 'Production Location',
help="Keep empty if you produce at the location where the finnished products are needed." \
"Put a location if you produce at a fixed location. This can be a partner location " \
help="Keep empty if you produce at the location where the finished products are needed." \
"Set a location if you produce at a fixed location. This can be a partner location " \
"if you subcontract the manufacturing operations."
),
}
@ -192,7 +192,7 @@ class mrp_bom(osv.osv):
'product_efficiency': fields.float('Product Efficiency', required=True, help="Efficiency on the production. A factor of 0.9 means a loss of 10% in the production."),
'bom_lines': fields.one2many('mrp.bom', 'bom_id', 'BoM Lines'),
'bom_id': fields.many2one('mrp.bom', 'Parent BoM', ondelete='cascade', select=True),
'routing_id': fields.many2one('mrp.routing', 'Routing', help="The list of operations (list of workcenters) to produce the finnished product. The routing is mainly used to compute workcenter costs during operations and to plan futur loads on workcenters based on production plannification."),
'routing_id': fields.many2one('mrp.routing', 'Routing', help="The list of operations (list of workcenters) to produce the finished product. The routing is mainly used to compute workcenter costs during operations and to plan futur loads on workcenters based on production plannification."),
'property_ids': fields.many2many('mrp.property', 'mrp_bom_property_rel', 'bom_id','property_id', 'Properties'),
'revision_ids': fields.one2many('mrp.bom.revision', 'bom_id', 'BoM Revisions'),
'revision_type': fields.selection([('numeric','numeric indices'),('alpha','alphabetical indices')], 'indice type'),
@ -401,10 +401,10 @@ class mrp_production(osv.osv):
'product_uos_qty': fields.float('Product Qty'),
'product_uos': fields.many2one('product.uom', 'Product UOM'),
'location_src_id': fields.many2one('stock.location', 'Raw Products Location', required=True,
'location_src_id': fields.many2one('stock.location', 'Raw Materials Location', required=True,
help="Location where the system will look for products used in raw materials."),
'location_dest_id': fields.many2one('stock.location', 'Finnished Products Location', required=True,
help="Location where the system will stock the finnished products."),
'location_dest_id': fields.many2one('stock.location', 'Finished Products Location', required=True,
help="Location where the system will stock the finished products."),
'date_planned_date': fields.function(_production_date, method=True, type='date', string='Planned Date'),
'date_planned': fields.datetime('Scheduled date', required=True, select=1),

View File

@ -480,7 +480,7 @@
<page string="Scheduled Products">
<field colspan="4" name="product_lines" nolabel="1" widget="one2many_list"/>
</page>
<page string="Finnished Products">
<page string="Finished Products">
<field colspan="4" name="move_created_ids" nolabel="1"/>
</page>
<page string="Work Orders">

View File

@ -104,7 +104,7 @@ class mrp_procurement(osv.osv):
summary = '''Here is the procurement scheduling report.
Computation Started; %s
Computation Finnished; %s
Computation Finished; %s
Total procurement: %d
Exception procurement: %d

View File

@ -29,12 +29,12 @@
This module allows Just In Time computation of all procurement.
If you install this module, you will not have to run the schedulers anymore.
Each document is computed in realtime. Note that this module can slow down your
Each document is computed in real time. Note that this module can slow down your
system a little bit.
It may also increase your stock size because products are reserved as soon
as possible. In that case, you can not use priorities anymore on the different
pickings.
as possible. In that case, you can not use priorities any more on the different
picking.
""",
'author': 'Tiny',
'depends': ['mrp', 'sale'],

View File

@ -184,17 +184,17 @@ class pos_order(osv.osv):
'pickings': fields.one2many('stock.picking', 'pos_order', 'Picking',
readonly=True),
'last_out_picking': fields.many2one('stock.picking',
'Last output picking',
'Last Output Picking',
readonly=True),
'note': fields.text('Notes'),
'nb_print': fields.integer('Number of print', readonly=True),
'nb_print': fields.integer('Number of Print', readonly=True),
'sale_journal': fields.many2one('account.journal', 'Journal',
required=True, states={'draft': [('readonly', False)]},
readonly=True, ),
'account_receivable': fields.many2one('account.account',
'Default Receivable', required=True, states={'draft': [('readonly', False)]},
readonly=True, ),
'invoice_wanted': fields.boolean('Create invoice')
'invoice_wanted': fields.boolean('Create Invoice')
}
def _journal_default(self, cr, uid, context={}):
@ -794,7 +794,7 @@ class pos_order_line(osv.osv):
'price_subtotal': fields.function(_amount_line, method=True, string='Subtotal'),
'discount': fields.float('Discount (%)', digits=(16, 2)),
'order_id': fields.many2one('pos.order', 'Order Ref', ondelete='cascade'),
'create_date': fields.datetime('Creation date', readonly=True),
'create_date': fields.datetime('Creation Date', readonly=True),
}
_defaults = {
@ -885,9 +885,9 @@ class pos_payment(osv.osv):
'order_id': fields.many2one('pos.order', 'Order Ref', required=True, ondelete='cascade'),
'journal_id': fields.many2one('account.journal', "Journal", required=True),
'payment_id': fields.many2one('account.payment.term','Payment Term', select=True),
'payment_nb': fields.char('Piece number', size=32),
'payment_name': fields.char('Payment name', size=32),
'payment_date': fields.date('Payment date', required=True),
'payment_nb': fields.char('Piece Number', size=32),
'payment_name': fields.char('Payment Name', size=32),
'payment_date': fields.date('Payment Date', required=True),
'amount': fields.float('Amount', required=True),
}
_defaults = {
@ -919,7 +919,7 @@ class report_transaction_pos(osv.osv):
'date_create': fields.char('Date', size=16, readonly=True),
'journal_id': fields.many2one('account.journal', 'Journal', readonly=True),
'user_id': fields.many2one('res.users', 'User', readonly=True),
'no_trans': fields.float('Number of transaction', readonly=True),
'no_trans': fields.float('Number of Transaction', readonly=True),
'amount': fields.float('Amount', readonly=True),
'invoice_id': fields.many2one('account.invoice', 'Invoice', readonly=True),
}

View File

@ -102,7 +102,7 @@
<separator string="Notes" colspan="4"/>
<field name="note" nolabel="1" colspan="4"/>
<separator string="Pickings" colspan="4"/>
<separator string="Picking" colspan="4"/>
<field name="pickings" nolabel="1" colspan="4"/>
</page>

View File

@ -55,7 +55,7 @@
<field name="name">Packing List</field>
<field name="note">The workers pack the requested items</field>
<field name="model_id" model="ir.model" search="[('name', '=', 'Packing list')]"></field>
<field name="menu_id" model="ir.ui.menu" search="[('name', '=', 'Packings to Process')]"></field>
<field name="menu_id" model="ir.ui.menu" search="[('name', '=', 'Packing to Process')]"></field>
<field name="kind">state</field>
<field name="model_states"></field>
<field name="process_id" ref="sales_workflow"/>

View File

@ -30,13 +30,13 @@
"init_xml" : [],
"demo_xml" : ["product_demo.xml"],
"description": """
This is the base module to manage products and pricelists in Open ERP.
This is the base module for managing products and pricelists in Open ERP.
Products support variants, different pricing methods, suppliers
information, make to stock/order, different unit of measures,
packagings and properties.
packaging and properties.
Pricelists supports:
Pricelists support:
* Multiple-level of discount (by product, category, quantities)
* Compute price based on different criteria:
* Other pricelist,

View File

@ -254,8 +254,8 @@ class product_pricelist_version(osv.osv):
'active': fields.boolean('Active'),
'items_id': fields.one2many('product.pricelist.item',
'price_version_id', 'Price List Items', required=True),
'date_start': fields.date('Start Date', help="Starting date for validity of this pricelist version."),
'date_end': fields.date('End Date', help="Ending date for validity of this pricelist version."),
'date_start': fields.date('Start Date', help="Starting date for this pricelist version to be valid."),
'date_end': fields.date('End Date', help="Ending date for this pricelist version to be valid."),
}
_defaults = {
'active': lambda *a: 1,
@ -337,9 +337,9 @@ class product_pricelist_item(osv.osv):
'product_id': fields.many2one('product.product', 'Product', ondelete='cascade', help="Set a product if this rule only apply to one product. Keep empty for all products"),
'categ_id': fields.many2one('product.category', 'Product Category', ondelete='cascade', help="Set a category of product if this rule only apply to products of a category and his childs. Keep empty for all products"),
'min_quantity': fields.integer('Min. Quantity', required=True, help="The rule only apply if the partner buys/sells more than this quantity."),
'min_quantity': fields.integer('Min. Quantity', required=True, help="The rule only applies if the partner buys/sells more than this quantity."),
'sequence': fields.integer('Sequence', required=True),
'base': fields.selection(_price_field_get, 'Based on', required=True, size=-1, help="The mode of computation of the price for this rule."),
'base': fields.selection(_price_field_get, 'Based on', required=True, size=-1, help="The mode for computing the price for this rule."),
'base_pricelist_id': fields.many2one('product.pricelist', 'If Other Pricelist'),
'price_surcharge': fields.float('Price Surcharge',
@ -349,11 +349,11 @@ class product_pricelist_item(osv.osv):
digits=(16, int(config['price_accuracy'])),
help="Sets the price so that it is a multiple of this value.\n" \
"Rounding is applied after the discount and before the surcharge.\n" \
"To have prices that ends by 9.99, set rounding 10, surcharge -0.01" \
"To have prices that end in 9.99, set rounding 10, surcharge -0.01" \
),
'price_min_margin': fields.float('Price Min. Margin',
'price_min_margin': fields.float('Min. Price Margin',
digits=(16, int(config['price_accuracy']))),
'price_max_margin': fields.float('Price Max. Margin',
'price_max_margin': fields.float('Max. Price Margin',
digits=(16, int(config['price_accuracy']))),
}
def product_id_change(self, cr, uid, ids, product_id, context={}):

View File

@ -44,8 +44,8 @@
<record id="process_transition_supplierofproduct0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Supplier of Product&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;You can see the list of supplier for that product.&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Suppliers of Product&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;You can see the list of suppliers for that product.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_supplier0"/>
<field model="process.node" name="source_node_id" ref="process_node_product0"/>
</record>

View File

@ -80,17 +80,17 @@ class product_uom(osv.osv):
_columns = {
'name': fields.char('Name', size=64, required=True, translate=True),
'category_id': fields.many2one('product.uom.categ', 'UoM Category', required=True, ondelete='cascade',
help="Unit of Measure of the same category can be converted between each others."),
help="Unit of Measure of a category can be converted between each others in the same category."),
'factor': fields.float('Rate', digits=(12, 6), required=True,
help='The coefficient for the formula:\n' \
'1 (base unit) = coef (this unit). Rate = 1 / Factor.'),
'1 (base unit) = coeff (this unit). Rate = 1 / Factor.'),
'factor_inv': fields.function(_factor, fnct_inv=_factor_inv, digits=(12, 6),
method=True, string='Factor',
help='The coefficient for the formula:\n' \
'coef (base unit) = 1 (this unit). Factor = 1 / Rate.'),
'coeff (base unit) = 1 (this unit). Factor = 1 / Rate.'),
'factor_inv_data': fields.float('Factor', digits=(12, 6)),
'rounding': fields.float('Rounding Precision', digits=(16, 3), required=True,
help="The computed quantity will be a multiple of this value. Use 1.0 for products that can not be splitted."),
help="The computed quantity will be a multiple of this value. Use 1.0 for products that can not be split."),
'active': fields.boolean('Active'),
}
@ -164,7 +164,7 @@ class product_ul(osv.osv):
_description = "Shipping Unit"
_columns = {
'name' : fields.char('Name', size=64,select=True, required=True, translate=True),
'type' : fields.selection([('unit','Unit'),('pack','Pack'),('box', 'Box'), ('palet', 'Palet')], 'Type', required=True),
'type' : fields.selection([('unit','Unit'),('pack','Pack'),('box', 'Box'), ('palet', 'Pallet')], 'Type', required=True),
}
product_ul()
@ -196,7 +196,7 @@ class product_category(osv.osv):
'name': fields.char('Name', size=64, required=True, translate=True),
'complete_name': fields.function(_name_get_fnc, method=True, type="char", string='Name'),
'parent_id': fields.many2one('product.category','Parent Category', select=True),
'child_id': fields.one2many('product.category', 'parent_id', string='Childs Categories'),
'child_id': fields.one2many('product.category', 'parent_id', string='Child Categories'),
'sequence': fields.integer('Sequence'),
}
_order = "sequence"
@ -240,15 +240,15 @@ class product_template(osv.osv):
'description': fields.text('Description',translate=True),
'description_purchase': fields.text('Purchase Description',translate=True),
'description_sale': fields.text('Sale Description',translate=True),
'type': fields.selection([('product','Stockable Product'),('consu', 'Consumable'),('service','Service')], 'Product Type', required=True, help="Will change the way procurements are processed, consumable are stockable products with infinite stock, or without a stock management in the system."),
'type': fields.selection([('product','Stockable Product'),('consu', 'Consumable'),('service','Service')], 'Product Type', required=True, help="Will change the way procurements are processed. Consumables are stockable products with infinite stock, or for use when you have no stock management in the system."),
'supply_method': fields.selection([('produce','Produce'),('buy','Buy')], 'Supply method', required=True, help="Produce will generate production order or tasks, according to the product type. Purchase will trigger purchase orders when requested."),
'sale_delay': fields.float('Customer Lead Time', help="This is the average time between the confirmation of the customer order and the delivery of the finnished products. It's the time you promise to your customers."),
'sale_delay': fields.float('Customer Lead Time', help="This is the average time between the confirmation of the customer order and the delivery of the finished products. It's the time you promise to your customers."),
'produce_delay': fields.float('Manufacturing Lead Time', help="Average time to produce this product. This is only for the production order and, if it is a multi-level bill of material, it's only for the level of this product. Different delays will be summed for all levels and purchase orders."),
'procure_method': fields.selection([('make_to_stock','Make to Stock'),('make_to_order','Make to Order')], 'Procure Method', required=True, help="'Make to Stock': When needed, take from the stock or wait until refurnishing. 'Make to Order': When needed, purchase or produce for the procurement request."),
'rental': fields.boolean('Rentable product'),
'procure_method': fields.selection([('make_to_stock','Make to Stock'),('make_to_order','Make to Order')], 'Procure Method', required=True, help="'Make to Stock': When needed, take from the stock or wait until re-supplying. 'Make to Order': When needed, purchase or produce for the procurement request."),
'rental': fields.boolean('Rentable Product'),
'categ_id': fields.many2one('product.category','Category', required=True, change_default=True),
'list_price': fields.float('Sale Price', digits=(16, int(config['price_accuracy'])), help="Base price for computing the customer price. Sometimes called the catalog price."),
'standard_price': fields.float('Cost Price', required=True, digits=(16, int(config['price_accuracy'])), help="The cost of the product for accounting stock valorisation. It can serves as a base price for supplier price."),
'standard_price': fields.float('Cost Price', required=True, digits=(16, int(config['price_accuracy'])), help="The cost of the product for accounting stock valuation. It can serves as a base price for supplier price."),
'volume': fields.float('Volume', help="The volume in m3."),
'weight': fields.float('Gross weight', help="The gross weight in Kg."),
'weight_net': fields.float('Net weight', help="The net weight in Kg."),

View File

@ -130,11 +130,11 @@
<field name="qty" select="1"/>
<field name="ul"/>
<field name="weight_ul"/>
<separator colspan="4" string="Paletization"/>
<separator colspan="4" string="Palletization"/>
<field name="ul_qty"/>
<field name="rows"/>
<field name="weight"/>
<separator colspan="4" string="Palette Dimension"/>
<separator colspan="4" string="Pallet Dimension"/>
<field name="height"/>
<field name="width"/>
<field name="length"/>
@ -295,7 +295,7 @@
<field name="model">product.ul</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Packagings">
<form string="Packaging">
<field name="name"/>
<field name="type"/>
</form>
@ -306,14 +306,14 @@
<field name="model">product.ul</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Packagings">
<tree string="Packaging">
<field name="name" select="1"/>
<field name="type" select="1"/>
</tree>
</field>
</record>
<record id="product_ul_form_action" model="ir.actions.act_window">
<field name="name">Packagings</field>
<field name="name">Packaging</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.ul</field>
<field name="view_type">form</field>
@ -349,11 +349,11 @@
<field name="qty" select="1"/>
<field name="ul"/>
<field name="weight_ul"/>
<separator colspan="4" string="Paletization"/>
<separator colspan="4" string="Palletization"/>
<field name="ul_qty"/>
<field name="rows"/>
<field name="weight"/>
<separator colspan="4" string="Palette Dimension"/>
<separator colspan="4" string="Pallet Dimension"/>
<field name="height"/>
<field name="width"/>
<field name="length"/>

View File

@ -29,7 +29,7 @@ class profile_service_config_install_modules_wizard(osv.osv_memory):
_columns = {
'crm_configuration':fields.boolean('CRM & Calendars', help="This installs the customer relationship features like: leads and opportunities tracking, shared calendar, jobs tracking, bug tracker, and so on."),
'project_timesheet':fields.boolean('Timesheets', help="Timesheets allows you to track time and costs spent on different projects, represented by analytic accounts."),
'hr_timesheet_invoice':fields.boolean('Invoice on Timesheets', help="There are different invoicing methods in OpenERP: from sale orders, from shippings, ... Install this module if you plan to invoice your customers based on time spent on projects."),
'hr_timesheet_invoice':fields.boolean('Invoice on Timesheets', help="There are different invoicing methods in OpenERP: from sale orders, from shipping, ... Install this module if you plan to invoice your customers based on time spent on projects."),
'hr_holidays':fields.boolean('Holidays Management', help="Tracks the full holidays management process, from the employee's request to the global planning."),
'hr_expense':fields.boolean('Expenses Tracking', help="Tracks the personal expenses process, from the employee expense encoding, to the reimbursement of the employee up to the reinvoicing to the final customer."),
'project_mrp':fields.boolean('Sales Management', help="Manages quotation and sales orders. It allows you to automatically create and invoice tasks on fixes prices from quotations."),

View File

@ -82,7 +82,7 @@ class project(osv.osv):
_columns = {
'name': fields.char("Project Name", size=128, required=True),
'active': fields.boolean('Active'),
'category_id': fields.many2one('account.analytic.account','Analytic Account', help="Link this project to an analytic account if you need financial management on projects. It ables to connect projects with budgets, plannings, costs and revenues analysis, timesheet on projects, etc."),
'category_id': fields.many2one('account.analytic.account','Analytic Account', help="Link this project to an analytic account if you need financial management on projects. It enables you to connect projects with budgets, planning, cost and revenue analysis, timesheets on projects, etc."),
'priority': fields.integer('Sequence'),
'manager': fields.many2one('res.users', 'Project Manager'),
'warn_manager': fields.boolean('Warn Manager', help="If you check this field, the project manager will receive a request each time a task is completed by his team."),

View File

@ -202,7 +202,7 @@
<field name="user_id" ref="base.user_root"/>
<field name="project_id" ref="project_project_23"/>
<field name="state">open</field>
<field name="name">In house trainings</field>
<field name="name">In house training</field>
<field name="date_deadline">2007-06-06</field>
</record>
<record id="project_task_202" model="project.task">

View File

@ -66,7 +66,7 @@ class project_gtd_timebox(osv.osv):
_columns = {
'name': fields.char('Timebox', size=64, required=True, select=1),
'user_id': fields.many2one('res.users', 'User', required=True, select=1),
'child_ids': fields.one2many('project.gtd.timebox', 'parent_id', 'Childs Timebox'),
'child_ids': fields.one2many('project.gtd.timebox', 'parent_id', 'Child Timeboxes'),
'parent_id': fields.many2one('project.gtd.timebox', 'Parent Timebox'),
'task_ids': fields.one2many('project.task', 'timebox_id', 'Tasks'),
'type': fields.selection([('daily','Daily'),('weekly','Weekly'),('monthly','Monthly'),('other','Other')], 'Type', required=True),

View File

@ -343,7 +343,7 @@ class purchase_order(osv.osv):
if pick.state not in ('draft','cancel'):
raise osv.except_osv(
_('Could not cancel purchase order !'),
_('You must first cancel all packings attached to this purchase order.'))
_('You must first cancel all packing attached to this purchase order.'))
for pick in purchase.picking_ids:
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'stock.picking', pick.id, 'button_cancel', cr)

View File

@ -73,7 +73,7 @@
</record>
<record id="action_account_analytic_planning_form" model="ir.actions.act_window">
<field name="name">Plannings</field>
<field name="name">Planning</field>
<field name="res_model">report_account_analytic.planning</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
@ -85,7 +85,7 @@
parent="planning_main"/>
<record id="action_account_analytic_planning_form_my" model="ir.actions.act_window">
<field name="name">My Plannings</field>
<field name="name">My Planning</field>
<field name="res_model">report_account_analytic.planning</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
@ -97,7 +97,7 @@
parent="planning_main"/>
<record id="action_account_analytic_planning_form_current_my" model="ir.actions.act_window">
<field name="name">My Current Plannings</field>
<field name="name">My Current Planning</field>
<field name="res_model">report_account_analytic.planning</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
@ -106,7 +106,7 @@
<menuitem action="action_account_analytic_planning_form_current_my" id="menu_report_account_analytic_planning_current_my" parent="menu_report_account_analytic_planning_my2"/>
<record id="action_account_analytic_planning_form_current" model="ir.actions.act_window">
<field name="name">Current Plannings</field>
<field name="name">Current Planning</field>
<field name="res_model">report_account_analytic.planning</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>

View File

@ -32,9 +32,9 @@ class sale_shop(osv.osv):
_name = "sale.shop"
_description = "Sale Shop"
_columns = {
'name': fields.char('Shop name',size=64, required=True),
'name': fields.char('Shop Name',size=64, required=True),
'payment_default_id': fields.many2one('account.payment.term','Default Payment Term',required=True),
'payment_account_id': fields.many2many('account.account','sale_shop_account','shop_id','account_id','Payment accounts'),
'payment_account_id': fields.many2many('account.account','sale_shop_account','shop_id','account_id','Payment Accounts'),
'warehouse_id': fields.many2one('stock.warehouse','Warehouse'),
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist'),
'project_id': fields.many2one('account.analytic.account', 'Analytic Account'),
@ -182,18 +182,18 @@ class sale_order(osv.osv):
'name': fields.char('Order Reference', size=64, required=True, select=True),
'shop_id':fields.many2one('sale.shop', 'Shop', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'origin': fields.char('Origin', size=64),
'client_order_ref': fields.char('Customer Ref.',size=64),
'client_order_ref': fields.char('Customer Ref',size=64),
'state': fields.selection([
('draft','Quotation'),
('waiting_date','Waiting Schedule'),
('manual','Manual in progress'),
('progress','In progress'),
('manual','Manual In Progress'),
('progress','In Progress'),
('shipping_except','Shipping Exception'),
('invoice_except','Invoice Exception'),
('done','Done'),
('cancel','Cancel')
], 'Order State', readonly=True, help="Gives the state of the quotation or sale order. The exception state is automatically set when a cancel operation occurs in the invoice validation (Invoice Exception) or in the packing list process (Shipping Exception). The 'Waiting Schedule' state is set when the invoice is confirmed but waiting for the scheduler to be on the date 'Date Ordered'.", select=True),
], 'Order State', readonly=True, help="Gives the state of the quotation or sale order. The exception state is automatically set when a cancel operation occurs in the invoice validation (Invoice Exception) or in the packing list process (Shipping Exception). The 'Waiting Schedule' state is set when the invoice is confirmed but waiting for the scheduler to run on the date 'Date Ordered'.", select=True),
'date_order':fields.date('Date Ordered', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'user_id':fields.many2one('res.users', 'Salesman', states={'draft':[('readonly',False)]}, select=True),
@ -204,24 +204,24 @@ class sale_order(osv.osv):
'incoterm': fields.selection(_incoterm_get, 'Incoterm',size=3),
'picking_policy': fields.selection([('direct','Partial Delivery'),('one','Complete Delivery')],
'Packing Policy', required=True, help="""If you don't have enough stock available to deliver all at once, do you accept partial shippings or not."""),
'Packing Policy', required=True, help="""If you don't have enough stock available to deliver all at once, do you accept partial shipments or not?"""),
'order_policy': fields.selection([
('prepaid','Payment Before Delivery'),
('manual','Shipping & Manual Invoice'),
('postpaid','Invoice on Order After Delivery'),
('picking','Invoice from the packings'),
('picking','Invoice from the Packing'),
], 'Shipping Policy', required=True, readonly=True, states={'draft':[('readonly',False)]},
help="""The Shipping Policy is used to synchronise invoice and delivery operations.
- The 'Pay before delivery' choice will first generate the invoice and then generate the packing order after the payment of this invoice.
- The 'Shipping & Manual Invoice' will create the packing order directly and wait for the user to manually click on the 'Invoice' button to generate the draft invoice.
- The 'Invoice on Order Ater Delivery' choice will generate the draft invoice based on sale order after all packing lists have been finished.
- The 'Invoice from the packings' choice is used to create an invoice during the packing process."""),
- The 'Invoice from the packing' choice is used to create an invoice during the packing process."""),
'pricelist_id':fields.many2one('product.pricelist', 'Pricelist', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'project_id':fields.many2one('account.analytic.account', 'Analytic Account', readonly=True, states={'draft':[('readonly', False)]}),
'order_line': fields.one2many('sale.order.line', 'order_id', 'Order Lines', readonly=True, states={'draft':[('readonly',False)]}),
'invoice_ids': fields.many2many('account.invoice', 'sale_order_invoice_rel', 'order_id', 'invoice_id', 'Invoice', help="This is the list of invoices that have been generated for this sale order. The same sale order may have been invoiced in several times (by line for example)."),
'picking_ids': fields.one2many('stock.picking', 'sale_id', 'Related Packings', readonly=True, help="This is the list of picking list that have been generated for this invoice"),
'picking_ids': fields.one2many('stock.picking', 'sale_id', 'Related Packing', readonly=True, help="This is the list of picking list that have been generated for this invoice"),
'shipped':fields.boolean('Picked', readonly=True),
'picked_rate': fields.function(_picked_rate, method=True, string='Picked', type='float'),
'invoiced_rate': fields.function(_invoiced_rate, method=True, string='Invoiced', type='float'),
@ -444,7 +444,7 @@ class sale_order(osv.osv):
if pick.state not in ('draft','cancel'):
raise osv.except_osv(
_('Could not cancel sale order !'),
_('You must first cancel all packings attached to this sale order.'))
_('You must first cancel all packing attached to this sale order.'))
for r in self.read(cr,uid,ids,['picking_ids']):
for pick in r['picking_ids']:
wf_service = netsvc.LocalService("workflow")
@ -721,12 +721,12 @@ class sale_order_line(osv.osv):
'address_allotment_id' : fields.many2one('res.partner.address', 'Allotment Partner'),
'product_uom_qty': fields.float('Quantity (UoM)', digits=(16,2), required=True),
'product_uom': fields.many2one('product.uom', 'Product UoM', required=True),
'product_uos_qty': fields.float('Quantity (UOS)'),
'product_uos': fields.many2one('product.uom', 'Product UOS'),
'product_uos_qty': fields.float('Quantity (UoS)'),
'product_uos': fields.many2one('product.uom', 'Product UoS'),
'product_packaging': fields.many2one('product.packaging', 'Packaging'),
'move_ids': fields.one2many('stock.move', 'sale_line_id', 'Inventory Moves', readonly=True),
'discount': fields.float('Discount (%)', digits=(16,2)),
'number_packages': fields.function(_number_packages, method=True, type='integer', string='Number packages'),
'number_packages': fields.function(_number_packages, method=True, type='integer', string='Number Packages'),
'notes': fields.text('Notes'),
'th_weight' : fields.float('Weight'),
'state': fields.selection([('draft','Draft'),('confirmed','Confirmed'),('done','Done'),('cancel','Canceled'),('exception','Exception')], 'Status', required=True, readonly=True),

View File

@ -24,8 +24,8 @@
<button name="button_draft" string="Set to Draft" states="close,open" type="object"/>
</group>
</page>
<page string="Packings">
<button string="Cancel Packings" name="button_picking_cancel" states="draft,open" type="object"/>
<page string="Packing">
<button string="Cancel Packing" name="button_picking_cancel" states="draft,open" type="object"/>
<newline/>
<field name="picking_stats_ids" colspan="4" nolabel="1"/>
</page><page string="Notes">
@ -50,17 +50,17 @@
</field>
</record>
<record model="ir.actions.act_window" id="action_definition_picking_journal">
<field name="name">Packings journals</field>
<field name="name">Packing journals</field>
<field name="res_model">sale_journal.picking.journal</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem name="Packings Journals" id="menu_definition_journal_picking" parent="stock.menu_stock_configuration" action="action_definition_picking_journal"/>
<menuitem name="Packing Journals" id="menu_definition_journal_picking" parent="stock.menu_stock_configuration" action="action_definition_picking_journal"/>
<record model="ir.actions.act_window" id="action_definition_picking_journal_tree">
<field name="name">Packings by journal</field>
<field name="name">Packing by journal</field>
<field name="res_model">sale_journal.picking.journal</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
@ -68,7 +68,7 @@
</record>
<menuitem name="Packings by Journal" id="menu_definition_journal_picking_byjournal" parent="stock.menu_stock_root" action="action_definition_picking_journal_tree"/>
<menuitem name="Packing by Journal" id="menu_definition_journal_picking_byjournal" parent="stock.menu_stock_root" action="action_definition_picking_journal_tree"/>
<record model="ir.actions.act_window" id="action_definition_picking_journal_tree_my">
<field name="name">My open packing journals</field>
@ -81,7 +81,7 @@
<menuitem name="My Open Journals" id="menu_definition_journal_picking_byjournal_my" parent="menu_definition_journal_picking_byjournal" action="action_definition_picking_journal_tree_my"/>
<record model="ir.actions.act_window" id="action_definition_picking_journal_tree_all">
<field name="name">Packings by journal</field>
<field name="name">Packing by journal</field>
<field name="res_model">sale_journal.picking.journal</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
@ -91,7 +91,7 @@
<menuitem name="All Open Journals" id="menu_definition_journal_picking_byjournal_all" parent="menu_definition_journal_picking_byjournal" action="action_definition_picking_journal_tree_all"/>
<record model="ir.actions.act_window" id="action_invoice_type_tree">
<field name="name">Packings by invoice_method</field>
<field name="name">Packing by invoice_method</field>
<field name="name">sale_journal.invoice.type.tree</field>
<field name="res_model">sale_journal.invoice.type</field>
<field name="type">ir.actions.act_window</field>
@ -99,11 +99,11 @@
</record>
<menuitem name="Packings to Invoice" id="menu_definition_journal_picking_invoice" parent="stock.menu_action_picking_tree"/>
<menuitem name="Packings by Invoice Method" id="menu_definition_journal_picking_invoice_method" parent="menu_definition_journal_picking_invoice" action="action_invoice_type_tree"/>
<menuitem name="Packing to Invoice" id="menu_definition_journal_picking_invoice" parent="stock.menu_action_picking_tree"/>
<menuitem name="Packing by Invoice Method" id="menu_definition_journal_picking_invoice_method" parent="menu_definition_journal_picking_invoice" action="action_invoice_type_tree"/>
<record model="ir.actions.act_window" id="action_invoice_type_picking_open">
<field name="name">Packings to invoice</field>
<field name="name">Packing to invoice</field>
<field name="res_model">stock.picking</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
@ -113,7 +113,7 @@
<record model="ir.values" id="ir_open_invoice_type">
<field name="key2">tree_but_open</field>
<field name="model">sale_journal.invoice.type</field>
<field name="name">Packings to invoice</field>
<field name="name">Packing to invoice</field>
<field name="value" eval="'ir.actions.act_window,%d'%action_invoice_type_picking_open"/>
<field name="object" eval="True"/>
</record>

View File

@ -10,7 +10,7 @@
<field name="model">sale_journal.invoice.type.stats</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Packings by invoice method">
<form string="Packing by invoice method">
<field name="name" select="1"/>
<field name="invoice_state" select="1"/>
<field name="state" select="1"/>
@ -27,7 +27,7 @@
<field name="model">sale_journal.invoice.type.stats</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Packings by invoice method">
<tree string="Packing by invoice method">
<field name="name"/>
<field name="invoice_state"/>
<field name="state"/>
@ -40,7 +40,7 @@
</field>
</record>
<record model="ir.actions.act_window" id="action_invoice_type_picking_stats_open">
<field name="name">Statistics on packings to invoice</field>
<field name="name">Statistics on packing to invoice</field>
<field name="res_model">sale_journal.invoice.type.stats</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
@ -49,7 +49,7 @@
</record>
<record model="ir.actions.act_window" id="action_invoice_type_picking_stats_open_menu_month">
<field name="name">Packings by invoice method</field>
<field name="name">Packing by invoice method</field>
<field name="res_model">sale_journal.invoice.type.stats</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
@ -57,12 +57,12 @@
<field name="domain">[('name','=',time.strftime('%Y-%m-01'))]</field>
</record>
<menuitem name="Packings Journal" id="menu_definition_journal_reporting" parent="stock.next_id_61"/>
<menuitem name="Packing Journal" id="menu_definition_journal_reporting" parent="stock.next_id_61"/>
<menuitem name="This Month" id="menu_definition_journal_reporting_this" parent="menu_definition_journal_reporting"/>
<menuitem name="Packings by Invoice Method" id="menu_invoice_type_picking_stats_open_menu" parent="menu_definition_journal_reporting_this" action="action_invoice_type_picking_stats_open_menu_month"/>
<menuitem name="Packing by Invoice Method" id="menu_invoice_type_picking_stats_open_menu" parent="menu_definition_journal_reporting_this" action="action_invoice_type_picking_stats_open_menu_month"/>
<record model="ir.actions.act_window" id="action_invoice_type_picking_stats_open_menu_all">
<field name="name">Packings by invoice method</field>
<field name="name">Packing by invoice method</field>
<field name="res_model">sale_journal.invoice.type.stats</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
@ -70,10 +70,10 @@
</record>
<menuitem name="All Months" id="menu_definition_journal_reporting_all" parent="menu_definition_journal_reporting"/>
<menuitem name="Packings by Invoice Method" id="menu_invoice_type_picking_stats_open_all" parent="menu_definition_journal_reporting_all" action="action_invoice_type_picking_stats_open_menu_all"/>
<menuitem name="Packing by Invoice Method" id="menu_invoice_type_picking_stats_open_all" parent="menu_definition_journal_reporting_all" action="action_invoice_type_picking_stats_open_menu_all"/>
#
# Packings by journal
# Packing by journal
#
<record model="ir.ui.view" id="view_picking_journal_stats_form">
@ -81,7 +81,7 @@
<field name="model">sale_journal.picking.stats</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Packings by journals">
<form string="Packing by journals">
<field name="name" select="1"/>
<field name="state" select="1"/>
<field name="journal_id" select="1"/>
@ -97,7 +97,7 @@
<field name="model">sale_journal.picking.stats</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Packings by journals">
<tree string="Packing by journals">
<field name="name"/>
<field name="state"/>
<field name="journal_id"/>
@ -110,7 +110,7 @@
</record>
<record model="ir.actions.act_window" id="action_picking_picking_stats_open_menu_month">
<field name="name">Packings by journal</field>
<field name="name">Packing by journal</field>
<field name="res_model">sale_journal.picking.stats</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
@ -118,17 +118,17 @@
<field name="domain">[('name','=',time.strftime('%Y-%m-01'))]</field>
</record>
<menuitem name="Packings by Journal" id="menu_picking_picking_stats_open_menu" parent="menu_definition_journal_reporting_this" action="action_picking_picking_stats_open_menu_month"/>
<menuitem name="Packing by Journal" id="menu_picking_picking_stats_open_menu" parent="menu_definition_journal_reporting_this" action="action_picking_picking_stats_open_menu_month"/>
<record model="ir.actions.act_window" id="action_picking_picking_stats_open_menu_all">
<field name="name">Packings by journal</field>
<field name="name">Packing by journal</field>
<field name="res_model">sale_journal.picking.stats</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem name="Packings by Journal" id="menu_picking_picking_stats_open_all" parent="menu_definition_journal_reporting_all" action="action_picking_picking_stats_open_menu_all"/>
<menuitem name="Packing by Journal" id="menu_picking_picking_stats_open_all" parent="menu_definition_journal_reporting_all" action="action_picking_picking_stats_open_menu_all"/>
</data>
</openerp>

View File

@ -91,7 +91,7 @@ sale_journal()
class picking_journal(osv.osv):
_name = 'sale_journal.picking.journal'
_description = 'Packings Journal'
_description = 'Packing Journal'
_columns = {
'name': fields.char('Journal', size=64, required=True),
'code': fields.char('Code', size=16, required=True),

View File

@ -34,7 +34,7 @@ class res_partner(osv.osv):
method=True,
view_load=True,
group_name="Accounting Properties",
help="The type of journal used for sales and packings."),
help="The type of journal used for sales and packing."),
}
res_partner()

View File

@ -24,7 +24,7 @@ from osv import fields,osv
class report_sale_journal_invoice_type_stats(osv.osv):
_name = "sale_journal.invoice.type.stats"
_description = "Stats on packings by invoice method"
_description = "Stats on packing by invoice method"
_auto = False
_columns = {
'name': fields.date('Month', readonly=True),

View File

@ -243,25 +243,25 @@
src_model="sale_journal.sale.journal"
id="act_sale_journal_sale_journal_2_sale_journal_sale_stats"/>
<act_window name="Assigned packings"
<act_window name="Assigned packing"
domain="[('journal_id', '=', active_id),('state', '=', 'assigned')]"
res_model="stock.picking"
src_model="sale_journal.picking.journal"
id="act_sale_journal_picking_journal_2_stock_picking_assigned"/>
<act_window name="Confirmed packings"
<act_window name="Confirmed packing"
domain="[('journal_id', '=', active_id),('state', '=', 'confirmed')]"
res_model="stock.picking"
src_model="sale_journal.picking.journal"
id="act_sale_journal_picking_journal_2_stock_picking_confirmed"/>
<act_window name="Assigned packings"
<act_window name="Assigned packing"
domain="[('sale_journal_id', '=', active_id),('state', '=', 'assigned')]"
res_model="stock.picking"
src_model="sale_journal.sale.journal"
id="act_sale_journal_sale_journal_2_stock_picking_assigned"/>
<act_window name="Confirmed packings"
<act_window name="Confirmed packing"
domain="[('sale_journal_id', '=', active_id),('state', '=', 'confirmed')]"
res_model="stock.picking"
src_model="sale_journal.sale.journal"

View File

@ -163,7 +163,7 @@
<field name="planned_hours">4.0</field>
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field model="scrum.project" name="project_id" ref="scrum_project_1"/>
<field name="name">Finnish the automated plugin system</field>
<field name="name">Finish the automated plugin system</field>
<field name="product_backlog_id" ref="scrum_product_backlog_2"/>
</record>
<record id="scrum_task_15" model="scrum.task">

View File

@ -114,7 +114,7 @@ class stock_location(osv.osv):
_columns = {
'name': fields.char('Location Name', size=64, required=True, translate=True),
'active': fields.boolean('Active'),
'usage': fields.selection([('supplier','Supplier Location'),('view','View'),('internal','Internal Location'),('customer','Customer Location'),('inventory','Inventory'),('procurement','Procurement'),('production','Production')], 'Location type', required=True),
'usage': fields.selection([('supplier','Supplier Location'),('view','View'),('internal','Internal Location'),('customer','Customer Location'),('inventory','Inventory'),('procurement','Procurement'),('production','Production')], 'Location Type', required=True),
'allocation_method': fields.selection([('fifo','FIFO'),('lifo','LIFO'),('nearest','Nearest')], 'Allocation Method', required=True),
'complete_name': fields.function(_complete_name, method=True, type='char', size=100, string="Location Name"),
@ -311,8 +311,8 @@ class stock_tracking(osv.osv):
'name': fields.char('Tracking', size=64, required=True),
'active': fields.boolean('Active'),
'serial': fields.char('Reference', size=64),
'move_ids' : fields.one2many('stock.move', 'tracking_id', 'Moves tracked'),
'date': fields.datetime('Date create', required=True),
'move_ids' : fields.one2many('stock.move', 'tracking_id', 'Moves Tracked'),
'date': fields.datetime('Date Created', required=True),
}
_defaults = {
'active': lambda *a: 1,
@ -344,7 +344,7 @@ stock_tracking()
#----------------------------------------------------------
class stock_picking(osv.osv):
_name = "stock.picking"
_description = "Packing list"
_description = "Packing List"
def _set_maximum_date(self, cr, uid, ids, name, value, arg, context):
if not value: return False
if isinstance(ids, (int, long)):
@ -427,7 +427,7 @@ class stock_picking(osv.osv):
'address_id': fields.many2one('res.partner.address', 'Partner'),
'invoice_state':fields.selection([
("invoiced","Invoiced"),
("2binvoiced","To be invoiced"),
("2binvoiced","To Be Invoiced"),
("none","Not from Packing")], "Invoice Status",
select=True, required=True, readonly=True, states={'draft':[('readonly',False)]}),
}
@ -788,7 +788,7 @@ class stock_production_lot(osv.osv):
_columns = {
'name': fields.char('Serial', size=64, required=True),
'ref': fields.char('Internal Ref.', size=64),
'ref': fields.char('Internal Ref', size=64),
'product_id': fields.many2one('product.product','Product',required=True),
'date': fields.datetime('Created Date', required=True),
'stock_available': fields.function(_get_stock, method=True, type="float", string="Available", select="2"),
@ -809,9 +809,9 @@ class stock_production_lot_revision(osv.osv):
_name = 'stock.production.lot.revision'
_description = 'Production lot revisions'
_columns = {
'name': fields.char('Revision name', size=64, required=True),
'name': fields.char('Revision Name', size=64, required=True),
'description': fields.text('Description'),
'date': fields.date('Revision date'),
'date': fields.date('Revision Date'),
'indice': fields.char('Revision', size=16),
'author_id': fields.many2one('res.users', 'Author'),
'lot_id': fields.many2one('stock.production.lot', 'Production lot', select=True, ondelete='cascade'),
@ -868,7 +868,7 @@ class stock_move(osv.osv):
'priority': fields.selection([('0','Not urgent'),('1','Urgent')], 'Priority'),
'date': fields.datetime('Date Created'),
'date_planned': fields.datetime('Scheduled date', required=True),
'date_planned': fields.datetime('Scheduled Date', required=True),
'product_id': fields.many2one('product.product', 'Product', required=True, select=True),
@ -882,8 +882,8 @@ class stock_move(osv.osv):
'location_dest_id': fields.many2one('stock.location', 'Dest. Location', required=True, select=True),
'address_id' : fields.many2one('res.partner.address', 'Dest. Address'),
'prodlot_id' : fields.many2one('stock.production.lot', 'Production lot', help="Production lot is used to put a serial number on the production"),
'tracking_id': fields.many2one('stock.tracking', 'Tracking lot', select=True, help="Tracking lot is the code that will be put on the logistic unit/pallet"),
'prodlot_id' : fields.many2one('stock.production.lot', 'Production Lot', help="Production lot is used to put a serial number on the production"),
'tracking_id': fields.many2one('stock.tracking', 'Tracking Lot', select=True, help="Tracking lot is the code that will be put on the logistical unit/pallet"),
# 'lot_id': fields.many2one('stock.lot', 'Consumer lot', select=True, readonly=True),
'auto_validate': fields.boolean('Auto Validate'),
@ -891,7 +891,7 @@ class stock_move(osv.osv):
'move_dest_id': fields.many2one('stock.move', 'Dest. Move'),
'move_history_ids': fields.many2many('stock.move', 'stock_move_history_ids', 'parent_id', 'child_id', 'Move History'),
'move_history_ids2': fields.many2many('stock.move', 'stock_move_history_ids', 'child_id', 'parent_id', 'Move History'),
'picking_id': fields.many2one('stock.picking', 'Packing list', select=True),
'picking_id': fields.many2one('stock.picking', 'Packing List', select=True),
'note': fields.text('Notes'),

View File

@ -13,7 +13,7 @@
<report auto="False" id="report_lot_location" model="stock.location" name="lot.location" rml="stock/report/lot_location.rml" string="Lots by location"/>
<report id="report_location_overview_all" model="stock.location" name="stock.location.overview.all" string="Location Content (With childs)" xml="stock/report/lot_overview_all.xml" xsl="stock/report/lot_overview_all.xsl"/>
<report id="report_location_overview_all" model="stock.location" name="stock.location.overview.all" string="Location Content (With children)" xml="stock/report/lot_overview_all.xml" xsl="stock/report/lot_overview_all.xsl"/>
</data>
</openerp>

View File

@ -904,7 +904,7 @@
<menuitem action="action_picking_tree" id="menu_action_picking_tree" parent="menu_stock_root" sequence="19"/>
<record id="action_picking_tree2" model="ir.actions.act_window">
<field name="name">Available Packings</field>
<field name="name">Available Packing</field>
<field name="res_model">stock.picking</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
@ -932,7 +932,7 @@
<menuitem action="action_picking_tree2" id="menu_picking_waiting" parent="menu_action_picking_tree"/>
<record id="action_picking_tree3" model="ir.actions.act_window">
<field name="name">Confirmed Packings Waiting Availability</field>
<field name="name">Confirmed Packing Waiting Availability</field>
<field name="res_model">stock.picking</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
@ -1088,7 +1088,7 @@
<menuitem action="action_picking_tree4" id="menu_action_picking_tree4" parent="menu_stock_root" sequence="17"/>
<record id="action_picking_tree5" model="ir.actions.act_window">
<field name="name">Packings to Process</field>
<field name="name">Packing to Process</field>
<field name="res_model">stock.picking</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
@ -1156,7 +1156,7 @@
<record id="action_picking_tree7" model="ir.actions.act_window">
<field name="name">Available Packings</field>
<field name="name">Available Packing</field>
<field name="res_model">stock.picking</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
@ -1167,7 +1167,7 @@
<menuitem action="action_picking_tree7" id="menu_action_picking_tree7" parent="menu_action_picking_tree6"/>
<record id="action_picking_tree8" model="ir.actions.act_window">
<field name="name">Confirmed Packings Waiting Availability</field>
<field name="name">Confirmed Packing Waiting Availability</field>
<field name="res_model">stock.picking</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
@ -1178,7 +1178,7 @@
<menuitem action="action_picking_tree8" id="menu_action_picking_tree8" parent="menu_action_picking_tree6"/>
<record id="action_picking_tree9" model="ir.actions.act_window">
<field name="name">New Internal Packings</field>
<field name="name">New Internal Packing</field>
<field name="res_model">stock.picking</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
@ -1288,7 +1288,7 @@
<menuitem action="action_move_form4" id="menu_action_move_form4" parent="menu_action_move_form2"/>
<record id="action_picking_all" model="ir.actions.act_window">
<field name="name">Packings</field>
<field name="name">Packing</field>
<field name="res_model">stock.picking</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>