[MERGE] merged trunk.

bzr revid: vmt@openerp.com-20120813160657-ilujdek8ys4fzhp9
This commit is contained in:
Vo Minh Thu 2012-08-13 18:06:57 +02:00
commit 9822629548
2247 changed files with 16219 additions and 18761 deletions

View File

@ -125,7 +125,7 @@ class account_payment_term_line(osv.osv):
return True return True
_constraints = [ _constraints = [
(_check_percent, 'Percentages for Payment Term Line must be between 0 and 1, Example: 0.02 for 2% ', ['value_amount']), (_check_percent, 'Percentages for Payment Term Line must be between 0 and 1, Example: 0.02 for 2%.', ['value_amount']),
] ]
account_payment_term_line() account_payment_term_line()
@ -136,7 +136,7 @@ class account_account_type(osv.osv):
def _get_current_report_type(self, cr, uid, ids, name, arg, context=None): def _get_current_report_type(self, cr, uid, ids, name, arg, context=None):
obj_data = self.pool.get('ir.model.data') obj_data = self.pool.get('ir.model.data')
obj_financial_report = self.pool.get('account.financial.report') obj_financial_report = self.pool.get('account.financial.report')
res = {} res = {}
financial_report_ref = { financial_report_ref = {
'asset': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_assets0')[1], context=context), 'asset': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_assets0')[1], context=context),
@ -154,7 +154,7 @@ class account_account_type(osv.osv):
def _save_report_type(self, cr, uid, account_type_id, field_name, field_value, arg, context=None): def _save_report_type(self, cr, uid, account_type_id, field_name, field_value, arg, context=None):
obj_data = self.pool.get('ir.model.data') obj_data = self.pool.get('ir.model.data')
obj_financial_report = self.pool.get('account.financial.report') obj_financial_report = self.pool.get('account.financial.report')
#unlink if it exists somewhere in the financial reports related to BS or PL #unlink if it exists somewhere in the financial reports related to BS or PL
financial_report_ref = { financial_report_ref = {
'asset': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_assets0')[1], context=context), 'asset': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_assets0')[1], context=context),
@ -179,7 +179,7 @@ class account_account_type(osv.osv):
'Balance' will generally be used for cash accounts. 'Balance' will generally be used for cash accounts.
'Detail' will copy each existing journal item of the previous year, even the reconciled ones. 'Detail' will copy each existing journal item of the previous year, even the reconciled ones.
'Unreconciled' will copy only the journal items that were unreconciled on the first day of the new fiscal year."""), 'Unreconciled' will copy only the journal items that were unreconciled on the first day of the new fiscal year."""),
'report_type': fields.function(_get_current_report_type, fnct_inv=_save_report_type, type='selection', string='P&L / BS Category', 'report_type': fields.function(_get_current_report_type, fnct_inv=_save_report_type, type='selection', string='P&L / BS Category',
selection= [('none','/'), selection= [('none','/'),
('income', _('Profit & Loss (Income account)')), ('income', _('Profit & Loss (Income account)')),
('expense', _('Profit & Loss (Expense account)')), ('expense', _('Profit & Loss (Expense account)')),
@ -404,12 +404,12 @@ class account_account(osv.osv):
journal_obj = self.pool.get('account.journal') journal_obj = self.pool.get('account.journal')
jids = journal_obj.search(cr, uid, [('type','=','situation'),('centralisation','=',1),('company_id','=',account.company_id.id)], context=context) jids = journal_obj.search(cr, uid, [('type','=','situation'),('centralisation','=',1),('company_id','=',account.company_id.id)], context=context)
if not jids: if not jids:
raise osv.except_osv(_('Error!'),_("You need an Opening journal with centralisation checked to set the initial balance!")) raise osv.except_osv(_('Error!'),_("You need an Opening journal with centralisation checked to set the initial balance."))
period_obj = self.pool.get('account.period') period_obj = self.pool.get('account.period')
pids = period_obj.search(cr, uid, [('special','=',True),('company_id','=',account.company_id.id)], context=context) pids = period_obj.search(cr, uid, [('special','=',True),('company_id','=',account.company_id.id)], context=context)
if not pids: if not pids:
raise osv.except_osv(_('Error!'),_("No opening/closing period defined, please create one to set the initial balance!")) raise osv.except_osv(_('Error!'),_("There is no opening/closing period defined, please create one to set the initial balance."))
move_obj = self.pool.get('account.move.line') move_obj = self.pool.get('account.move.line')
move_id = move_obj.search(cr, uid, [ move_id = move_obj.search(cr, uid, [
@ -426,7 +426,7 @@ class account_account(osv.osv):
}, context=context) }, context=context)
else: else:
if diff<0.0: if diff<0.0:
raise osv.except_osv(_('Error!'),_("Unable to adapt the initial balance (negative value)!")) raise osv.except_osv(_('Error!'),_("Unable to adapt the initial balance (negative value)."))
nameinv = (name=='credit' and 'debit') or 'credit' nameinv = (name=='credit' and 'debit') or 'credit'
move_id = move_obj.create(cr, uid, { move_id = move_obj.create(cr, uid, {
'name': _('Opening Balance'), 'name': _('Opening Balance'),
@ -541,9 +541,9 @@ class account_account(osv.osv):
return True return True
_constraints = [ _constraints = [
(_check_recursion, 'Error ! You can not create recursive accounts.', ['parent_id']), (_check_recursion, 'Error!\nYou cannot create recursive accounts.', ['parent_id']),
(_check_type, 'Configuration Error! \nYou can not define children to an account with internal type different of "View"! ', ['type']), (_check_type, 'Configuration Error!\nYou cannot define children to an account with internal type different of "View".', ['type']),
(_check_account_type, 'Configuration Error! \nYou can not select an account type with a deferral method different of "Unreconciled" for accounts with internal type "Payable/Receivable"! ', ['user_type','type']), (_check_account_type, 'Configuration Error!\nYou cannot select an account type with a deferral method different of "Unreconciled" for accounts with internal type "Payable/Receivable".', ['user_type','type']),
] ]
_sql_constraints = [ _sql_constraints = [
('code_company_uniq', 'unique (code,company_id)', 'The code of the account must be unique per company !') ('code_company_uniq', 'unique (code,company_id)', 'The code of the account must be unique per company !')
@ -619,14 +619,14 @@ class account_account(osv.osv):
if line_obj.search(cr, uid, [('account_id', 'in', account_ids)]): if line_obj.search(cr, uid, [('account_id', 'in', account_ids)]):
if method == 'write': if method == 'write':
raise osv.except_osv(_('Error !'), _('You can not desactivate an account that contains some journal items.')) raise osv.except_osv(_('Error!'), _('You cannot deactivate an account that contains journal items.'))
elif method == 'unlink': elif method == 'unlink':
raise osv.except_osv(_('Error !'), _('You can not remove an account containing journal items.')) raise osv.except_osv(_('Error!'), _('You cannot remove an account that contains journal items.'))
#Checking whether the account is set as a property to any Partner or not #Checking whether the account is set as a property to any Partner or not
value = 'account.account,' + str(ids[0]) value = 'account.account,' + str(ids[0])
partner_prop_acc = self.pool.get('ir.property').search(cr, uid, [('value_reference','=',value)], context=context) partner_prop_acc = self.pool.get('ir.property').search(cr, uid, [('value_reference','=',value)], context=context)
if partner_prop_acc: if partner_prop_acc:
raise osv.except_osv(_('Warning !'), _('You can not remove/desactivate an account which is set on a customer or supplier.')) raise osv.except_osv(_('Warning!'), _('You cannot remove/deactivate an account which is set on a customer or supplier.'))
return True return True
def _check_allow_type_change(self, cr, uid, ids, new_type, context=None): def _check_allow_type_change(self, cr, uid, ids, new_type, context=None):
@ -639,10 +639,10 @@ class account_account(osv.osv):
if line_obj.search(cr, uid, [('account_id', 'in', account_ids)]): if line_obj.search(cr, uid, [('account_id', 'in', account_ids)]):
#Check for 'Closed' type #Check for 'Closed' type
if old_type == 'closed' and new_type !='closed': if old_type == 'closed' and new_type !='closed':
raise osv.except_osv(_('Warning !'), _("You cannot change the type of account from 'Closed' to any other type which contains journal items!")) raise osv.except_osv(_('Warning!'), _("You cannot change the type of account from 'Closed' to any other type which contains journal items!"))
#Check for change From group1 to group2 and vice versa #Check for change From group1 to group2 and vice versa
if (old_type in group1 and new_type in group2) or (old_type in group2 and new_type in group1): if (old_type in group1 and new_type in group2) or (old_type in group2 and new_type in group1):
raise osv.except_osv(_('Warning !'), _("You cannot change the type of account from '%s' to '%s' type as it contains journal items!") % (old_type,new_type,)) raise osv.except_osv(_('Warning!'), _("You cannot change the type of account from '%s' to '%s' type as it contains journal items!") % (old_type,new_type,))
return True return True
def write(self, cr, uid, ids, vals, context=None): def write(self, cr, uid, ids, vals, context=None):
@ -661,7 +661,7 @@ class account_account(osv.osv):
# Allow the write if the value is the same # Allow the write if the value is the same
for i in [i['company_id'][0] for i in self.read(cr,uid,ids,['company_id'])]: for i in [i['company_id'][0] for i in self.read(cr,uid,ids,['company_id'])]:
if vals['company_id']!=i: if vals['company_id']!=i:
raise osv.except_osv(_('Warning !'), _('You cannot change the owner company of an account that already contains journal items.')) raise osv.except_osv(_('Warning!'), _('You cannot change the owner company of an account that already contains journal items.'))
if 'active' in vals and not vals['active']: if 'active' in vals and not vals['active']:
self._check_moves(cr, uid, ids, "write", context=context) self._check_moves(cr, uid, ids, "write", context=context)
if 'type' in vals.keys(): if 'type' in vals.keys():
@ -730,7 +730,7 @@ class account_journal(osv.osv):
'view_id': fields.many2one('account.journal.view', 'Display Mode', required=True, help="Gives the view used when writing or browsing entries in this journal. The view tells OpenERP 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."), 'view_id': fields.many2one('account.journal.view', 'Display Mode', required=True, help="Gives the view used when writing or browsing entries in this journal. The view tells OpenERP 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')]", help="It acts as a default account for credit amount"), 'default_credit_account_id': fields.many2one('account.account', 'Default Credit Account', domain="[('type','!=','view')]", help="It acts as a default account for credit amount"),
'default_debit_account_id': fields.many2one('account.account', 'Default Debit Account', domain="[('type','!=','view')]", help="It acts as a default account for debit amount"), 'default_debit_account_id': fields.many2one('account.account', 'Default Debit Account', domain="[('type','!=','view')]", help="It acts as a default account for debit amount"),
'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."), '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', help="Check this box if you want to allow the cancellation the entries related to this journal or of the invoice related to this journal"), 'update_posted': fields.boolean('Allow Cancelling Entries', help="Check this box if you want to allow the cancellation the entries related to this journal or of the invoice related to this journal"),
'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."), '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="This field contains the information related to the numbering of the journal entries of this journal.", required=True), 'sequence_id': fields.many2one('ir.sequence', 'Entry Sequence', help="This field contains the information related to the numbering of the journal entries of this journal.", required=True),
@ -768,7 +768,7 @@ class account_journal(osv.osv):
return True return True
_constraints = [ _constraints = [
(_check_currency, 'Configuration error! The currency chosen should be shared by the default accounts too.', ['currency','default_debit_account_id','default_credit_account_id']), (_check_currency, 'Configuration error!\nThe currency chosen should be shared by the default accounts too.', ['currency','default_debit_account_id','default_credit_account_id']),
] ]
def copy(self, cr, uid, id, default={}, context=None, done_list=[], local=False): def copy(self, cr, uid, id, default={}, context=None, done_list=[], local=False):
@ -790,7 +790,7 @@ class account_journal(osv.osv):
if 'company_id' in vals and journal.company_id.id != vals['company_id']: if 'company_id' in vals and journal.company_id.id != vals['company_id']:
move_lines = self.pool.get('account.move.line').search(cr, uid, [('journal_id', 'in', ids)]) move_lines = self.pool.get('account.move.line').search(cr, uid, [('journal_id', 'in', ids)])
if move_lines: if move_lines:
raise osv.except_osv(_('Warning !'), _('You can not modify the company of this journal as its related record exist in journal items')) raise osv.except_osv(_('Warning!'), _('This journal already contains items, therefore you cannot modify its company field.'))
return super(account_journal, self).write(cr, uid, ids, vals, context=context) return super(account_journal, self).write(cr, uid, ids, vals, context=context)
def create_sequence(self, cr, uid, vals, context=None): def create_sequence(self, cr, uid, vals, context=None):
@ -915,7 +915,7 @@ class account_fiscalyear(osv.osv):
return True return True
_constraints = [ _constraints = [
(_check_duration, 'Error! The start date of the fiscal year must be before his end date.', ['date_start','date_stop']) (_check_duration, 'Error!\nThe start date of a fiscal year must precede its end date.', ['date_start','date_stop'])
] ]
def create_period3(self, cr, uid, ids, context=None): def create_period3(self, cr, uid, ids, context=None):
@ -966,7 +966,7 @@ class account_fiscalyear(osv.osv):
ids = self.search(cr, uid, args, context=context) ids = self.search(cr, uid, args, context=context)
if not ids: if not ids:
if exception: if exception:
raise osv.except_osv(_('Error !'), _('No fiscal year defined for this date !\nPlease create one from the configuration of the accounting menu.')) raise osv.except_osv(_('Error!'), _('There is no fiscal year defined for this date.\nPlease create one from the configuration of the accounting menu.'))
else: else:
return [] return []
return ids return ids
@ -1032,8 +1032,8 @@ class account_period(osv.osv):
return True return True
_constraints = [ _constraints = [
(_check_duration, 'Error ! The duration of the Period(s) is/are invalid. ', ['date_stop']), (_check_duration, 'Error!\nThe 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']) (_check_year_limit, 'Error!\nThe period is invalid. Either some periods are overlapping or the period\'s dates are not matching the scope of the fiscal year.', ['date_stop'])
] ]
def next(self, cr, uid, period, step, context=None): def next(self, cr, uid, period, step, context=None):
@ -1055,7 +1055,7 @@ class account_period(osv.osv):
args.append(('company_id', '=', company_id)) args.append(('company_id', '=', company_id))
ids = self.search(cr, uid, args, context=context) ids = self.search(cr, uid, args, context=context)
if not ids: if not ids:
raise osv.except_osv(_('Error !'), _('No period defined for this date: %s !\nPlease create one.')%dt) raise osv.except_osv(_('Error!'), _('There is no period defined for this date: %s.\nPlease create one.')%dt)
return ids return ids
def action_draft(self, cr, uid, ids, *args): def action_draft(self, cr, uid, ids, *args):
@ -1080,7 +1080,7 @@ class account_period(osv.osv):
if 'company_id' in vals: if 'company_id' in vals:
move_lines = self.pool.get('account.move.line').search(cr, uid, [('period_id', 'in', ids)]) move_lines = self.pool.get('account.move.line').search(cr, uid, [('period_id', 'in', ids)])
if move_lines: if move_lines:
raise osv.except_osv(_('Warning !'), _('You can not modify company of this period as some journal items exists.')) raise osv.except_osv(_('Warning!'), _('This journal already contains items for this period, therefore you cannot modify its company field.'))
return super(account_period, self).write(cr, uid, ids, vals, context=context) return super(account_period, self).write(cr, uid, ids, vals, context=context)
def build_ctx_periods(self, cr, uid, period_from_id, period_to_id): def build_ctx_periods(self, cr, uid, period_from_id, period_to_id):
@ -1093,9 +1093,9 @@ class account_period(osv.osv):
period_date_stop = period_to.date_stop period_date_stop = period_to.date_stop
company2_id = period_to.company_id.id company2_id = period_to.company_id.id
if company1_id != company2_id: if company1_id != company2_id:
raise osv.except_osv(_('Error'), _('You should have chosen periods that belongs to the same company')) raise osv.except_osv(_('Error!'), _('You should choose the periods that belong to the same company.'))
if period_date_start > period_date_stop: if period_date_start > period_date_stop:
raise osv.except_osv(_('Error'), _('Start period should be smaller then End period')) raise osv.except_osv(_('Error!'), _('Start period should precede then end period.'))
#for period from = january, we want to exclude the opening period (but it has same date_from, so we have to check if period_from is special or not to include that clause or not in the search). #for period from = january, we want to exclude the opening period (but it has same date_from, so we have to check if period_from is special or not to include that clause or not in the search).
if period_from.special: if period_from.special:
return self.search(cr, uid, [('date_start', '>=', period_date_start), ('date_stop', '<=', period_date_stop), ('company_id', '=', company1_id)]) return self.search(cr, uid, [('date_start', '>=', period_date_start), ('date_stop', '<=', period_date_stop), ('company_id', '=', company1_id)])
@ -1134,7 +1134,7 @@ class account_journal_period(osv.osv):
cr.execute('select * from account_move_line where journal_id=%s and period_id=%s limit 1', (obj.journal_id.id, obj.period_id.id)) cr.execute('select * from account_move_line where journal_id=%s and period_id=%s limit 1', (obj.journal_id.id, obj.period_id.id))
res = cr.fetchall() res = cr.fetchall()
if res: 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 cannot modify/delete a journal with entries for this period.'))
return True return True
def write(self, cr, uid, ids, vals, context=None): def write(self, cr, uid, ids, vals, context=None):
@ -1303,7 +1303,7 @@ class account_move(osv.osv):
_constraints = [ _constraints = [
(_check_centralisation, (_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 a centralized journal.',
['journal_id']), ['journal_id']),
] ]
@ -1314,7 +1314,7 @@ class account_move(osv.osv):
valid_moves = self.validate(cr, uid, ids, context) valid_moves = self.validate(cr, uid, ids, context)
if not valid_moves: if not valid_moves:
raise osv.except_osv(_('Integrity Error !'), _('You can not validate a non-balanced entry !\nMake sure you have configured payment terms properly !\nThe latest payment term line should be of the type "Balance" !')) raise osv.except_osv(_('Error!'), _('You cannot validate a non-balanced entry.\nMake sure you have configured payment terms properly.\nThe latest payment term line should be of the "Balance" type.'))
obj_sequence = self.pool.get('ir.sequence') obj_sequence = self.pool.get('ir.sequence')
for move in self.browse(cr, uid, valid_moves, context=context): for move in self.browse(cr, uid, valid_moves, context=context):
if move.name =='/': if move.name =='/':
@ -1328,7 +1328,7 @@ class account_move(osv.osv):
c = {'fiscalyear_id': move.period_id.fiscalyear_id.id} c = {'fiscalyear_id': move.period_id.fiscalyear_id.id}
new_name = obj_sequence.next_by_id(cr, uid, journal.sequence_id.id, c) new_name = obj_sequence.next_by_id(cr, uid, journal.sequence_id.id, c)
else: else:
raise osv.except_osv(_('Error'), _('No sequence defined on the journal !')) raise osv.except_osv(_('Error!'), _('Please define a sequence on the journal.'))
if new_name: if new_name:
self.write(cr, uid, [move.id], {'name':new_name}) self.write(cr, uid, [move.id], {'name':new_name})
@ -1351,14 +1351,14 @@ class account_move(osv.osv):
if not top_common: if not top_common:
top_common = top_account top_common = top_account
elif top_account.id != top_common.id: elif top_account.id != top_common.id:
raise osv.except_osv(_('Error !'), raise osv.except_osv(_('Error!'),
_('You cannot validate this journal entry because account "%s" does not belong to chart of accounts "%s"!') % (account.name, top_common.name)) _('You cannot validate this journal entry because account "%s" does not belong to chart of accounts "%s".') % (account.name, top_common.name))
return self.post(cursor, user, ids, context=context) return self.post(cursor, user, ids, context=context)
def button_cancel(self, cr, uid, ids, context=None): def button_cancel(self, cr, uid, ids, context=None):
for line in self.browse(cr, uid, ids, context=context): for line in self.browse(cr, uid, ids, context=context):
if not line.journal_id.update_posted: if not line.journal_id.update_posted:
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.')) raise osv.except_osv(_('Error!'), _('You cannot modify a posted entry of this journal.\nFirst you should set the journal to allow cancelling entries.'))
if ids: if ids:
cr.execute('UPDATE account_move '\ cr.execute('UPDATE account_move '\
'SET state=%s '\ 'SET state=%s '\
@ -1445,8 +1445,8 @@ class account_move(osv.osv):
obj_move_line = self.pool.get('account.move.line') obj_move_line = self.pool.get('account.move.line')
for move in self.browse(cr, uid, ids, context=context): for move in self.browse(cr, uid, ids, context=context):
if move['state'] != 'draft': if move['state'] != 'draft':
raise osv.except_osv(_('UserError'), raise osv.except_osv(_('User Error!'),
_('You can not delete a posted journal entry "%s"!') % \ _('You cannot delete a posted journal entry "%s".') % \
move['name']) move['name'])
line_ids = map(lambda x: x.id, move.line_id) line_ids = map(lambda x: x.id, move.line_id)
context['journal_id'] = move.journal_id.id context['journal_id'] = move.journal_id.id
@ -1474,16 +1474,16 @@ class account_move(osv.osv):
account_id = move.journal_id.default_debit_account_id.id account_id = move.journal_id.default_debit_account_id.id
mode2 = 'debit' mode2 = 'debit'
if not account_id: if not account_id:
raise osv.except_osv(_('UserError'), raise osv.except_osv(_('User Error!'),
_('There is no default default debit account defined \n' \ _('There is no default debit account defined \n' \
'on journal "%s"') % move.journal_id.name) 'on journal "%s".') % move.journal_id.name)
else: else:
account_id = move.journal_id.default_credit_account_id.id account_id = move.journal_id.default_credit_account_id.id
mode2 = 'credit' mode2 = 'credit'
if not account_id: if not account_id:
raise osv.except_osv(_('UserError'), raise osv.except_osv(_('User Error!'),
_('There is no default default credit account defined \n' \ _('There is no default credit account defined \n' \
'on journal "%s"') % move.journal_id.name) 'on journal "%s".') % move.journal_id.name)
# find the first line of this move with the current mode # find the first line of this move with the current mode
# or create it if it doesn't exist # or create it if it doesn't exist
@ -1577,11 +1577,11 @@ class account_move(osv.osv):
if not company_id: if not company_id:
company_id = line.account_id.company_id.id company_id = line.account_id.company_id.id
if not 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!'), _("Cannot create moves for different companies."))
if line.account_id.currency_id and line.currency_id: if line.account_id.currency_id and line.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): 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):
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)) raise osv.except_osv(_('Error!'), _("""Cannot create move with currency different from ..""") % (line.account_id.code, line.account_id.name))
if abs(amount) < 10 ** -4: if abs(amount) < 10 ** -4:
# If the move is balanced # If the move is balanced
@ -1833,7 +1833,7 @@ class account_tax_code(osv.osv):
_check_recursion = check_cycle _check_recursion = check_cycle
_constraints = [ _constraints = [
(_check_recursion, 'Error ! You can not create recursive accounts.', ['parent_id']) (_check_recursion, 'Error!\nYou cannot create recursive accounts.', ['parent_id'])
] ]
_order = 'code' _order = 'code'
@ -2118,7 +2118,7 @@ class account_tax(osv.osv):
} }
def compute(self, cr, uid, taxes, price_unit, quantity, product=None, partner=None): def compute(self, cr, uid, taxes, price_unit, quantity, product=None, partner=None):
_logger.warning("Deprecated, use compute_all(...)['taxes'] instead of compute(...) to manage prices with tax included") _logger.warning("Deprecated, use compute_all(...)['taxes'] instead of compute(...) to manage prices with tax included.")
return self._compute(cr, uid, taxes, price_unit, quantity, product, partner) return self._compute(cr, uid, taxes, price_unit, quantity, product, partner)
def _compute(self, cr, uid, taxes, price_unit, quantity, product=None, partner=None, precision=None): def _compute(self, cr, uid, taxes, price_unit, quantity, product=None, partner=None, precision=None):
@ -2307,7 +2307,7 @@ class account_model(osv.osv):
date_maturity = context.get('date',time.strftime('%Y-%m-%d')) date_maturity = context.get('date',time.strftime('%Y-%m-%d'))
if line.date_maturity == 'partner': if line.date_maturity == 'partner':
if not line.partner_id: if not line.partner_id:
raise osv.except_osv(_('Error !'), _("Maturity date of entry line generated by model line '%s' of model '%s' is based on partner payment term!" \ raise osv.except_osv(_('Error!'), _("Maturity date of entry line generated by model line '%s' of model '%s' is based on partner payment term!" \
"\nPlease define partner on it!")%(line.name, model.name)) "\nPlease define partner on it!")%(line.name, model.name))
if line.partner_id.property_payment_term: if line.partner_id.property_payment_term:
payment_term_id = line.partner_id.property_payment_term.id payment_term_id = line.partner_id.property_payment_term.id
@ -2521,8 +2521,8 @@ class account_account_template(osv.osv):
_check_recursion = check_cycle _check_recursion = check_cycle
_constraints = [ _constraints = [
(_check_recursion, 'Error ! You can not create recursive account templates.', ['parent_id']), (_check_recursion, 'Error!\nYou cannot create recursive account templates.', ['parent_id']),
(_check_type, 'Configuration Error!\nYou can not define children to an account with internal type different of "View"! ', ['type']), (_check_type, 'Configuration Error!\nYou cannot define children to an account that has internal type other than "View".', ['type']),
] ]
@ -2623,7 +2623,7 @@ class account_add_tmpl_wizard(osv.osv_memory):
ptids = tmpl_obj.read(cr, uid, [tids[0]['parent_id'][0]], ['code']) ptids = tmpl_obj.read(cr, uid, [tids[0]['parent_id'][0]], ['code'])
res = None res = None
if not ptids or not ptids[0]['code']: if not ptids or not ptids[0]['code']:
raise osv.except_osv(_('Error !'), _('I can not locate a parent code for the template account!')) raise osv.except_osv(_('Error!'), _('There is no parent code for the template account.'))
res = acc_obj.search(cr, uid, [('code','=',ptids[0]['code'])]) res = acc_obj.search(cr, uid, [('code','=',ptids[0]['code'])])
return res and res[0] or False return res and res[0] or False
@ -2729,7 +2729,7 @@ class account_tax_code_template(osv.osv):
_check_recursion = check_cycle _check_recursion = check_cycle
_constraints = [ _constraints = [
(_check_recursion, 'Error ! You can not create recursive Tax Codes.', ['parent_id']) (_check_recursion, 'Error!\nYou cannot create recursive Tax Codes.', ['parent_id'])
] ]
_order = 'code,name' _order = 'code,name'
account_tax_code_template() account_tax_code_template()
@ -2742,7 +2742,7 @@ class account_chart_template(osv.osv):
_columns={ _columns={
'name': fields.char('Name', size=64, required=True), 'name': fields.char('Name', size=64, required=True),
'parent_id': fields.many2one('account.chart.template', 'Parent Chart Template'), 'parent_id': fields.many2one('account.chart.template', 'Parent Chart Template'),
'code_digits': fields.integer('# of Digits', required=True, help="No. of Digits to use for account code"), 'code_digits': fields.integer('# of Digits', required=True, help="No. of Digits to use for account code"),
'visible': fields.boolean('Can be Visible?', help="Set this to False if you don't want this template to be used actively in the wizard that generate Chart of Accounts from templates, this is useful when you want to generate accounts of this template only when loading its child template."), 'visible': fields.boolean('Can be Visible?', help="Set this to False if you don't want this template to be used actively in the wizard that generate Chart of Accounts from templates, this is useful when you want to generate accounts of this template only when loading its child template."),
'complete_tax_set': fields.boolean('Complete Set of Taxes', help='This boolean helps you to choose if you want to propose to the user to encode the sale and purchase rates or choose from list of taxes. This last choice assumes that the set of tax defined on this template is complete'), 'complete_tax_set': fields.boolean('Complete Set of Taxes', help='This boolean helps you to choose if you want to propose to the user to encode the sale and purchase rates or choose from list of taxes. This last choice assumes that the set of tax defined on this template is complete'),
'account_root_id': fields.many2one('account.account.template', 'Root Account', domain=[('parent_id','=',False)]), 'account_root_id': fields.many2one('account.account.template', 'Root Account', domain=[('parent_id','=',False)]),
@ -3026,7 +3026,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
return res return res
def default_get(self, cr, uid, fields, context=None): def default_get(self, cr, uid, fields, context=None):
res = super(wizard_multi_charts_accounts, self).default_get(cr, uid, fields, context=context) res = super(wizard_multi_charts_accounts, self).default_get(cr, uid, fields, context=context)
tax_templ_obj = self.pool.get('account.tax.template') tax_templ_obj = self.pool.get('account.tax.template')
if 'bank_accounts_id' in fields: if 'bank_accounts_id' in fields:
@ -3102,7 +3102,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
# Get the analytic journal # Get the analytic journal
data = False data = False
if journal_type in ('sale', 'sale_refund'): if journal_type in ('sale', 'sale_refund'):
data = obj_data.get_object_reference(cr, uid, 'account', 'analytic_journal_sale') data = obj_data.get_object_reference(cr, uid, 'account', 'analytic_journal_sale')
elif journal_type in ('purchase', 'purchase_refund'): elif journal_type in ('purchase', 'purchase_refund'):
pass pass
elif journal_type == 'general': elif journal_type == 'general':
@ -3128,7 +3128,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
if journal_type in ('general', 'situation'): if journal_type in ('general', 'situation'):
data = obj_data.get_object_reference(cr, uid, 'account', 'account_journal_view') data = obj_data.get_object_reference(cr, uid, 'account', 'account_journal_view')
elif journal_type in ('sale_refund', 'purchase_refund'): elif journal_type in ('sale_refund', 'purchase_refund'):
data = obj_data.get_object_reference(cr, uid, 'account', 'account_sp_refund_journal_view') data = obj_data.get_object_reference(cr, uid, 'account', 'account_sp_refund_journal_view')
else: else:
data = obj_data.get_object_reference(cr, uid, 'account', 'account_sp_journal_view') data = obj_data.get_object_reference(cr, uid, 'account', 'account_sp_journal_view')
return data and data[1] or False return data and data[1] or False
@ -3357,7 +3357,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
def _prepare_bank_journal(self, cr, uid, line, current_num, default_account_id, company_id, context=None): def _prepare_bank_journal(self, cr, uid, line, current_num, default_account_id, company_id, context=None):
''' '''
This function prepares the value to use for the creation of a bank journal created through the wizard of This function prepares the value to use for the creation of a bank journal created through the wizard of
generating COA from templates. generating COA from templates.
:param line: dictionary containing the values encoded by the user related to his bank account :param line: dictionary containing the values encoded by the user related to his bank account
@ -3375,9 +3375,9 @@ class wizard_multi_charts_accounts(osv.osv_memory):
tmp = obj_data.get_object_reference(cr, uid, 'account', 'account_journal_bank_view') tmp = obj_data.get_object_reference(cr, uid, 'account', 'account_journal_bank_view')
view_id_cash = tmp and tmp[1] or False view_id_cash = tmp and tmp[1] or False
# we need to loop again to find next number for journal code # we need to loop again to find next number for journal code
# because we can't rely on the value current_num as, # because we can't rely on the value current_num as,
# its possible that we already have bank journals created (e.g. by the creation of res.partner.bank) # its possible that we already have bank journals created (e.g. by the creation of res.partner.bank)
# and the next number for account code might have been already used before for journal # and the next number for account code might have been already used before for journal
for num in xrange(current_num, 100): for num in xrange(current_num, 100):
# journal_code has a maximal size of 5, hence we can enforce the boundary num < 100 # journal_code has a maximal size of 5, hence we can enforce the boundary num < 100
@ -3386,7 +3386,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
if not ids: if not ids:
break break
else: else:
raise osv.except_osv(_('Error'), _('Cannot generate an unused journal code.')) raise osv.except_osv(_('Error!'), _('Cannot generate an unused journal code.'))
vals = { vals = {
'name': line['acc_name'], 'name': line['acc_name'],
@ -3464,7 +3464,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
journal_data.append(vals) journal_data.append(vals)
ref_acc_bank = obj_wizard.chart_template_id.bank_account_view_id ref_acc_bank = obj_wizard.chart_template_id.bank_account_view_id
if journal_data and not ref_acc_bank.code: if journal_data and not ref_acc_bank.code:
raise osv.except_osv(_('Configuration Error !'), _('The bank account defined on the selected chart of accounts hasn\'t a code.')) raise osv.except_osv(_('Configuration Error!'), _('You have to set a code for the bank account defined on the selected chart of accounts.'))
current_num = 1 current_num = 1
for line in journal_data: for line in journal_data:

View File

@ -87,18 +87,18 @@ class account_analytic_line(osv.osv):
if not a: if not a:
a = prod.categ_id.property_account_expense_categ.id a = prod.categ_id.property_account_expense_categ.id
if not a: if not a:
raise osv.except_osv(_('Error !'), raise osv.except_osv(_('Error!'),
_('There is no expense account defined ' \ _('There is no expense account defined ' \
'for this product: "%s" (id:%d)') % \ 'for this product: "%s" (id:%d).') % \
(prod.name, prod.id,)) (prod.name, prod.id,))
else: else:
a = prod.product_tmpl_id.property_account_income.id a = prod.product_tmpl_id.property_account_income.id
if not a: if not a:
a = prod.categ_id.property_account_income_categ.id a = prod.categ_id.property_account_income_categ.id
if not a: if not a:
raise osv.except_osv(_('Error !'), raise osv.except_osv(_('Error!'),
_('There is no income account defined ' \ _('There is no income account defined ' \
'for this product: "%s" (id:%d)') % \ 'for this product: "%s" (id:%d).') % \
(prod.name, prod_id,)) (prod.name, prod_id,))
flag = False flag = False

View File

@ -192,11 +192,11 @@ class account_bank_statement(osv.osv):
'ref': st_line.ref, 'ref': st_line.ref,
} }
def _prepare_bank_move_line(self, cr, uid, st_line, move_id, amount, company_currency_id, def _prepare_bank_move_line(self, cr, uid, st_line, move_id, amount, company_currency_id,
context=None): context=None):
"""Compute the args to build the dict of values to create the bank move line from a """Compute the args to build the dict of values to create the bank move line from a
statement line by calling the _prepare_move_line_vals. This method may be statement line by calling the _prepare_move_line_vals. This method may be
overridden to implement custom move generation (making sure to call super() to overridden to implement custom move generation (making sure to call super() to
establish a clean extension chain). establish a clean extension chain).
:param browse_record st_line: account.bank.statement.line record to :param browse_record st_line: account.bank.statement.line record to
@ -219,12 +219,12 @@ class account_bank_statement(osv.osv):
res_currency_obj = self.pool.get('res.currency') res_currency_obj = self.pool.get('res.currency')
amt_cur = -res_currency_obj.compute(cr, uid, company_currency_id, cur_id, amount, context=context) amt_cur = -res_currency_obj.compute(cr, uid, company_currency_id, cur_id, amount, context=context)
res = self._prepare_move_line_vals(cr, uid, st_line, move_id, debit, credit, res = self._prepare_move_line_vals(cr, uid, st_line, move_id, debit, credit,
amount_currency=amt_cur, currency_id=cur_id, analytic_id=anl_id, context=context) amount_currency=amt_cur, currency_id=cur_id, analytic_id=anl_id, context=context)
return res return res
def _get_counter_part_account(sefl, cr, uid, st_line, context=None): def _get_counter_part_account(sefl, cr, uid, st_line, context=None):
"""Retrieve the account to use in the counterpart move. """Retrieve the account to use in the counterpart move.
This method may be overridden to implement custom move generation (making sure to This method may be overridden to implement custom move generation (making sure to
call super() to establish a clean extension chain). call super() to establish a clean extension chain).
@ -237,7 +237,7 @@ class account_bank_statement(osv.osv):
return st_line.statement_id.journal_id.default_debit_account_id.id return st_line.statement_id.journal_id.default_debit_account_id.id
def _get_counter_part_partner(sefl, cr, uid, st_line, context=None): def _get_counter_part_partner(sefl, cr, uid, st_line, context=None):
"""Retrieve the partner to use in the counterpart move. """Retrieve the partner to use in the counterpart move.
This method may be overridden to implement custom move generation (making sure to This method may be overridden to implement custom move generation (making sure to
call super() to establish a clean extension chain). call super() to establish a clean extension chain).
@ -247,11 +247,11 @@ class account_bank_statement(osv.osv):
""" """
return st_line.partner_id and st_line.partner_id.id or False return st_line.partner_id and st_line.partner_id.id or False
def _prepare_counterpart_move_line(self, cr, uid, st_line, move_id, amount, company_currency_id, def _prepare_counterpart_move_line(self, cr, uid, st_line, move_id, amount, company_currency_id,
context=None): context=None):
"""Compute the args to build the dict of values to create the counter part move line from a """Compute the args to build the dict of values to create the counter part move line from a
statement line by calling the _prepare_move_line_vals. This method may be statement line by calling the _prepare_move_line_vals. This method may be
overridden to implement custom move generation (making sure to call super() to overridden to implement custom move generation (making sure to call super() to
establish a clean extension chain). establish a clean extension chain).
:param browse_record st_line: account.bank.statement.line record to :param browse_record st_line: account.bank.statement.line record to
@ -271,12 +271,12 @@ class account_bank_statement(osv.osv):
if st_line.statement_id.currency.id <> company_currency_id: if st_line.statement_id.currency.id <> company_currency_id:
amt_cur = st_line.amount amt_cur = st_line.amount
cur_id = st_line.statement_id.currency.id cur_id = st_line.statement_id.currency.id
return self._prepare_move_line_vals(cr, uid, st_line, move_id, debit, credit, return self._prepare_move_line_vals(cr, uid, st_line, move_id, debit, credit,
amount_currency = amt_cur, currency_id = cur_id, account_id = account_id, amount_currency = amt_cur, currency_id = cur_id, account_id = account_id,
partner_id = partner_id, context=context) partner_id = partner_id, context=context)
def _prepare_move_line_vals(self, cr, uid, st_line, move_id, debit, credit, currency_id = False, def _prepare_move_line_vals(self, cr, uid, st_line, move_id, debit, credit, currency_id = False,
amount_currency= False, account_id = False, analytic_id = False, amount_currency= False, account_id = False, analytic_id = False,
partner_id = False, context=None): partner_id = False, context=None):
"""Prepare the dict of values to create the move line from a """Prepare the dict of values to create the move line from a
statement line. All non-mandatory args will replace the default computed one. statement line. All non-mandatory args will replace the default computed one.
@ -350,12 +350,12 @@ class account_bank_statement(osv.osv):
amount = res_currency_obj.compute(cr, uid, st.currency.id, amount = res_currency_obj.compute(cr, uid, st.currency.id,
company_currency_id, st_line.amount, context=context) company_currency_id, st_line.amount, context=context)
bank_move_vals = self._prepare_bank_move_line(cr, uid, st_line, move_id, amount, bank_move_vals = self._prepare_bank_move_line(cr, uid, st_line, move_id, amount,
company_currency_id, context=context) company_currency_id, context=context)
move_line_id = account_move_line_obj.create(cr, uid, bank_move_vals, context=context) move_line_id = account_move_line_obj.create(cr, uid, bank_move_vals, context=context)
torec.append(move_line_id) torec.append(move_line_id)
counterpart_move_vals = self._prepare_counterpart_move_line(cr, uid, st_line, move_id, counterpart_move_vals = self._prepare_counterpart_move_line(cr, uid, st_line, move_id,
amount, company_currency_id, context=context) amount, company_currency_id, context=context)
account_move_line_obj.create(cr, uid, counterpart_move_vals, context=context) account_move_line_obj.create(cr, uid, counterpart_move_vals, context=context)
@ -364,7 +364,7 @@ class account_bank_statement(osv.osv):
context=context).line_id], context=context).line_id],
context=context): context=context):
if line.state <> 'valid': if line.state <> 'valid':
raise osv.except_osv(_('Error !'), raise osv.except_osv(_('Error!'),
_('Journal item "%s" is not valid.') % line.name) _('Journal item "%s" is not valid.') % line.name)
# Bank statements will not consider boolean on journal entry_posted # Bank statements will not consider boolean on journal entry_posted
@ -377,7 +377,7 @@ class account_bank_statement(osv.osv):
def balance_check(self, cr, uid, st_id, journal_type='bank', context=None): def balance_check(self, cr, uid, st_id, journal_type='bank', context=None):
st = self.browse(cr, uid, st_id, context=context) st = self.browse(cr, uid, st_id, context=context)
if not ((abs((st.balance_end or 0.0) - st.balance_end_real) < 0.0001) or (abs((st.balance_end or 0.0) - st.balance_end_real) < 0.0001)): if not ((abs((st.balance_end or 0.0) - st.balance_end_real) < 0.0001) or (abs((st.balance_end or 0.0) - st.balance_end_real) < 0.0001)):
raise osv.except_osv(_('Error !'), raise osv.except_osv(_('Error!'),
_('The statement balance is incorrect !\nThe expected balance (%.2f) is different than the computed one. (%.2f)') % (st.balance_end_real, st.balance_end)) _('The statement balance is incorrect !\nThe expected balance (%.2f) is different than the computed one. (%.2f)') % (st.balance_end_real, st.balance_end))
return True return True
@ -401,7 +401,7 @@ class account_bank_statement(osv.osv):
self.balance_check(cr, uid, st.id, journal_type=j_type, context=context) self.balance_check(cr, uid, st.id, journal_type=j_type, context=context)
if (not st.journal_id.default_credit_account_id) \ if (not st.journal_id.default_credit_account_id) \
or (not st.journal_id.default_debit_account_id): or (not st.journal_id.default_debit_account_id):
raise osv.except_osv(_('Configuration Error !'), raise osv.except_osv(_('Configuration Error!'),
_('Please verify that an account is defined in the journal.')) _('Please verify that an account is defined in the journal.'))
if not st.name == '/': if not st.name == '/':
@ -415,7 +415,7 @@ class account_bank_statement(osv.osv):
for line in st.move_line_ids: for line in st.move_line_ids:
if line.state <> 'valid': if line.state <> 'valid':
raise osv.except_osv(_('Error !'), raise osv.except_osv(_('Error!'),
_('The account entries lines are not in valid state.')) _('The account entries lines are not in valid state.'))
for st_line in st.line_ids: for st_line in st.line_ids:
if st_line.analytic_account_id: if st_line.analytic_account_id:
@ -445,7 +445,7 @@ class account_bank_statement(osv.osv):
account_move_obj.unlink(cr, uid, ids, context) account_move_obj.unlink(cr, uid, ids, context)
done.append(st.id) done.append(st.id)
return self.write(cr, uid, done, {'state':'draft'}, context=context) return self.write(cr, uid, done, {'state':'draft'}, context=context)
def _compute_balance_end_real(self, cr, uid, journal_id, context=None): def _compute_balance_end_real(self, cr, uid, journal_id, context=None):
cr.execute('SELECT balance_end_real \ cr.execute('SELECT balance_end_real \
FROM account_bank_statement \ FROM account_bank_statement \
@ -469,7 +469,7 @@ class account_bank_statement(osv.osv):
if t['state'] in ('draft'): if t['state'] in ('draft'):
unlink_ids.append(t['id']) unlink_ids.append(t['id'])
else: else:
raise osv.except_osv(_('Invalid action !'), _('In order to delete a bank statement, you must first cancel it to delete related journal items.')) raise osv.except_osv(_('Invalid Action!'), _('In order to delete a bank statement, you must first cancel it to delete related journal items.'))
osv.osv.unlink(self, cr, uid, unlink_ids, context=context) osv.osv.unlink(self, cr, uid, unlink_ids, context=context)
return True return True

View File

@ -169,7 +169,7 @@ class account_cash_statement(osv.osv):
return result return result
_columns = { _columns = {
'total_entry_encoding': fields.function(_get_sum_entry_encoding, string="Total Cash Transactions", 'total_entry_encoding': fields.function(_get_sum_entry_encoding, string="Total Transactions",
store = { store = {
'account.bank.statement': (lambda self, cr, uid, ids, context=None: ids, ['line_ids','move_line_ids'], 10), 'account.bank.statement': (lambda self, cr, uid, ids, context=None: ids, ['line_ids','move_line_ids'], 10),
'account.bank.statement.line': (_get_statement_from_line, ['amount'], 10), 'account.bank.statement.line': (_get_statement_from_line, ['amount'], 10),
@ -238,7 +238,7 @@ class account_cash_statement(osv.osv):
for statement in statement_pool.browse(cr, uid, ids, context=context): for statement in statement_pool.browse(cr, uid, ids, context=context):
vals = {} vals = {}
if not self._user_allow(cr, uid, statement.id, context=context): if not self._user_allow(cr, uid, statement.id, context=context):
raise osv.except_osv(_('Error !'), (_('You do not have rights to open this %s journal !') % (statement.journal_id.name, ))) raise osv.except_osv(_('Error!'), (_('You do not have rights to open this %s journal !') % (statement.journal_id.name, )))
if statement.name and statement.name == '/': if statement.name and statement.name == '/':
c = {'fiscalyear_id': statement.period_id.fiscalyear_id.id} c = {'fiscalyear_id': statement.period_id.fiscalyear_id.id}
@ -282,8 +282,8 @@ class account_cash_statement(osv.osv):
for item_label, item_account in TALBES: for item_label, item_account in TALBES:
if getattr(obj.journal_id, item_account): if getattr(obj.journal_id, item_account):
raise osv.except_osv(_('Error !'), raise osv.except_osv(_('Error!'),
_('There is no %s Account on the Journal %s') % (item_label, obj.journal_id.name,)) _('There is no %s Account on the journal %s.') % (item_label, obj.journal_id.name,))
is_profit = obj.difference < 0.0 is_profit = obj.difference < 0.0

View File

@ -9,7 +9,9 @@
<attribute name="string">Accounting Application Configuration</attribute> <attribute name="string">Accounting Application Configuration</attribute>
</form> </form>
<footer position="replace"> <footer position="replace">
<button name="action_next" type="object" string="Continue" class="oe_highlight"/> <footer>
<button name="action_next" type="object" string="Continue" class="oe_highlight"/>
</footer>
</footer> </footer>
<separator string="title" position="replace"> <separator string="title" position="replace">
<group> <group>

View File

@ -319,7 +319,7 @@ class account_invoice(osv.osv):
res['fields'][field]['selection'] = journal_select res['fields'][field]['selection'] = journal_select
doc = etree.XML(res['arch']) doc = etree.XML(res['arch'])
if context.get('type', False): if context.get('type', False):
for node in doc.xpath("//field[@name='partner_bank_id']"): for node in doc.xpath("//field[@name='partner_bank_id']"):
if context['type'] == 'in_refund': if context['type'] == 'in_refund':
@ -327,7 +327,7 @@ class account_invoice(osv.osv):
elif context['type'] == 'out_refund': elif context['type'] == 'out_refund':
node.set('domain', "[('partner_id', '=', partner_id)]") node.set('domain', "[('partner_id', '=', partner_id)]")
res['arch'] = etree.tostring(doc) res['arch'] = etree.tostring(doc)
if view_type == 'search': if view_type == 'search':
if context.get('type', 'in_invoice') in ('out_invoice', 'out_refund'): if context.get('type', 'in_invoice') in ('out_invoice', 'out_refund'):
for node in doc.xpath("//group[@name='extended filter']"): for node in doc.xpath("//group[@name='extended filter']"):
@ -364,15 +364,15 @@ class account_invoice(osv.osv):
except Exception, e: except Exception, e:
if '"journal_id" viol' in e.args[0]: if '"journal_id" viol' in e.args[0]:
raise orm.except_orm(_('Configuration Error!'), raise orm.except_orm(_('Configuration Error!'),
_('There is no Accounting Journal of type Sale/Purchase defined!')) _('There is no Sale/Purchase Journal(s) defined.'))
else: else:
raise orm.except_orm(_('Unknown Error'), str(e)) raise orm.except_orm(_('Unknown Error!'), str(e))
def invoice_print(self, cr, uid, ids, context=None): def invoice_print(self, cr, uid, ids, context=None):
''' '''
This function prints the invoice and mark it as sent, so that we can see more easily the next step of the workflow This function prints the invoice and mark it as sent, so that we can see more easily the next step of the workflow
''' '''
assert len(ids) == 1, 'This option should only be used for a single id at a time' assert len(ids) == 1, 'This option should only be used for a single id at a time.'
self.write(cr, uid, ids, {'sent': True}, context=context) self.write(cr, uid, ids, {'sent': True}, context=context)
datas = { datas = {
'ids': ids, 'ids': ids,
@ -425,7 +425,7 @@ class account_invoice(osv.osv):
if t['state'] in ('draft', 'cancel') and t['internal_number']== False: if t['state'] in ('draft', 'cancel') and t['internal_number']== False:
unlink_ids.append(t['id']) unlink_ids.append(t['id'])
else: else:
raise osv.except_osv(_('Invalid action !'), _('You can not delete an invoice which is open or paid. We suggest you to refund it instead.')) raise osv.except_osv(_('Invalid Action!'), _('You cannot delete an invoice which is open or paid. You should refund it instead.'))
osv.osv.unlink(self, cr, uid, unlink_ids, context=context) osv.osv.unlink(self, cr, uid, unlink_ids, context=context)
return True return True
@ -458,8 +458,8 @@ class account_invoice(osv.osv):
rec_res_id = rec_line_data and rec_line_data[0].get('value_reference',False) and int(rec_line_data[0]['value_reference'].split(',')[1]) or False rec_res_id = rec_line_data and rec_line_data[0].get('value_reference',False) and int(rec_line_data[0]['value_reference'].split(',')[1]) or False
pay_res_id = pay_line_data and pay_line_data[0].get('value_reference',False) and int(pay_line_data[0]['value_reference'].split(',')[1]) or False pay_res_id = pay_line_data and pay_line_data[0].get('value_reference',False) and int(pay_line_data[0]['value_reference'].split(',')[1]) or False
if not rec_res_id and not pay_res_id: if not rec_res_id and not pay_res_id:
raise osv.except_osv(_('Configuration Error !'), raise osv.except_osv(_('Configuration Error!'),
_('Can not find a chart of accounts for this company, you should create one.')) _('Cannot find a chart of accounts for this company, you should create one.'))
account_obj = self.pool.get('account.account') account_obj = self.pool.get('account.account')
rec_obj_acc = account_obj.browse(cr, uid, [rec_res_id]) rec_obj_acc = account_obj.browse(cr, uid, [rec_res_id])
pay_obj_acc = account_obj.browse(cr, uid, [pay_res_id]) pay_obj_acc = account_obj.browse(cr, uid, [pay_res_id])
@ -521,7 +521,7 @@ class account_invoice(osv.osv):
pterm_list.sort() pterm_list.sort()
res = {'value':{'date_due': pterm_list[-1]}} res = {'value':{'date_due': pterm_list[-1]}}
else: else:
raise osv.except_osv(_('Data Insufficient !'), _('The payment term of supplier does not have a payment term line!')) raise osv.except_osv(_('Insufficient Data!'), _('The payment term of supplier does not have a payment term line.'))
return res return res
def onchange_invoice_line(self, cr, uid, ids, lines): def onchange_invoice_line(self, cr, uid, ids, lines):
@ -553,8 +553,8 @@ class account_invoice(osv.osv):
rec_res_id = rec_line_data and rec_line_data[0].get('value_reference',False) and int(rec_line_data[0]['value_reference'].split(',')[1]) or False rec_res_id = rec_line_data and rec_line_data[0].get('value_reference',False) and int(rec_line_data[0]['value_reference'].split(',')[1]) or False
pay_res_id = pay_line_data and pay_line_data[0].get('value_reference',False) and int(pay_line_data[0]['value_reference'].split(',')[1]) or False pay_res_id = pay_line_data and pay_line_data[0].get('value_reference',False) and int(pay_line_data[0]['value_reference'].split(',')[1]) or False
if not rec_res_id and not pay_res_id: if not rec_res_id and not pay_res_id:
raise osv.except_osv(_('Configuration Error !'), raise osv.except_osv(_('Configuration Error!'),
_('Can not find a chart of account, you should create one from the configuration of the accounting menu.')) _('Cannot find a chart of account, you should create one from Settings\Configuration\Accounting menu.'))
if type in ('out_invoice', 'out_refund'): if type in ('out_invoice', 'out_refund'):
acc_id = rec_res_id acc_id = rec_res_id
else: else:
@ -568,16 +568,16 @@ class account_invoice(osv.osv):
if line.account_id.company_id.id != company_id: if line.account_id.company_id.id != company_id:
result_id = account_obj.search(cr, uid, [('name','=',line.account_id.name),('company_id','=',company_id)]) result_id = account_obj.search(cr, uid, [('name','=',line.account_id.name),('company_id','=',company_id)])
if not result_id: if not result_id:
raise osv.except_osv(_('Configuration Error !'), raise osv.except_osv(_('Configuration Error!'),
_('Can not find a chart of account, you should create one from the configuration of the accounting menu.')) _('Cannot find a chart of account, you should create one from Settings\Configuration\Accounting menu.'))
inv_line_obj.write(cr, uid, [line.id], {'account_id': result_id[-1]}) inv_line_obj.write(cr, uid, [line.id], {'account_id': result_id[-1]})
else: else:
if invoice_line: if invoice_line:
for inv_line in invoice_line: for inv_line in invoice_line:
obj_l = account_obj.browse(cr, uid, inv_line[2]['account_id']) obj_l = account_obj.browse(cr, uid, inv_line[2]['account_id'])
if obj_l.company_id.id != company_id: if obj_l.company_id.id != company_id:
raise osv.except_osv(_('Configuration Error !'), raise osv.except_osv(_('Configuration Error!'),
_('Invoice line account company does not match with invoice company.')) _('Invoice line account\'s company and invoice\'s compnay does not match.'))
else: else:
continue continue
if company_id and type: if company_id and type:
@ -598,7 +598,7 @@ class account_invoice(osv.osv):
if r[1] == 'journal_id' and r[2] in journal_ids: if r[1] == 'journal_id' and r[2] in journal_ids:
val['journal_id'] = r[2] val['journal_id'] = r[2]
if not val.get('journal_id', False): if not val.get('journal_id', False):
raise osv.except_osv(_('Configuration Error !'), (_('Can\'t find any account journal of %s type for this company.\n\nYou can create one in the menu: \nConfiguration\Financial Accounting\Accounts\Journals.') % (journal_type))) raise osv.except_osv(_('Configuration Error!'), (_('Cannot find any account journal of %s type for this company.\n\nYou can create one in the menu: \nConfiguration\Journals\Journals.') % (journal_type)))
dom = {'journal_id': [('id', 'in', journal_ids)]} dom = {'journal_id': [('id', 'in', journal_ids)]}
else: else:
journal_ids = obj_journal.search(cr, uid, []) journal_ids = obj_journal.search(cr, uid, [])
@ -759,13 +759,13 @@ class account_invoice(osv.osv):
key = (tax.tax_code_id.id, tax.base_code_id.id, tax.account_id.id, tax.account_analytic_id.id) key = (tax.tax_code_id.id, tax.base_code_id.id, tax.account_id.id, tax.account_analytic_id.id)
tax_key.append(key) tax_key.append(key)
if not key in compute_taxes: if not key in compute_taxes:
raise osv.except_osv(_('Warning !'), _('Global taxes defined, but they are not in invoice lines !')) raise osv.except_osv(_('Warning!'), _('Global taxes defined, but they are not in invoice lines !'))
base = compute_taxes[key]['base'] base = compute_taxes[key]['base']
if abs(base - tax.base) > inv.company_id.currency_id.rounding: if abs(base - tax.base) > inv.company_id.currency_id.rounding:
raise osv.except_osv(_('Warning !'), _('Tax base different!\nClick on compute to update the tax base.')) raise osv.except_osv(_('Warning!'), _('Tax base different!\nClick on compute to update the tax base.'))
for key in compute_taxes: for key in compute_taxes:
if not key in tax_key: if not key in tax_key:
raise osv.except_osv(_('Warning !'), _('Taxes are missing!\nClick on compute button.')) raise osv.except_osv(_('Warning!'), _('Taxes are missing!\nClick on compute button.'))
def compute_invoice_totals(self, cr, uid, inv, company_currency, ref, invoice_move_lines): def compute_invoice_totals(self, cr, uid, inv, company_currency, ref, invoice_move_lines):
total = 0 total = 0
@ -835,12 +835,12 @@ class account_invoice(osv.osv):
context = {} context = {}
for inv in self.browse(cr, uid, ids, context=context): for inv in self.browse(cr, uid, ids, context=context):
if not inv.journal_id.sequence_id: if not inv.journal_id.sequence_id:
raise osv.except_osv(_('Error !'), _('Please define sequence on the journal related to this invoice.')) raise osv.except_osv(_('Error!'), _('Please define sequence on the journal related to this invoice.'))
if not inv.invoice_line: if not inv.invoice_line:
raise osv.except_osv(_('No Invoice Lines !'), _('Please create some invoice lines.')) raise osv.except_osv(_('No Invoice Lines !'), _('Please create some invoice lines.'))
if inv.move_id: if inv.move_id:
continue continue
ctx = context.copy() ctx = context.copy()
ctx.update({'lang': inv.partner_id.lang}) ctx.update({'lang': inv.partner_id.lang})
if not inv.date_invoice: if not inv.date_invoice:
@ -866,7 +866,7 @@ class account_invoice(osv.osv):
total_percent += line.value_amount total_percent += line.value_amount
total_fixed = (total_fixed * 100) / (inv.amount_total or 1.0) total_fixed = (total_fixed * 100) / (inv.amount_total or 1.0)
if (total_fixed + total_percent) > 100: if (total_fixed + total_percent) > 100:
raise osv.except_osv(_('Error !'), _("Can not create the invoice !\nThe related payment term is probably misconfigured as it gives a computed amount greater than the total invoiced amount. The latest line of your payment term must be of type 'balance' to avoid rounding issues.")) raise osv.except_osv(_('Error!'), _("Cannot create the invoice.\nThe related payment term is probably misconfigured as it gives a computed amount greater than the total invoiced amount. In order to avoid rounding issues, the latest line of your payment term must be of type 'balance'."))
# one move line per tax line # one move line per tax line
iml += ait_obj.move_line_get(cr, uid, inv.id) iml += ait_obj.move_line_get(cr, uid, inv.id)
@ -947,8 +947,8 @@ class account_invoice(osv.osv):
journal_id = inv.journal_id.id journal_id = inv.journal_id.id
journal = journal_obj.browse(cr, uid, journal_id, context=ctx) journal = journal_obj.browse(cr, uid, journal_id, context=ctx)
if journal.centralisation: if journal.centralisation:
raise osv.except_osv(_('UserError'), raise osv.except_osv(_('User Error!'),
_('You cannot create an invoice on a centralised journal. Uncheck the centralised counterpart box in the related journal from the configuration menu.')) _('You cannot create an invoice on a centralized journal. Uncheck the centralized counterpart box in the related journal from the configuration menu.'))
line = self.finalize_invoice_move_lines(cr, uid, inv, line) line = self.finalize_invoice_move_lines(cr, uid, inv, line)
@ -979,7 +979,7 @@ class account_invoice(osv.osv):
move_obj.post(cr, uid, [move_id], context=ctx) move_obj.post(cr, uid, [move_id], context=ctx)
self._log_event(cr, uid, ids) self._log_event(cr, uid, ids)
return True return True
def invoice_validate(self, cr, uid, ids, context=None): def invoice_validate(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'state':'open'}, context=context) self.write(cr, uid, ids, {'state':'open'}, context=context)
return True return True
@ -1061,7 +1061,7 @@ class account_invoice(osv.osv):
pay_ids = account_move_line_obj.browse(cr, uid, i['payment_ids']) pay_ids = account_move_line_obj.browse(cr, uid, i['payment_ids'])
for move_line in pay_ids: for move_line in pay_ids:
if move_line.reconcile_partial_id and move_line.reconcile_partial_id.line_partial_ids: if move_line.reconcile_partial_id and move_line.reconcile_partial_id.line_partial_ids:
raise osv.except_osv(_('Error !'), _('You can not cancel an invoice which is partially paid! You need to unreconcile related payment entries first!')) raise osv.except_osv(_('Error!'), _('You cannot cancel an invoice which is partially paid. You need to unreconcile related payment entries first.'))
# First, set the invoices as cancelled and detach the move ids # First, set the invoices as cancelled and detach the move ids
self.write(cr, uid, ids, {'state':'cancel', 'move_id':False}) self.write(cr, uid, ids, {'state':'cancel', 'move_id':False})
@ -1187,7 +1187,7 @@ class account_invoice(osv.osv):
if context is None: if context is None:
context = {} context = {}
#TODO check if we can use different period for payment and the writeoff line #TODO check if we can use different period for payment and the writeoff line
assert len(ids)==1, "Can only pay one invoice at a time" assert len(ids)==1, "Can only pay one invoice at a time."
invoice = self.browse(cr, uid, ids[0], context=context) invoice = self.browse(cr, uid, ids[0], context=context)
src_account_id = invoice.account_id.id src_account_id = invoice.account_id.id
# Take the seq as name for move # Take the seq as name for move
@ -1273,7 +1273,7 @@ class account_invoice(osv.osv):
else: else:
code = invoice.currency_id.symbol code = invoice.currency_id.symbol
# TODO: use currency's formatting function # TODO: use currency's formatting function
msg = _("Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)") % \ msg = _("Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining).") % \
(name, pay_amount, code, invoice.amount_total, code, total, code) (name, pay_amount, code, invoice.amount_total, code, total, code)
self.message_append_note(cr, uid, [inv_id], body=msg, context=context) self.message_append_note(cr, uid, [inv_id], body=msg, context=context)
self.pool.get('account.move.line').reconcile_partial(cr, uid, line_ids, 'manual', context) self.pool.get('account.move.line').reconcile_partial(cr, uid, line_ids, 'manual', context)
@ -1281,11 +1281,11 @@ class account_invoice(osv.osv):
# Update the stored value (fields.function), so we write to trigger recompute # Update the stored value (fields.function), so we write to trigger recompute
self.pool.get('account.invoice').write(cr, uid, ids, {}, context=context) self.pool.get('account.invoice').write(cr, uid, ids, {}, context=context)
return True return True
# ----------------------------------------- # -----------------------------------------
# OpenChatter notifications and need_action # OpenChatter notifications and need_action
# ----------------------------------------- # -----------------------------------------
def _get_document_type(self, type): def _get_document_type(self, type):
type_dict = { type_dict = {
'out_invoice': 'Customer invoice', 'out_invoice': 'Customer invoice',
@ -1294,19 +1294,19 @@ class account_invoice(osv.osv):
'in_refund': 'Supplier Refund', 'in_refund': 'Supplier Refund',
} }
return type_dict.get(type, 'Invoice') return type_dict.get(type, 'Invoice')
def create_send_note(self, cr, uid, ids, context=None): def create_send_note(self, cr, uid, ids, context=None):
for obj in self.browse(cr, uid, ids, context=context): for obj in self.browse(cr, uid, ids, context=context):
self.message_append_note(cr, uid, [obj.id],body=_("%s <b>created</b>.") % (self._get_document_type(obj.type)), context=context) self.message_append_note(cr, uid, [obj.id],body=_("%s <b>created</b>.") % (self._get_document_type(obj.type)), context=context)
def confirm_paid_send_note(self, cr, uid, ids, context=None): def confirm_paid_send_note(self, cr, uid, ids, context=None):
for obj in self.browse(cr, uid, ids, context=context): for obj in self.browse(cr, uid, ids, context=context):
self.message_append_note(cr, uid, [obj.id], body=_("%s <b>paid</b>.") % (self._get_document_type(obj.type)), context=context) self.message_append_note(cr, uid, [obj.id], body=_("%s <b>paid</b>.") % (self._get_document_type(obj.type)), context=context)
def invoice_cancel_send_note(self, cr, uid, ids, context=None): def invoice_cancel_send_note(self, cr, uid, ids, context=None):
for obj in self.browse(cr, uid, ids, context=context): for obj in self.browse(cr, uid, ids, context=context):
self.message_append_note(cr, uid, [obj.id], body=_("%s <b>cancelled</b>.") % (self._get_document_type(obj.type)), context=context) self.message_append_note(cr, uid, [obj.id], body=_("%s <b>cancelled</b>.") % (self._get_document_type(obj.type)), context=context)
account_invoice() account_invoice()
class account_invoice_line(osv.osv): class account_invoice_line(osv.osv):
@ -1475,7 +1475,7 @@ class account_invoice_line(osv.osv):
if prod.uom_id.category_id.id != prod_uom.category_id.id: if prod.uom_id.category_id.id != prod_uom.category_id.id:
warning = { warning = {
'title': _('Warning!'), 'title': _('Warning!'),
'message': _('You selected an Unit of Measure which is not compatible with the product.') 'message': _('The selected unit of measure is not compatible with the unit of measure of the product.')
} }
return {'value': res['value'], 'warning': warning} return {'value': res['value'], 'warning': warning}
return res return res

View File

@ -155,8 +155,10 @@
<sheet string="Supplier Invoice"> <sheet string="Supplier Invoice">
<div class="oe_title"> <div class="oe_title">
<h1> <h1>
<label string="Draft Invoice" attrs="{'invisible': [('state', '&lt;&gt;', 'draft')]}"/> <label string="Draft Invoice" attrs="{'invisible': ['|',('state','&lt;&gt;','draft'), ('type','&lt;&gt;','in_invoice')]}"/>
<label string="Invoice" attrs="{'invisible': [('state', '=', 'draft')]}"/> <label string="Draft Refund" attrs="{'invisible': ['|',('state','&lt;&gt;','draft'), ('type','&lt;&gt;','in_refund')]}"/>
<label string="Invoice" attrs="{'invisible': ['|',('state', '=', 'draft'), ('type','&lt;&gt;','in_invoice')]}"/>
<label string="Refund" attrs="{'invisible': ['|',('state', '=', 'draft'), ('type','&lt;&gt;','in_refund')]}"/>
<field name="number" class="oe_inline" attrs="{'invisible': [('state', '=', 'draft')]}"/> <field name="number" class="oe_inline" attrs="{'invisible': [('state', '=', 'draft')]}"/>
</h1> </h1>
</div> </div>
@ -300,9 +302,11 @@
</header> </header>
<sheet string="Invoice"> <sheet string="Invoice">
<h1> <h1>
<label string="Draft Invoice " attrs="{'invisible': [('state','not in',('draft',))]}"/> <label string="Draft Invoice " attrs="{'invisible': ['|',('state','not in',('draft',)), ('type','&lt;&gt;','out_invoice')]}"/>
<label string="Draft Refund " attrs="{'invisible': ['|',('state','not in',('draft',)), ('type','&lt;&gt;','out_refund')]}"/>
<label string="Pro Forma Invoice " attrs="{'invisible': [('state','not in',('proforma','proforma2'))]}"/> <label string="Pro Forma Invoice " attrs="{'invisible': [('state','not in',('proforma','proforma2'))]}"/>
<label string="Invoice " attrs="{'invisible': [('state','in',('draft','proforma','proforma2'))]}"/> <label string="Invoice " attrs="{'invisible': ['|',('state','in',('draft','proforma','proforma2')), ('type','&lt;&gt;','out_invoice')]}"/>
<label string="Refund " attrs="{'invisible': ['|',('state','in',('draft','proforma','proforma2')), ('type','&lt;&gt;','out_refund')]}"/>
<field name="number" readonly="1" class="oe_inline"/> <field name="number" readonly="1" class="oe_inline"/>
</h1> </h1>
<field name="type" invisible="1"/> <field name="type" invisible="1"/>
@ -338,7 +342,7 @@
<field name="invoice_line" nolabel="1" widget="one2many_list" context="{'type': type}"> <field name="invoice_line" nolabel="1" widget="one2many_list" context="{'type': type}">
<tree string="Invoice Lines" editable="bottom"> <tree string="Invoice Lines" editable="bottom">
<field name="invoice_line_tax_id" invisible="1"/> <field name="invoice_line_tax_id" invisible="1"/>
<field name="product_id" invisible="1"/> <field name="product_id" />
<field name="name"/> <field name="name"/>
<field name="account_id" groups="account.group_account_user" <field name="account_id" groups="account.group_account_user"
domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]"

View File

@ -95,7 +95,7 @@ class account_move_line(osv.osv):
if initial_bal and not context.get('periods', False) and not where_move_lines_by_date: if initial_bal and not context.get('periods', False) and not where_move_lines_by_date:
#we didn't pass any filter in the context, and the initial balance can't be computed using only the fiscalyear otherwise entries will be summed twice #we didn't pass any filter in the context, and the initial balance can't be computed using only the fiscalyear otherwise entries will be summed twice
#so we have to invalidate this query #so we have to invalidate this query
raise osv.except_osv(_('Warning !'),_("You haven't supplied enough argument to compute the initial balance, please select a period and journal in the context.")) raise osv.except_osv(_('Warning!'),_("You have not supplied enough arguments to compute the initial balance, please select a period and a journal in the context."))
if context.get('journal_ids', False): if context.get('journal_ids', False):
@ -577,14 +577,14 @@ class account_move_line(osv.osv):
lines = self.browse(cr, uid, ids, context=context) lines = self.browse(cr, uid, ids, context=context)
for l in lines: for l in lines:
if l.account_id.type == 'view': if l.account_id.type == 'view':
raise osv.except_osv(_('Error :'), _('You can not create journal items on a "view" account %s %s') % (l.account_id.code, l.account_id.name)) raise osv.except_osv(_('Error!'), _('You cannot create journal items on “View” type account %s %s.') % (l.account_id.code, l.account_id.name))
return True return True
def _check_no_closed(self, cr, uid, ids, context=None): def _check_no_closed(self, cr, uid, ids, context=None):
lines = self.browse(cr, uid, ids, context=context) lines = self.browse(cr, uid, ids, context=context)
for l in lines: for l in lines:
if l.account_id.type == 'closed': if l.account_id.type == 'closed':
raise osv.except_osv(_('Error :'), _('You can not create journal items on a closed account %s %s') % (l.account_id.code, l.account_id.name)) raise osv.except_osv(_('Error!'), _('You cannot create journal items on a closed account %s %s.') % (l.account_id.code, l.account_id.name))
return True return True
def _check_company_id(self, cr, uid, ids, context=None): def _check_company_id(self, cr, uid, ids, context=None):
@ -609,9 +609,9 @@ class account_move_line(osv.osv):
return True return True
_constraints = [ _constraints = [
(_check_no_view, 'You can not create journal items on an account of type view.', ['account_id']), (_check_no_view, 'You cannot create journal items on an account of type view.', ['account_id']),
(_check_no_closed, 'You can not create journal items on closed account.', ['account_id']), (_check_no_closed, 'You cannot create journal items on closed account.', ['account_id']),
(_check_company_id, 'Company must be the same for its related account and period.', ['company_id']), (_check_company_id, 'Account and Period must belong to the same company.', ['company_id']),
(_check_date, 'The date of your Journal Entry is not in the defined period! You should change the date or remove this constraint from the journal.', ['date']), (_check_date, 'The date of your Journal Entry is not in the defined period! You should change the date or remove this constraint from the journal.', ['date']),
(_check_currency, 'The selected account of your Journal Entry forces to provide a secondary currency. You should remove the secondary currency on the account or select a multi-currency view on the journal.', ['currency_id']), (_check_currency, 'The selected account of your Journal Entry forces to provide a secondary currency. You should remove the secondary currency on the account or select a multi-currency view on the journal.', ['currency_id']),
] ]
@ -743,7 +743,7 @@ class account_move_line(osv.osv):
context = {} context = {}
for line in self.browse(cr, uid, ids, context=context): for line in self.browse(cr, uid, ids, context=context):
if company_list and not line.company_id.id in company_list: if company_list and not line.company_id.id in company_list:
raise osv.except_osv(_('Warning !'), _('To reconcile the entries company should be the same for all entries')) raise osv.except_osv(_('Warning!'), _('To reconcile the entries company should be the same for all entries.'))
company_list.append(line.company_id.id) company_list.append(line.company_id.id)
for line in self.browse(cr, uid, ids, context=context): for line in self.browse(cr, uid, ids, context=context):
@ -752,7 +752,7 @@ class account_move_line(osv.osv):
else: else:
currency_id = line.company_id.currency_id currency_id = line.company_id.currency_id
if line.reconcile_id: if line.reconcile_id:
raise osv.except_osv(_('Warning'), _('Already Reconciled!')) raise osv.except_osv(_('Warning!'), _('Already reconciled.'))
if line.reconcile_partial_id: if line.reconcile_partial_id:
for line2 in line.reconcile_partial_id.line_partial_ids: for line2 in line.reconcile_partial_id.line_partial_ids:
if not line2.reconcile_id: if not line2.reconcile_id:
@ -796,11 +796,11 @@ class account_move_line(osv.osv):
company_list = [] company_list = []
for line in self.browse(cr, uid, ids, context=context): for line in self.browse(cr, uid, ids, context=context):
if company_list and not line.company_id.id in company_list: if company_list and not line.company_id.id in company_list:
raise osv.except_osv(_('Warning !'), _('To reconcile the entries company should be the same for all entries')) raise osv.except_osv(_('Warning!'), _('To reconcile the entries company should be the same for all entries.'))
company_list.append(line.company_id.id) company_list.append(line.company_id.id)
for line in unrec_lines: for line in unrec_lines:
if line.state <> 'valid': if line.state <> 'valid':
raise osv.except_osv(_('Error'), raise osv.except_osv(_('Error!'),
_('Entry "%s" is not valid !') % line.name) _('Entry "%s" is not valid !') % line.name)
credit += line['credit'] credit += line['credit']
debit += line['debit'] debit += line['debit']
@ -823,15 +823,15 @@ class account_move_line(osv.osv):
r = cr.fetchall() r = cr.fetchall()
#TODO: move this check to a constraint in the account_move_reconcile object #TODO: move this check to a constraint in the account_move_reconcile object
if not unrec_lines: if not unrec_lines:
raise osv.except_osv(_('Error'), _('Entry is already reconciled')) raise osv.except_osv(_('Error!'), _('Entry is already reconciled.'))
account = account_obj.browse(cr, uid, account_id, context=context) account = account_obj.browse(cr, uid, account_id, context=context)
if r[0][1] != None: 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 currency_obj.is_zero(cr, uid, account.company_id.currency_id, writeoff)) or \ if (not currency_obj.is_zero(cr, uid, account.company_id.currency_id, writeoff)) or \
(account.currency_id and (not currency_obj.is_zero(cr, uid, account.currency_id, currency))): (account.currency_id and (not currency_obj.is_zero(cr, uid, account.currency_id, currency))):
if not writeoff_acc_id: if not writeoff_acc_id:
raise osv.except_osv(_('Warning'), _('You have to provide an account for the write off/exchange difference entry !')) raise osv.except_osv(_('Warning!'), _('You have to provide an account for the write off/exchange difference entry.'))
if writeoff > 0: if writeoff > 0:
debit = writeoff debit = writeoff
credit = 0.0 credit = 0.0
@ -1090,9 +1090,9 @@ class account_move_line(osv.osv):
res = cr.fetchone() res = cr.fetchone()
if res: if res:
if res[1] != 'draft': if res[1] != 'draft':
raise osv.except_osv(_('UserError'), raise osv.except_osv(_('User Error!'),
_('The account move (%s) for centralisation ' \ _('The account move (%s) for centralisation ' \
'has been confirmed!') % res[2]) 'has been confirmed.') % res[2])
return res return res
def _remove_move_reconcile(self, cr, uid, move_ids=[], context=None): def _remove_move_reconcile(self, cr, uid, move_ids=[], context=None):
@ -1139,9 +1139,9 @@ class account_move_line(osv.osv):
if isinstance(ids, (int, long)): if isinstance(ids, (int, long)):
ids = [ids] ids = [ids]
if vals.get('account_tax_id', False): if vals.get('account_tax_id', False):
raise osv.except_osv(_('Unable to change tax !'), _('You can not change the tax, you should remove and recreate lines !')) raise osv.except_osv(_('Unable to change tax!'), _('You cannot change the tax, you should remove and recreate lines.'))
if ('account_id' in vals) and not account_obj.read(cr, uid, vals['account_id'], ['active'])['active']: 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 cannot use an inactive account.'))
if update_check: 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): 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) self._update_check(cr, uid, ids, context)
@ -1186,7 +1186,7 @@ class account_move_line(osv.osv):
result = cr.fetchall() result = cr.fetchall()
for (state,) in result: for (state,) in result:
if state == 'done': if state == 'done':
raise osv.except_osv(_('Error !'), _('You can not add/modify entries in a closed journal.')) raise osv.except_osv(_('Error!'), _('You cannot add/modify entries in a closed journal.'))
if not result: if not result:
journal = journal_obj.browse(cr, uid, journal_id, context=context) journal = journal_obj.browse(cr, uid, journal_id, context=context)
period = period_obj.browse(cr, uid, period_id, context=context) period = period_obj.browse(cr, uid, period_id, context=context)
@ -1202,9 +1202,9 @@ class account_move_line(osv.osv):
for line in self.browse(cr, uid, ids, context=context): for line in self.browse(cr, uid, ids, context=context):
err_msg = _('Move name (id): %s (%s)') % (line.move_id.name, str(line.move_id.id)) err_msg = _('Move name (id): %s (%s)') % (line.move_id.name, str(line.move_id.id))
if line.move_id.state <> 'draft' and (not line.journal_id.entry_posted): if line.move_id.state <> 'draft' and (not line.journal_id.entry_posted):
raise osv.except_osv(_('Error !'), _('You can not do this modification on a confirmed entry! You can just change some non legal fields or you must unconfirm the journal entry first! \n%s') % err_msg) raise osv.except_osv(_('Error!'), _('You cannot do this modification on a confirmed entry. You can just change some non legal fields or you must unconfirm the journal entry first.\n%s.') % err_msg)
if line.reconcile_id: if line.reconcile_id:
raise osv.except_osv(_('Error !'), _('You can not do this modification on a reconciled entry! You can just change some non legal fields or you must unreconcile first!\n%s') % err_msg) raise osv.except_osv(_('Error!'), _('You cannot do this modification on a reconciled entry. You can just change some non legal fields or you must unreconcile first.\n%s.') % err_msg)
t = (line.journal_id.id, line.period_id.id) t = (line.journal_id.id, line.period_id.id)
if t not in done: if t not in done:
self._update_journal_check(cr, uid, line.journal_id.id, line.period_id.id, context) self._update_journal_check(cr, uid, line.journal_id.id, line.period_id.id, context)
@ -1224,7 +1224,7 @@ class account_move_line(osv.osv):
if company_id: if company_id:
vals['company_id'] = company_id[0] vals['company_id'] = company_id[0]
if ('account_id' in vals) and not account_obj.read(cr, uid, vals['account_id'], ['active'])['active']: 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 cannot use an inactive account.'))
if 'journal_id' in vals: if 'journal_id' in vals:
context['journal_id'] = vals['journal_id'] context['journal_id'] = vals['journal_id']
if 'period_id' in vals: if 'period_id' in vals:
@ -1237,10 +1237,10 @@ class account_move_line(osv.osv):
if 'period_id' not in context or not isinstance(context.get('period_id', ''), (int, long)): if 'period_id' not in context or not isinstance(context.get('period_id', ''), (int, long)):
period_candidate_ids = self.pool.get('account.period').name_search(cr, uid, name=context.get('period_id','')) period_candidate_ids = self.pool.get('account.period').name_search(cr, uid, name=context.get('period_id',''))
if len(period_candidate_ids) != 1: if len(period_candidate_ids) != 1:
raise osv.except_osv(_('Encoding error'), _('No period found or more than one period found for the given date.')) raise osv.except_osv(_('Error!'), _('No period found or more than one period found for the given date.'))
context['period_id'] = period_candidate_ids[0][0] context['period_id'] = period_candidate_ids[0][0]
if not context.get('journal_id', False) and context.get('search_default_journal_id', False): if not context.get('journal_id', False) and context.get('search_default_journal_id', False):
context['journal_id'] = context.get('search_default_journal_id') context['journal_id'] = context.get('search_default_journal_id')
self._update_journal_check(cr, uid, context['journal_id'], context['period_id'], context) self._update_journal_check(cr, uid, context['journal_id'], context['period_id'], context)
move_id = vals.get('move_id', False) move_id = vals.get('move_id', False)
journal = journal_obj.browse(cr, uid, context['journal_id'], context=context) journal = journal_obj.browse(cr, uid, context['journal_id'], context=context)
@ -1263,7 +1263,7 @@ class account_move_line(osv.osv):
move_id = move_obj.create(cr, uid, v, context) move_id = move_obj.create(cr, uid, v, context)
vals['move_id'] = move_id vals['move_id'] = move_id
else: else:
raise osv.except_osv(_('No piece number !'), _('Can not create an automatic sequence for this piece!\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 !'), _('Cannot create an automatic sequence for this piece.\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) ok = not (journal.type_control_ids or journal.account_control_ids)
if ('account_id' in vals): if ('account_id' in vals):
account = account_obj.browse(cr, uid, vals['account_id'], context=context) account = account_obj.browse(cr, uid, vals['account_id'], context=context)
@ -1288,7 +1288,7 @@ class account_move_line(osv.osv):
vals['amount_currency'] = cur_obj.compute(cr, uid, account.company_id.currency_id.id, 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) account.currency_id.id, vals.get('debit', 0.0)-vals.get('credit', 0.0), context=ctx)
if not ok: if not ok:
raise osv.except_osv(_('Bad account !'), _('You can not use this general account in this journal, check the tab \'Entry Controls\' on the related journal !')) raise osv.except_osv(_('Bad Account!'), _('You cannot use this general account in this journal, check the tab \'Entry Controls\' on the related journal.'))
if vals.get('analytic_account_id',False): if vals.get('analytic_account_id',False):
if journal.analytic_journal_id: if journal.analytic_journal_id:

View File

@ -20,6 +20,7 @@
rml="account/report/account_print_invoice.rml" rml="account/report/account_print_invoice.rml"
string="Invoices" string="Invoices"
attachment="(object.state in ('open','paid')) and ('INV'+(object.number or '').replace('/','')+'.pdf')" attachment="(object.state in ('open','paid')) and ('INV'+(object.number or '').replace('/','')+'.pdf')"
attachment_use="True"
usage="default" usage="default"
/> />
<report id="account_transfers" model="account.transfer" name="account.transfer" string="Transfers" xml="account/report/transfer.xml" xsl="account/report/transfer.xsl"/> <report id="account_transfers" model="account.transfer" name="account.transfer" string="Transfers" xml="account/report/transfer.xml" xsl="account/report/transfer.xsl"/>

View File

@ -5,7 +5,7 @@
<record id="test_invoice_1" model="account.invoice"> <record id="test_invoice_1" model="account.invoice">
<field name="currency_id" ref="base.EUR"/> <field name="currency_id" ref="base.EUR"/>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
<field name="partner_id" ref="base.res_partner_asus"/> <field name="partner_id" ref="base.res_partner_1"/>
<field name="journal_id" ref="account.sales_journal"/> <field name="journal_id" ref="account.sales_journal"/>
<field name="state">draft</field> <field name="state">draft</field>
<field name="type">out_invoice</field> <field name="type">out_invoice</field>

View File

@ -16,7 +16,7 @@
<field name="date_invoice" eval="time.strftime('%Y')+'-01-01'"/> <field name="date_invoice" eval="time.strftime('%Y')+'-01-01'"/>
<field eval="14.0" name="amount_untaxed"/> <field eval="14.0" name="amount_untaxed"/>
<field eval="14.0" name="amount_total"/> <field eval="14.0" name="amount_total"/>
<field name="partner_id" ref="base.res_partner_maxtor"/> <field name="partner_id" ref="base.res_partner_17"/>
</record> </record>
<record id="demo_invoice_0_line_rpanrearpanelshe0" model="account.invoice.line"> <record id="demo_invoice_0_line_rpanrearpanelshe0" model="account.invoice.line">
<field name="invoice_id" ref="demo_invoice_0"/> <field name="invoice_id" ref="demo_invoice_0"/>
@ -26,10 +26,10 @@
<field name="price_subtotal" eval="10.0" /> <field name="price_subtotal" eval="10.0" />
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
<field name="invoice_line_tax_id" eval="[(6,0,[])]"/> <field name="invoice_line_tax_id" eval="[(6,0,[])]"/>
<field name="product_id" ref="product.product_product_rearpanelarm0"/> <field name="product_id" ref="product.product_product_39"/>
<field name="quantity" eval="1.0" /> <field name="quantity" eval="1.0" />
<field name="partner_id" ref="base.res_partner_maxtor"/> <field name="partner_id" ref="base.res_partner_16"/>
<field name="name">[RPAN100] Rear Panel SHE100</field> <field name="name">Toner Cartridge</field>
</record> </record>
<record id="demo_invoice_0_line_rckrackcm0" model="account.invoice.line"> <record id="demo_invoice_0_line_rckrackcm0" model="account.invoice.line">
<field name="invoice_id" ref="demo_invoice_0"/> <field name="invoice_id" ref="demo_invoice_0"/>
@ -39,10 +39,10 @@
<field name="price_subtotal" eval="4.0"/> <field name="price_subtotal" eval="4.0"/>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
<field name="invoice_line_tax_id" eval="[(6,0,[])]"/> <field name="invoice_line_tax_id" eval="[(6,0,[])]"/>
<field name="product_id" ref="product.product_product_shelf1"/> <field name="product_id" ref="product.product_product_43"/>
<field name="quantity" eval="1.0" /> <field name="quantity" eval="1.0" />
<field name="partner_id" ref="base.res_partner_maxtor"/> <field name="partner_id" ref="base.res_partner_17"/>
<field name="name">[RCK200] Rack 200cm</field> <field name="name">Zed+ Antivirus</field>
</record> </record>
</data> </data>
</openerp> </openerp>

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n" "Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-05-10 17:26+0000\n" "PO-Revision-Date: 2012-08-07 07:42+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n" "Last-Translator: gobi <Unknown>\n"
"Language-Team: Mongolian <mn@li.org>\n" "Language-Team: Mongolian <mn@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:06+0000\n" "X-Launchpad-Export-Date: 2012-08-08 04:36+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15757)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0
@ -4794,7 +4794,7 @@ msgid ""
"\"View\"! " "\"View\"! "
msgstr "" msgstr ""
"Тохиргооны Алдаа!\n" "Тохиргооны Алдаа!\n"
"\"Харагдаж\" төрлөөс өөр дотоод төрөлтэй дансанд дэд данс үүсгэж болохгүй! " "\"Харагдац\" төрлөөс өөр дотоод төрөлтэй дансанд дэд данс үүсгэж болохгүй! "
#. module: account #. module: account
#: code:addons/account/account.py:923 #: code:addons/account/account.py:923

View File

@ -91,7 +91,7 @@ class account_installer(osv.osv_memory):
def check_unconfigured_cmp(self, cr, uid, context=None): def check_unconfigured_cmp(self, cr, uid, context=None):
""" check if there are still unconfigured companies """ """ check if there are still unconfigured companies """
if not self.get_unconfigured_cmp(cr, uid, context=context): if not self.get_unconfigured_cmp(cr, uid, context=context):
raise osv.except_osv(_('No unconfigured company !'), _("There are currently no company without chart of account. The wizard will therefore not be executed.")) raise osv.except_osv(_('No unconfigured company !'), _("There is currently no company without chart of account. The wizard will therefore not be executed."))
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
if context is None:context = {} if context is None:context = {}

View File

@ -106,8 +106,8 @@
<field name="zip" class="oe_inline" placeholder="ZIP"/> <field name="zip" class="oe_inline" placeholder="ZIP"/>
<field name="city" class="oe_inline" placeholder="City"/> <field name="city" class="oe_inline" placeholder="City"/>
</div> </div>
<field name="state_id" placeholder="State"/> <field name="state_id" placeholder="State" options='{"no_open": true}'/>
<field name="country_id" placeholder="Country"/> <field name="country_id" placeholder="Country" options='{"no_open": true}'/>
</div> </div>
</group> </group>
<group name="bank" string="Information About the Bank"> <group name="bank" string="Information About the Bank">

View File

@ -85,14 +85,14 @@
<field name="parent_id" ref="analytic_integration"/> <field name="parent_id" ref="analytic_integration"/>
<field name="type">normal</field> <field name="type">normal</field>
<field name="state">open</field> <field name="state">open</field>
<field name="partner_id" ref="base.res_partner_seagate"/> <field name="partner_id" ref="base.res_partner_19"/>
</record> </record>
<record id="analytic_seagate_p2" model="account.analytic.account"> <record id="analytic_seagate_p2" model="account.analytic.account">
<field name="name">Seagate P2</field> <field name="name">Seagate P2</field>
<field name="type">normal</field> <field name="type">normal</field>
<field name="parent_id" ref="analytic_integration"/> <field name="parent_id" ref="analytic_integration"/>
<field name="state">open</field> <field name="state">open</field>
<field name="partner_id" ref="base.res_partner_seagate"/> <field name="partner_id" ref="base.res_partner_19"/>
</record> </record>
<record id="analytic_magasin_bml_1" model="account.analytic.account"> <record id="analytic_magasin_bml_1" model="account.analytic.account">
<field name="name">Magasin BML 1</field> <field name="name">Magasin BML 1</field>
@ -106,20 +106,20 @@
<field eval="str(time.localtime()[0] - 1) + '-08-07'" name="date_start"/> <field eval="str(time.localtime()[0] - 1) + '-08-07'" name="date_start"/>
<field eval="time.strftime('%Y-12-31')" name="date"/> <field eval="time.strftime('%Y-12-31')" name="date"/>
<field name="parent_id" ref="analytic_integration"/> <field name="parent_id" ref="analytic_integration"/>
<field name="partner_id" ref="base.res_partner_c2c"/> <field name="partner_id" ref="base.res_partner_12"/>
<field name="state">open</field> <field name="state">open</field>
</record> </record>
<record id="analytic_agrolait" model="account.analytic.account"> <record id="analytic_agrolait" model="account.analytic.account">
<field name="name">Agrolait</field> <field name="name">Agrolait</field>
<field name="parent_id" ref="analytic_customers"/> <field name="parent_id" ref="analytic_customers"/>
<field name="type">normal</field> <field name="type">normal</field>
<field name="partner_id" ref="base.res_partner_agrolait"/> <field name="partner_id" ref="base.res_partner_2"/>
</record> </record>
<record id="analytic_asustek" model="account.analytic.account"> <record id="analytic_asustek" model="account.analytic.account">
<field name="name">Asustek</field> <field name="name">Asustek</field>
<field name="type">normal</field> <field name="type">normal</field>
<field name="parent_id" ref="analytic_customers"/> <field name="parent_id" ref="analytic_customers"/>
<field name="partner_id" ref="base.res_partner_asus"/> <field name="partner_id" ref="base.res_partner_1"/>
</record> </record>
<record id="analytic_distripc" model="account.analytic.account"> <record id="analytic_distripc" model="account.analytic.account">
<field name="name">DistriPC</field> <field name="name">DistriPC</field>
@ -127,22 +127,22 @@
<field name="type">normal</field> <field name="type">normal</field>
<field name="partner_id" ref="base.res_partner_4"/> <field name="partner_id" ref="base.res_partner_4"/>
</record> </record>
<record id="analytic_sednacom" model="account.analytic.account"> <record id="analytic_spark" model="account.analytic.account">
<field name="name">Sednacom</field> <field name="name">Spark Systems</field>
<field eval="str(time.localtime()[0] - 1) + '-05-09'" name="date_start"/> <field eval="str(time.localtime()[0] - 1) + '-05-09'" name="date_start"/>
<field eval="time.strftime('%Y-05-08')" name="date"/> <field eval="time.strftime('%Y-05-08')" name="date"/>
<field name="parent_id" ref="analytic_partners"/> <field name="parent_id" ref="analytic_partners"/>
<field name="type">normal</field> <field name="type">normal</field>
<field name="partner_id" ref="base.res_partner_sednacom"/> <field name="partner_id" ref="base.res_partner_16"/>
<field name="state">open</field> <field name="state">open</field>
</record> </record>
<record id="analytic_thymbra" model="account.analytic.account"> <record id="analytic_nebula" model="account.analytic.account">
<field name="name">Thymbra</field> <field name="name">Nebula</field>
<field eval="time.strftime('%Y-02-01')" name="date_start"/> <field eval="time.strftime('%Y-02-01')" name="date_start"/>
<field eval="time.strftime('%Y-07-01')" name="date"/> <field eval="time.strftime('%Y-07-01')" name="date"/>
<field name="type">normal</field> <field name="type">normal</field>
<field name="parent_id" ref="analytic_partners"/> <field name="parent_id" ref="analytic_partners"/>
<field name="partner_id" ref="base.res_partner_thymbra"/> <field name="partner_id" ref="base.res_partner_17"/>
<field name="state">open</field> <field name="state">open</field>
</record> </record>
<record id="analytic_leclerc" model="account.analytic.account"> <record id="analytic_leclerc" model="account.analytic.account">
@ -159,13 +159,13 @@
<field eval="str(time.localtime()[0] + 1) + '-02-01'" name="date"/> <field eval="str(time.localtime()[0] + 1) + '-02-01'" name="date"/>
<field name="type">normal</field> <field name="type">normal</field>
<field name="parent_id" ref="analytic_partners"/> <field name="parent_id" ref="analytic_partners"/>
<field name="partner_id" ref="base.res_partner_desertic_hispafuentes"/> <field name="partner_id" ref="base.res_partner_12"/>
</record> </record>
<record id="analytic_tiny_at_work" model="account.analytic.account"> <record id="analytic_tiny_at_work" model="account.analytic.account">
<field name="name">OpenERP SA AT Work</field> <field name="name">OpenERP SA AT Work</field>
<field name="type">normal</field> <field name="type">normal</field>
<field name="parent_id" ref="analytic_partners"/> <field name="parent_id" ref="analytic_partners"/>
<field name="partner_id" ref="base.res_partner_tinyatwork"/> <field name="partner_id" ref="base.res_partner_18"/>
</record> </record>
<record id="analytic_partners_camp_to_camp" model="account.analytic.account"> <record id="analytic_partners_camp_to_camp" model="account.analytic.account">
<field name="name">Camp to Camp</field> <field name="name">Camp to Camp</field>
@ -173,7 +173,7 @@
<field eval="time.strftime('%Y-%m-%d')" name="date"/> <field eval="time.strftime('%Y-%m-%d')" name="date"/>
<field name="type">normal</field> <field name="type">normal</field>
<field name="parent_id" ref="analytic_partners"/> <field name="parent_id" ref="analytic_partners"/>
<field name="partner_id" ref="base.res_partner_c2c"/> <field name="partner_id" ref="base.res_partner_12"/>
<field name="state">open</field> <field name="state">open</field>
</record> </record>
<record id="analytic_project_2_support" model="account.analytic.account"> <record id="analytic_project_2_support" model="account.analytic.account">

View File

@ -89,7 +89,7 @@ class common_report_header(object):
return '' return ''
def _get_sortby(self, data): def _get_sortby(self, data):
raise (_('Error'), _('Not implemented')) raise (_('Error!'), _('Not implemented.'))
def _get_filter(self, data): def _get_filter(self, data):
if data.get('form', False) and data['form'].get('filter', False): if data.get('form', False) and data['form'].get('filter', False):

View File

@ -42,7 +42,7 @@
</div> </div>
</div> </div>
</group> </group>
<separator string="Chart of Account and Fiscal Year" attrs="{'invisible': ['|', ('expects_chart_of_accounts','=',False), ('has_chart_of_accounts','=',True)]}"/> <separator string="Chart of Accounts" attrs="{'invisible': ['|', ('expects_chart_of_accounts','=',False), ('has_chart_of_accounts','=',True)]}"/>
<group attrs="{'invisible': ['|', ('expects_chart_of_accounts','=',False), ('has_chart_of_accounts','=',True)]}"> <group attrs="{'invisible': ['|', ('expects_chart_of_accounts','=',False), ('has_chart_of_accounts','=',True)]}">
<label for="id" string="Chart of Account"/> <label for="id" string="Chart of Account"/>
<div> <div>

View File

@ -70,4 +70,4 @@
try: try:
self.button_cancel(cr, uid, [ref("account_bank_statement_0")]) self.button_cancel(cr, uid, [ref("account_bank_statement_0")])
except Exception, e: except Exception, e:
assert e[0]=='UserError', 'Another exception has been raised!' assert e[0]=='User Error!', 'Another exception has been raised!'

View File

@ -10,10 +10,10 @@
name: '[PC1] Basic PC' name: '[PC1] Basic PC'
price_unit: 450.0 price_unit: 450.0
quantity: 1.0 quantity: 1.0
product_id: product.product_product_pc1 product_id: product.product_product_3
uos_id: product.product_uom_unit uos_id: product.product_uom_unit
journal_id: account.sales_journal journal_id: account.sales_journal
partner_id: base.res_partner_desertic_hispafuentes partner_id: base.res_partner_12
reference_type: none reference_type: none
- -

View File

@ -22,7 +22,7 @@
reference_type: none reference_type: none
name: 'Test Customer Invoice' name: 'Test Customer Invoice'
invoice_line: invoice_line:
- product_id: product.product_product_pc3 - product_id: product.product_product_5
quantity: 10.0 quantity: 10.0
- -
I manually assign tax on invoice I manually assign tax on invoice

View File

@ -10,10 +10,10 @@
name: '[PC1] Basic PC' name: '[PC1] Basic PC'
price_unit: 450.0 price_unit: 450.0
quantity: 1.0 quantity: 1.0
product_id: product.product_product_pc1 product_id: product.product_product_3
uos_id: product.product_uom_unit uos_id: product.product_uom_unit
journal_id: account.bank_journal journal_id: account.bank_journal
partner_id: base.res_partner_desertic_hispafuentes partner_id: base.res_partner_12
reference_type: none reference_type: none
- -
I check that Initially customer invoice state is "Draft" I check that Initially customer invoice state is "Draft"

View File

@ -4,7 +4,7 @@
!record {model: account.invoice, id: test_invoice_1}: !record {model: account.invoice, id: test_invoice_1}:
currency_id: base.EUR currency_id: base.EUR
company_id: base.main_company company_id: base.main_company
partner_id: base.res_partner_asus partner_id: base.res_partner_1
state: draft state: draft
type: out_invoice type: out_invoice
account_id: account.a_recv account_id: account.a_recv
@ -23,7 +23,7 @@
- -
!python {model: res.partner}: | !python {model: res.partner}: |
import netsvc, tools, os import netsvc, tools, os
(data, format) = netsvc.LocalService('report.account.overdue').create(cr, uid, [ref('base.res_partner_asus'),ref('base.res_partner_agrolait'),ref('base.res_partner_c2c')], {}, {}) (data, format) = netsvc.LocalService('report.account.overdue').create(cr, uid, [ref('base.res_partner_1'),ref('base.res_partner_2'),ref('base.res_partner_12')], {}, {})
if tools.config['test_report_directory']: if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-report_overdue.'+format), 'wb+').write(data) file(os.path.join(tools.config['test_report_directory'], 'account-report_overdue.'+format), 'wb+').write(data)
- -

View File

@ -23,7 +23,7 @@
name: '[PC3] Medium PC' name: '[PC3] Medium PC'
price_unit: 900.0 price_unit: 900.0
quantity: 10.0 quantity: 10.0
product_id: product.product_product_pc3 product_id: product.product_product_5
uos_id: product.product_uom_unit uos_id: product.product_uom_unit
journal_id: account.sales_journal journal_id: account.sales_journal
partner_id: base.res_partner_3 partner_id: base.res_partner_3

View File

@ -30,13 +30,13 @@
- account_id: account.a_expense - account_id: account.a_expense
name: '[PC1] Basic PC' name: '[PC1] Basic PC'
price_unit: 300.0 price_unit: 300.0
product_id: product.product_product_pc1 product_id: product.product_product_3
quantity: 10.0 quantity: 10.0
uos_id: product.product_uom_unit uos_id: product.product_uom_unit
invoice_line_tax_id: invoice_line_tax_id:
- tax10 - tax10
journal_id: account.expenses_journal journal_id: account.expenses_journal
partner_id: base.res_partner_desertic_hispafuentes partner_id: base.res_partner_12
reference_type: none reference_type: none
type: in_invoice type: in_invoice
- -

View File

@ -20,7 +20,7 @@
debit: 0.0 debit: 0.0
journal_id: account.bank_journal journal_id: account.bank_journal
name: Basic Computer name: Basic Computer
partner_id: base.res_partner_desertic_hispafuentes partner_id: base.res_partner_12
period_id: account.period_6 period_id: account.period_6
ref: '2011010' ref: '2011010'
tax_amount: 0.0 tax_amount: 0.0
@ -37,8 +37,8 @@
'search_default_journal_id': 1, 'journal_type': 'sale', 'search_default_period_id': 6, 'journal_id': 1, 'view_mode': False, 'search_default_journal_id': 1, 'journal_type': 'sale', 'search_default_period_id': 6, 'journal_id': 1, 'view_mode': False,
'visible_id': 1, 'period_id': 6, 'tz': False, 'active_ids': [ref('menu_eaction_account_moves_sale')], 'visible_id': 1, 'period_id': 6, 'tz': False, 'active_ids': [ref('menu_eaction_account_moves_sale')],
'search_default_posted': 0, 'active_id': ref('menu_eaction_account_moves_sale')}) 'search_default_posted': 0, 'active_id': ref('menu_eaction_account_moves_sale')})
partner = self.onchange_partner_id(cr, uid, [], False, ref('base.res_partner_desertic_hispafuentes'), ref('account.cash'), debit=0, credit=2000, date=date, journal=False) partner = self.onchange_partner_id(cr, uid, [], False, ref('base.res_partner_12'), ref('account.cash'), debit=0, credit=2000, date=date, journal=False)
account = self.onchange_account_id(cr, uid, [], account_id=ref('account.a_recv'), partner_id= ref('base.res_partner_desertic_hispafuentes')) account = self.onchange_account_id(cr, uid, [], account_id=ref('account.a_recv'), partner_id= ref('base.res_partner_12'))
vals = { vals = {
'journal_id': ref('account.bank_journal'), 'journal_id': ref('account.bank_journal'),
'period_id': ref('account.period_6'), 'period_id': ref('account.period_6'),
@ -51,7 +51,7 @@
'date': time.strftime('%Y-%m-%d'), 'date': time.strftime('%Y-%m-%d'),
'debit': 2000.0, 'debit': 2000.0,
'name': 'Basic Computer', 'name': 'Basic Computer',
'partner_id': ref('base.res_partner_desertic_hispafuentes'), 'partner_id': ref('base.res_partner_12'),
'quantity': 0.0, 'quantity': 0.0,
'move_id': ref('account_move_0'), 'move_id': ref('account_move_0'),
'date_maturity': partner['value']['date_maturity'], 'date_maturity': partner['value']['date_maturity'],

View File

@ -24,7 +24,7 @@
account_id: account.a_recv account_id: account.a_recv
date_invoice: !eval time.strftime('%Y-%m-%d') date_invoice: !eval time.strftime('%Y-%m-%d')
invoice_line: invoice_line:
- product_id: product.product_product_pc1 - product_id: product.product_product_3
quantity: &qty 11.11 quantity: &qty 11.11
account_id: account.a_sale account_id: account.a_sale
uos_id: product.product_uom_unit uos_id: product.product_uom_unit

View File

@ -5,7 +5,7 @@
- -
!record {model: account.invoice, id: invoice_edi_1}: !record {model: account.invoice, id: invoice_edi_1}:
journal_id: 1 journal_id: 1
partner_id: base.res_partner_agrolait partner_id: base.res_partner_2
currency_id: base.EUR currency_id: base.EUR
company_id: 1 company_id: 1
account_id: account.a_pay account_id: account.a_pay
@ -13,14 +13,14 @@
name: selling product name: selling product
type: 'out_invoice' type: 'out_invoice'
invoice_line: invoice_line:
- product_id: product.product_product_pc1 - product_id: product.product_product_3
uos_id: 1 uos_id: 1
quantity: 1.0 quantity: 1.0
price_unit: 10.0 price_unit: 10.0
name: 'basic pc' name: 'basic pc'
account_id: account.a_pay account_id: account.a_pay
invoice_line: invoice_line:
- product_id: product.product_product_pc3 - product_id: product.product_product_5
uos_id: 1 uos_id: 1
quantity: 5.0 quantity: 5.0
price_unit: 100.0 price_unit: 100.0
@ -106,7 +106,7 @@
"uos_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_uom_unit", "Unit"], "uos_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_uom_unit", "Unit"],
"name": "Basic PC", "name": "Basic PC",
"price_unit": 10.0, "price_unit": 10.0,
"product_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_product_pc1", "[PC1] Basic PC"], "product_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_product_3", "[PC1] Basic PC"],
"quantity": 1.0 "quantity": 1.0
}, },
{ {
@ -116,7 +116,7 @@
"uos_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_uom_unit", "Unit"], "uos_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_uom_unit", "Unit"],
"name": "Medium PC", "name": "Medium PC",
"price_unit": 100.0, "price_unit": 100.0,
"product_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_product_pc3", "[PC3] Medium PC"], "product_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_product_5", "[PC3] Medium PC"],
"quantity": 5.0 "quantity": 5.0
}] }]
} }

