* translation of nearly all exceptions
* the export of translations per module take only the files of these modules bzr revid: chs@tinyerp.com-77721e34d87043c4008239f004c7c616f6d4dc82
This commit is contained in:
parent
0b1dfd702f
commit
1f43329f0e
|
@ -32,6 +32,7 @@ import netsvc
|
|||
from osv import fields, osv
|
||||
|
||||
from tools.misc import currency
|
||||
from tools.translate import _
|
||||
|
||||
import mx.DateTime
|
||||
from mx.DateTime import RelativeDateTime, now, DateTime, localtime
|
||||
|
@ -484,7 +485,7 @@ class account_fiscalyear(osv.osv):
|
|||
ids = self.search(cr, uid, [('date_start', '<=', dt), ('date_stop', '>=', dt)])
|
||||
if not ids:
|
||||
if exception:
|
||||
raise osv.except_osv('Error !', 'No fiscal year defined for this date !\nPlease create one.')
|
||||
raise osv.except_osv(_('Error !'), _('No fiscal year defined for this date !\nPlease create one.'))
|
||||
else:
|
||||
return False
|
||||
return ids[0]
|
||||
|
@ -517,7 +518,7 @@ class account_period(osv.osv):
|
|||
#CHECKME: shouldn't we check the state of the period?
|
||||
ids = self.search(cr, uid, [('date_start','<=',dt),('date_stop','>=',dt)])
|
||||
if not ids:
|
||||
raise osv.except_osv('Error !', 'No period defined for this date !\nPlease create a fiscal year.')
|
||||
raise osv.except_osv(_('Error !'), _('No period defined for this date !\nPlease create a fiscal year.'))
|
||||
return ids
|
||||
account_period()
|
||||
|
||||
|
@ -549,7 +550,7 @@ class account_journal_period(osv.osv):
|
|||
cr.execute('select * from account_move_line where journal_id=%d and period_id=%d limit 1', (obj.journal_id.id, obj.period_id.id))
|
||||
res = cr.fetchall()
|
||||
if res:
|
||||
raise osv.except_osv('Error !', 'You can not modify/delete a journal with entries for this period !')
|
||||
raise osv.except_osv(_('Error !'), _('You can not modify/delete a journal with entries for this period !'))
|
||||
return True
|
||||
|
||||
def write(self, cr, uid, ids, vals, context={}):
|
||||
|
@ -656,7 +657,7 @@ class account_move(osv.osv):
|
|||
if self.validate(cr, uid, ids, context) and len(ids):
|
||||
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):
|
||||
|
@ -665,7 +666,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 !')
|
||||
raise osv.except_osv(_('Error !'), _('You can not modify a posted entry of this journal !'))
|
||||
if len(ids):
|
||||
cr.execute('update account_move set state=%s where id in ('+','.join(map(str,ids))+')', ('draft',))
|
||||
return True
|
||||
|
@ -704,7 +705,7 @@ class account_move(osv.osv):
|
|||
if journal.sequence_id:
|
||||
vals['name'] = self.pool.get('ir.sequence').get_id(cr, uid, journal.sequence_id.id)
|
||||
else:
|
||||
raise osv.except_osv('Error', 'No sequence defined in the journal !')
|
||||
raise osv.except_osv(_('Error'), _('No sequence defined in the journal !'))
|
||||
if 'line_id' in vals:
|
||||
c = context.copy()
|
||||
c['novalidate'] = True
|
||||
|
@ -718,8 +719,8 @@ class account_move(osv.osv):
|
|||
toremove = []
|
||||
for move in self.browse(cr, uid, ids, context):
|
||||
if move['state'] <> 'draft':
|
||||
raise osv.except_osv('UserError',
|
||||
'You can not delete posted movement: "%s"!' % \
|
||||
raise osv.except_osv(_('UserError'),
|
||||
_('You can not delete posted movement: "%s"!') % \
|
||||
move['name'])
|
||||
line_ids = map(lambda x: x.id, move.line_id)
|
||||
context['journal_id'] = move.journal_id.id
|
||||
|
@ -741,16 +742,16 @@ class account_move(osv.osv):
|
|||
account_id = move.journal_id.default_debit_account_id.id
|
||||
mode2 = 'debit'
|
||||
if not account_id:
|
||||
raise osv.except_osv('UserError',
|
||||
'There is no default default debit account defined \n' \
|
||||
'on journal "%s"' % move.journal_id.name)
|
||||
raise osv.except_osv(_('UserError'),
|
||||
_('There is no default default debit account defined \n' \
|
||||
'on journal "%s"') % move.journal_id.name)
|
||||
else:
|
||||
account_id = move.journal_id.default_credit_account_id.id
|
||||
mode2 = 'credit'
|
||||
if not account_id:
|
||||
raise osv.except_osv('UserError',
|
||||
'There is no default default credit account defined \n' \
|
||||
'on journal "%s"' % move.journal_id.name)
|
||||
raise osv.except_osv(_('UserError'),
|
||||
_('There is no default default credit account defined \n' \
|
||||
'on journal "%s"') % move.journal_id.name)
|
||||
|
||||
# find the first line of this move with the current mode
|
||||
# or create it if it doesn't exist
|
||||
|
@ -805,11 +806,11 @@ class account_move(osv.osv):
|
|||
if not company_id:
|
||||
company_id = line.account_id.company_id.id
|
||||
if not company_id == line.account_id.company_id.id:
|
||||
raise osv.except_osv('Error', 'Couldn\'t create move between different companies')
|
||||
raise osv.except_osv(_('Error'), _('Couldn\'t create move between different companies'))
|
||||
|
||||
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')
|
||||
raise osv.except_osv(_('Error'), _('Couldn\'t create move with currency different than the secondary currency of the account'))
|
||||
|
||||
if abs(amount) < 0.0001:
|
||||
if not len(line_draft_ids):
|
||||
|
@ -1372,7 +1373,7 @@ class account_model(osv.osv):
|
|||
for model in self.browse(cr, uid, ids, context):
|
||||
period_id = self.pool.get('account.period').find(cr,uid, context=context)
|
||||
if not period_id:
|
||||
raise osv.except_osv('No period found !', 'Unable to find a valid period !')
|
||||
raise osv.except_osv(_('No period found !'), _('Unable to find a valid period !'))
|
||||
period_id = period_id[0]
|
||||
name = model.name
|
||||
if model.journal_id.sequence_id:
|
||||
|
|
|
@ -32,6 +32,7 @@ import time
|
|||
|
||||
from osv import fields
|
||||
from osv import osv
|
||||
from tools.translate import _
|
||||
|
||||
class account_analytic_line(osv.osv):
|
||||
_name = 'account.analytic.line'
|
||||
|
@ -75,9 +76,9 @@ class account_analytic_line(osv.osv):
|
|||
if not a:
|
||||
a = prod.categ_id.property_account_expense_categ.id
|
||||
if not a:
|
||||
raise osv.except_osv('Error !',
|
||||
'There is no expense account define ' \
|
||||
'for this product: "%s" (id:%d)' % \
|
||||
raise osv.except_osv(_('Error !'),
|
||||
_('There is no expense account define ' \
|
||||
'for this product: "%s" (id:%d)') % \
|
||||
(prod.name, prod.id,))
|
||||
amount = unit_amount * uom_obj._compute_price(cr, uid,
|
||||
prod.uom_id.id, prod.standard_price, unit)
|
||||
|
|
|
@ -32,6 +32,7 @@ import netsvc
|
|||
from osv import fields, osv
|
||||
|
||||
from tools.misc import currency
|
||||
from tools.translate import _
|
||||
|
||||
import mx.DateTime
|
||||
from mx.DateTime import RelativeDateTime, now, DateTime, localtime
|
||||
|
@ -165,18 +166,18 @@ class account_bank_statement(osv.osv):
|
|||
continue
|
||||
|
||||
if not (abs(st.balance_end - st.balance_end_real) < 0.0001):
|
||||
raise osv.except_osv('Error !',
|
||||
'The statement balance is incorrect !\n'
|
||||
'Check that the ending balance equals the computed one.')
|
||||
raise osv.except_osv(_('Error !'),
|
||||
_('The statement balance is incorrect !\n'
|
||||
'Check that the ending balance equals the computed one.'))
|
||||
if (not st.journal_id.default_credit_account_id) \
|
||||
or (not st.journal_id.default_debit_account_id):
|
||||
raise osv.except_osv('Configration Error !',
|
||||
'Please verify that an account is defined in the journal.')
|
||||
raise osv.except_osv(_('Configration Error !'),
|
||||
_('Please verify that an account is defined in the journal.'))
|
||||
|
||||
for line in st.move_line_ids:
|
||||
if line.state <> 'valid':
|
||||
raise osv.except_osv('Error !',
|
||||
'The account entries lines are not valid.')
|
||||
raise osv.except_osv(_('Error !'),
|
||||
_('The account entries lines are not valid.'))
|
||||
|
||||
for move in st.line_ids:
|
||||
move_id = account_move_obj.create(cr, uid, {
|
||||
|
@ -275,8 +276,8 @@ class account_bank_statement(osv.osv):
|
|||
context=context).line_id],
|
||||
context=context):
|
||||
if line.state <> 'valid':
|
||||
raise osv.except_osv('Error !',
|
||||
'Account move line "%s" is not valid' % line.name)
|
||||
raise osv.except_osv(_('Error !'),
|
||||
_('Account move line "%s" is not valid') % line.name)
|
||||
|
||||
if move.reconcile_id and move.reconcile_id.line_ids:
|
||||
torec += map(lambda x: x.id, move.reconcile_id.line_ids)
|
||||
|
@ -286,7 +287,7 @@ class account_bank_statement(osv.osv):
|
|||
else:
|
||||
account_move_line_obj.reconcile_partial(cr, uid, torec, 'statement', context)
|
||||
except:
|
||||
raise osv.except_osv('Error !', 'Unable to reconcile entry "%s": %.2f'%(move.name, move.amount))
|
||||
raise osv.except_osv(_('Error !'), _('Unable to reconcile entry "%s": %.2f') % (move.name, move.amount))
|
||||
|
||||
done.append(st.id)
|
||||
self.write(cr, uid, done, {'state':'confirm'}, context=context)
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
import time
|
||||
import netsvc
|
||||
from osv import fields, osv
|
||||
|
||||
from tools.translate import _
|
||||
|
||||
class account_move_line(osv.osv):
|
||||
_name = "account.move.line"
|
||||
|
@ -431,7 +431,7 @@ class account_move_line(osv.osv):
|
|||
merges_rec = []
|
||||
for line in self.browse(cr, uid, ids, context):
|
||||
if line.reconcile_id:
|
||||
raise 'Already Reconciled'
|
||||
raise _('Already Reconciled')
|
||||
if line.reconcile_partial_id:
|
||||
for line2 in line.reconcile_partial_id.line_partial_ids:
|
||||
if not line2.reconcile_id:
|
||||
|
@ -460,8 +460,8 @@ class account_move_line(osv.osv):
|
|||
partner_id = False
|
||||
for line in unrec_lines:
|
||||
if line.state <> 'valid':
|
||||
raise osv.except_osv('Error',
|
||||
'Entry "%s" is not valid !' % line.name)
|
||||
raise osv.except_osv(_('Error'),
|
||||
_('Entry "%s" is not valid !') % line.name)
|
||||
credit += line['credit']
|
||||
debit += line['debit']
|
||||
currency += line['amount_currency'] or 0.0
|
||||
|
@ -477,17 +477,17 @@ class account_move_line(osv.osv):
|
|||
r = cr.fetchall()
|
||||
#TODO: move this check to a constraint in the account_move_reconcile object
|
||||
if len(r) != 1:
|
||||
raise osv.except_osv('Error', 'Entries are not of the same account or already reconciled ! ')
|
||||
raise osv.except_osv(_('Error'), _('Entries are not of the same account or already reconciled ! '))
|
||||
account = self.pool.get('account.account').browse(cr, uid, account_id, context=context)
|
||||
if not account.reconcile:
|
||||
raise osv.except_osv('Error', 'The account is not defined to be reconcile !')
|
||||
raise osv.except_osv(_('Error'), _('The account is not defined to be reconcile !'))
|
||||
if r[0][1] != None:
|
||||
raise osv.except_osv('Error', 'Some entries are already reconciled !')
|
||||
raise osv.except_osv(_('Error'), _('Some entries are already reconciled !'))
|
||||
|
||||
if (not self.pool.get('res.currency').is_zero(cr, uid, account.company_id.currency_id, writeoff)) or \
|
||||
(account.currency_id and (not self.pool.get('res.currency').is_zero(cr, uid, account.currency_id, currency))):
|
||||
if not writeoff_acc_id:
|
||||
raise osv.except_osv('Warning', 'You have to provide an account for the write off entry !')
|
||||
raise osv.except_osv(_('Warning'), _('You have to provide an account for the write off entry !'))
|
||||
if writeoff > 0:
|
||||
debit = writeoff
|
||||
credit = 0.0
|
||||
|
@ -629,7 +629,7 @@ class account_move_line(osv.osv):
|
|||
account_obj = self.pool.get('account.account')
|
||||
|
||||
if ('account_id' in vals) and not account_obj.read(cr, uid, vals['account_id'], ['active'])['active']:
|
||||
raise osv.except_osv('Bad account!', 'You can not use an inactive account!')
|
||||
raise osv.except_osv(_('Bad account!'), _('You can not use an inactive account!'))
|
||||
if update_check:
|
||||
if ('account_id' in vals) or ('journal_id' in vals) or ('period_id' in vals) or ('move_id' in vals) or ('debit' in vals) or ('credit' in vals) or ('date' in vals):
|
||||
self._update_check(cr, uid, ids, context)
|
||||
|
@ -647,7 +647,7 @@ class account_move_line(osv.osv):
|
|||
result = cr.fetchall()
|
||||
for (state,) in result:
|
||||
if state=='done':
|
||||
raise osv.except_osv('Error !', 'You can not add/modify entries in a closed journal.')
|
||||
raise osv.except_osv(_('Error !'), _('You can not add/modify entries in a closed journal.'))
|
||||
if not result:
|
||||
journal = self.pool.get('account.journal').browse(cr, uid, journal_id, context)
|
||||
period = self.pool.get('account.period').browse(cr, uid, period_id, context)
|
||||
|
@ -662,9 +662,9 @@ class account_move_line(osv.osv):
|
|||
done = {}
|
||||
for line in self.browse(cr, uid, ids, context):
|
||||
if line.move_id.state<>'draft':
|
||||
raise osv.except_osv('Error !', 'You can not do this modification on a confirmed entry ! Please note that you can just change some non important fields !')
|
||||
raise osv.except_osv(_('Error !'), _('You can not do this modification on a confirmed entry ! Please note that you can just change some non important fields !'))
|
||||
if line.reconcile_id:
|
||||
raise osv.except_osv('Error !', 'You can not do this modification on a reconciled entry ! Please note that you can just change some non important fields !')
|
||||
raise osv.except_osv(_('Error !'), _('You can not do this modification on a reconciled entry ! Please note that you can just change some non important fields !'))
|
||||
t = (line.journal_id.id, line.period_id.id)
|
||||
if t not in done:
|
||||
self._update_journal_check(cr, uid, line.journal_id.id, line.period_id.id, context)
|
||||
|
@ -677,7 +677,7 @@ class account_move_line(osv.osv):
|
|||
account_obj = self.pool.get('account.account')
|
||||
|
||||
if ('account_id' in vals) and not account_obj.read(cr, uid, vals['account_id'], ['active'])['active']:
|
||||
raise osv.except_osv('Bad account!', 'You can not use an inactive account!')
|
||||
raise osv.except_osv(_('Bad account!'), _('You can not use an inactive account!'))
|
||||
if 'journal_id' in vals and 'journal_id' not in context:
|
||||
context['journal_id'] = vals['journal_id']
|
||||
if 'period_id' in vals and 'period_id' not in context:
|
||||
|
@ -696,9 +696,9 @@ class account_move_line(osv.osv):
|
|||
res = cr.fetchone()
|
||||
if res:
|
||||
if res[1] != 'draft':
|
||||
raise osv.except_osv('UserError',
|
||||
'The account move (%s) for centralisation ' \
|
||||
'has been confirmed!' % res[2])
|
||||
raise osv.except_osv(_('UserError'),
|
||||
_('The account move (%s) for centralisation ' \
|
||||
'has been confirmed!') % res[2])
|
||||
vals['move_id'] = res[0]
|
||||
|
||||
if not vals.get('move_id', False):
|
||||
|
@ -712,7 +712,7 @@ class account_move_line(osv.osv):
|
|||
move_id = self.pool.get('account.move').create(cr, uid, v, context)
|
||||
vals['move_id'] = move_id
|
||||
else:
|
||||
raise osv.except_osv('No piece number !', 'Can not create an automatic sequence for this piece !\n\nPut a sequence in the journal definition for automatic numbering or create a sequence manually for this piece.')
|
||||
raise osv.except_osv(_('No piece number !'), _('Can not create an automatic sequence for this piece !\n\nPut a sequence in the journal definition for automatic numbering or create a sequence manually for this piece.'))
|
||||
|
||||
ok = not (journal.type_control_ids or journal.account_control_ids)
|
||||
if ('account_id' in vals):
|
||||
|
@ -736,7 +736,7 @@ class account_move_line(osv.osv):
|
|||
ctx['date'] = vals['date']
|
||||
vals['amount_currency'] = cur_obj.compute(cr, uid, account.company_id.currency_id.id, account.currency_id.id, vals.get('debit', 0.0)-vals.get('credit', 0.0), context=ctx)
|
||||
if not ok:
|
||||
raise osv.except_osv('Bad account !', 'You can not use this general account in this journal !')
|
||||
raise osv.except_osv(_('Bad account !'), _('You can not use this general account in this journal !'))
|
||||
result = super(osv.osv, self).create(cr, uid, vals, context)
|
||||
if check:
|
||||
self.pool.get('account.move').validate(cr, uid, [vals['move_id']], context)
|
||||
|
|
|
@ -37,6 +37,7 @@ import mx.DateTime
|
|||
from mx.DateTime import RelativeDateTime
|
||||
|
||||
from tools import config
|
||||
from tools.translate import _
|
||||
|
||||
class account_invoice(osv.osv):
|
||||
def _amount_untaxed(self, cr, uid, ids, name, args, context={}):
|
||||
|
@ -82,7 +83,7 @@ class account_invoice(osv.osv):
|
|||
cr.execute("select id from account_analytic_journal where type=%s limit 1", (tt,))
|
||||
result = cr.fetchone()
|
||||
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 have to define an analytic journal of type '%s' !") % (tt,))
|
||||
return result[0]
|
||||
|
||||
def _get_type(self, cr, uid, context={}):
|
||||
|
@ -171,7 +172,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) which are already opened or paid !'))
|
||||
osv.osv.unlink(self, cr, uid, unlink_ids)
|
||||
return True
|
||||
|
||||
|
@ -378,7 +379,7 @@ class account_invoice(osv.osv):
|
|||
if inv.move_id:
|
||||
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 real total does not match the computed total.'))
|
||||
company_currency = inv.company_id.currency_id.id
|
||||
# create the analytical lines
|
||||
line_ids = self.read(cr, uid, [inv.id], ['invoice_line'])[0]['invoice_line']
|
||||
|
@ -398,13 +399,13 @@ 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 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')
|
||||
raise osv.except_osv(_('Warning !'), _('Tax base different !\nClick on compute to update tax base'))
|
||||
for key in compute_taxes:
|
||||
if not key in tax_key:
|
||||
raise osv.except_osv('Warning !', 'Taxes missing !')
|
||||
raise osv.except_osv(_('Warning !'), _('Taxes missing !'))
|
||||
|
||||
# one move line per tax line
|
||||
iml += ait_obj.move_line_get(cr, uid, inv.id)
|
||||
|
@ -494,8 +495,8 @@ class account_invoice(osv.osv):
|
|||
if journal.sequence_id:
|
||||
name = self.pool.get('ir.sequence').get_id(cr, uid, journal.sequence_id.id)
|
||||
if journal.centralisation:
|
||||
raise osv.except_osv('UserError',
|
||||
'Can not create invoice move on centralized journal')
|
||||
raise osv.except_osv(_('UserError'),
|
||||
_('Can not create invoice move on centralized journal'))
|
||||
|
||||
move = {'name': name, 'line_id': line, 'journal_id': journal_id}
|
||||
if inv.period_id:
|
||||
|
@ -684,7 +685,7 @@ class account_invoice(osv.osv):
|
|||
if journal.sequence_id:
|
||||
name = self.pool.get('ir.sequence').get_id(cr, uid, journal.sequence_id.id)
|
||||
else:
|
||||
raise osv.except_osv('No piece number !', 'Can not create an automatic sequence for this piece !\n\nPut a sequence in the journal definition for automatic numbering or create a sequence manually for this piece.')
|
||||
raise osv.except_osv(_('No piece number !'), _('Can not create an automatic sequence for this piece !\n\nPut a sequence in the journal definition for automatic numbering or create a sequence manually for this piece.'))
|
||||
types = {'out_invoice': -1, 'in_invoice': 1, 'out_refund': 1, 'in_refund': -1}
|
||||
direction = types[invoice.type]
|
||||
l1 = {
|
||||
|
|
|
@ -33,6 +33,7 @@ import datetime
|
|||
import pooler
|
||||
|
||||
from mx.DateTime import *
|
||||
from tools.translate import _
|
||||
|
||||
_aged_trial_form = """<?xml version="1.0"?>
|
||||
<form string="Aged Trial Balance">
|
||||
|
@ -60,7 +61,7 @@ def _calc_dates(self, cr, uid, data, context):
|
|||
res = {}
|
||||
period_length = data['form']['period_length']
|
||||
if period_length<=0:
|
||||
raise wizard.except_wizard('UserError', 'You must enter a period length that cannot be 0 or below !')
|
||||
raise wizard.except_wizard(_('UserError'), _('You must enter a period length that cannot be 0 or below !'))
|
||||
start = now()
|
||||
for i in range(5)[::-1]:
|
||||
stop = start-RelativeDateTime(days=period_length)
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
##############################################################################
|
||||
|
||||
import wizard
|
||||
from tools.translate import _
|
||||
|
||||
_journal_form = '''<?xml version="1.0"?>
|
||||
<form string="%s">
|
||||
|
@ -43,7 +44,7 @@ def _action_open_window(self, cr, uid, data, context):
|
|||
cr.execute('select default_credit_account_id from account_journal where id=%d', (form['journal_id'],))
|
||||
account_id = cr.fetchone()[0]
|
||||
if not account_id:
|
||||
raise Exception, 'You have to define the bank account\nin the journal definition for reconciliation.'
|
||||
raise Exception, _('You have to define the bank account\nin the journal definition for reconciliation.')
|
||||
return {
|
||||
'domain': "[('journal_id','=',%d), ('account_id','=',%d), ('state','<>','draft')]" % (form['journal_id'],account_id),
|
||||
'name': 'Saisie Standard',
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
import wizard
|
||||
import osv
|
||||
import pooler
|
||||
from tools.translate import _
|
||||
|
||||
_transaction_form = '''<?xml version="1.0"?>
|
||||
<form string="Close Fiscal Year">
|
||||
|
@ -57,7 +58,7 @@ def _data_load(self, cr, uid, data, context):
|
|||
|
||||
def _data_save(self, cr, uid, data, context):
|
||||
if not data['form']['sure']:
|
||||
raise wizard.except_wizard('UserError', 'Closing of fiscal year canceled, please check the box !')
|
||||
raise wizard.except_wizard(_('UserError'), _('Closing of fiscal year canceled, please check the box !'))
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
|
||||
fy_id = data['form']['fy_id']
|
||||
|
@ -66,17 +67,17 @@ def _data_save(self, cr, uid, data, context):
|
|||
new_fyear = pool.get('account.fiscalyear').browse(cr, uid, data['form']['fy2_id'])
|
||||
start_jp = new_fyear.start_journal_period_id
|
||||
if not start_jp:
|
||||
raise wizard.except_wizard('UserError',
|
||||
'The new fiscal year should have a journal for new entries define on it')
|
||||
raise wizard.except_wizard(_('UserError'),
|
||||
_('The new fiscal year should have a journal for new entries define on it'))
|
||||
|
||||
new_journal = start_jp.journal_id
|
||||
|
||||
if not new_journal.default_credit_account_id or not new_journal.default_debit_account_id:
|
||||
raise wizard.except_wizard('UserError',
|
||||
'The journal must have default credit and debit account')
|
||||
raise wizard.except_wizard(_('UserError'),
|
||||
_('The journal must have default credit and debit account'))
|
||||
if not new_journal.centralisation:
|
||||
raise wizard.except_wizard('UserError',
|
||||
'The journal must have centralised counterpart')
|
||||
raise wizard.except_wizard(_('UserError'),
|
||||
_('The journal must have centralised counterpart'))
|
||||
|
||||
query_line = pool.get('account.move.line')._query_get(cr, uid,
|
||||
obj='account_move_line', context={'fiscalyear': fy_id})
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
import wizard
|
||||
from osv import osv
|
||||
import pooler
|
||||
from tools.translate import _
|
||||
|
||||
_journal_form = '''<?xml version="1.0"?>
|
||||
<form string="Standard entries">
|
||||
|
@ -66,7 +67,7 @@ def _action_open_window(self, cr, uid, data, context):
|
|||
name = pooler.get_pool(cr.dbname).get('account.journal').read(cr, uid, [form['journal_id']])[0]['name']
|
||||
state = pooler.get_pool(cr.dbname).get('account.period').read(cr, uid, [form['period_id']])[0]['state']
|
||||
if state == 'done':
|
||||
raise wizard.except_wizard('UserError', 'This period is already closed !')
|
||||
raise wizard.except_wizard(_('UserError'), _('This period is already closed !'))
|
||||
jp.create(cr, uid, {'name':name, 'period_id': form['period_id'], 'journal_id':form['journal_id']})
|
||||
ids = jp.search(cr, uid, [('journal_id','=',form['journal_id']), ('period_id','=',form['period_id'])])
|
||||
jp = jp.browse(cr, uid, ids, context=context)[0]
|
||||
|
|
|
@ -29,6 +29,7 @@ import wizard
|
|||
import netsvc
|
||||
import pooler
|
||||
from osv import fields, osv
|
||||
from tools.translate import _
|
||||
|
||||
form = """<?xml version="1.0"?>
|
||||
<form string="Choose Fiscal Year">
|
||||
|
@ -44,10 +45,10 @@ 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 writings have been defined for the fiscal year'))
|
||||
period_journal = data_fyear.end_journal_period_id
|
||||
if not period_journal.journal_id.centralisation:
|
||||
raise wizard.except_wizard('UserError', 'The journal must have centralised counterpart')
|
||||
raise wizard.except_wizard(_('UserError'), _('The journal must have centralised counterpart'))
|
||||
ids_move = pool.get('account.move').search(cr,uid,[('journal_id','=',period_journal.journal_id.id),('period_id','=',period_journal.period_id.id)])
|
||||
pool.get('account.move').unlink(cr,uid,ids_move)
|
||||
cr.execute('UPDATE account_journal_period ' \
|
||||
|
|
|
@ -31,6 +31,7 @@ import wizard
|
|||
import netsvc
|
||||
import pooler
|
||||
import time
|
||||
from tools.translate import _
|
||||
|
||||
pay_form = '''<?xml version="1.0"?>
|
||||
<form string="Pay invoice">
|
||||
|
@ -68,7 +69,7 @@ def _pay_and_reconcile(self, cr, uid, data, context):
|
|||
|
||||
acc_id = journal.default_credit_account_id and journal.default_credit_account_id.id
|
||||
if not acc_id:
|
||||
raise wizard.except_wizard('Error !', 'Your journal must have a default credit and debit account.')
|
||||
raise wizard.except_wizard(_('Error !'), _('Your journal must have a default credit and debit account.'))
|
||||
pool.get('account.invoice').pay_and_reconcile(cr, uid, [data['id']],
|
||||
amount, acc_id, period_id, journal_id, writeoff_account_id,
|
||||
period_id, writeoff_journal_id, context, data['form']['name'])
|
||||
|
@ -108,7 +109,7 @@ def _get_period(self, cr, uid, data, context={}):
|
|||
period_id = ids[0]
|
||||
invoice = pool.get('account.invoice').browse(cr, uid, data['id'], context)
|
||||
if invoice.state == 'draft':
|
||||
raise wizard.except_wizard('Error !', _('Can not pay draft invoice.'))
|
||||
raise wizard.except_wizard(_('Error !'), _('Can not pay draft invoice.'))
|
||||
return {
|
||||
'period_id': period_id,
|
||||
'amount': invoice.amount_total,
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
import wizard
|
||||
from osv import osv
|
||||
import pooler
|
||||
from tools.translate import _
|
||||
|
||||
_journal_form = '''<?xml version="1.0"?>
|
||||
<form string="Standard entries">
|
||||
|
@ -48,7 +49,7 @@ def _validate_move(self, cr, uid, data, context={}):
|
|||
move_obj = pool.get('account.move')
|
||||
ids_move = move_obj.search(cr,uid,[('state','=','draft'),('journal_id','=',data['form']['journal_id']),('period_id','=',data['form']['period_id'])])
|
||||
if not ids_move:
|
||||
raise wizard.except_wizard('Warning', 'Specified Journal does not have any account move entries in draft state for this period')
|
||||
raise wizard.except_wizard(_('Warning'), _('Specified Journal does not have any account move entries in draft state for this period'))
|
||||
res = move_obj.button_validate(cr, uid, ids_move, context)
|
||||
return {}
|
||||
|
||||
|
@ -76,7 +77,7 @@ def _validate_move_lines(self, cr, uid, data, context={}):
|
|||
move_ids.append(line.move_id.id)
|
||||
move_ids = list(set(move_ids))
|
||||
if not move_ids:
|
||||
raise wizard.except_wizard('Warning', 'Selected Move lines does not have any account move enties in draft state')
|
||||
raise wizard.except_wizard(_('Warning'), _('Selected Move lines does not have any account move enties in draft state'))
|
||||
res = move_obj.button_validate(cr, uid, move_ids, context)
|
||||
return {}
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
import operator
|
||||
from osv import osv, fields
|
||||
from osv.orm import ID_MAX
|
||||
from tools.translate import _
|
||||
|
||||
|
||||
class account_analytic_account(osv.osv):
|
||||
|
@ -535,8 +536,8 @@ class account_analytic_account_summary_user(osv.osv):
|
|||
','.join([str(x-((x/max_user - (x%max_user == 0 and 1 or 0)) *max_user)) for x in sub_ids]), d1,
|
||||
self._order),d2)
|
||||
if not cr.rowcount == len({}.fromkeys(sub_ids)):
|
||||
raise except_orm('AccessError',
|
||||
'You try to bypass an access rule (Document type: %s).' % self._description)
|
||||
raise except_orm(_('AccessError'),
|
||||
_('You try to bypass an access rule (Document type: %s).') % self._description)
|
||||
else:
|
||||
cr.execute('select %s from \"%s\" where id in (%s) ' \
|
||||
'and account_id in (%s) ' \
|
||||
|
@ -712,8 +713,8 @@ class account_analytic_account_summary_month(osv.osv):
|
|||
','.join([str(x)[-6:] for x in sub_ids]), d1,
|
||||
self._order),d2)
|
||||
if not cr.rowcount == len({}.fromkeys(sub_ids)):
|
||||
raise except_orm('AccessError',
|
||||
'You try to bypass an access rule (Document type: %s).' % self._description)
|
||||
raise except_orm(_('AccessError'),
|
||||
_('You try to bypass an access rule (Document type: %s).') % self._description)
|
||||
else:
|
||||
cr.execute('select %s from \"%s\" where id in (%s) ' \
|
||||
'and account_id in (%s) ' \
|
||||
|
|
|
@ -34,6 +34,7 @@ import time
|
|||
|
||||
import tools
|
||||
from osv import fields, osv
|
||||
from tools.translate import _
|
||||
|
||||
_followup_wizard_date_form = """<?xml version="1.0"?>
|
||||
<form string="Select a date">
|
||||
|
@ -227,8 +228,8 @@ class followup_all_print(wizard.interface):
|
|||
fups = {}
|
||||
fup_ids = pool.get('account_followup.followup').search(cr, uid, [])
|
||||
if not fup_ids:
|
||||
raise wizard.except_wizard('No Follow up Defined',
|
||||
'You must define at least one follow up for your company !')
|
||||
raise wizard.except_wizard(_('No Follow up Defined'),
|
||||
_('You must define at least one follow up for your company !'))
|
||||
fup_id = fup_ids[0]
|
||||
|
||||
current_date = datetime.date(*time.strptime(data['form']['date'],
|
||||
|
|
|
@ -35,6 +35,7 @@ import urllib
|
|||
import base64
|
||||
|
||||
import module_zip
|
||||
import tools
|
||||
|
||||
intro_form = '''<?xml version="1.0"?>
|
||||
<form string="Module publication">
|
||||
|
@ -240,12 +241,12 @@ def _upload(self, cr, uid, datas, context):
|
|||
('module', res['module_filename'], res['module_file'])
|
||||
])
|
||||
if result[0] == "1":
|
||||
raise wizard.except_wizard('Error', 'Login failed!')
|
||||
raise wizard.except_wizard(_('Error'), _('Login failed!'))
|
||||
elif result[0] == "2":
|
||||
raise wizard.except_wizard('Error',
|
||||
'This version of the module is already exist on the server')
|
||||
raise wizard.except_wizard(_('Error'),
|
||||
_('This version of the module is already exist on the server'))
|
||||
elif result[0] != "0":
|
||||
raise wizard.except_wizard('Error', 'Failed to upload the file')
|
||||
raise wizard.except_wizard(_('Error'), _('Failed to upload the file'))
|
||||
|
||||
updata = {
|
||||
'link_name': mod.shortdesc or '',
|
||||
|
@ -287,7 +288,7 @@ def module_check(self, cr, uid, data, context):
|
|||
pool = pooler.get_pool(cr.dbname)
|
||||
module = pool.get('ir.module.module').browse(cr, uid, data['id'], context)
|
||||
if module.state != 'installed':
|
||||
raise wizard.except_wizard('Error', 'You could not publish a module that is not installed!')
|
||||
raise wizard.except_wizard(_('Error'), _('You could not publish a module that is not installed!'))
|
||||
return {
|
||||
'name': module.name,
|
||||
'shortdesc': module.shortdesc,
|
||||
|
|
|
@ -58,8 +58,8 @@ def createzip(cr, uid, moduleid, context, b64enc=True, src=True):
|
|||
module = module_obj.browse(cr, uid, moduleid)
|
||||
|
||||
if module.state != 'installed':
|
||||
raise wizard.except_wizard('Error',
|
||||
'Can not export module that is not installed!')
|
||||
raise wizard.except_wizard(_('Error'),
|
||||
_('Can not export module that is not installed!'))
|
||||
|
||||
ad = tools.config['addons_path']
|
||||
if os.path.isdir(os.path.join(ad, module.name)):
|
||||
|
@ -73,7 +73,7 @@ def createzip(cr, uid, moduleid, context, b64enc=True, src=True):
|
|||
elif os.path.isfile(os.path.join(ad, module.name + '.zip')):
|
||||
val = file(os.path.join(ad, module.name + '.zip'), 'rb').read()
|
||||
else:
|
||||
raise wizard.except_wizard('Error', 'Could not find the module to export!')
|
||||
raise wizard.except_wizard(_('Error'), _('Could not find the module to export!'))
|
||||
if b64enc:
|
||||
val =base64.encodestring(val)
|
||||
return {'module_file':val, 'module_filename': module.name + '-' + \
|
||||
|
|
|
@ -33,6 +33,7 @@ from osv import fields,osv,orm
|
|||
|
||||
import mx.DateTime
|
||||
import base64
|
||||
from tools.translate import _
|
||||
|
||||
MAX_LEVEL = 15
|
||||
AVAILABLE_STATES = [
|
||||
|
@ -619,8 +620,8 @@ class crm_case(osv.osv):
|
|||
cases = self.browse(cr, uid, ids)
|
||||
for case in cases:
|
||||
if not case.email_from:
|
||||
raise osv.except_osv('Error!',
|
||||
'You must put a Partner eMail to use this action!')
|
||||
raise osv.except_osv(_('Error!'),
|
||||
_('You must put a Partner eMail to use this action!'))
|
||||
self.__history(cr, uid, cases, 'Send', history=True, email=False)
|
||||
for case in cases:
|
||||
self.write(cr, uid, [case.id], {
|
||||
|
@ -683,7 +684,7 @@ class crm_case(osv.osv):
|
|||
if case.section_id.parent_id.user_id:
|
||||
data['user_id'] = case.section_id.parent_id.user_id.id
|
||||
else:
|
||||
raise osv.except_osv('Error !', 'You can not escalate this case.\nYou are already at the top level.')
|
||||
raise osv.except_osv(_('Error !'), _('You can not escalate this case.\nYou are already at the top level.'))
|
||||
self.write(cr, uid, ids, data)
|
||||
self.__history(cr, uid, cases, 'escalate')
|
||||
self._action(cr, uid, cases, 'escalate')
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
|
||||
import netsvc
|
||||
from osv import fields,osv,orm
|
||||
from tools.translate import _
|
||||
|
||||
class delivery_carrier(osv.osv):
|
||||
_name = "delivery.carrier"
|
||||
|
@ -116,7 +117,7 @@ class delivery_grid(osv.osv):
|
|||
ok = True
|
||||
break
|
||||
if not ok:
|
||||
raise except_osv('No price avaible !', 'No line matched this order in the choosed delivery grids !')
|
||||
raise except_osv(_('No price avaible !'), _('No line matched this order in the choosed delivery grids !'))
|
||||
|
||||
return price
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
###############################################################################
|
||||
import netsvc
|
||||
from osv import fields,osv
|
||||
from tools.translate import _
|
||||
|
||||
|
||||
# Overloaded stock_picking to manage carriers :
|
||||
|
@ -67,8 +68,8 @@ class stock_picking(osv.osv):
|
|||
grid_id = carrier_obj.grid_get(cursor, user, [picking.carrier_id.id],
|
||||
picking.address_id.id, context=context)
|
||||
if not grid_id:
|
||||
raise osv.except_osv('Warning',
|
||||
'The carrier %s (id: %d) has no delivery grid!' \
|
||||
raise osv.except_osv(_('Warning'),
|
||||
_('The carrier %s (id: %d) has no delivery grid!') \
|
||||
% (picking.carrier_id.name,
|
||||
picking.carrier_id.id))
|
||||
invoice = invoices[result[picking.id]]
|
||||
|
|
|
@ -31,6 +31,7 @@ import time
|
|||
import wizard
|
||||
import ir
|
||||
import pooler
|
||||
from tools.translate import _
|
||||
|
||||
delivery_form = """<?xml version="1.0"?>
|
||||
<form string="Create deliveries">
|
||||
|
@ -47,7 +48,7 @@ def _delivery_default(self, cr, uid, data, context):
|
|||
order_obj = pooler.get_pool(cr.dbname).get('sale.order')
|
||||
order = order_obj.browse(cr, uid, data['ids'])[0]
|
||||
if not order.state in ('draft'):
|
||||
raise wizard.except_wizard('Order not in draft state !', 'The order state have to be draft to add delivery lines.')
|
||||
raise wizard.except_wizard(_('Order not in draft state !'), _('The order state have to be draft to add delivery lines.'))
|
||||
|
||||
carrier_id = order.partner_id.property_delivery_carrier.id
|
||||
return {'carrier_id': carrier_id}
|
||||
|
@ -60,7 +61,7 @@ def _delivery_set(self, cr, uid, data, context):
|
|||
for order in order_objs:
|
||||
grid_id = pooler.get_pool(cr.dbname).get('delivery.carrier').grid_get(cr, uid, [data['form']['carrier_id']],order.partner_shipping_id.id)
|
||||
if not grid_id:
|
||||
raise wizard.except_wizard('No grid avaible !', 'No grid matching for this carrier !')
|
||||
raise wizard.except_wizard(_('No grid avaible !'), _('No grid matching for this carrier !'))
|
||||
grid = pooler.get_pool(cr.dbname).get('delivery.grid').browse(cr, uid, [grid_id])[0]
|
||||
|
||||
line_obj.create(cr, uid, {
|
||||
|
|
|
@ -31,6 +31,7 @@ from mx import DateTime
|
|||
import time
|
||||
|
||||
from osv import fields, osv
|
||||
from tools.translate import _
|
||||
|
||||
class hr_timesheet_group(osv.osv):
|
||||
_name = "hr.timesheet.group"
|
||||
|
@ -140,7 +141,7 @@ class hr_employee(osv.osv):
|
|||
def sign_change(self, cr, uid, ids, context={}, dt=False):
|
||||
for emp in self.browse(cr, uid, ids):
|
||||
if not self._action_check(cr, uid, emp.id, dt, context):
|
||||
raise osv.except_osv('Warning', 'You tried to sign with a date anterior to another event !\nTry to contact the administrator to correct attendances.')
|
||||
raise osv.except_osv(_('Warning'), _('You tried to sign with a date anterior to another event !\nTry to contact the administrator to correct attendances.'))
|
||||
res = {'action':'action', 'employee_id':emp.id}
|
||||
if dt:
|
||||
res['name'] = dt
|
||||
|
@ -151,7 +152,7 @@ class hr_employee(osv.osv):
|
|||
id = False
|
||||
for emp in self.browse(cr, uid, ids):
|
||||
if not self._action_check(cr, uid, emp.id, dt, context):
|
||||
raise osv.except_osv('Warning', 'You tried to sign out with a date anterior to another event !\nTry to contact the administrator to correct attendances.')
|
||||
raise osv.except_osv(_('Warning'), _('You tried to sign out with a date anterior to another event !\nTry to contact the administrator to correct attendances.'))
|
||||
res = {'action':'sign_out', 'employee_id':emp.id}
|
||||
if dt:
|
||||
res['name'] = dt
|
||||
|
@ -168,7 +169,7 @@ class hr_employee(osv.osv):
|
|||
id = False
|
||||
for emp in self.browse(cr, uid, ids):
|
||||
if not self._action_check(cr, uid, emp.id, dt, context):
|
||||
raise osv.except_osv('Warning', 'You tried to sign in with a date anterior to another event !\nTry to contact the administrator to correct attendances.')
|
||||
raise osv.except_osv(_('Warning'), _('You tried to sign in with a date anterior to another event !\nTry to contact the administrator to correct attendances.'))
|
||||
res = {'action':'sign_in', 'employee_id':emp.id}
|
||||
if dt:
|
||||
res['name'] = dt
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
import wizard
|
||||
import netsvc
|
||||
import time
|
||||
from tools.translate import _
|
||||
|
||||
si_so_form ='''<?xml version="1.0"?>
|
||||
<form string="Sign in / Sign out">
|
||||
|
@ -76,7 +77,7 @@ def _sign_in(self, cr, uid, data, context):
|
|||
emp_id = data['form']['emp_id']
|
||||
if 'last_time' in data['form'] :
|
||||
if data['form']['last_time'] > time.strftime('%Y-%m-%d'):
|
||||
raise wizard.except_wizard('UserError', 'The sign-out date must be in the past')
|
||||
raise wizard.except_wizard(_('UserError'), _('The sign-out date must be in the past'))
|
||||
return {'success': False}
|
||||
service.execute(cr.dbname, uid, 'hr.attendance', 'create', {
|
||||
'name': data['form']['last_time'],
|
||||
|
@ -87,7 +88,7 @@ def _sign_in(self, cr, uid, data, context):
|
|||
success = service.execute(cr.dbname, uid, 'hr.employee', 'sign_in', [emp_id])
|
||||
print success
|
||||
except:
|
||||
raise wizard.except_wizard('UserError', 'A sign-in must be right after a sign-out !')
|
||||
raise wizard.except_wizard(_('UserError'), _('A sign-in must be right after a sign-out !'))
|
||||
return {'success': success}
|
||||
|
||||
def _sign_out(self, cr, uid, data, context):
|
||||
|
@ -95,13 +96,13 @@ def _sign_out(self, cr, uid, data, context):
|
|||
emp_id = data['form']['emp_id']
|
||||
if 'last_time' in data['form'] :
|
||||
if data['form']['last_time'] > time.strftime('%Y-%m-%d'):
|
||||
raise wizard.except_wizard('UserError', 'The Sign-in date must be in the past')
|
||||
raise wizard.except_wizard(_('UserError'), _('The Sign-in date must be in the past'))
|
||||
return {'success': False}
|
||||
service.execute(cr.dbname, uid, 'hr.attendance', 'create', {'name':data['form']['last_time'], 'action':'sign_in', 'employee_id':emp_id})
|
||||
try:
|
||||
success = service.execute(cr.dbname, uid, 'hr.employee', 'sign_out', [emp_id])
|
||||
except:
|
||||
raise wizard.except_wizard('UserError', 'A sign-out must be right after a sign-in !')
|
||||
raise wizard.except_wizard(_('UserError'), _('A sign-out must be right after a sign-in !'))
|
||||
|
||||
return {'success' : success}
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ from mx import DateTime
|
|||
import time
|
||||
|
||||
from osv import fields, osv
|
||||
from tools.translate import _
|
||||
|
||||
def _employee_get(obj,cr,uid,context={}):
|
||||
ids = obj.pool.get('hr.employee').search(cr, uid, [('user_id','=', uid)])
|
||||
|
@ -142,7 +143,7 @@ class hr_expense_expense(osv.osv):
|
|||
'account_analytic_id': l.analytic_account.id,
|
||||
}))
|
||||
if not exp.employee_id.address_id:
|
||||
raise osv.except_osv('Error !', 'The employee must have a contact address')
|
||||
raise osv.except_osv(_('Error !'), _('The employee must have a contact address'))
|
||||
acc = exp.employee_id.address_id.partner_id.property_account_payable.id
|
||||
payment_term_id = exp.employee_id.address_id.partner_id.property_payment_term.id
|
||||
inv = {
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
import wizard
|
||||
import time
|
||||
import pooler
|
||||
from tools.translate import _
|
||||
|
||||
si_form ='''<?xml version="1.0"?>
|
||||
<form string="Sign in / Sign out">
|
||||
|
@ -82,7 +83,7 @@ def _get_empid(self, cr, uid, data, context):
|
|||
if emp_id:
|
||||
employee = emp_obj.read(cr, uid, emp_id)[0]
|
||||
return {'name': employee['name'], 'state': employee['state'], 'emp_id': emp_id[0], 'date':False, 'server_date':time.strftime('%Y-%m-%d %H:%M:%S')}
|
||||
raise wizard.except_wizard('UserError', 'No employee defined for your user !')
|
||||
raise wizard.except_wizard(_('UserError'), _('No employee defined for your user !'))
|
||||
|
||||
def _get_empid2(self, cr, uid, data, context):
|
||||
res = _get_empid(self,cr, uid, data, context)
|
||||
|
@ -112,7 +113,7 @@ def _write(self, cr, uid, data, emp_id, context):
|
|||
hour = round(round((hour + minimum / 2) / minimum) * minimum, 2)
|
||||
res = timesheet_obj.default_get(cr, uid, ['product_id','product_uom_id'])
|
||||
if not res['product_uom_id']:
|
||||
raise wizard.except_wizard('UserError', 'No cost unit defined for this employee !')
|
||||
raise wizard.except_wizard(_('UserError'), _('No cost unit defined for this employee !'))
|
||||
up = timesheet_obj.on_change_unit_amount(cr, uid, False, res['product_id'], hour, res['product_uom_id'])['value']
|
||||
res['name'] = data['form']['info']
|
||||
res['account_id'] = data['form']['account_id']
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
from osv import fields, osv
|
||||
|
||||
from tools.translate import _
|
||||
|
||||
class hr_timesheet_invoice_factor(osv.osv):
|
||||
_name = "hr_timesheet_invoice.factor"
|
||||
|
@ -93,8 +94,8 @@ class account_analytic_line(osv.osv):
|
|||
select = [ids]
|
||||
for line in self.browse(cr, uid, select):
|
||||
if line.invoice_id:
|
||||
raise osv.except_osv('Error !',
|
||||
'You can not modify an invoiced analytic line!')
|
||||
raise osv.except_osv(_('Error !'),
|
||||
_('You can not modify an invoiced analytic line!'))
|
||||
return True
|
||||
|
||||
def copy(self, cursor, user, obj_id, default=None, context=None):
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
import wizard
|
||||
import pooler
|
||||
import time
|
||||
from tools.translate import _
|
||||
|
||||
#
|
||||
# Create an final invoice based on selected timesheet lines
|
||||
|
@ -57,9 +58,9 @@ class final_invoice_create(wizard.interface):
|
|||
partner = account.partner_id
|
||||
amount_total=0.0
|
||||
if (not partner) or not (account.pricelist_id):
|
||||
raise wizard.except_wizard('Analytic account incomplete',
|
||||
'Please fill in the partner and pricelist field '
|
||||
'in the analytic account:\n%s' % (account.name,))
|
||||
raise wizard.except_wizard(_('Analytic account incomplete'),
|
||||
_('Please fill in the partner and pricelist field '
|
||||
'in the analytic account:\n%s') % (account.name,))
|
||||
|
||||
date_due = False
|
||||
if partner.property_payment_term:
|
||||
|
@ -188,7 +189,7 @@ class final_invoice_create(wizard.interface):
|
|||
if data['form']['use_amount_max']:
|
||||
if abs(account.amount_max - amount_total) > data['form']['balance_amount'] :
|
||||
if not data['form']['balance_product']:
|
||||
raise wizard.except_wizard('Balance product needed', 'Please fill a Balance product in the wizard')
|
||||
raise wizard.except_wizard(_('Balance product needed'), _('Please fill a Balance product in the wizard'))
|
||||
product = pool.get('product.product').browse(cr, uid, data['form']['balance_product'], context2)
|
||||
|
||||
taxes = product.taxes_id
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
import wizard
|
||||
import pooler
|
||||
import time
|
||||
from tools.translate import _
|
||||
|
||||
#
|
||||
# Create an invoice based on selected timesheet lines
|
||||
|
@ -57,9 +58,9 @@ class invoice_create(wizard.interface):
|
|||
for account in analytic_account_obj.browse(cr, uid, account_ids, context):
|
||||
partner = account.partner_id
|
||||
if (not partner) or not (account.pricelist_id):
|
||||
raise wizard.except_wizard('Analytic account incomplete',
|
||||
'Please fill in the partner and pricelist field '
|
||||
'in the analytic account:\n%s' % (account.name,))
|
||||
raise wizard.except_wizard(_('Analytic account incomplete'),
|
||||
_('Please fill in the partner and pricelist field '
|
||||
'in the analytic account:\n%s') % (account.name,))
|
||||
|
||||
date_due = False
|
||||
if partner.property_payment_term:
|
||||
|
@ -97,7 +98,7 @@ class invoice_create(wizard.interface):
|
|||
for product_id,factor_id,qty in cr.fetchall():
|
||||
product = pool.get('product.product').browse(cr, uid, product_id, context2)
|
||||
if not product:
|
||||
raise wizard.except_wizard('Error', 'At least on line have no product !')
|
||||
raise wizard.except_wizard(_('Error'), _('At least on line have no product !'))
|
||||
factor_name = ''
|
||||
factor = pool.get('hr_timesheet_invoice.factor').browse(cr, uid, factor_id, context2)
|
||||
if factor.customer_name:
|
||||
|
|
|
@ -33,6 +33,7 @@ from osv import osv
|
|||
import netsvc
|
||||
|
||||
from mx import DateTime
|
||||
from tools.translate import _
|
||||
|
||||
|
||||
class one2many_mod2(fields.one2many):
|
||||
|
@ -148,7 +149,7 @@ class hr_timesheet_sheet(osv.osv):
|
|||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'hr_timesheet_sheet.sheet', sheet.id, 'confirm', cr)
|
||||
else:
|
||||
raise osv.except_osv('Warning !', 'Please verify that the total difference of the sheet is lower than %.2f !' %(di,))
|
||||
raise osv.except_osv(_('Warning !'), _('Please verify that the total difference of the sheet is lower than %.2f !') %(di,))
|
||||
return True
|
||||
|
||||
def date_today(self, cr, uid, ids, context):
|
||||
|
@ -191,7 +192,7 @@ class hr_timesheet_sheet(osv.osv):
|
|||
|
||||
def sign_in(self, cr, uid, ids, context):
|
||||
if not self.browse(cr, uid, ids, context)[0].date_current == time.strftime('%Y-%m-%d'):
|
||||
raise osv.except_osv('Error !', 'You can not sign in from an other date than today')
|
||||
raise osv.except_osv(_('Error !'), _('You can not sign in from an other date than today'))
|
||||
emp_obj = self.pool.get('hr.employee')
|
||||
emp_id = emp_obj.search(cr, uid, [('user_id', '=', uid)])
|
||||
context['sheet_id']=ids[0]
|
||||
|
@ -200,7 +201,7 @@ class hr_timesheet_sheet(osv.osv):
|
|||
|
||||
def sign_out(self, cr, uid, ids, context):
|
||||
if not self.browse(cr, uid, ids, context)[0].date_current == time.strftime('%Y-%m-%d'):
|
||||
raise osv.except_osv('Error !', 'You can not sign out from an other date than today')
|
||||
raise osv.except_osv(_('Error !'), _('You can not sign out from an other date than today'))
|
||||
emp_obj = self.pool.get('hr.employee')
|
||||
emp_id = emp_obj.search(cr, uid, [('user_id', '=', uid)])
|
||||
context['sheet_id']=ids[0]
|
||||
|
@ -395,7 +396,7 @@ class hr_timesheet_line(osv.osv):
|
|||
if 'sheet_id' in vals:
|
||||
ts = self.pool.get('hr_timesheet_sheet.sheet').browse(cr, uid, vals['sheet_id'])
|
||||
if not ts.state in ('draft', 'new'):
|
||||
raise osv.except_osv('Error !', 'You can not modify an entry in a confirmed timesheet !')
|
||||
raise osv.except_osv(_('Error !'), _('You can not modify an entry in a confirmed timesheet !'))
|
||||
return super(hr_timesheet_line,self).create(cr, uid, vals, *args, **kwargs)
|
||||
|
||||
def unlink(self, cr, uid, ids, *args, **kwargs):
|
||||
|
@ -409,7 +410,7 @@ class hr_timesheet_line(osv.osv):
|
|||
def _check(self, cr, uid, ids):
|
||||
for att in self.browse(cr, uid, ids):
|
||||
if att.sheet_id and att.sheet_id.state not in ('draft', 'new'):
|
||||
raise osv.except_osv('Error !', 'You can not modify an entry in a confirmed timesheet !')
|
||||
raise osv.except_osv(_('Error !'), _('You can not modify an entry in a confirmed timesheet !'))
|
||||
return True
|
||||
|
||||
hr_timesheet_line()
|
||||
|
@ -514,12 +515,12 @@ class hr_attendance(osv.osv):
|
|||
if 'sheet_id' in context:
|
||||
ts = self.pool.get('hr_timesheet_sheet.sheet').browse(cr, uid, context['sheet_id'])
|
||||
if ts.state not in ('draft', 'new'):
|
||||
raise osv.except_osv('Error !', 'You can not modify an entry in a confirmed timesheet !')
|
||||
raise osv.except_osv(_('Error !'), _('You can not modify an entry in a confirmed timesheet !'))
|
||||
res = super(hr_attendance,self).create(cr, uid, vals, context=context)
|
||||
if 'sheet_id' in context:
|
||||
if context['sheet_id'] != self.browse(cr, uid, res, context=context).sheet_id.id:
|
||||
raise osv.except_osv('UserError', 'You can not enter an attendance ' \
|
||||
'date outside the current timesheet dates!')
|
||||
raise osv.except_osv(_('UserError'), _('You can not enter an attendance ' \
|
||||
'date outside the current timesheet dates!'))
|
||||
return res
|
||||
|
||||
def unlink(self, cr, uid, ids, *args, **kwargs):
|
||||
|
@ -532,14 +533,14 @@ class hr_attendance(osv.osv):
|
|||
if 'sheet_id' in context:
|
||||
for attendance in self.browse(cr, uid, ids, context=context):
|
||||
if context['sheet_id'] != attendance.sheet_id.id:
|
||||
raise osv.except_osv('UserError', 'You can not enter an attendance ' \
|
||||
'date outside the current timesheet dates!')
|
||||
raise osv.except_osv(_('UserError'), _('You can not enter an attendance ' \
|
||||
'date outside the current timesheet dates!'))
|
||||
return res
|
||||
|
||||
def _check(self, cr, uid, ids):
|
||||
for att in self.browse(cr, uid, ids):
|
||||
if att.sheet_id and att.sheet_id.state not in ('draft', 'new'):
|
||||
raise osv.except_osv('Error !', 'You can not modify an entry in a confirmed timesheet !')
|
||||
raise osv.except_osv(_('Error !'), _('You can not modify an entry in a confirmed timesheet !'))
|
||||
return True
|
||||
|
||||
hr_attendance()
|
||||
|
|
|
@ -33,13 +33,14 @@ import netsvc
|
|||
import time
|
||||
import pooler
|
||||
from osv import osv
|
||||
from tools.translate import _
|
||||
|
||||
class wiz_timesheet_open(wizard.interface):
|
||||
def _open_timesheet(self, cr, uid, data, context):
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
user_ids = pool.get('hr.employee').search(cr, uid, [('user_id','=',uid)])
|
||||
if not len(user_ids):
|
||||
raise wizard.except_wizard('Error !', 'No employee defined for your user !')
|
||||
raise wizard.except_wizard(_('Error !'), _('No employee defined for your user !'))
|
||||
ts = pool.get('hr_timesheet_sheet.sheet')
|
||||
ids = ts.search(cr, uid, [('user_id','=',uid),('state','=','draft'),('date_from','<=',time.strftime('%Y-%m-%d')), ('date_to','>=',time.strftime('%Y-%m-%d'))])
|
||||
view_type = 'form,tree'
|
||||
|
|
|
@ -34,6 +34,7 @@ from osv import fields, osv
|
|||
from _common import rounding
|
||||
import time
|
||||
from tools import config
|
||||
from tools.translate import _
|
||||
|
||||
class price_type(osv.osv):
|
||||
"""
|
||||
|
@ -136,9 +137,9 @@ class product_pricelist(osv.osv):
|
|||
plversion = cr.dictfetchone()
|
||||
|
||||
if not plversion:
|
||||
raise osv.except_osv('Warning !',
|
||||
'No active version for the selected pricelist !\n' \
|
||||
'Please create or activate one.')
|
||||
raise osv.except_osv(_('Warning !'),
|
||||
_('No active version for the selected pricelist !\n' \
|
||||
'Please create or activate one.'))
|
||||
|
||||
cr.execute('SELECT id, categ_id ' \
|
||||
'FROM product_template ' \
|
||||
|
@ -154,10 +155,10 @@ class product_pricelist(osv.osv):
|
|||
'WHERE id = %d', (categ,))
|
||||
categ = cr.fetchone()[0]
|
||||
if str(categ) in categ_ids:
|
||||
raise osv.except_osv('Warning !',
|
||||
'Could not resolve product category, ' \
|
||||
raise osv.except_osv(_('Warning !'),
|
||||
_('Could not resolve product category, ' \
|
||||
'you have defined cyclic categories ' \
|
||||
'of products!')
|
||||
'of products!'))
|
||||
if categ_ids:
|
||||
categ_where = '(categ_id IN (' + ','.join(categ_ids) + '))'
|
||||
else:
|
||||
|
|
|
@ -89,9 +89,9 @@ def _do_orders(self, cr, uid, data, context):
|
|||
if not task.project_id.id in customers:
|
||||
partner = task.partner_id or task.project_id.partner_id
|
||||
if not partner.id:
|
||||
raise wizard.except_wizard('Error !', 'No partner defined for the task or project.')
|
||||
raise wizard.except_wizard(_('Error !'), _('No partner defined for the task or project.'))
|
||||
if not task.project_id.pricelist_id.id:
|
||||
raise wizard.except_wizard('Error !', 'No pricelist defined in the project definition.')
|
||||
raise wizard.except_wizard(_('Error !'), _('No pricelist defined in the project definition.'))
|
||||
adr = pooler.get_pool(cr.dbname).get('res.partner').address_get(cr, uid, [partner.id], ['default','invoice','shipping'])
|
||||
|
||||
a = partner.property_account_receivable.id
|
||||
|
|
|
@ -50,7 +50,7 @@ def email_send(cr, uid, ids, to_adr, description, context={}):
|
|||
from_adr = task.user_id.address_id.email
|
||||
signature = task.user_id.signature
|
||||
else:
|
||||
raise osv.except_osv('Error', "Couldn't send mail because your email address is not configured!")
|
||||
raise osv.except_osv(_('Error'), _("Couldn't send mail because your email address is not configured!"))
|
||||
|
||||
if to_adr:
|
||||
val = {
|
||||
|
@ -66,7 +66,7 @@ def email_send(cr, uid, ids, to_adr, description, context={}):
|
|||
body = u'%s\n%s\n%s\n\n-- \n%s' % (header, description, footer, signature)
|
||||
email(from_adr, [to_adr], subject, body.encode('utf-8'), email_bcc=[from_adr])
|
||||
else:
|
||||
raise osv.except_osv('Error', "Couldn't send mail because the contact for this task (%s) has no email address!"% contact.name)
|
||||
raise osv.except_osv(_('Error'), _("Couldn't send mail because the contact for this task (%s) has no email address!") % contact.name)
|
||||
|
||||
class wizard_close(wizard.interface):
|
||||
def _check_complete(self, cr, uid, data, context):
|
||||
|
|
|
@ -36,6 +36,7 @@ import ir
|
|||
from mx import DateTime
|
||||
import pooler
|
||||
from tools import config
|
||||
from tools.translate import _
|
||||
|
||||
#
|
||||
# Model definition
|
||||
|
@ -204,7 +205,7 @@ class purchase_order(osv.osv):
|
|||
if not a:
|
||||
a = ol.product_id.categ_id.property_account_expense_categ.id
|
||||
if not a:
|
||||
raise osv.except_osv('Error !', 'There is no expense account defined for this product: "%s" (id:%d)' % (ol.product_id.name, ol.product_id.id,))
|
||||
raise osv.except_osv(_('Error !'), _('There is no expense account defined for this product: "%s" (id:%d)') % (ol.product_id.name, ol.product_id.id,))
|
||||
else:
|
||||
a = self.pool.get('ir.property').get(cr, uid, 'property_account_expense_categ', 'product.category')
|
||||
il.append(self.inv_line_create(a,ol))
|
||||
|
@ -339,7 +340,7 @@ class purchase_order_line(osv.osv):
|
|||
def product_id_change(self, cr, uid, ids, pricelist, product, qty, uom,
|
||||
partner_id, date_order=False):
|
||||
if not pricelist:
|
||||
raise osv.except_osv('No Pricelist !', 'You have to select a pricelist in the purchase form !\n Please set one before choosing a product.')
|
||||
raise osv.except_osv(_('No Pricelist !'), _('You have to select a pricelist in the purchase form !\nPlease set one before choosing a product.'))
|
||||
if not product:
|
||||
return {'value': {'price_unit': 0.0, 'name':'','notes':''}, 'domain':{'product_uom':[]}}
|
||||
lang=False
|
||||
|
@ -368,7 +369,7 @@ class purchase_order_line(osv.osv):
|
|||
res3 = self.pool.get('product.uom').read(cr, uid, [prod_uom_po], ['category_id'])
|
||||
domain = {'product_uom':[('category_id','=',res2[0]['category_id'][0])]}
|
||||
if res2[0]['category_id'] != res3[0]['category_id']:
|
||||
raise osv.except_osv('Wrong Product UOM !', 'You have to select a product UOM in the same category than the purchase UOM of the product')
|
||||
raise osv.except_osv(_('Wrong Product UOM !'), _('You have to select a product UOM in the same category than the purchase UOM of the product'))
|
||||
|
||||
res['domain'] = domain
|
||||
return res
|
||||
|
|
|
@ -33,6 +33,7 @@ from osv import fields, osv
|
|||
import ir
|
||||
from mx import DateTime
|
||||
from tools import config
|
||||
from tools.translate import _
|
||||
|
||||
class sale_shop(osv.osv):
|
||||
_name = "sale.shop"
|
||||
|
@ -336,8 +337,8 @@ class sale_order(osv.osv):
|
|||
for pick in sale.picking_ids:
|
||||
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.')
|
||||
_('Could not cancel sale order !'),
|
||||
_('You must first cancel all packings 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")
|
||||
|
@ -345,8 +346,8 @@ class sale_order(osv.osv):
|
|||
for inv in sale.invoice_ids:
|
||||
if inv.state not in ('draft','cancel'):
|
||||
raise osv.except_osv(
|
||||
'Could not cancel this sale order !',
|
||||
'You must first cancel all invoices attached to this sale order.')
|
||||
_('Could not cancel this sale order !'),
|
||||
_('You must first cancel all invoices attached to this sale order.'))
|
||||
for r in self.read(cr,uid,ids,['invoice_ids']):
|
||||
for inv in r['invoice_ids']:
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
|
@ -386,7 +387,7 @@ class sale_order(osv.osv):
|
|||
# if mode == 'canceled':
|
||||
# returns True if there is at least one canceled line, False otherwise
|
||||
def test_state(self, cr, uid, ids, mode, *args):
|
||||
assert mode in ('finished', 'canceled'), "invalid mode for test_state"
|
||||
assert mode in ('finished', 'canceled'), _("invalid mode for test_state")
|
||||
finished = True
|
||||
canceled = False
|
||||
write_done_ids = []
|
||||
|
@ -648,9 +649,9 @@ class sale_order_line(osv.osv):
|
|||
if not a:
|
||||
a = line.product_id.categ_id.property_account_income_categ.id
|
||||
if not a:
|
||||
raise osv.except_osv('Error !',
|
||||
'There is no income account defined ' \
|
||||
'for this product: "%s" (id:%d)' % \
|
||||
raise osv.except_osv(_('Error !'),
|
||||
_('There is no income account defined ' \
|
||||
'for this product: "%s" (id:%d)') % \
|
||||
(line.product_id.name, line.product_id.id,))
|
||||
else:
|
||||
a = self.pool.get('ir.property').get(cr, uid,
|
||||
|
@ -733,9 +734,9 @@ class sale_order_line(osv.osv):
|
|||
'product_uos': []}}
|
||||
|
||||
if not pricelist:
|
||||
raise osv.except_osv('No Pricelist !',
|
||||
'You have to select a pricelist in the sale form !\n'
|
||||
'Please set one before choosing a product.')
|
||||
raise osv.except_osv(_('No Pricelist !'),
|
||||
_('You have to select a pricelist in the sale form !\n'
|
||||
'Please set one before choosing a product.'))
|
||||
|
||||
if not date_order:
|
||||
date_order = time.strftime('%Y-%m-%d')
|
||||
|
@ -745,9 +746,9 @@ class sale_order_line(osv.osv):
|
|||
'date': date_order,
|
||||
})[pricelist]
|
||||
if price is False:
|
||||
raise osv.except_osv('No valid pricelist line found !',
|
||||
"Couldn't find a pricelist line matching this product and quantity.\n"
|
||||
"You have to change either the product, the quantity or the pricelist.")
|
||||
raise osv.except_osv(_('No valid pricelist line found !'),
|
||||
_("Couldn't find a pricelist line matching this product and quantity.\n"
|
||||
"You have to change either the product, the quantity or the pricelist."))
|
||||
|
||||
product = product_obj.browse(cr, uid, product, context=context)
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ import netsvc
|
|||
from osv import fields,osv
|
||||
import ir
|
||||
from tools import config
|
||||
from tools.translate import _
|
||||
|
||||
|
||||
#----------------------------------------------------------
|
||||
|
@ -363,7 +364,7 @@ class stock_tracking(osv.osv):
|
|||
return res
|
||||
|
||||
def unlink(self, cr ,uid, ids):
|
||||
raise Exception, 'You can not remove a lot line !'
|
||||
raise Exception, _('You can not remove a lot line !')
|
||||
stock_tracking()
|
||||
|
||||
#----------------------------------------------------------
|
||||
|
@ -951,9 +952,9 @@ class stock_move(osv.osv):
|
|||
acc_src = move.product_id.categ_id.\
|
||||
property_stock_account_input_categ.id
|
||||
if not acc_src:
|
||||
raise osv.except_osv('Error!',
|
||||
'There is no stock input account defined ' \
|
||||
'for this product: "%s" (id: %d)' % \
|
||||
raise osv.except_osv(_('Error!'),
|
||||
_('There is no stock input account defined ' \
|
||||
'for this product: "%s" (id: %d)') % \
|
||||
(move.product_id.name,
|
||||
move.product_id.id,))
|
||||
if not acc_dest:
|
||||
|
@ -963,15 +964,15 @@ class stock_move(osv.osv):
|
|||
acc_dest = move.product_id.categ_id.\
|
||||
property_stock_account_output_categ.id
|
||||
if not acc_dest:
|
||||
raise osv.except_osv('Error!',
|
||||
'There is no stock output account defined ' \
|
||||
'for this product: "%s" (id: %d)' % \
|
||||
raise osv.except_osv(_('Error!'),
|
||||
_('There is no stock output account defined ' \
|
||||
'for this product: "%s" (id: %d)') % \
|
||||
(move.product_id.name,
|
||||
move.product_id.id,))
|
||||
if not move.product_id.categ_id.property_stock_journal.id:
|
||||
raise osv.except_osv('Error!',
|
||||
'There is no journal defined '\
|
||||
'on the product category: "%s" (id: %d)' % \
|
||||
raise osv.except_osv(_('Error!'),
|
||||
_('There is no journal defined '\
|
||||
'on the product category: "%s" (id: %d)') % \
|
||||
(move.product_id.categ_id.name,
|
||||
move.product_id.categ_id.id,))
|
||||
journal_id = move.product_id.categ_id.property_stock_journal.id
|
||||
|
@ -1018,8 +1019,8 @@ class stock_move(osv.osv):
|
|||
def unlink(self, cr, uid, ids, context=None):
|
||||
for move in self.browse(cr, uid, ids, context=context):
|
||||
if move.state != 'draft':
|
||||
raise osv.except_osv('UserError',
|
||||
'You can only delete draft moves.')
|
||||
raise osv.except_osv(_('UserError'),
|
||||
_('You can only delete draft moves.'))
|
||||
return super(stock_move, self).unlink(
|
||||
cr, uid, ids, context=context)
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ import pooler
|
|||
|
||||
import time
|
||||
from osv import osv
|
||||
from tools.translate import _
|
||||
|
||||
track_form = '''<?xml version="1.0"?>
|
||||
<form string="Tracking a move">
|
||||
|
@ -65,7 +66,7 @@ def _track_lines(self, cr, uid, data, context):
|
|||
|
||||
sequence = ir_sequence_obj.get(cr, uid, 'stock.lot.serial')
|
||||
if not sequence:
|
||||
raise wizard.except_wizard('Error!', 'No production sequence defined')
|
||||
raise wizard.except_wizard(_('Error!'), _('No production sequence defined'))
|
||||
if data['form']['tracking_prefix']:
|
||||
sequence=data['form']['tracking_prefix']+'/'+(sequence or '')
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
from mx import DateTime
|
||||
import time
|
||||
from osv import fields,osv
|
||||
from tools.translate import _
|
||||
|
||||
class subscription_document(osv.osv):
|
||||
_name = "subscription.document"
|
||||
|
@ -111,7 +112,7 @@ class subscription_subscription(osv.osv):
|
|||
id = int(id)
|
||||
model = self.pool.get(model_name)
|
||||
except:
|
||||
raise osv.except_osv('Wrong Source Document !', 'Please provide another source document.\nThis one does not exist !')
|
||||
raise osv.except_osv(_('Wrong Source Document !'), _('Please provide another source document.\nThis one does not exist !'))
|
||||
|
||||
default = {'state':'draft'}
|
||||
doc_obj = self.pool.get('subscription.document')
|
||||
|
|
Loading…
Reference in New Issue