View File

@ -145,7 +145,7 @@ class account_automatic_reconcile(osv.osv_memory):
allow_write_off = form.allow_write_off allow_write_off = form.allow_write_off
reconciled = unreconciled = 0 reconciled = unreconciled = 0
if not form.account_ids: if not form.account_ids:
raise osv.except_osv(_('UserError'), _('You must select accounts to reconcile')) raise osv.except_osv(_('User Error!'), _('You must select accounts to reconcile.'))
for account_id in form.account_ids: for account_id in form.account_ids:
params = (account_id.id,) params = (account_id.id,)
if not allow_write_off: if not allow_write_off:

View File

@ -35,7 +35,7 @@ class account_change_currency(osv.osv_memory):
context = {} context = {}
if context.get('active_id',False): if context.get('active_id',False):
if obj_inv.browse(cr, uid, context['active_id']).state != 'draft': if obj_inv.browse(cr, uid, context['active_id']).state != 'draft':
raise osv.except_osv(_('Error'), _('You can only change currency for Draft Invoice !')) raise osv.except_osv(_('Error!'), _('You can only change currency for Draft Invoice.'))
pass pass
def change_currency(self, cr, uid, ids, context=None): def change_currency(self, cr, uid, ids, context=None):
@ -56,18 +56,18 @@ class account_change_currency(osv.osv_memory):
if invoice.company_id.currency_id.id == invoice.currency_id.id: if invoice.company_id.currency_id.id == invoice.currency_id.id:
new_price = line.price_unit * rate new_price = line.price_unit * rate
if new_price <= 0: if new_price <= 0:
raise osv.except_osv(_('Error'), _('New currency is not configured properly !')) raise osv.except_osv(_('Error!'), _('New currency is not configured properly.'))
if invoice.company_id.currency_id.id != invoice.currency_id.id and invoice.company_id.currency_id.id == new_currency: if invoice.company_id.currency_id.id != invoice.currency_id.id and invoice.company_id.currency_id.id == new_currency:
old_rate = invoice.currency_id.rate old_rate = invoice.currency_id.rate
if old_rate <= 0: if old_rate <= 0:
raise osv.except_osv(_('Error'), _('Current currency is not configured properly !')) raise osv.except_osv(_('Error!'), _('Current currency is not configured properly.'))
new_price = line.price_unit / old_rate new_price = line.price_unit / old_rate
if invoice.company_id.currency_id.id != invoice.currency_id.id and invoice.company_id.currency_id.id != new_currency: if invoice.company_id.currency_id.id != invoice.currency_id.id and invoice.company_id.currency_id.id != new_currency:
old_rate = invoice.currency_id.rate old_rate = invoice.currency_id.rate
if old_rate <= 0: if old_rate <= 0:
raise osv.except_osv(_('Error'), _('Current currency is not configured properly !')) raise osv.except_osv(_('Error!'), _('Current currency is not configured properly.'))
new_price = (line.price_unit / old_rate ) * rate new_price = (line.price_unit / old_rate ) * rate
obj_inv_line.write(cr, uid, [line.id], {'price_unit': new_price}) obj_inv_line.write(cr, uid, [line.id], {'price_unit': new_price})
obj_inv.write(cr, uid, [invoice.id], {'currency_id': new_currency}, context=context) obj_inv.write(cr, uid, [invoice.id], {'currency_id': new_currency}, context=context)

View File

@ -67,7 +67,7 @@ class accounting_report(osv.osv_memory):
result['date_to'] = data['form']['date_to_cmp'] result['date_to'] = data['form']['date_to_cmp']
elif data['form']['filter_cmp'] == 'filter_period': elif data['form']['filter_cmp'] == 'filter_period':
if not data['form']['period_from_cmp'] or not data['form']['period_to_cmp']: if not data['form']['period_from_cmp'] or not data['form']['period_to_cmp']:
raise osv.except_osv(_('Error'),_('Select a starting and an ending period')) raise osv.except_osv(_('Error!'),_('Select a starting and an ending period'))
result['period_from'] = data['form']['period_from_cmp'] result['period_from'] = data['form']['period_from_cmp']
result['period_to'] = data['form']['period_to_cmp'] result['period_to'] = data['form']['period_to_cmp']
return result return result

View File

@ -51,15 +51,15 @@ class account_fiscalyear_close(osv.osv_memory):
""" """
def _reconcile_fy_closing(cr, uid, ids, context=None): def _reconcile_fy_closing(cr, uid, ids, context=None):
""" """
This private function manually do the reconciliation on the account_move_line given as `ids´, and directly This private function manually do the reconciliation on the account_move_line given as `ids´, and directly
through psql. It's necessary to do it this way because the usual `reconcile()´ function on account.move.line through psql. It's necessary to do it this way because the usual `reconcile()´ function on account.move.line
object is really resource greedy (not supposed to work on reconciliation between thousands of records) and object is really resource greedy (not supposed to work on reconciliation between thousands of records) and
it does a lot of different computation that are useless in this particular case. it does a lot of different computation that are useless in this particular case.
""" """
#check that the reconcilation concern journal entries from only one company #check that the reconcilation concern journal entries from only one company
cr.execute('select distinct(company_id) from account_move_line where id in %s',(tuple(ids),)) cr.execute('select distinct(company_id) from account_move_line where id in %s',(tuple(ids),))
if len(cr.fetchall()) > 1: if len(cr.fetchall()) > 1:
raise osv.except_osv(_('Warning !'), _('The entries to reconcile should belong to the same company')) raise osv.except_osv(_('Warning!'), _('The entries to reconcile should belong to the same company.'))
r_id = self.pool.get('account.move.reconcile').create(cr, uid, {'type': 'auto'}) r_id = self.pool.get('account.move.reconcile').create(cr, uid, {'type': 'auto'})
cr.execute('update account_move_line set reconcile_id = %s where id in %s',(r_id, tuple(ids),)) cr.execute('update account_move_line set reconcile_id = %s where id in %s',(r_id, tuple(ids),))
return r_id return r_id
@ -85,7 +85,7 @@ class account_fiscalyear_close(osv.osv_memory):
fy2_period_set = ','.join(map(lambda id: str(id[0]), cr.fetchall())) fy2_period_set = ','.join(map(lambda id: str(id[0]), cr.fetchall()))
if not fy_period_set or not fy2_period_set: if not fy_period_set or not fy2_period_set:
raise osv.except_osv(_('UserError'), _('The periods to generate opening entries were not found')) raise osv.except_osv(_('User Error!'), _('The periods to generate opening entries cannot be found.'))
period = obj_acc_period.browse(cr, uid, data[0].period_id.id, context=context) period = obj_acc_period.browse(cr, uid, data[0].period_id.id, context=context)
new_fyear = obj_acc_fiscalyear.browse(cr, uid, data[0].fy2_id.id, context=context) new_fyear = obj_acc_fiscalyear.browse(cr, uid, data[0].fy2_id.id, context=context)
@ -96,11 +96,11 @@ class account_fiscalyear_close(osv.osv_memory):
company_id = new_journal.company_id.id company_id = new_journal.company_id.id
if not new_journal.default_credit_account_id or not new_journal.default_debit_account_id: if not new_journal.default_credit_account_id or not new_journal.default_debit_account_id:
raise osv.except_osv(_('UserError'), raise osv.except_osv(_('User Error!'),
_('The journal must have default credit and debit account')) _('The journal must have default credit and debit account.'))
if (not new_journal.centralisation) or new_journal.entry_posted: if (not new_journal.centralisation) or new_journal.entry_posted:
raise osv.except_osv(_('UserError'), raise osv.except_osv(_('User Error!'),
_('The journal must have centralised counterpart without the Skipping draft state option checked!')) _('The journal must have centralized counterpart without the Skipping draft state option checked.'))
#delete existing move and move lines if any #delete existing move and move lines if any
move_ids = obj_acc_move.search(cr, uid, [ move_ids = obj_acc_move.search(cr, uid, [

View File

@ -106,9 +106,9 @@ class account_invoice_refund(osv.osv_memory):
journal_id = form.journal_id.id journal_id = form.journal_id.id
for inv in inv_obj.browse(cr, uid, context.get('active_ids'), context=context): for inv in inv_obj.browse(cr, uid, context.get('active_ids'), context=context):
if inv.state in ['draft', 'proforma2', 'cancel']: if inv.state in ['draft', 'proforma2', 'cancel']:
raise osv.except_osv(_('Error !'), _('Can not %s draft/proforma/cancel invoice.') % (mode)) raise osv.except_osv(_('Error!'), _('Cannot %s draft/proforma/cancel invoice.') % (mode))
if inv.reconciled and mode in ('cancel', 'modify'): if inv.reconciled and mode in ('cancel', 'modify'):
raise osv.except_osv(_('Error !'), _('Can not %s invoice which is already reconciled, invoice should be unreconciled first. You can only Refund this invoice') % (mode)) raise osv.except_osv(_('Error!'), _('Cannot %s invoice which is already reconciled, invoice should be unreconciled first. You can only refund this invoice.') % (mode))
if form.period.id: if form.period.id:
period = form.period.id period = form.period.id
else: else:
@ -143,8 +143,8 @@ class account_invoice_refund(osv.osv_memory):
description = inv.name description = inv.name
if not period: if not period:
raise osv.except_osv(_('Data Insufficient !'), \ raise osv.except_osv(_('Insufficient Data!'), \
_('No Period found on Invoice!')) _('No period found on the invoice.'))
refund_id = inv_obj.refund(cr, uid, [inv.id], date, period, description, journal_id) refund_id = inv_obj.refund(cr, uid, [inv.id], date, period, description, journal_id)
refund = inv_obj.browse(cr, uid, refund_id[0], context=context) refund = inv_obj.browse(cr, uid, refund_id[0], context=context)

View File

@ -41,7 +41,7 @@ class account_invoice_confirm(osv.osv_memory):
for record in data_inv: for record in data_inv:
if record['state'] not in ('draft','proforma','proforma2'): if record['state'] not in ('draft','proforma','proforma2'):
raise osv.except_osv(_('Warning'), _("Selected Invoice(s) cannot be confirmed as they are not in 'Draft' or 'Pro-Forma' state!")) raise osv.except_osv(_('Warning!'), _("Selected invoice(s) cannot be confirmed as they are not in 'Draft' or 'Pro-Forma' state."))
wf_service.trg_validate(uid, 'account.invoice', record['id'], 'invoice_open', cr) wf_service.trg_validate(uid, 'account.invoice', record['id'], 'invoice_open', cr)
return {'type': 'ir.actions.act_window_close'} return {'type': 'ir.actions.act_window_close'}
@ -65,7 +65,7 @@ class account_invoice_cancel(osv.osv_memory):
for record in data_inv: for record in data_inv:
if record['state'] in ('cancel','paid'): if record['state'] in ('cancel','paid'):
raise osv.except_osv(_('Warning'), _("Selected Invoice(s) cannot be cancelled as they are already in 'Cancelled' or 'Done' state!")) raise osv.except_osv(_('Warning!'), _("Selected invoice(s) cannot be cancelled as they are already in 'Cancelled' or 'Done' state."))
wf_service.trg_validate(uid, 'account.invoice', record['id'], 'invoice_cancel', cr) wf_service.trg_validate(uid, 'account.invoice', record['id'], 'invoice_cancel', cr)
return {'type': 'ir.actions.act_window_close'} return {'type': 'ir.actions.act_window_close'}

View File

@ -46,7 +46,7 @@ class account_move_bank_reconcile(osv.osv_memory):
from account_journal where id=%s', (data['journal_id'],)) from account_journal where id=%s', (data['journal_id'],))
account_id = cr.fetchone()[0] account_id = cr.fetchone()[0]
if not account_id: if not account_id:
raise osv.except_osv(_('Error'), _('You have to define \ raise osv.except_osv(_('Error!'), _('You have to define \
the bank account\nin the journal definition for reconciliation.')) the bank account\nin the journal definition for reconciliation.'))
return { return {
'domain': "[('journal_id','=',%d), ('account_id','=',%d), ('state','<>','draft')]" % (data['journal_id'], account_id), 'domain': "[('journal_id','=',%d), ('account_id','=',%d), ('state','<>','draft')]" % (data['journal_id'], account_id),

View File

@ -60,7 +60,7 @@ class account_move_journal(osv.osv_memory):
if context.get('journal_type', False): if context.get('journal_type', False):
jids = journal_pool.search(cr, uid, [('type','=', context.get('journal_type'))]) jids = journal_pool.search(cr, uid, [('type','=', context.get('journal_type'))])
if not jids: if not jids:
raise osv.except_osv(_('Configuration Error !'), _('Can\'t find any account journal of %s type for this company.\n\nYou can create one in the menu: \nConfiguration/Financial Accounting/Accounts/Journals.') % context.get('journal_type')) raise osv.except_osv(_('Configuration Error!'), _('Cannot find any account journal of %s type for this company.\n\nYou can create one in the menu: \nConfiguration/Journals/Journals.') % context.get('journal_type'))
journal_id = jids[0] journal_id = jids[0]
return journal_id return journal_id
@ -83,25 +83,25 @@ class account_move_journal(osv.osv_memory):
if context: if context:
if not view_id: if not view_id:
return res return res
period_pool = self.pool.get('account.period') period_pool = self.pool.get('account.period')
journal_pool = self.pool.get('account.journal') journal_pool = self.pool.get('account.journal')
journal_id = self._get_journal(cr, uid, context) journal_id = self._get_journal(cr, uid, context)
period_id = self._get_period(cr, uid, context) period_id = self._get_period(cr, uid, context)
journal = False journal = False
if journal_id: if journal_id:
journal = journal_pool.read(cr, uid, [journal_id], ['name'])[0]['name'] journal = journal_pool.read(cr, uid, [journal_id], ['name'])[0]['name']
journal_string = _("Journal: %s") % tools.ustr(journal) journal_string = _("Journal: %s") % tools.ustr(journal)
else: else:
journal_string = _("Journal: All") journal_string = _("Journal: All")
period = False period = False
if period_id: if period_id:
period = period_pool.browse(cr, uid, [period_id], ['name'])[0]['name'] period = period_pool.browse(cr, uid, [period_id], ['name'])[0]['name']
period_string = _("Period: %s") % tools.ustr(period) period_string = _("Period: %s") % tools.ustr(period)
open_string = _("Open") open_string = _("Open")
view = """<?xml version="1.0" encoding="utf-8"?> view = """<?xml version="1.0" encoding="utf-8"?>
<form string="Standard entries" version="7.0"> <form string="Standard entries" version="7.0">
@ -116,7 +116,7 @@ class account_move_journal(osv.osv_memory):
<button string="Cancel" class="oe_link" special="cancel"/> <button string="Cancel" class="oe_link" special="cancel"/>
</footer> </footer>
</form>""" % (_('Journal'), journal_string, _('Period'), period_string, open_string) </form>""" % (_('Journal'), journal_string, _('Period'), period_string, open_string)
view = etree.fromstring(view.encode('utf8')) view = etree.fromstring(view.encode('utf8'))
xarch, xfields = self._view_look_dom_arch(cr, uid, view, view_id, context=context) xarch, xfields = self._view_look_dom_arch(cr, uid, view, view_id, context=context)
view = xarch view = xarch
@ -158,7 +158,7 @@ class account_move_journal(osv.osv_memory):
state = period.state state = period.state
if state == 'done': if state == 'done':
raise osv.except_osv(_('UserError'), _('This period is already closed !')) raise osv.except_osv(_('User Error!'), _('This period is already closed.'))
company = period.company_id.id company = period.company_id.id
res = { res = {

View File

@ -36,7 +36,7 @@ class account_open_closed_fiscalyear(osv.osv_memory):
data = self.browse(cr, uid, ids, context=context)[0] data = self.browse(cr, uid, ids, context=context)[0]
period_journal = data.fyear_id.end_journal_period_id or False period_journal = data.fyear_id.end_journal_period_id or False
if not period_journal: if not period_journal:
raise osv.except_osv(_('Error !'), _('No End of year journal defined for the fiscal year')) raise osv.except_osv(_('Error!'), _('You have to set the end of the fiscal year for this journal.'))
ids_move = move_obj.search(cr, uid, [('journal_id','=',period_journal.journal_id.id),('period_id','=',period_journal.period_id.id)]) ids_move = move_obj.search(cr, uid, [('journal_id','=',period_journal.journal_id.id),('period_id','=',period_journal.period_id.id)])
if ids_move: if ids_move:

View File

@ -48,7 +48,7 @@ class account_period_close(osv.osv_memory):
for id in context['active_ids']: for id in context['active_ids']:
account_move_ids = account_move_obj.search(cr, uid, [('period_id', '=', id), ('state', '=', "draft")], context=context) account_move_ids = account_move_obj.search(cr, uid, [('period_id', '=', id), ('state', '=', "draft")], context=context)
if account_move_ids: if account_move_ids:
raise osv.except_osv(_('Invalid action !'), _('In order to close a period, you must first post related journal entries.')) raise osv.except_osv(_('Invalid Action!'), _('In order to close a period, you must first post related journal entries.'))
cr.execute('update account_journal_period set state=%s where period_id=%s', (mode, id)) cr.execute('update account_journal_period set state=%s where period_id=%s', (mode, id))
cr.execute('update account_period set state=%s where id=%s', (mode, id)) cr.execute('update account_period set state=%s where id=%s', (mode, id))

View File

@ -53,9 +53,9 @@ class account_aged_trial_balance(osv.osv_memory):
period_length = data['form']['period_length'] period_length = data['form']['period_length']
if period_length<=0: if period_length<=0:
raise osv.except_osv(_('UserError'), _('You must enter a period length that cannot be 0 or below !')) raise osv.except_osv(_('User Error!'), _('You must set a period length greater than 0.'))
if not data['form']['date_from']: if not data['form']['date_from']:
raise osv.except_osv(_('UserError'), _('Enter a Start date !')) raise osv.except_osv(_('User Error!'), _('You must set a start date.'))
start = datetime.strptime(data['form']['date_from'], "%Y-%m-%d") start = datetime.strptime(data['form']['date_from'], "%Y-%m-%d")

View File

@ -144,13 +144,13 @@ class account_common_report(osv.osv_memory):
result['date_to'] = data['form']['date_to'] result['date_to'] = data['form']['date_to']
elif data['form']['filter'] == 'filter_period': elif data['form']['filter'] == 'filter_period':
if not data['form']['period_from'] or not data['form']['period_to']: if not data['form']['period_from'] or not data['form']['period_to']:
raise osv.except_osv(_('Error'),_('Select a starting and an ending period')) raise osv.except_osv(_('Error!'),_('Select a starting and an ending period.'))
result['period_from'] = data['form']['period_from'] result['period_from'] = data['form']['period_from']
result['period_to'] = data['form']['period_to'] result['period_to'] = data['form']['period_to']
return result return result
def _print_report(self, cr, uid, ids, data, context=None): def _print_report(self, cr, uid, ids, data, context=None):
raise (_('Error'), _('not implemented')) raise (_('Error!'), _('Not implemented.'))
def check_report(self, cr, uid, ids, context=None): def check_report(self, cr, uid, ids, context=None):
if context is None: if context is None:

View File

@ -34,7 +34,7 @@ class account_state_open(osv.osv_memory):
if 'active_ids' in context: if 'active_ids' in context:
data_inv = obj_invoice.browse(cr, uid, context['active_ids'][0], context=context) data_inv = obj_invoice.browse(cr, uid, context['active_ids'][0], context=context)
if data_inv.reconciled: if data_inv.reconciled:
raise osv.except_osv(_('Warning'), _('Invoice is already reconciled')) raise osv.except_osv(_('Warning!'), _('Invoice is already reconciled.'))
wf_service = netsvc.LocalService("workflow") wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.invoice', context['active_ids'][0], 'open_test', cr) wf_service.trg_validate(uid, 'account.invoice', context['active_ids'][0], 'open_test', cr)
return {'type': 'ir.actions.act_window_close'} return {'type': 'ir.actions.act_window_close'}

View File

@ -41,7 +41,7 @@ class account_use_model(osv.osv_memory):
for line in model.lines_id: for line in model.lines_id:
if line.date_maturity == 'partner': if line.date_maturity == 'partner':
if not line.partner_id: if not line.partner_id:
raise osv.except_osv(_('Error !'), _("Maturity date of entry line generated by model line '%s' is based on partner payment term!"\ raise osv.except_osv(_('Error!'), _("Maturity date of entry line generated by model line '%s' is based on partner payment term!"\
"\nPlease define partner on it!")%line.name) "\nPlease define partner on it!")%line.name)
pass pass

View File

@ -36,7 +36,7 @@ class validate_account_move(osv.osv_memory):
data = self.browse(cr, uid, ids, context=context)[0] data = self.browse(cr, uid, ids, context=context)[0]
ids_move = obj_move.search(cr, uid, [('state','=','draft'),('journal_id','=',data.journal_id.id),('period_id','=',data.period_id.id)]) ids_move = obj_move.search(cr, uid, [('state','=','draft'),('journal_id','=',data.journal_id.id),('period_id','=',data.period_id.id)])
if not ids_move: if not ids_move:
raise osv.except_osv(_('Warning'), _('Specified Journal does not have any account move entries in draft state for this period')) raise osv.except_osv(_('Warning!'), _('Specified journal does not have any account move entries in draft state for this period.'))
obj_move.button_validate(cr, uid, ids_move, context=context) obj_move.button_validate(cr, uid, ids_move, context=context)
return {'type': 'ir.actions.act_window_close'} return {'type': 'ir.actions.act_window_close'}
@ -58,7 +58,7 @@ class validate_account_move_lines(osv.osv_memory):
move_ids.append(line.move_id.id) move_ids.append(line.move_id.id)
move_ids = list(set(move_ids)) move_ids = list(set(move_ids))
if not move_ids: if not move_ids:
raise osv.except_osv(_('Warning'), _('Selected Entry Lines does not have any account move enties in draft state')) raise osv.except_osv(_('Warning!'), _('Selected Entry Lines does not have any account move enties in draft state.'))
obj_move.button_validate(cr, uid, move_ids, context) obj_move.button_validate(cr, uid, move_ids, context)
return {'type': 'ir.actions.act_window_close'} return {'type': 'ir.actions.act_window_close'}
validate_account_move_lines() validate_account_move_lines()

View File

@ -29,11 +29,11 @@ class CashBox(osv.osv_memory):
for box in self.browse(cr, uid, ids, context=context): for box in self.browse(cr, uid, ids, context=context):
for record in records: for record in records:
if not record.journal_id: if not record.journal_id:
raise osv.except_osv(_('Error !'), raise osv.except_osv(_('Error!'),
_("Please check that the field 'Journal' is set on the Bank Statement")) _("Please check that the field 'Journal' is set on the Bank Statement"))
if not record.journal_id.internal_account_id: if not record.journal_id.internal_account_id:
raise osv.except_osv(_('Error !'), raise osv.except_osv(_('Error!'),
_("Please check that the field 'Internal Transfers Account' is set on the payment method '%s'.") % (record.journal_id.name,)) _("Please check that the field 'Internal Transfers Account' is set on the payment method '%s'.") % (record.journal_id.name,))
self._create_bank_statement_line(cr, uid, box, record, context=context) self._create_bank_statement_line(cr, uid, box, record, context=context)

View File

@ -5,17 +5,17 @@
<field name="name">cash_box_in</field> <field name="name">cash_box_in</field>
<field name="model">cash.box.in</field> <field name="model">cash.box.in</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Put Money In"> <form string="Put Money In" version="7.0">
<separator string="Fill in this form if you put money in the cash register:" colspan="4" /> <separator string="Fill in this form if you put money in the cash register:" colspan="4" />
<field name="name" /> <group>
<field name="amount" /> <field name="name" class="oe_inline"/>
<field name="amount" class="oe_inline"/>
<separator colspan="4" />
<group colspan="4" col="4">
<group col="2" colspan="2" />
<button icon="gtk-stop" special="cancel" string="Cancel" />
<button name="run" string="Put Money In" colspan="1" type="object" icon="gtk-apply" />
</group> </group>
<footer>
<button name="run" string="Put Money In" type="object" class="oe_highlight"/>
or
<button special="cancel" string="Cancel" class="oe_link"/>
</footer>
</form> </form>
</field> </field>
</record> </record>
@ -33,17 +33,18 @@
<field name="name">cash_box_out</field> <field name="name">cash_box_out</field>
<field name="model">cash.box.out</field> <field name="model">cash.box.out</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Take Money Out"> <form string="Take Money Out" version="7.0">
<separator string="Describe why you take money from the cash register:" colspan="4" /> <separator string="Describe why you take money from the cash register:"/>
<field name="name" /> <group>
<field name="amount" /> <field name="name" class="oe_inline"/>
<field name="amount" class="oe_inline"/>
<separator colspan="4" />
<group colspan="4" col="4">
<group col="2" colspan="2" />
<button icon="gtk-stop" special="cancel" string="Cancel" />
<button name="run" string="Take Money Out" colspan="1" type="object" icon="gtk-apply" />
</group> </group>
<footer>
<button name="run" string="Take Money Out" type="object" class="oe_highlight"/>
or
<button class="oe_link" special="cancel" string="Cancel" />
</footer>
</form> </form>
</field> </field>
</record> </record>

View File

@ -218,7 +218,7 @@ class account_analytic_plan_instance(osv.osv):
pids = ana_plan_instance_obj.search(cr, uid, [('name','=',vals['name']), ('code','=',vals['code']), ('plan_id','<>',False)], context=context) pids = ana_plan_instance_obj.search(cr, uid, [('name','=',vals['name']), ('code','=',vals['code']), ('plan_id','<>',False)], context=context)
if pids: if pids:
raise osv.except_osv(_('Error'), _('A model having this name and code already exists !')) raise osv.except_osv(_('Error!'), _('A model with this name and code already exists.'))
res = acct_anal_plan_line_obj.search(cr, uid, [('plan_id','=',journal.plan_id.id)], context=context) res = acct_anal_plan_line_obj.search(cr, uid, [('plan_id','=',journal.plan_id.id)], context=context)
for i in res: for i in res:
@ -231,7 +231,7 @@ class account_analytic_plan_instance(osv.osv):
if acct_anal_acct.search(cr, uid, [('parent_id', 'child_of', [item.root_analytic_id.id]), ('id', '=', tempo[2]['analytic_account_id'])], context=context): if acct_anal_acct.search(cr, uid, [('parent_id', 'child_of', [item.root_analytic_id.id]), ('id', '=', tempo[2]['analytic_account_id'])], context=context):
total_per_plan += tempo[2]['rate'] total_per_plan += tempo[2]['rate']
if total_per_plan < item.min_required or total_per_plan > item.max_required: if total_per_plan < item.min_required or total_per_plan > item.max_required:
raise osv.except_osv(_('Value Error'),_('The Total Should be Between %s and %s') % (str(item.min_required), str(item.max_required))) raise osv.except_osv(_('Error!'),_('The total should be between %s and %s.') % (str(item.min_required), str(item.max_required)))
return super(account_analytic_plan_instance, self).create(cr, uid, vals, context=context) return super(account_analytic_plan_instance, self).create(cr, uid, vals, context=context)
@ -338,7 +338,7 @@ class account_move_line(osv.osv):
for line in self.browse(cr, uid, ids, context=context): for line in self.browse(cr, uid, ids, context=context):
if line.analytics_id: if line.analytics_id:
if not line.journal_id.analytic_journal_id: if not line.journal_id.analytic_journal_id:
raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal!") % (line.journal_id.name,)) raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal.") % (line.journal_id.name,))
toremove = analytic_line_obj.search(cr, uid, [('move_id','=',line.id)], context=context) toremove = analytic_line_obj.search(cr, uid, [('move_id','=',line.id)], context=context)
if toremove: if toremove:
@ -482,7 +482,7 @@ class account_bank_statement(osv.osv):
for st_line in st.line_ids: for st_line in st.line_ids:
if st_line.analytics_id: if st_line.analytics_id:
if not st.journal_id.analytic_journal_id: if not st.journal_id.analytic_journal_id:
raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal!") % (st.journal_id.name,)) raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal.") % (st.journal_id.name,))
if not st_line.amount: if not st_line.amount:
continue continue
return True return True

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
"Language: \n" "Language: \n"
#. module: account_analytic_plans #. module: account_analytic_plans

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#~ msgid "Printing date:" #~ msgid "Printing date:"
#~ msgstr "Trükkimise kuupäev:" #~ msgstr "Trükkimise kuupäev:"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -15,8 +15,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:14+0000\n" "X-Launchpad-Export-Date: 2012-08-09 04:48+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_analytic_plans #. module: account_analytic_plans
#: view:analytic.plan.create.model:0 #: view:analytic.plan.create.model:0

View File

@ -58,7 +58,7 @@ class account_crossovered_analytic(osv.osv_memory):
flag = False flag = False
break break
if flag: if flag:
raise osv.except_osv(_('User Error'),_('There are no Analytic lines related to Account %s' % name)) raise osv.except_osv(_('User Error!'),_('There are no analytic lines related to account %s.' % name))
datas = { datas = {
'ids': [], 'ids': [],

View File

@ -35,10 +35,10 @@ class analytic_plan_create_model(osv.osv_memory):
if 'active_id' in context and context['active_id']: if 'active_id' in context and context['active_id']:
plan = plan_obj.browse(cr, uid, context['active_id'], context=context) plan = plan_obj.browse(cr, uid, context['active_id'], context=context)
if (not plan.name) or (not plan.code): if (not plan.name) or (not plan.code):
raise osv.except_osv(_('Error'), _('Please put a name and a code before saving the model !')) raise osv.except_osv(_('Error!'), _('Please put a name and a code before saving the model.'))
pids = anlytic_plan_obj.search(cr, uid, [], context=context) pids = anlytic_plan_obj.search(cr, uid, [], context=context)
if not pids: if not pids:
raise osv.except_osv(_('Error'), _('No analytic plan defined !')) raise osv.except_osv(_('Error!'), _('There is no analytic plan defined.'))
plan_obj.write(cr, uid, [context['active_id']], {'plan_id':pids[0]}, context=context) plan_obj.write(cr, uid, [context['active_id']], {'plan_id':pids[0]}, context=context)
model_data_ids = mod_obj.search(cr, uid, [('model', '=', 'ir.ui.view'),('name', '=', 'view_analytic_plan_create_model')], context=context) model_data_ids = mod_obj.search(cr, uid, [('model', '=', 'ir.ui.view'),('name', '=', 'view_analytic_plan_create_model')], context=context)
@ -57,4 +57,4 @@ class analytic_plan_create_model(osv.osv_memory):
analytic_plan_create_model() analytic_plan_create_model()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -270,7 +270,7 @@ class account_asset_asset(osv.osv):
return True return True
_constraints = [ _constraints = [
(_check_recursion, 'Error ! You can not create recursive assets.', ['parent_id']), (_check_recursion, 'Error ! You cannot create recursive assets.', ['parent_id']),
(_check_prorata, 'Prorata temporis can be applied only for time method "number of depreciations".', ['prorata']), (_check_prorata, 'Prorata temporis can be applied only for time method "number of depreciations".', ['prorata']),
] ]

View File

@ -14,19 +14,19 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:38+0000\n" "X-Launchpad-Export-Date: 2012-08-09 05:00+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_asset #. module: account_asset
#: view:account.asset.asset:0 #: view:account.asset.asset:0
msgid "Assets in draft and open states" msgid "Assets in draft and open states"
msgstr "أصول في مسودة أو حالات مفتوحة" msgstr "أصول في مسودة وحالات مفتوحة"
#. module: account_asset #. module: account_asset
#: field:account.asset.category,method_end:0 #: field:account.asset.category,method_end:0
#: field:account.asset.history,method_end:0 field:asset.modify,method_end:0 #: field:account.asset.history,method_end:0 field:asset.modify,method_end:0
msgid "Ending date" msgid "Ending date"
msgstr "اخر تاريخ" msgstr "تاريخ الإنتهاء"
#. module: account_asset #. module: account_asset
#: field:account.asset.asset,value_residual:0 #: field:account.asset.asset,value_residual:0
@ -143,7 +143,7 @@ msgstr "مُدخلات"
#: view:account.asset.asset:0 #: view:account.asset.asset:0
#: field:account.asset.asset,depreciation_line_ids:0 #: field:account.asset.asset,depreciation_line_ids:0
msgid "Depreciation Lines" msgid "Depreciation Lines"
msgstr "خطوط الإستلاك" msgstr "خطوط الأستهلاك"
#. module: account_asset #. module: account_asset
#: help:account.asset.asset,salvage_value:0 #: help:account.asset.asset,salvage_value:0
@ -282,7 +282,7 @@ msgstr "طريقة الحساب"
#. module: account_asset #. module: account_asset
#: help:account.asset.asset,method_period:0 #: help:account.asset.asset,method_period:0
msgid "State here the time during 2 depreciations, in months" msgid "State here the time during 2 depreciations, in months"
msgstr "تحديد الوقت لـ ٢ إستهلاك في الشهو" msgstr "تحديد الوقت لـ ٢ إستهلاك في الشهر"
#. module: account_asset #. module: account_asset
#: constraint:account.asset.asset:0 #: constraint:account.asset.asset:0
@ -462,6 +462,9 @@ msgid ""
" * Linear: Calculated on basis of: Gross Value / Number of Depreciations\n" " * Linear: Calculated on basis of: Gross Value / Number of Depreciations\n"
" * Degressive: Calculated on basis of: Remaining Value * Degressive Factor" " * Degressive: Calculated on basis of: Remaining Value * Degressive Factor"
msgstr "" msgstr ""
"أختر طريقة تستخدمها لحساب مبلغ خطوط الأستهلاك.\n"
" الخطي: محسوبة علي أساس: إجمالي القيمة/ عدد الأستهلاك\n"
" التدريجي: محسوبة علي أساس :القيمة المتبقية x عامل التدريجية"
#. module: account_asset #. module: account_asset
#: help:account.asset.asset,method_time:0 #: help:account.asset.asset,method_time:0
@ -474,6 +477,10 @@ msgid ""
" * Ending Date: Choose the time between 2 depreciations and the date the " " * Ending Date: Choose the time between 2 depreciations and the date the "
"depreciations won't go beyond." "depreciations won't go beyond."
msgstr "" msgstr ""
"أختر طريقة تستخدمها لحساب مواعيد وعددخطوط الأستهلاك.\n"
" * عدد الاستهلاك: حدد عدد خطوط الاستهلاك والوقت بين 2 أستهلاك.\n"
" * تاريخ الانتهاء:اختر الوقت بين 2 أستهلاك وتاريخ الأستهلاكات التي لم "
"تتجاوز التخفيض."
#. module: account_asset #. module: account_asset
#: view:asset.asset.report:0 #: view:asset.asset.report:0
@ -494,12 +501,12 @@ msgstr "الشريك"
#. module: account_asset #. module: account_asset
#: view:asset.asset.report:0 field:asset.asset.report,depreciation_value:0 #: view:asset.asset.report:0 field:asset.asset.report,depreciation_value:0
msgid "Amount of Depreciation Lines" msgid "Amount of Depreciation Lines"
msgstr "" msgstr "قيمة خطوط الأستهلاك"
#. module: account_asset #. module: account_asset
#: view:asset.asset.report:0 #: view:asset.asset.report:0
msgid "Posted depreciation lines" msgid "Posted depreciation lines"
msgstr "" msgstr "سجل خطوط الأستهلاك"
#. module: account_asset #. module: account_asset
#: constraint:account.move.line:0 #: constraint:account.move.line:0
@ -514,7 +521,7 @@ msgstr "أصول فرعية"
#. module: account_asset #. module: account_asset
#: view:asset.asset.report:0 #: view:asset.asset.report:0
msgid "Date of depreciation" msgid "Date of depreciation"
msgstr "" msgstr "تاريخ الأستهلاك"
#. module: account_asset #. module: account_asset
#: field:account.asset.history,user_id:0 #: field:account.asset.history,user_id:0
@ -529,7 +536,7 @@ msgstr "التاريخ"
#. module: account_asset #. module: account_asset
#: view:asset.asset.report:0 #: view:asset.asset.report:0
msgid "Assets purchased in current month" msgid "Assets purchased in current month"
msgstr "" msgstr "اصول مشتراه في الشهر الحالي"
#. module: account_asset #. module: account_asset
#: constraint:account.move.line:0 #: constraint:account.move.line:0
@ -549,12 +556,12 @@ msgstr "احسب"
#. module: account_asset #. module: account_asset
#: view:account.asset.category:0 #: view:account.asset.category:0
msgid "Search Asset Category" msgid "Search Asset Category"
msgstr "" msgstr "بحث فئة الأصول"
#. module: account_asset #. module: account_asset
#: model:ir.model,name:account_asset.model_asset_depreciation_confirmation_wizard #: model:ir.model,name:account_asset.model_asset_depreciation_confirmation_wizard
msgid "asset.depreciation.confirmation.wizard" msgid "asset.depreciation.confirmation.wizard"
msgstr "" msgstr "asset.depreciation.confirmation.wizard"
#. module: account_asset #. module: account_asset
#: field:account.asset.asset,active:0 #: field:account.asset.asset,active:0
@ -564,17 +571,17 @@ msgstr "نشِط"
#. module: account_asset #. module: account_asset
#: model:ir.actions.wizard,name:account_asset.wizard_asset_close #: model:ir.actions.wizard,name:account_asset.wizard_asset_close
msgid "Close asset" msgid "Close asset"
msgstr "" msgstr "وثيقة أصول"
#. module: account_asset #. module: account_asset
#: field:account.asset.depreciation.line,parent_state:0 #: field:account.asset.depreciation.line,parent_state:0
msgid "State of Asset" msgid "State of Asset"
msgstr "" msgstr "حالة الأصول"
#. module: account_asset #. module: account_asset
#: field:account.asset.depreciation.line,name:0 #: field:account.asset.depreciation.line,name:0
msgid "Depreciation Name" msgid "Depreciation Name"
msgstr "" msgstr "اسم الأستهلاك"
#. module: account_asset #. module: account_asset
#: view:account.asset.asset:0 field:account.asset.asset,history_ids:0 #: view:account.asset.asset:0 field:account.asset.asset,history_ids:0
@ -599,7 +606,7 @@ msgstr "عام"
#. module: account_asset #. module: account_asset
#: field:account.asset.asset,prorata:0 field:account.asset.category,prorata:0 #: field:account.asset.asset,prorata:0 field:account.asset.category,prorata:0
msgid "Prorata Temporis" msgid "Prorata Temporis"
msgstr "" msgstr "تناسب زمني"
#. module: account_asset #. module: account_asset
#: view:account.asset.category:0 #: view:account.asset.category:0
@ -614,7 +621,7 @@ msgstr "فاتورة"
#. module: account_asset #. module: account_asset
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_form_normal #: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_form_normal
msgid "Review Asset Categories" msgid "Review Asset Categories"
msgstr "" msgstr "مراجعة أصول الفئات"
#. module: account_asset #. module: account_asset
#: view:asset.depreciation.confirmation.wizard:0 view:asset.modify:0 #: view:asset.depreciation.confirmation.wizard:0 view:asset.modify:0
@ -629,7 +636,7 @@ msgstr "إغلاق"
#. module: account_asset #. module: account_asset
#: view:account.asset.asset:0 view:account.asset.category:0 #: view:account.asset.asset:0 view:account.asset.category:0
msgid "Depreciation Method" msgid "Depreciation Method"
msgstr "" msgstr "طريقة الأستهلاك"
#. module: account_asset #. module: account_asset
#: field:account.asset.asset,purchase_date:0 view:asset.asset.report:0 #: field:account.asset.asset,purchase_date:0 view:asset.asset.report:0
@ -641,14 +648,14 @@ msgstr "تاريخ الشراء"
#: selection:account.asset.asset,method:0 #: selection:account.asset.asset,method:0
#: selection:account.asset.category,method:0 #: selection:account.asset.category,method:0
msgid "Degressive" msgid "Degressive"
msgstr "" msgstr "تدريجي"
#. module: account_asset #. module: account_asset
#: help:asset.depreciation.confirmation.wizard,period_id:0 #: help:asset.depreciation.confirmation.wizard,period_id:0
msgid "" msgid ""
"Choose the period for which you want to automatically post the depreciation " "Choose the period for which you want to automatically post the depreciation "
"lines of running assets" "lines of running assets"
msgstr "" msgstr "أختر الفترة التي تريدها تلقائياً لنشر خطوط الأستهلاك من أصول التشغيل"
#. module: account_asset #. module: account_asset
#: view:account.asset.asset:0 #: view:account.asset.asset:0
@ -658,18 +665,18 @@ msgstr "الحالي"
#. module: account_asset #. module: account_asset
#: field:account.asset.depreciation.line,remaining_value:0 #: field:account.asset.depreciation.line,remaining_value:0
msgid "Amount to Depreciate" msgid "Amount to Depreciate"
msgstr "" msgstr "قيمة الاستهلاك"
#. module: account_asset #. module: account_asset
#: field:account.asset.category,open_asset:0 #: field:account.asset.category,open_asset:0
msgid "Skip Draft State" msgid "Skip Draft State"
msgstr "" msgstr "تخطي حالة المسودة"
#. module: account_asset #. module: account_asset
#: view:account.asset.asset:0 view:account.asset.category:0 #: view:account.asset.asset:0 view:account.asset.category:0
#: view:account.asset.history:0 #: view:account.asset.history:0
msgid "Depreciation Dates" msgid "Depreciation Dates"
msgstr "" msgstr "تواريخ الأستهلاك"
#. module: account_asset #. module: account_asset
#: field:account.asset.asset,currency_id:0 #: field:account.asset.asset,currency_id:0
@ -684,7 +691,7 @@ msgstr "السجل اليومي"
#. module: account_asset #. module: account_asset
#: field:account.asset.depreciation.line,depreciated_value:0 #: field:account.asset.depreciation.line,depreciated_value:0
msgid "Amount Already Depreciated" msgid "Amount Already Depreciated"
msgstr "" msgstr "القيمة المستهلكة بالفعل"
#. module: account_asset #. module: account_asset
#: field:account.asset.depreciation.line,move_check:0 #: field:account.asset.depreciation.line,move_check:0
@ -701,6 +708,11 @@ msgid ""
"You can manually close an asset when the depreciation is over. If the last " "You can manually close an asset when the depreciation is over. If the last "
"line of depreciation is posted, the asset automatically goes in that state." "line of depreciation is posted, the asset automatically goes in that state."
msgstr "" msgstr ""
"عند إنشاء الاصول , الحالة تكون 'مسودة'.\n"
"إذا تاكدت هذه الاصول ,الحالة تدخل في 'التشغيل' ويمكن إضافة خطوط الأستهلاك في "
"الحساب .\n"
"يمكنك يدوياً إغلاق الاصول عند زيادة الأستهلاك . إذا تم إضافة أخر خط من خطوط "
"الأستهلاك,الاصل يذهب تلقائياً في هذه الحالة."
#. module: account_asset #. module: account_asset
#: field:account.asset.category,name:0 #: field:account.asset.category,name:0
@ -713,6 +725,8 @@ msgid ""
"Check this if you want to automatically confirm the assets of this category " "Check this if you want to automatically confirm the assets of this category "
"when created by invoices." "when created by invoices."
msgstr "" msgstr ""
"تحقق من هذا إذا كنت تريد التأكد تلقائياً من أصول فئة تم إنشاؤها بواسطة "
"فواتير."
#. module: account_asset #. module: account_asset
#: view:account.asset.asset:0 #: view:account.asset.asset:0
@ -733,25 +747,25 @@ msgstr "شهر- ١"
#. module: account_asset #. module: account_asset
#: model:ir.model,name:account_asset.model_account_asset_depreciation_line #: model:ir.model,name:account_asset.model_account_asset_depreciation_line
msgid "Asset depreciation line" msgid "Asset depreciation line"
msgstr "" msgstr "أصل خط إستهلاك"
#. module: account_asset #. module: account_asset
#: field:account.asset.asset,category_id:0 view:account.asset.category:0 #: field:account.asset.asset,category_id:0 view:account.asset.category:0
#: field:asset.asset.report,asset_category_id:0 #: field:asset.asset.report,asset_category_id:0
#: model:ir.model,name:account_asset.model_account_asset_category #: model:ir.model,name:account_asset.model_account_asset_category
msgid "Asset category" msgid "Asset category"
msgstr "" msgstr "فئة أصول"
#. module: account_asset #. module: account_asset
#: view:asset.asset.report:0 #: view:asset.asset.report:0
msgid "Assets purchased in last month" msgid "Assets purchased in last month"
msgstr "" msgstr "أصول مشتراه في الشهر الماضي"
#. module: account_asset #. module: account_asset
#: code:addons/account_asset/wizard/wizard_asset_compute.py:49 #: code:addons/account_asset/wizard/wizard_asset_compute.py:49
#, python-format #, python-format
msgid "Created Asset Moves" msgid "Created Asset Moves"
msgstr "" msgstr "إنشاء حركات الأصول"
#. module: account_asset #. module: account_asset
#: constraint:account.move.line:0 #: constraint:account.move.line:0
@ -765,11 +779,14 @@ msgid ""
"search can also be used to personalise your Assets reports and so, match " "search can also be used to personalise your Assets reports and so, match "
"this analysis to your needs;" "this analysis to your needs;"
msgstr "" msgstr ""
"من هذا التقرير, يمكنك أخذ فكرة عامة عن جميع الأستهلاك كما يمكن أيضا َ "
"استخدام أداة البحث لإضفاء الطابع الشخصي الخاص بك علي تقارير الأصول وغير ذلك, "
"طابق هذه التحليلات مع الأحتياجات الخاصة بك"
#. module: account_asset #. module: account_asset
#: help:account.asset.category,method_period:0 #: help:account.asset.category,method_period:0
msgid "State here the time between 2 depreciations, in months" msgid "State here the time between 2 depreciations, in months"
msgstr "" msgstr "أذكر الوقت بين ٢ تخفيضات، في الأشهر"
#. module: account_asset #. module: account_asset
#: field:account.asset.asset,method_number:0 #: field:account.asset.asset,method_number:0
@ -780,28 +797,28 @@ msgstr ""
#: selection:account.asset.history,method_time:0 #: selection:account.asset.history,method_time:0
#: field:asset.modify,method_number:0 #: field:asset.modify,method_number:0
msgid "Number of Depreciations" msgid "Number of Depreciations"
msgstr "" msgstr "عدد التلفيات أو عدد الأستهلاكات"
#. module: account_asset #. module: account_asset
#: view:account.asset.asset:0 #: view:account.asset.asset:0
msgid "Create Move" msgid "Create Move"
msgstr "" msgstr "إيجاد تحرك"
#. module: account_asset #. module: account_asset
#: view:asset.depreciation.confirmation.wizard:0 #: view:asset.depreciation.confirmation.wizard:0
msgid "Post Depreciation Lines" msgid "Post Depreciation Lines"
msgstr "" msgstr "إضافة خطوط الأستهلاك"
#. module: account_asset #. module: account_asset
#: view:account.asset.asset:0 #: view:account.asset.asset:0
msgid "Confirm Asset" msgid "Confirm Asset"
msgstr "" msgstr "تأكيد الأصول"
#. module: account_asset #. module: account_asset
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_tree #: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_tree
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_tree #: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_tree
msgid "Asset Hierarchy" msgid "Asset Hierarchy"
msgstr "" msgstr "هرمية الأصول"
#~ msgid "Child assets" #~ msgid "Child assets"
#~ msgstr "أصل فرعي" #~ msgstr "أصل فرعي"
@ -877,3 +894,6 @@ msgstr ""
#~ msgid "Analytic information" #~ msgid "Analytic information"
#~ msgstr "معلومات تحليلية" #~ msgstr "معلومات تحليلية"
#~ msgid "Accounting information"
#~ msgstr "معلومات محاسبية"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:38+0000\n" "X-Launchpad-Export-Date: 2012-08-09 05:00+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_asset #. module: account_asset
#: view:account.asset.asset:0 #: view:account.asset.asset:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:38+0000\n" "X-Launchpad-Export-Date: 2012-08-09 05:00+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
"X-Poedit-Language: Czech\n" "X-Poedit-Language: Czech\n"
#. module: account_asset #. module: account_asset

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:38+0000\n" "X-Launchpad-Export-Date: 2012-08-09 05:00+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_asset #. module: account_asset
#: view:account.asset.asset:0 #: view:account.asset.asset:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:38+0000\n" "X-Launchpad-Export-Date: 2012-08-09 05:00+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15761)\n"
#. module: account_asset #. module: account_asset
#: view:account.asset.asset:0 #: view:account.asset.asset:0

Some files were not shown because too many files have changed in this diff Show More