[MERGE] merge with lp:openobject-addons

bzr revid: nco@tinyerp.com-20120822105721-7a050l7opj4k10v1
This commit is contained in:
Nimesh (Open ERP) 2012-08-22 16:27:21 +05:30
commit 2ebf9e89fa
7147 changed files with 195824 additions and 130355 deletions

View File

@ -19,10 +19,10 @@
#
##############################################################################
import partner
import account
import installer
import project
import partner
import account_invoice
import account_bank_statement
import account_bank

View File

@ -29,25 +29,23 @@ Accounting and Financial Management.
Financial and accounting module that covers:
--------------------------------------------
General accountings
Cost / Analytic accounting
Third party accounting
Taxes management
Budgets
Customer and Supplier Invoices
Bank statements
Reconciliation process by partner
* General Accounting
* Cost/Analytic accounting
* Third party accounting
* Taxes management
* Budgets
* Customer and Supplier Invoices
* Bank statements
* Reconciliation process by partner
Creates a dashboard for accountants that includes:
--------------------------------------------------
* List of Customer Invoice to Approve
* Company Analysis
* Graph of Aged Receivables
* Graph of Treasury
* List of Customer Invoice to Approve
* Company Analysis
* Graph of Treasury
The processes like maintaining of general ledger is done through the defined financial Journals (entry move line or
grouping is maintained through journal) for a particular financial year and for preparation of vouchers there is a
module named account_voucher.
The processes like maintaining of general ledger is done through the defined financial Journals (entry move line orgrouping is maintained through journal) for a particular
financial year and for preparation of vouchers there is a module named account_voucher.
""",
'website': 'http://www.openerp.com',
'images' : ['images/accounts.jpeg','images/bank_statement.jpeg','images/cash_register.jpeg','images/chart_of_accounts.jpeg','images/customer_invoice.jpeg','images/journal_entries.jpeg'],
@ -99,6 +97,7 @@ module named account_voucher.
'wizard/account_reconcile_partner_process_view.xml',
'wizard/account_automatic_reconcile_view.xml',
'wizard/account_financial_report_view.xml',
'wizard/pos_box.xml',
'project/wizard/project_account_analytic_line_view.xml',
'account_end_fy.xml',
'account_invoice_view.xml',
@ -145,8 +144,8 @@ module named account_voucher.
'test/account_use_model.yml',
'test/account_validate_account_move.yml',
'test/account_fiscalyear_close.yml',
'test/account_bank_statement.yml',
'test/account_cash_statement.yml',
#'test/account_bank_statement.yml',
#'test/account_cash_statement.yml',
'test/test_edi_invoice.yml',
'test/account_report.yml',
'test/account_fiscalyear_close_state.yml', #last test, as it will definitively close the demo fiscalyear

View File

@ -29,6 +29,8 @@ import pooler
from osv import fields, osv
import decimal_precision as dp
from tools.translate import _
from tools.float_utils import float_round
_logger = logging.getLogger(__name__)
def check_cycle(self, cr, uid, ids, context=None):
@ -101,7 +103,7 @@ class account_payment_term_line(osv.osv):
'value': fields.selection([('procent', 'Percent'),
('balance', 'Balance'),
('fixed', 'Fixed Amount')], 'Valuation',
required=True, help="""Select here the kind of valuation related to this payment term line. Note that you should have your last line with the type 'Balance' to ensure that the whole amount will be threated."""),
required=True, help="""Select here the kind of valuation related to this payment term line. Note that you should have your last line with the type 'Balance' to ensure that the whole amount will be treated."""),
'value_amount': fields.float('Amount To Pay', digits_compute=dp.get_precision('Payment Term'), help="For percent enter a ratio between 0-1."),
'days': fields.integer('Number of Days', required=True, help="Number of days to add before computation of the day of month." \
@ -123,7 +125,7 @@ class account_payment_term_line(osv.osv):
return True
_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()
@ -134,7 +136,7 @@ class account_account_type(osv.osv):
def _get_current_report_type(self, cr, uid, ids, name, arg, context=None):
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 = {}
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),
@ -152,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):
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
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),
@ -177,7 +179,7 @@ class account_account_type(osv.osv):
'Balance' will generally be used for cash accounts.
'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."""),
'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','/'),
('income', _('Profit & Loss (Income account)')),
('expense', _('Profit & Loss (Expense account)')),
@ -313,8 +315,8 @@ class account_account(osv.osv):
cr.execute(request, params)
_logger.debug('Status: %s',(cr.statusmessage))
for res in cr.dictfetchall():
accounts[res['id']] = res
for row in cr.dictfetchall():
accounts[row['id']] = row
# consolidate accounts with direct children
children_and_consolidated.reverse()
@ -402,12 +404,12 @@ class account_account(osv.osv):
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)
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')
pids = period_obj.search(cr, uid, [('special','=',True),('company_id','=',account.company_id.id)], context=context)
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_id = move_obj.search(cr, uid, [
@ -424,7 +426,7 @@ class account_account(osv.osv):
}, context=context)
else:
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'
move_id = move_obj.create(cr, uid, {
'name': _('Opening Balance'),
@ -474,7 +476,7 @@ class account_account(osv.osv):
'shortcut': fields.char('Shortcut', size=12),
'tax_ids': fields.many2many('account.tax', 'account_account_tax_default_rel',
'account_id', 'tax_id', 'Default Taxes'),
'note': fields.text('Note'),
'note': fields.text('Internal Notes'),
'company_currency_id': fields.function(_get_company_currency, type='many2one', relation='res.currency', string='Company Currency'),
'company_id': fields.many2one('res.company', 'Company', required=True),
'active': fields.boolean('Active', select=2, help="If the active field is set to False, it will allow you to hide the account without removing it."),
@ -539,9 +541,9 @@ class account_account(osv.osv):
return True
_constraints = [
(_check_recursion, 'Error ! You can not 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_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_recursion, 'Error!\nYou cannot create recursive accounts.', ['parent_id']),
(_check_type, 'Configuration Error!\nYou cannot define children to an account with internal type different of "View".', ['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 = [
('code_company_uniq', 'unique (code,company_id)', 'The code of the account must be unique per company !')
@ -617,14 +619,14 @@ class account_account(osv.osv):
if line_obj.search(cr, uid, [('account_id', 'in', account_ids)]):
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':
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
value = 'account.account,' + str(ids[0])
partner_prop_acc = self.pool.get('ir.property').search(cr, uid, [('value_reference','=',value)], context=context)
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
def _check_allow_type_change(self, cr, uid, ids, new_type, context=None):
@ -637,10 +639,10 @@ class account_account(osv.osv):
if line_obj.search(cr, uid, [('account_id', 'in', account_ids)]):
#Check for 'Closed' type
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
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
def write(self, cr, uid, ids, vals, context=None):
@ -659,7 +661,7 @@ class account_account(osv.osv):
# 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'])]:
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']:
self._check_moves(cr, uid, ids, "write", context=context)
if 'type' in vals.keys():
@ -714,6 +716,7 @@ class account_journal(osv.osv):
_name = "account.journal"
_description = "Journal"
_columns = {
'with_last_closing_balance' : fields.boolean('Opening With Last Closing Balance'),
'name': fields.char('Journal Name', size=64, required=True),
'code': fields.char('Code', size=5, required=True, help="The code will be displayed on reports."),
'type': fields.selection([('sale', 'Sale'),('sale_refund','Sale Refund'), ('purchase', 'Purchase'), ('purchase_refund','Purchase Refund'), ('cash', 'Cash'), ('bank', 'Bank and Cheques'), ('general', 'General'), ('situation', 'Opening/Closing Situation')], 'Type', size=32, required=True,
@ -727,19 +730,24 @@ 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."),
'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"),
'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"),
'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 informatin 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),
'user_id': fields.many2one('res.users', 'User', help="The user responsible for this journal"),
'groups_id': fields.many2many('res.groups', 'account_journal_group_rel', 'journal_id', 'group_id', 'Groups'),
'currency': fields.many2one('res.currency', 'Currency', help='The currency used to enter statement'),
'entry_posted': fields.boolean('Skip \'Draft\' State for Manual Entries', help='Check this box if you don\'t want new journal entries to pass through the \'draft\' state and instead goes directly to the \'posted state\' without any manual validation. \nNote that journal entries that are automatically created by the system are always skipping that state.'),
'company_id': fields.many2one('res.company', 'Company', required=True, select=1, help="Company related to this journal"),
'allow_date':fields.boolean('Check Date in Period', help= 'If set to True then do not accept the entry if the entry date is not into the period dates'),
'profit_account_id' : fields.many2one('account.account', 'Profit Account'),
'loss_account_id' : fields.many2one('account.account', 'Loss Account'),
'internal_account_id' : fields.many2one('account.account', 'Internal Transfers Account', select=1),
}
_defaults = {
'with_last_closing_balance' : False,
'user_id': lambda self, cr, uid, context: uid,
'company_id': lambda self, cr, uid, c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
}
@ -760,7 +768,7 @@ class account_journal(osv.osv):
return True
_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):
@ -782,7 +790,7 @@ class account_journal(osv.osv):
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)])
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)
def create_sequence(self, cr, uid, vals, context=None):
@ -907,7 +915,7 @@ class account_fiscalyear(osv.osv):
return True
_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):
@ -958,7 +966,7 @@ class account_fiscalyear(osv.osv):
ids = self.search(cr, uid, args, context=context)
if not ids:
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:
return []
return ids
@ -1024,8 +1032,8 @@ class account_period(osv.osv):
return True
_constraints = [
(_check_duration, 'Error ! The duration of the Period(s) is/are invalid. ', ['date_stop']),
(_check_year_limit, 'Invalid period ! Some periods overlap or the date period is not in the scope of the fiscal year. ', ['date_stop'])
(_check_duration, 'Error!\nThe duration of the Period(s) is/are invalid.', ['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):
@ -1047,7 +1055,7 @@ class account_period(osv.osv):
args.append(('company_id', '=', company_id))
ids = self.search(cr, uid, args, context=context)
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
def action_draft(self, cr, uid, ids, *args):
@ -1072,7 +1080,7 @@ class account_period(osv.osv):
if 'company_id' in vals:
move_lines = self.pool.get('account.move.line').search(cr, uid, [('period_id', 'in', ids)])
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)
def build_ctx_periods(self, cr, uid, period_from_id, period_to_id):
@ -1085,9 +1093,9 @@ class account_period(osv.osv):
period_date_stop = period_to.date_stop
company2_id = period_to.company_id.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:
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).
if period_from.special:
return self.search(cr, uid, [('date_start', '>=', period_date_start), ('date_stop', '<=', period_date_stop), ('company_id', '=', company1_id)])
@ -1126,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))
res = cr.fetchall()
if res:
raise osv.except_osv(_('Error !'), _('You can not modify/delete a journal with entries for this period !'))
raise osv.except_osv(_('Error!'), _('You cannot modify/delete a journal with entries for this period.'))
return True
def write(self, cr, uid, ids, vals, context=None):
@ -1263,7 +1271,7 @@ class account_move(osv.osv):
'period_id': fields.many2one('account.period', 'Period', required=True, states={'posted':[('readonly',True)]}),
'journal_id': fields.many2one('account.journal', 'Journal', required=True, states={'posted':[('readonly',True)]}),
'state': fields.selection([('draft','Unposted'), ('posted','Posted')], 'Status', required=True, readonly=True,
help='All manually created new journal entries are usually in the state \'Unposted\', but you can set the option to skip that state on the related journal. In that case, they will be behave as journal entries automatically created by the system on document validation (invoices, bank statements...) and will be created in \'Posted\' state.'),
help='All manually created new journal entries are usually in the state \'Unposted\', but you can set the option to skip that state on the related journal. In that case, they will behave as journal entries automatically created by the system on document validation (invoices, bank statements...) and will be created in \'Posted\' state.'),
'line_id': fields.one2many('account.move.line', 'move_id', 'Entries', states={'posted':[('readonly',True)]}),
'to_check': fields.boolean('To Review', help='Check this box if you are unsure of that journal entry and if you want to note it as \'to be reviewed\' by an accounting expert.'),
'partner_id': fields.related('line_id', 'partner_id', type="many2one", relation="res.partner", string="Partner", store=True),
@ -1295,7 +1303,7 @@ class account_move(osv.osv):
_constraints = [
(_check_centralisation,
'You can not create more than one move per period on centralized journal',
'You cannot create more than one move per period on a centralized journal.',
['journal_id']),
]
@ -1306,7 +1314,7 @@ class account_move(osv.osv):
valid_moves = self.validate(cr, uid, ids, context)
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')
for move in self.browse(cr, uid, valid_moves, context=context):
if move.name =='/':
@ -1320,7 +1328,7 @@ class account_move(osv.osv):
c = {'fiscalyear_id': move.period_id.fiscalyear_id.id}
new_name = obj_sequence.next_by_id(cr, uid, journal.sequence_id.id, c)
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:
self.write(cr, uid, [move.id], {'name':new_name})
@ -1343,14 +1351,14 @@ class account_move(osv.osv):
if not top_common:
top_common = top_account
elif top_account.id != top_common.id:
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))
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))
return self.post(cursor, user, ids, context=context)
def button_cancel(self, cr, uid, ids, context=None):
for line in self.browse(cr, uid, ids, context=context):
if not line.journal_id.update_posted:
raise osv.except_osv(_('Error !'), _('You can not modify a posted entry of this journal !\nYou should 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:
cr.execute('UPDATE account_move '\
'SET state=%s '\
@ -1437,8 +1445,8 @@ class account_move(osv.osv):
obj_move_line = self.pool.get('account.move.line')
for move in self.browse(cr, uid, ids, context=context):
if move['state'] != 'draft':
raise osv.except_osv(_('UserError'),
_('You can not delete a posted journal entry "%s"!') % \
raise osv.except_osv(_('User Error!'),
_('You cannot delete a posted journal entry "%s".') % \
move['name'])
line_ids = map(lambda x: x.id, move.line_id)
context['journal_id'] = move.journal_id.id
@ -1466,16 +1474,16 @@ class account_move(osv.osv):
account_id = move.journal_id.default_debit_account_id.id
mode2 = 'debit'
if not account_id:
raise osv.except_osv(_('UserError'),
_('There is no default default debit account defined \n' \
'on journal "%s"') % move.journal_id.name)
raise osv.except_osv(_('User Error!'),
_('There is no default debit account defined \n' \
'on journal "%s".') % move.journal_id.name)
else:
account_id = move.journal_id.default_credit_account_id.id
mode2 = 'credit'
if not account_id:
raise osv.except_osv(_('UserError'),
_('There is no default default credit account defined \n' \
'on journal "%s"') % move.journal_id.name)
raise osv.except_osv(_('User Error!'),
_('There is no default credit account defined \n' \
'on journal "%s".') % move.journal_id.name)
# find the first line of this move with the current mode
# or create it if it doesn't exist
@ -1569,11 +1577,11 @@ class account_move(osv.osv):
if not company_id:
company_id = line.account_id.company_id.id
if not company_id == line.account_id.company_id.id:
raise osv.except_osv(_('Error'), _("Couldn't create move between different companies"))
raise osv.except_osv(_('Error!'), _("Cannot create moves for different companies."))
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):
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 the move is balanced
@ -1782,7 +1790,7 @@ class account_tax_code(osv.osv):
'line_ids': fields.one2many('account.move.line', 'tax_code_id', 'Lines'),
'company_id': fields.many2one('res.company', 'Company', required=True),
'sign': fields.float('Coefficent for parent', required=True, help='You can specify here the coefficient that will be used when consolidating the amount of this case into its parent. For example, set 1/-1 if you want to add/substract it.'),
'notprintable':fields.boolean("Not Printable in Invoice", help="Check this box if you don't want any VAT related to this Tax Code to appear on invoices"),
'notprintable':fields.boolean("Not Printable in Invoice", help="Check this box if you don't want any tax related to this tax code to appear on invoices"),
'sequence': fields.integer('Sequence', help="Determine the display order in the report 'Accounting \ Reporting \ Generic Reporting \ Taxes \ Taxes Report'"),
}
@ -1825,7 +1833,7 @@ class account_tax_code(osv.osv):
_check_recursion = check_cycle
_constraints = [
(_check_recursion, 'Error ! You can not create recursive accounts.', ['parent_id'])
(_check_recursion, 'Error!\nYou cannot create recursive accounts.', ['parent_id'])
]
_order = 'code'
@ -1862,8 +1870,10 @@ class account_tax(osv.osv):
'applicable_type': fields.selection( [('true','Always'), ('code','Given by Python Code')], 'Applicability', required=True,
help="If not applicable (computed through a Python code), the tax won't appear on the invoice."),
'domain':fields.char('Domain', size=32, help="This field is only used if you develop your own module allowing developers to create specific taxes in a custom domain."),
'account_collected_id':fields.many2one('account.account', 'Invoice Tax Account'),
'account_paid_id':fields.many2one('account.account', 'Refund Tax Account'),
'account_collected_id':fields.many2one('account.account', 'Invoice Tax Account', help="Set the account that will be set by default on invoice tax lines for invoices. Leave empty to use the expense account."),
'account_paid_id':fields.many2one('account.account', 'Refund Tax Account', help="Set the account that will be set by default on invoice tax lines for refunds. Leave empty to use the expense account."),
'account_analytic_collected_id':fields.many2one('account.analytic.account', 'Invoice Tax Analytic Account', help="Set the analytic account that will be used by default on the invoice tax lines for invoices. Leave empty if you don't want to use an analytic account on the invoice tax lines by default."),
'account_analytic_paid_id':fields.many2one('account.analytic.account', 'Refund Tax Analytic Account', help="Set the analytic account that will be used by default on the invoice tax lines for refunds. Leave empty if you don't want to use an analytic account on the invoice tax lines by default."),
'parent_id':fields.many2one('account.tax', 'Parent Tax Account', select=True),
'child_ids':fields.one2many('account.tax', 'parent_id', 'Child Tax Accounts'),
'child_depend':fields.boolean('Tax on Children', help="Set if the tax computation is based on the computation of child taxes rather than on the total amount."),
@ -1872,17 +1882,17 @@ class account_tax(osv.osv):
'python_applicable':fields.text('Python Code'),
#
# Fields used for the VAT declaration
# Fields used for the Tax declaration
#
'base_code_id': fields.many2one('account.tax.code', 'Account Base Code', help="Use this code for the VAT declaration."),
'tax_code_id': fields.many2one('account.tax.code', 'Account Tax Code', help="Use this code for the VAT declaration."),
'base_code_id': fields.many2one('account.tax.code', 'Account Base Code', help="Use this code for the tax declaration."),
'tax_code_id': fields.many2one('account.tax.code', 'Account Tax Code', help="Use this code for the tax declaration."),
'base_sign': fields.float('Base Code Sign', help="Usually 1 or -1."),
'tax_sign': fields.float('Tax Code Sign', help="Usually 1 or -1."),
# Same fields for refund invoices
'ref_base_code_id': fields.many2one('account.tax.code', 'Refund Base Code', help="Use this code for the VAT declaration."),
'ref_tax_code_id': fields.many2one('account.tax.code', 'Refund Tax Code', help="Use this code for the VAT declaration."),
'ref_base_code_id': fields.many2one('account.tax.code', 'Refund Base Code', help="Use this code for the tax declaration."),
'ref_tax_code_id': fields.many2one('account.tax.code', 'Refund Tax Code', help="Use this code for the tax declaration."),
'ref_base_sign': fields.float('Base Code Sign', help="Usually 1 or -1."),
'ref_tax_sign': fields.float('Tax Code Sign', help="Usually 1 or -1."),
'include_base_amount': fields.boolean('Included in base amount', help="Indicates if the amount of tax must be included in the base amount for the computation of the next taxes"),
@ -2001,6 +2011,8 @@ class account_tax(osv.osv):
'name':tax.description and tax.description + " - " + tax.name or tax.name,
'account_collected_id':tax.account_collected_id.id,
'account_paid_id':tax.account_paid_id.id,
'account_analytic_collected_id': tax.account_analytic_collected_id.id,
'account_analytic_paid_id': tax.account_analytic_paid_id.id,
'base_code_id': tax.base_code_id.id,
'ref_base_code_id': tax.ref_base_code_id.id,
'sequence': tax.sequence,
@ -2066,8 +2078,21 @@ class account_tax(osv.osv):
'taxes': [] # List of taxes, see compute for the format
}
"""
# By default, for each tax, tax amount will first be computed
# and rounded at the 'Account' decimal precision for each
# PO/SO/invoice line and then these rounded amounts will be
# summed, leading to the total amount for that tax. But, if the
# company has tax_calculation_rounding_method = round_globally,
# we still follow the same method, but we use a much larger
# precision when we round the tax amount for each line (we use
# the 'Account' decimal precision + 5), and that way it's like
# rounding after the sum of the tax amounts of each line
precision = self.pool.get('decimal.precision').precision_get(cr, uid, 'Account')
totalin = totalex = round(price_unit * quantity, precision)
tax_compute_precision = precision
if taxes and taxes[0].company_id.tax_calculation_rounding_method == 'round_globally':
tax_compute_precision += 5
totalin = totalex = float_round(price_unit * quantity, precision)
tin = []
tex = []
for tax in taxes:
@ -2075,7 +2100,7 @@ class account_tax(osv.osv):
tex.append(tax)
else:
tin.append(tax)
tin = self.compute_inv(cr, uid, tin, price_unit, quantity, product=product, partner=partner)
tin = self.compute_inv(cr, uid, tin, price_unit, quantity, product=product, partner=partner, precision=tax_compute_precision)
for r in tin:
totalex -= r.get('amount', 0.0)
totlex_qty = 0.0
@ -2083,7 +2108,7 @@ class account_tax(osv.osv):
totlex_qty = totalex/quantity
except:
pass
tex = self._compute(cr, uid, tex, totlex_qty, quantity,product=product, partner=partner)
tex = self._compute(cr, uid, tex, totlex_qty, quantity, product=product, partner=partner, precision=tax_compute_precision)
for r in tex:
totalin += r.get('amount', 0.0)
return {
@ -2093,10 +2118,10 @@ class account_tax(osv.osv):
}
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)
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, precision=None):
"""
Compute tax values for given PRICE_UNIT, QUANTITY and a buyer/seller ADDRESS_ID.
@ -2105,14 +2130,15 @@ class account_tax(osv.osv):
tax = {'name':'', 'amount':0.0, 'account_collected_id':1, 'account_paid_id':2}
one tax for each tax id in IDS and their children
"""
if not precision:
precision = self.pool.get('decimal.precision').precision_get(cr, uid, 'Account')
res = self._unit_compute(cr, uid, taxes, price_unit, product, partner, quantity)
total = 0.0
precision_pool = self.pool.get('decimal.precision')
for r in res:
if r.get('balance',False):
r['amount'] = round(r.get('balance', 0.0) * quantity, precision_pool.precision_get(cr, uid, 'Account')) - total
r['amount'] = round(r.get('balance', 0.0) * quantity, precision) - total
else:
r['amount'] = round(r.get('amount', 0.0) * quantity, precision_pool.precision_get(cr, uid, 'Account'))
r['amount'] = round(r.get('amount', 0.0) * quantity, precision)
total += r['amount']
return res
@ -2160,6 +2186,8 @@ class account_tax(osv.osv):
'amount': amount,
'account_collected_id': tax.account_collected_id.id,
'account_paid_id': tax.account_paid_id.id,
'account_analytic_collected_id': tax.account_analytic_collected_id.id,
'account_analytic_paid_id': tax.account_analytic_paid_id.id,
'base_code_id': tax.base_code_id.id,
'ref_base_code_id': tax.ref_base_code_id.id,
'sequence': tax.sequence,
@ -2188,25 +2216,25 @@ class account_tax(osv.osv):
r['todo'] = 0
return res
def compute_inv(self, cr, uid, taxes, price_unit, quantity, product=None, partner=None):
def compute_inv(self, cr, uid, taxes, price_unit, quantity, product=None, partner=None, precision=None):
"""
Compute tax values for given PRICE_UNIT, QUANTITY and a buyer/seller ADDRESS_ID.
Price Unit is a VAT included price
Price Unit is a Tax included price
RETURN:
[ tax ]
tax = {'name':'', 'amount':0.0, 'account_collected_id':1, 'account_paid_id':2}
one tax for each tax id in IDS and their children
"""
if not precision:
precision = self.pool.get('decimal.precision').precision_get(cr, uid, 'Account')
res = self._unit_compute_inv(cr, uid, taxes, price_unit, product, partner=None)
total = 0.0
obj_precision = self.pool.get('decimal.precision')
for r in res:
prec = obj_precision.precision_get(cr, uid, 'Account')
if r.get('balance',False):
r['amount'] = round(r['balance'] * quantity, prec) - total
r['amount'] = round(r['balance'] * quantity, precision) - total
else:
r['amount'] = round(r['amount'] * quantity, prec)
r['amount'] = round(r['amount'] * quantity, precision)
total += r['amount']
return res
@ -2279,7 +2307,7 @@ class account_model(osv.osv):
date_maturity = context.get('date',time.strftime('%Y-%m-%d'))
if line.date_maturity == 'partner':
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))
if line.partner_id.property_payment_term:
payment_term_id = line.partner_id.property_payment_term.id
@ -2493,8 +2521,8 @@ class account_account_template(osv.osv):
_check_recursion = check_cycle
_constraints = [
(_check_recursion, 'Error ! You can not 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_recursion, 'Error!\nYou cannot create recursive account templates.', ['parent_id']),
(_check_type, 'Configuration Error!\nYou cannot define children to an account that has internal type other than "View".', ['type']),
]
@ -2595,7 +2623,7 @@ class account_add_tmpl_wizard(osv.osv_memory):
ptids = tmpl_obj.read(cr, uid, [tids[0]['parent_id'][0]], ['code'])
res = None
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'])])
return res and res[0] or False
@ -2647,7 +2675,7 @@ class account_tax_code_template(osv.osv):
'parent_id': fields.many2one('account.tax.code.template', 'Parent Code', select=True),
'child_ids': fields.one2many('account.tax.code.template', 'parent_id', 'Child Codes'),
'sign': fields.float('Sign For Parent', required=True),
'notprintable':fields.boolean("Not Printable in Invoice", help="Check this box if you don't want any VAT related to this Tax Code to appear on invoices"),
'notprintable':fields.boolean("Not Printable in Invoice", help="Check this box if you don't want any tax related to this tax Code to appear on invoices."),
}
_defaults = {
@ -2701,7 +2729,7 @@ class account_tax_code_template(osv.osv):
_check_recursion = check_cycle
_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'
account_tax_code_template()
@ -2714,7 +2742,7 @@ class account_chart_template(osv.osv):
_columns={
'name': fields.char('Name', size=64, required=True),
'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."),
'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)]),
@ -2762,17 +2790,17 @@ class account_tax_template(osv.osv):
'python_applicable':fields.text('Python Code'),
#
# Fields used for the VAT declaration
# Fields used for the Tax declaration
#
'base_code_id': fields.many2one('account.tax.code.template', 'Base Code', help="Use this code for the VAT declaration."),
'tax_code_id': fields.many2one('account.tax.code.template', 'Tax Code', help="Use this code for the VAT declaration."),
'base_code_id': fields.many2one('account.tax.code.template', 'Base Code', help="Use this code for the tax declaration."),
'tax_code_id': fields.many2one('account.tax.code.template', 'Tax Code', help="Use this code for the tax declaration."),
'base_sign': fields.float('Base Code Sign', help="Usually 1 or -1."),
'tax_sign': fields.float('Tax Code Sign', help="Usually 1 or -1."),
# Same fields for refund invoices
'ref_base_code_id': fields.many2one('account.tax.code.template', 'Refund Base Code', help="Use this code for the VAT declaration."),
'ref_tax_code_id': fields.many2one('account.tax.code.template', 'Refund Tax Code', help="Use this code for the VAT declaration."),
'ref_base_code_id': fields.many2one('account.tax.code.template', 'Refund Base Code', help="Use this code for the tax declaration."),
'ref_tax_code_id': fields.many2one('account.tax.code.template', 'Refund Tax Code', help="Use this code for the tax declaration."),
'ref_base_sign': fields.float('Base Code Sign', help="Usually 1 or -1."),
'ref_tax_sign': fields.float('Tax Code Sign', help="Usually 1 or -1."),
'include_base_amount': fields.boolean('Include in Base Amount', help="Set if the amount of tax must be included in the base amount before computing the next taxes."),
@ -2998,7 +3026,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
return res
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')
if 'bank_accounts_id' in fields:
@ -3074,7 +3102,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
# Get the analytic journal
data = False
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'):
pass
elif journal_type == 'general':
@ -3100,7 +3128,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
if journal_type in ('general', 'situation'):
data = obj_data.get_object_reference(cr, uid, 'account', 'account_journal_view')
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:
data = obj_data.get_object_reference(cr, uid, 'account', 'account_sp_journal_view')
return data and data[1] or False
@ -3325,19 +3353,11 @@ class wizard_multi_charts_accounts(osv.osv_memory):
# Create Bank journals
self._create_bank_journals_from_o2m(cr, uid, obj_wizard, company_id, acc_template_ref, context=context)
action = {
'type': 'ir.actions.act_window',
'view_type': 'form',
'view_mode': 'form',
'res_model': 'board.board',
'view_id': self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account', 'board_account_form')[1],
'menu_id': self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account', 'menu_finance')[1]
}
return action
return {}
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.
:param line: dictionary containing the values encoded by the user related to his bank account
@ -3355,9 +3375,9 @@ class wizard_multi_charts_accounts(osv.osv_memory):
tmp = obj_data.get_object_reference(cr, uid, 'account', 'account_journal_bank_view')
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,
# 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
for num in xrange(current_num, 100):
# journal_code has a maximal size of 5, hence we can enforce the boundary num < 100
@ -3366,7 +3386,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
if not ids:
break
else:
raise osv.except_osv(_('Error'), _('Cannot generate an unused journal code.'))
raise osv.except_osv(_('Error!'), _('Cannot generate an unused journal code.'))
vals = {
'name': line['acc_name'],
@ -3444,7 +3464,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
journal_data.append(vals)
ref_acc_bank = obj_wizard.chart_template_id.bank_account_view_id
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
for line in journal_data:

View File

@ -34,8 +34,8 @@ class account_analytic_line(osv.osv):
'journal_id': fields.many2one('account.analytic.journal', 'Analytic Journal', required=True, ondelete='restrict', select=True),
'code': fields.char('Code', size=8),
'ref': fields.char('Ref.', size=64),
'currency_id': fields.related('move_id', 'currency_id', type='many2one', relation='res.currency', string='Account currency', store=True, help="The related account currency if not equal to the company one.", readonly=True),
'amount_currency': fields.related('move_id', 'amount_currency', type='float', string='Amount currency', store=True, help="The amount expressed in the related account currency if not equal to the company one.", readonly=True),
'currency_id': fields.related('move_id', 'currency_id', type='many2one', relation='res.currency', string='Account Currency', store=True, help="The related account currency if not equal to the company one.", readonly=True),
'amount_currency': fields.related('move_id', 'amount_currency', type='float', string='Amount Currency', store=True, help="The amount expressed in the related account currency if not equal to the company one.", readonly=True),
}
_defaults = {
@ -87,18 +87,18 @@ class account_analytic_line(osv.osv):
if not a:
a = prod.categ_id.property_account_expense_categ.id
if not a:
raise osv.except_osv(_('Error !'),
raise osv.except_osv(_('Error!'),
_('There is no expense account defined ' \
'for this product: "%s" (id:%d)') % \
'for this product: "%s" (id:%d).') % \
(prod.name, prod.id,))
else:
a = prod.product_tmpl_id.property_account_income.id
if not a:
a = prod.categ_id.property_account_income_categ.id
if not a:
raise osv.except_osv(_('Error !'),
raise osv.except_osv(_('Error!'),
_('There is no income account defined ' \
'for this product: "%s" (id:%d)') % \
'for this product: "%s" (id:%d).') % \
(prod.name, prod_id,))
flag = False

View File

@ -43,6 +43,12 @@ class bank(osv.osv):
"Return the name to use when creating a bank journal"
return (bank.bank_name or '') + ' ' + bank.acc_number
def _prepare_name_get(self, cr, uid, bank_type_obj, bank_obj, context=None):
"""Add ability to have %(currency_name)s in the format_layout of
res.partner.bank.type"""
bank_obj._data[bank_obj.id]['currency_name'] = bank_obj.currency_id and bank_obj.currency_id.name or ''
return super(bank, self)._prepare_name_get(cr, uid, bank_type_obj, bank_obj, context=context)
def post_write(self, cr, uid, ids, context={}):
if isinstance(ids, (int, long)):
ids = [ids]

View File

@ -26,24 +26,18 @@ from tools.translate import _
import decimal_precision as dp
class account_bank_statement(osv.osv):
def create(self, cr, uid, vals, context=None):
seq = 0
if 'line_ids' in vals:
new_line_ids = []
for line in vals['line_ids']:
seq += 1
line[2]['sequence'] = seq
for idx, line in enumerate(vals['line_ids']):
line[2]['sequence'] = idx + 1
return super(account_bank_statement, self).create(cr, uid, vals, context=context)
def write(self, cr, uid, ids, vals, context=None):
res = super(account_bank_statement, self).write(cr, uid, ids, vals, context=context)
account_bank_statement_line_obj = self.pool.get('account.bank.statement.line')
for statement in self.browse(cr, uid, ids, context):
seq = 0
for line in statement.line_ids:
seq += 1
account_bank_statement_line_obj.write(cr, uid, [line.id], {'sequence': seq}, context=context)
for idx, line in enumerate(statement.line_ids):
account_bank_statement_line_obj.write(cr, uid, [line.id], {'sequence': idx + 1}, context=context)
return res
def _default_journal_id(self, cr, uid, context=None):
@ -51,45 +45,19 @@ class account_bank_statement(osv.osv):
context = {}
journal_pool = self.pool.get('account.journal')
journal_type = context.get('journal_type', False)
journal_id = False
company_id = self.pool.get('res.company')._company_default_get(cr, uid, 'account.bank.statement',context=context)
if journal_type:
ids = journal_pool.search(cr, uid, [('type', '=', journal_type),('company_id','=',company_id)])
if ids:
journal_id = ids[0]
return journal_id
return ids[0]
return False
def _end_balance(self, cursor, user, ids, name, attr, context=None):
res_currency_obj = self.pool.get('res.currency')
res_users_obj = self.pool.get('res.users')
res = {}
company_currency_id = res_users_obj.browse(cursor, user, user,
context=context).company_id.currency_id.id
statements = self.browse(cursor, user, ids, context=context)
for statement in statements:
for statement in self.browse(cursor, user, ids, context=context):
res[statement.id] = statement.balance_start
currency_id = statement.currency.id
for line in statement.move_line_ids:
if line.debit > 0:
if line.account_id.id == \
statement.journal_id.default_debit_account_id.id:
res[statement.id] += res_currency_obj.compute(cursor,
user, company_currency_id, currency_id,
line.debit, context=context)
else:
if line.account_id.id == \
statement.journal_id.default_credit_account_id.id:
res[statement.id] -= res_currency_obj.compute(cursor,
user, company_currency_id, currency_id,
line.credit, context=context)
if statement.state in ('draft', 'open'):
for line in statement.line_ids:
res[statement.id] += line.amount
for r in res:
res[r] = round(res[r], 2)
for line in statement.line_ids:
res[statement.id] += line.amount
return res
def _get_period(self, cr, uid, context=None):
@ -129,7 +97,7 @@ class account_bank_statement(osv.osv):
_description = "Bank Statement"
_inherit = ['mail.thread']
_columns = {
'name': fields.char('Name', size=64, required=True, states={'draft': [('readonly', False)]}, readonly=True, help='if you give the Name other then /, its created Accounting Entries Move will be with same name as statement name. This allows the statement entries to have the same references than the statement itself'), # readonly for account_cash_statement
'name': fields.char('Reference', size=64, required=True, states={'draft': [('readonly', False)]}, readonly=True, help='if you give the Name other then /, its created Accounting Entries Move will be with same name as statement name. This allows the statement entries to have the same references than the statement itself'), # readonly for account_cash_statement
'date': fields.date('Date', required=True, states={'confirm': [('readonly', True)]}, select=True),
'journal_id': fields.many2one('account.journal', 'Journal', required=True,
readonly=True, states={'draft':[('readonly',False)]}),
@ -141,7 +109,7 @@ class account_bank_statement(osv.osv):
states={'confirm': [('readonly', True)]}),
'balance_end': fields.function(_end_balance,
store = {
'account.bank.statement': (lambda self, cr, uid, ids, c={}: ids, ['line_ids','move_line_ids'], 10),
'account.bank.statement': (lambda self, cr, uid, ids, c={}: ids, ['line_ids','move_line_ids','balance_start'], 10),
'account.bank.statement.line': (_get_statement, ['amount'], 10),
},
string="Computed Balance", help='Balance as calculated based on Starting Balance and transaction lines'),
@ -205,7 +173,158 @@ class account_bank_statement(osv.osv):
def button_dummy(self, cr, uid, ids, context=None):
return self.write(cr, uid, ids, {}, context=context)
def _prepare_move(self, cr, uid, st_line, st_line_number, context=None):
"""Prepare the dict of values to create the move from a
statement line. This method may be overridden to implement custom
move generation (making sure to call super() to establish
a clean extension chain).
:param browse_record st_line: account.bank.statement.line record to
create the move from.
:param char st_line_number: will be used as the name of the generated account move
:return: dict of value to create() the account.move
"""
return {
'journal_id': st_line.statement_id.journal_id.id,
'period_id': st_line.statement_id.period_id.id,
'date': st_line.date,
'name': st_line_number,
'ref': st_line.ref,
}
def _prepare_bank_move_line(self, cr, uid, st_line, move_id, amount, company_currency_id,
context=None):
"""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
overridden to implement custom move generation (making sure to call super() to
establish a clean extension chain).
:param browse_record st_line: account.bank.statement.line record to
create the move from.
:param int/long move_id: ID of the account.move to link the move line
:param float amount: amount of the move line
:param int/long company_currency_id: ID of currency of the concerned company
:return: dict of value to create() the bank account.move.line
"""
anl_id = st_line.analytic_account_id and st_line.analytic_account_id.id or False
debit = ((amount<0) and -amount) or 0.0
credit = ((amount>0) and amount) or 0.0
cur_id = False
amt_cur = False
if st_line.statement_id.currency.id <> company_currency_id:
cur_id = st_line.statement_id.currency.id
if st_line.account_id and st_line.account_id.currency_id and st_line.account_id.currency_id.id <> company_currency_id:
cur_id = st_line.account_id.currency_id.id
if cur_id:
res_currency_obj = self.pool.get('res.currency')
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,
amount_currency=amt_cur, currency_id=cur_id, analytic_id=anl_id, context=context)
return res
def _get_counter_part_account(sefl, cr, uid, st_line, context=None):
"""Retrieve the account to use in the counterpart move.
This method may be overridden to implement custom move generation (making sure to
call super() to establish a clean extension chain).
:param browse_record st_line: account.bank.statement.line record to
create the move from.
:return: int/long of the account.account to use as counterpart
"""
if st_line.amount >= 0:
return st_line.statement_id.journal_id.default_credit_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):
"""Retrieve the partner to use in the counterpart move.
This method may be overridden to implement custom move generation (making sure to
call super() to establish a clean extension chain).
:param browse_record st_line: account.bank.statement.line record to
create the move from.
:return: int/long of the res.partner to use as counterpart
"""
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,
context=None):
"""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
overridden to implement custom move generation (making sure to call super() to
establish a clean extension chain).
:param browse_record st_line: account.bank.statement.line record to
create the move from.
:param int/long move_id: ID of the account.move to link the move line
:param float amount: amount of the move line
:param int/long account_id: ID of account to use as counter part
:param int/long company_currency_id: ID of currency of the concerned company
:return: dict of value to create() the bank account.move.line
"""
account_id = self._get_counter_part_account(cr, uid, st_line, context=context)
partner_id = self._get_counter_part_partner(cr, uid, st_line, context=context)
debit = ((amount > 0) and amount) or 0.0
credit = ((amount < 0) and -amount) or 0.0
cur_id = False
amt_cur = False
if st_line.statement_id.currency.id <> company_currency_id:
amt_cur = st_line.amount
cur_id = st_line.statement_id.currency.id
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,
partner_id = partner_id, context=context)
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,
partner_id = False, context=None):
"""Prepare the dict of values to create the move line from a
statement line. All non-mandatory args will replace the default computed one.
This method may be overridden to implement custom move generation (making sure to
call super() to establish a clean extension chain).
:param browse_record st_line: account.bank.statement.line record to
create the move from.
:param int/long move_id: ID of the account.move to link the move line
:param float debit: debit amount of the move line
:param float credit: credit amount of the move line
:param int/long currency_id: ID of currency of the move line to create
:param float amount_currency: amount of the debit/credit expressed in the currency_id
:param int/long account_id: ID of the account to use in the move line if different
from the statement line account ID
:param int/long analytic_id: ID of analytic account to put on the move line
:param int/long partner_id: ID of the partner to put on the move line
:return: dict of value to create() the account.move.line
"""
acc_id = account_id or st_line.account_id.id
cur_id = currency_id or st_line.statement_id.currency.id
par_id = partner_id or (((st_line.partner_id) and st_line.partner_id.id) or False)
return {
'name': st_line.name,
'date': st_line.date,
'ref': st_line.ref,
'move_id': move_id,
'partner_id': partner_id,
'account_id': acc_id,
'credit': credit,
'debit': debit,
'statement_id': st_line.statement_id.id,
'journal_id': st_line.statement_id.journal_id.id,
'period_id': st_line.statement_id.period_id.id,
'currency_id': cur_id,
'amount_currency': amount_currency,
'analytic_account_id': analytic_id,
}
def create_move_from_st_line(self, cr, uid, st_line_id, company_currency_id, st_line_number, context=None):
"""Create the account move from the statement line.
:param int/long st_line_id: ID of the account.bank.statement.line to create the move from.
:param int/long company_currency_id: ID of the res.currency of the company
:param char st_line_number: will be used as the name of the generated account move
:return: ID of the account.move created
"""
if context is None:
context = {}
res_currency_obj = self.pool.get('res.currency')
@ -217,89 +336,35 @@ class account_bank_statement(osv.osv):
context.update({'date': st_line.date})
move_id = account_move_obj.create(cr, uid, {
'journal_id': st.journal_id.id,
'period_id': st.period_id.id,
'date': st_line.date,
'name': st_line_number,
'ref': st_line.ref,
}, context=context)
move_vals = self._prepare_move(cr, uid, st_line, st_line_number, context=context)
move_id = account_move_obj.create(cr, uid, move_vals, context=context)
account_bank_statement_line_obj.write(cr, uid, [st_line.id], {
'move_ids': [(4, move_id, False)]
})
torec = []
if st_line.amount >= 0:
account_id = st.journal_id.default_credit_account_id.id
else:
account_id = st.journal_id.default_debit_account_id.id
acc_cur = ((st_line.amount<=0) and st.journal_id.default_debit_account_id) or st_line.account_id
context.update({
'res.currency.compute.account': acc_cur,
})
amount = res_currency_obj.compute(cr, uid, st.currency.id,
company_currency_id, st_line.amount, context=context)
val = {
'name': st_line.name,
'date': st_line.date,
'ref': st_line.ref,
'move_id': move_id,
'partner_id': ((st_line.partner_id) and st_line.partner_id.id) or False,
'account_id': (st_line.account_id) and st_line.account_id.id,
'credit': ((amount>0) and amount) or 0.0,
'debit': ((amount<0) and -amount) or 0.0,
'statement_id': st.id,
'journal_id': st.journal_id.id,
'period_id': st.period_id.id,
'currency_id': st.currency.id,
'analytic_account_id': st_line.analytic_account_id and st_line.analytic_account_id.id or False
}
if st.currency.id <> company_currency_id:
amount_cur = res_currency_obj.compute(cr, uid, company_currency_id,
st.currency.id, amount, context=context)
val['amount_currency'] = -amount_cur
if st_line.account_id and st_line.account_id.currency_id and st_line.account_id.currency_id.id <> company_currency_id:
val['currency_id'] = st_line.account_id.currency_id.id
amount_cur = res_currency_obj.compute(cr, uid, company_currency_id,
st_line.account_id.currency_id.id, amount, context=context)
val['amount_currency'] = -amount_cur
move_line_id = account_move_line_obj.create(cr, uid, val, context=context)
bank_move_vals = self._prepare_bank_move_line(cr, uid, st_line, move_id, amount,
company_currency_id, context=context)
move_line_id = account_move_line_obj.create(cr, uid, bank_move_vals, context=context)
torec.append(move_line_id)
# Fill the secondary amount/currency
# if currency is not the same than the company
amount_currency = False
currency_id = False
if st.currency.id <> company_currency_id:
amount_currency = st_line.amount
currency_id = st.currency.id
account_move_line_obj.create(cr, uid, {
'name': st_line.name,
'date': st_line.date,
'ref': st_line.ref,
'move_id': move_id,
'partner_id': ((st_line.partner_id) and st_line.partner_id.id) or False,
'account_id': account_id,
'credit': ((amount < 0) and -amount) or 0.0,
'debit': ((amount > 0) and amount) or 0.0,
'statement_id': st.id,
'journal_id': st.journal_id.id,
'period_id': st.period_id.id,
'amount_currency': amount_currency,
'currency_id': currency_id,
}, context=context)
counterpart_move_vals = self._prepare_counterpart_move_line(cr, uid, st_line, move_id,
amount, company_currency_id, context=context)
account_move_line_obj.create(cr, uid, counterpart_move_vals, context=context)
for line in account_move_line_obj.browse(cr, uid, [x.id for x in
account_move_obj.browse(cr, uid, move_id,
context=context).line_id],
context=context):
if line.state <> 'valid':
raise osv.except_osv(_('Error !'),
raise osv.except_osv(_('Error!'),
_('Journal item "%s" is not valid.') % line.name)
# Bank statements will not consider boolean on journal entry_posted
@ -311,8 +376,8 @@ class account_bank_statement(osv.osv):
def balance_check(self, cr, uid, st_id, journal_type='bank', context=None):
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_cash) < 0.0001)):
raise osv.except_osv(_('Error !'),
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!'),
_('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
@ -336,7 +401,7 @@ class account_bank_statement(osv.osv):
self.balance_check(cr, uid, st.id, journal_type=j_type, context=context)
if (not st.journal_id.default_credit_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.'))
if not st.name == '/':
@ -350,7 +415,7 @@ class account_bank_statement(osv.osv):
for line in st.move_line_ids:
if line.state <> 'valid':
raise osv.except_osv(_('Error !'),
raise osv.except_osv(_('Error!'),
_('The account entries lines are not in valid state.'))
for st_line in st.line_ids:
if st_line.analytic_account_id:
@ -381,13 +446,17 @@ class account_bank_statement(osv.osv):
done.append(st.id)
return self.write(cr, uid, done, {'state':'draft'}, context=context)
def onchange_journal_id(self, cr, uid, statement_id, journal_id, context=None):
def _compute_balance_end_real(self, cr, uid, journal_id, context=None):
cr.execute('SELECT balance_end_real \
FROM account_bank_statement \
WHERE journal_id = %s AND NOT state = %s \
ORDER BY date DESC,id DESC LIMIT 1', (journal_id, 'draft'))
res = cr.fetchone()
balance_start = res and res[0] or 0.0
return res and res[0] or 0.0
def onchange_journal_id(self, cr, uid, statement_id, journal_id, context=None):
balance_start = self._compute_balance_end_real(cr, uid, journal_id, context=context)
journal_data = self.pool.get('account.journal').read(cr, uid, journal_id, ['default_debit_account_id', 'company_id'], context=context)
account_id = journal_data['default_debit_account_id']
company_id = journal_data['company_id']
@ -400,7 +469,7 @@ class account_bank_statement(osv.osv):
if t['state'] in ('draft'):
unlink_ids.append(t['id'])
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)
return True

View File

@ -9,7 +9,6 @@
<record id="view_partner_bank_form_inherit" model="ir.ui.view">
<field name="name">Partner Bank Accounts - Journal</field>
<field name="model">res.partner.bank</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_bank_form"/>
<field name="arch" type="xml">
<group name="bank" position="after">
@ -26,7 +25,6 @@
<record id="view_partner_bank_tree_add_currency" model="ir.ui.view">
<field name="name">Partner Bank Accounts - Add currency on tree</field>
<field name="model">res.partner.bank</field>
<field name="type">tree</field>
<field name="inherit_id" ref="base.view_partner_bank_tree"/>
<field name="arch" type="xml">
<field name="acc_number" position="after">
@ -42,7 +40,17 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="context" eval="{'default_partner_id':ref('base.main_partner'), 'company_hide':False, 'default_company_id':ref('base.main_company'), 'search_default_my_bank':1}"/>
<field name="help">Configure your company's bank account and select those that must appear on the report footer. You can reorder banks in the list view. If you use the accounting application of OpenERP, journals and accounts will be created automatically based on these data.</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to setup a new bank account.
</p><p>
Configure your company's bank account and select those that must
appear on the report footer.
</p><p>
If you use the accounting application of OpenERP, journals and
accounts will be created automatically based on these data.
</p>
</field>
</record>
<menuitem
sequence="0"

View File

@ -32,7 +32,7 @@ class account_cashbox_line(osv.osv):
_name = 'account.cashbox.line'
_description = 'CashBox Line'
_rec_name = 'number'
_rec_name = 'pieces'
def _sub_total(self, cr, uid, ids, name, arg, context=None):
@ -43,24 +43,27 @@ class account_cashbox_line(osv.osv):
"""
res = {}
for obj in self.browse(cr, uid, ids, context=context):
res[obj.id] = obj.pieces * obj.number
res[obj.id] = {
'subtotal_opening' : obj.pieces * obj.number_opening,
'subtotal_closing' : obj.pieces * obj.number_closing,
}
return res
def on_change_sub(self, cr, uid, ids, pieces, number, *a):
def on_change_sub_opening(self, cr, uid, ids, pieces, number, *a):
""" Compute the subtotal for the opening """
return {'value' : {'subtotal_opening' : (pieces * number) or 0.0 }}
""" Calculates Sub total on change of number
@param pieces: Names of fields.
@param number:
"""
sub = pieces * number
return {'value': {'subtotal': sub or 0.0}}
def on_change_sub_closing(self, cr, uid, ids, pieces, number, *a):
""" Compute the subtotal for the closing """
return {'value' : {'subtotal_closing' : (pieces * number) or 0.0 }}
_columns = {
'pieces': fields.float('Values', digits_compute=dp.get_precision('Account')),
'number': fields.integer('Number'),
'subtotal': fields.function(_sub_total, string='Sub Total', type='float', digits_compute=dp.get_precision('Account')),
'starting_id': fields.many2one('account.bank.statement', ondelete='cascade'),
'ending_id': fields.many2one('account.bank.statement', ondelete='cascade'),
'pieces': fields.float('Unit of Currency', digits_compute=dp.get_precision('Account')),
'number_opening' : fields.integer('Number of Units', help='Opening Unit Numbers'),
'number_closing' : fields.integer('Number of Units', help='Closing Unit Numbers'),
'subtotal_opening': fields.function(_sub_total, string='Opening Subtotal', type='float', digits_compute=dp.get_precision('Account'), multi='subtotal'),
'subtotal_closing': fields.function(_sub_total, string='Closing Subtotal', type='float', digits_compute=dp.get_precision('Account'), multi='subtotal'),
'bank_statement_id' : fields.many2one('account.bank.statement', ondelete='cascade'),
}
account_cashbox_line()
@ -69,39 +72,24 @@ class account_cash_statement(osv.osv):
_inherit = 'account.bank.statement'
def _get_starting_balance(self, cr, uid, ids, context=None):
""" Find starting balance
@param name: Names of fields.
@param arg: User defined arguments
@return: Dictionary of values.
def _update_balances(self, cr, uid, ids, context=None):
"""
Set starting and ending balances according to pieces count
"""
res = {}
for statement in self.browse(cr, uid, ids, context=context):
amount_total = 0.0
if statement.journal_id.type not in('cash'):
if statement.journal_id.type not in ('cash',):
continue
for line in statement.starting_details_ids:
amount_total+= line.pieces * line.number
res[statement.id] = {
'balance_start': amount_total
start = end = 0
for line in statement.details_ids:
start += line.subtotal_opening
end += line.subtotal_closing
data = {
'balance_start': start,
'balance_end_real': end,
}
return res
def _balance_end_cash(self, cr, uid, ids, name, arg, context=None):
""" Find ending balance "
@param name: Names of fields.
@param arg: User defined arguments
@return: Dictionary of values.
"""
res = {}
for statement in self.browse(cr, uid, ids, context=context):
amount_total = 0.0
for line in statement.ending_details_ids:
amount_total += line.pieces * line.number
res[statement.id] = amount_total
res[statement.id] = data
super(account_cash_statement, self).write(cr, uid, [statement.id], data, context=context)
return res
def _get_sum_entry_encoding(self, cr, uid, ids, name, arg, context=None):
@ -111,13 +99,10 @@ class account_cash_statement(osv.osv):
@param arg: User defined arguments
@return: Dictionary of values.
"""
res2 = {}
res = {}
for statement in self.browse(cr, uid, ids, context=context):
encoding_total=0.0
for line in statement.line_ids:
encoding_total += line.amount
res2[statement.id] = encoding_total
return res2
res[statement.id] = sum((line.amount for line in statement.line_ids), 0.0)
return res
def _get_company(self, cr, uid, context=None):
user_pool = self.pool.get('res.users')
@ -128,96 +113,98 @@ class account_cash_statement(osv.osv):
company_id = company_pool.search(cr, uid, [])
return company_id and company_id[0] or False
def _get_cash_open_box_lines(self, cr, uid, context=None):
res = []
curr = [1, 2, 5, 10, 20, 50, 100, 500]
for rs in curr:
dct = {
'pieces': rs,
'number': 0
}
res.append(dct)
journal_ids = self.pool.get('account.journal').search(cr, uid, [('type', '=', 'cash')], context=context)
if journal_ids:
results = self.search(cr, uid, [('journal_id', 'in', journal_ids),('state', '=', 'confirm')], context=context)
if results:
cash_st = self.browse(cr, uid, results, context=context)[0]
for cash_line in cash_st.ending_details_ids:
for r in res:
if cash_line.pieces == r['pieces']:
r['number'] = cash_line.number
return res
def _get_default_cash_close_box_lines(self, cr, uid, context=None):
res = []
curr = [1, 2, 5, 10, 20, 50, 100, 500]
for rs in curr:
dct = {
'pieces': rs,
'number': 0
}
res.append(dct)
return res
def _get_cash_close_box_lines(self, cr, uid, context=None):
res = []
curr = [1, 2, 5, 10, 20, 50, 100, 500]
for rs in curr:
dct = {
'pieces': rs,
'number': 0
}
res.append((0, 0, dct))
return res
def _get_cash_open_close_box_lines(self, cr, uid, context=None):
res = {}
start_l = []
end_l = []
starting_details = self._get_cash_open_box_lines(cr, uid, context=context)
ending_details = self._get_default_cash_close_box_lines(cr, uid, context)
for start in starting_details:
start_l.append((0, 0, start))
for end in ending_details:
end_l.append((0, 0, end))
res['start'] = start_l
res['end'] = end_l
return res
def _get_statement(self, cr, uid, ids, context=None):
def _get_statement_from_line(self, cr, uid, ids, context=None):
result = {}
for line in self.pool.get('account.bank.statement.line').browse(cr, uid, ids, context=context):
result[line.statement_id.id] = True
return result.keys()
def _compute_difference(self, cr, uid, ids, fieldnames, args, context=None):
result = dict.fromkeys(ids, 0.0)
for obj in self.browse(cr, uid, ids, context=context):
result[obj.id] = obj.balance_end_real - obj.balance_end
return result
def _compute_last_closing_balance(self, cr, uid, ids, fieldnames, args, context=None):
result = dict.fromkeys(ids, 0.0)
for obj in self.browse(cr, uid, ids, context=context):
if obj.state == 'draft':
statement_ids = self.search(cr, uid,
[('journal_id', '=', obj.journal_id.id),('state', '=', 'confirm')],
order='create_date desc',
limit=1,
context=context
)
if not statement_ids:
continue
else:
st = self.browse(cr, uid, statement_ids[0], context=context)
result[obj.id] = st.balance_end_real
return result
def onchange_journal_id(self, cr, uid, ids, journal_id, context=None):
result = super(account_cash_statement, self).onchange_journal_id(cr, uid, ids, journal_id)
if not journal_id:
return result
statement_ids = self.search(cr, uid,
[('journal_id', '=', journal_id),('state', '=', 'confirm')],
order='create_date desc',
limit=1,
context=context
)
if not statement_ids:
return result
st = self.browse(cr, uid, statement_ids[0], context=context)
result.setdefault('value', {}).update({'last_closing_balance' : st.balance_end_real})
return result
_columns = {
'total_entry_encoding': fields.function(_get_sum_entry_encoding, string="Cash Transaction", help="Total cash transactions",
'total_entry_encoding': fields.function(_get_sum_entry_encoding, string="Total Transactions",
store = {
'account.bank.statement': (lambda self, cr, uid, ids, c={}: ids, ['line_ids','move_line_ids'], 10),
'account.bank.statement.line': (_get_statement, ['amount'], 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),
}),
'closing_date': fields.datetime("Closed On"),
'balance_end_cash': fields.function(_balance_end_cash, store=True, string='Closing Balance', help="Closing balance based on cashBox"),
'starting_details_ids': fields.one2many('account.cashbox.line', 'starting_id', string='Opening Cashbox'),
'ending_details_ids': fields.one2many('account.cashbox.line', 'ending_id', string='Closing Cashbox'),
'details_ids' : fields.one2many('account.cashbox.line', 'bank_statement_id', string='CashBox Lines'),
'opening_details_ids' : fields.one2many('account.cashbox.line', 'bank_statement_id', string='Opening Cashbox Lines'),
'closing_details_ids' : fields.one2many('account.cashbox.line', 'bank_statement_id', string='Closing Cashbox Lines'),
'user_id': fields.many2one('res.users', 'Responsible', required=False),
'difference' : fields.function(_compute_difference, method=True, string="Difference", type="float"),
'last_closing_balance' : fields.function(_compute_last_closing_balance, method=True, string='Last Closing Balance', type='float'),
}
_defaults = {
'state': 'draft',
'date': lambda self,cr,uid,context={}: context.get('date', time.strftime("%Y-%m-%d %H:%M:%S")),
'date': lambda self, cr, uid, context={}: context.get('date', time.strftime("%Y-%m-%d %H:%M:%S")),
'user_id': lambda self, cr, uid, context=None: uid,
'starting_details_ids': _get_cash_open_box_lines,
'ending_details_ids': _get_default_cash_close_box_lines
}
}
def create(self, cr, uid, vals, context=None):
if self.pool.get('account.journal').browse(cr, uid, vals['journal_id'], context=context).type == 'cash':
amount_total = 0.0
for line in vals.get('starting_details_ids',[]):
if line and len(line)==3 and line[2]:
amount_total+= line[2]['pieces'] * line[2]['number']
vals.update(balance_start= amount_total)
return super(account_cash_statement, self).create(cr, uid, vals, context=context)
journal = False
if vals.get('journal_id'):
journal = self.pool.get('account.journal').browse(cr, uid, vals['journal_id'], context=context)
if journal and (journal.type == 'cash') and not vals.get('details_ids'):
vals['details_ids'] = []
for value in journal.cashbox_line_ids:
nested_values = {
'number_closing' : 0,
'number_opening' : 0,
'pieces' : value.pieces
}
vals['details_ids'].append([0, False, nested_values])
res_id = super(account_cash_statement, self).create(cr, uid, vals, context=context)
self._update_balances(cr, uid, [res_id], context)
return res_id
def write(self, cr, uid, ids, vals, context=None):
"""
@ -233,34 +220,9 @@ class account_cash_statement(osv.osv):
@return: True on success, False otherwise
"""
super(account_cash_statement, self).write(cr, uid, ids, vals, context=context)
res = self._get_starting_balance(cr, uid, ids)
for rs in res:
super(account_cash_statement, self).write(cr, uid, [rs], res.get(rs))
return True
def onchange_journal_id(self, cr, uid, statement_id, journal_id, context=None):
""" Changes balance start and starting details if journal_id changes"
@param statement_id: Changed statement_id
@param journal_id: Changed journal_id
@return: Dictionary of changed values
"""
res = {}
balance_start = 0.0
if not journal_id:
res.update({
'balance_start': balance_start
})
return res
return super(account_cash_statement, self).onchange_journal_id(cr, uid, statement_id, journal_id, context=context)
def _equal_balance(self, cr, uid, cash_id, context=None):
statement = self.browse(cr, uid, cash_id, context=context)
self.write(cr, uid, [cash_id], {'balance_end_real': statement.balance_end})
statement.balance_end_real = statement.balance_end
if statement.balance_end != statement.balance_end_cash:
return False
return True
res = super(account_cash_statement, self).write(cr, uid, ids, vals, context=context)
self._update_balances(cr, uid, ids, context)
return res
def _user_allow(self, cr, uid, statement_id, context=None):
return True
@ -276,7 +238,7 @@ class account_cash_statement(osv.osv):
for statement in statement_pool.browse(cr, uid, ids, context=context):
vals = {}
if not self._user_allow(cr, uid, statement.id, context=context):
raise osv.except_osv(_('Error !'), (_('User %s does not have rights to access %s journal !') % (statement.user_id.name, 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 == '/':
c = {'fiscalyear_id': statement.period_id.fiscalyear_id.id}
@ -294,13 +256,6 @@ class account_cash_statement(osv.osv):
self.write(cr, uid, [statement.id], vals, context=context)
return True
def balance_check(self, cr, uid, cash_id, journal_type='bank', context=None):
if journal_type == 'bank':
return super(account_cash_statement, self).balance_check(cr, uid, cash_id, journal_type, context)
if not self._equal_balance(cr, uid, cash_id, context):
raise osv.except_osv(_('Error !'), _('The closing balance should be the same than the computed balance!'))
return True
def statement_close(self, cr, uid, ids, journal_type='bank', context=None):
if journal_type == 'bank':
return super(account_cash_statement, self).statement_close(cr, uid, ids, journal_type, context)
@ -317,16 +272,67 @@ class account_cash_statement(osv.osv):
def button_confirm_cash(self, cr, uid, ids, context=None):
super(account_cash_statement, self).button_confirm_bank(cr, uid, ids, context=context)
return self.write(cr, uid, ids, {'closing_date': time.strftime("%Y-%m-%d %H:%M:%S")}, context=context)
absl_proxy = self.pool.get('account.bank.statement.line')
def button_cancel(self, cr, uid, ids, context=None):
cash_box_line_pool = self.pool.get('account.cashbox.line')
super(account_cash_statement, self).button_cancel(cr, uid, ids, context=context)
for st in self.browse(cr, uid, ids, context):
for end in st.ending_details_ids:
cash_box_line_pool.write(cr, uid, [end.id], {'number': 0})
return True
TABLES = (('Profit', 'profit_account_id'), ('Loss', 'loss_account_id'),)
for obj in self.browse(cr, uid, ids, context=context):
if obj.difference == 0.0:
continue
for item_label, item_account in TALBES:
if getattr(obj.journal_id, item_account):
raise osv.except_osv(_('Error!'),
_('There is no %s Account on the journal %s.') % (item_label, obj.journal_id.name,))
is_profit = obj.difference < 0.0
account = getattr(obj.journal_id, TABLES[is_profit][1])
values = {
'statement_id' : obj.id,
'journal_id' : obj.journal_id.id,
'account_id' : account.id,
'amount' : obj.difference,
'name' : 'Exceptional %s' % TABLES[is_profit][0],
}
absl_proxy.create(cr, uid, values, context=context)
return self.write(cr, uid, ids, {'closing_date': time.strftime("%Y-%m-%d %H:%M:%S")}, context=context)
account_cash_statement()
class account_journal(osv.osv):
_inherit = 'account.journal'
def _default_cashbox_line_ids(self, cr, uid, context=None):
# Return a list of coins in Euros.
result = [
dict(pieces=value) for value in [0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 20, 50, 100, 200, 500]
]
return result
_columns = {
'cashbox_line_ids' : fields.one2many('account.journal.cashbox.line', 'journal_id', 'CashBox'),
}
_defaults = {
'cashbox_line_ids' : _default_cashbox_line_ids,
}
account_journal()
class account_journal_cashbox_line(osv.osv):
_name = 'account.journal.cashbox.line'
_rec_name = 'pieces'
_columns = {
'pieces': fields.float('Values', digits_compute=dp.get_precision('Account')),
'journal_id' : fields.many2one('account.journal', 'Journal', required=True, select=1),
}
_order = 'pieces asc'
account_journal_cashbox_line()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -3,15 +3,16 @@
<record id="view_account_configuration_installer" model="ir.ui.view">
<field name="name">account.installer.form</field>
<field name="model">account.installer</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_installer"/>
<field name="arch" type="xml">
<form position="attributes" version="7.0">
<attribute name="string">Accounting Application Configuration</attribute>
</form>
<button name="action_next" position="attributes">
<attribute name="string">Continue</attribute>
</button>
<footer position="replace">
<footer>
<button name="action_next" type="object" string="Continue" class="oe_highlight"/>
</footer>
</footer>
<separator string="title" position="replace">
<group>
<field name="charts"/>
@ -40,14 +41,8 @@
<field name="target">new</field>
</record>
<record id="category_accounting_configuration" model="ir.actions.todo.category">
<field name="name">Accounting</field>
<field name="sequence">5</field>
</record>
<record id="account_configuration_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="action_account_configuration_installer"/>
<field name="category_id" ref="category_accounting_configuration"/>
<field name="sequence">3</field>
<field name="type">automatic</field>
</record>

View File

@ -195,7 +195,7 @@ class account_invoice(osv.osv):
'number': fields.related('move_id','name', type='char', readonly=True, size=64, relation='account.move', store=True, string='Number'),
'internal_number': fields.char('Invoice Number', size=32, readonly=True, help="Unique number of the invoice, computed automatically when the invoice is created."),
'reference': fields.char('Invoice Reference', size=64, help="The partner reference of this invoice."),
'reference_type': fields.selection(_get_reference_type, 'Reference Type',
'reference_type': fields.selection(_get_reference_type, 'Payment Reference',
required=True, readonly=True, states={'draft':[('readonly',False)]}),
'comment': fields.text('Additional Information'),
@ -306,7 +306,7 @@ class account_invoice(osv.osv):
if view_type == 'form':
if partner['supplier'] and not partner['customer']:
view_id = self.pool.get('ir.ui.view').search(cr,uid,[('name', '=', 'account.invoice.supplier.form')])
else:
elif partner['customer'] and not partner['supplier']:
view_id = self.pool.get('ir.ui.view').search(cr,uid,[('name', '=', 'account.invoice.form')])
if view_id and isinstance(view_id, (list, tuple)):
view_id = view_id[0]
@ -319,7 +319,7 @@ class account_invoice(osv.osv):
res['fields'][field]['selection'] = journal_select
doc = etree.XML(res['arch'])
if context.get('type', False):
for node in doc.xpath("//field[@name='partner_bank_id']"):
if context['type'] == 'in_refund':
@ -327,7 +327,7 @@ class account_invoice(osv.osv):
elif context['type'] == 'out_refund':
node.set('domain', "[('partner_id', '=', partner_id)]")
res['arch'] = etree.tostring(doc)
if view_type == 'search':
if context.get('type', 'in_invoice') in ('out_invoice', 'out_refund'):
for node in doc.xpath("//group[@name='extended filter']"):
@ -364,15 +364,15 @@ class account_invoice(osv.osv):
except Exception, e:
if '"journal_id" viol' in e.args[0]:
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:
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):
'''
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)
datas = {
'ids': ids,
@ -425,7 +425,7 @@ class account_invoice(osv.osv):
if t['state'] in ('draft', 'cancel') and t['internal_number']== False:
unlink_ids.append(t['id'])
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)
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
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:
raise osv.except_osv(_('Configuration Error !'),
_('Can not find a chart of accounts for this company, you should create one.'))
raise osv.except_osv(_('Configuration Error!'),
_('Cannot find a chart of accounts for this company, you should create one.'))
account_obj = self.pool.get('account.account')
rec_obj_acc = account_obj.browse(cr, uid, [rec_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()
res = {'value':{'date_due': pterm_list[-1]}}
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
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
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:
raise osv.except_osv(_('Configuration Error !'),
_('Can not find a chart of account, you should create one from the configuration of the accounting menu.'))
raise osv.except_osv(_('Configuration Error!'),
_('Cannot find a chart of account, you should create one from Settings\Configuration\Accounting menu.'))
if type in ('out_invoice', 'out_refund'):
acc_id = rec_res_id
else:
@ -568,16 +568,16 @@ class account_invoice(osv.osv):
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)])
if not result_id:
raise osv.except_osv(_('Configuration Error !'),
_('Can not find a chart of account, you should create one from the configuration of the accounting menu.'))
raise osv.except_osv(_('Configuration Error!'),
_('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]})
else:
if invoice_line:
for inv_line in invoice_line:
obj_l = account_obj.browse(cr, uid, inv_line[2]['account_id'])
if obj_l.company_id.id != company_id:
raise osv.except_osv(_('Configuration Error !'),
_('Invoice line account company does not match with invoice company.'))
raise osv.except_osv(_('Configuration Error!'),
_('Invoice line account\'s company and invoice\'s compnay does not match.'))
else:
continue
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:
val['journal_id'] = r[2]
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)]}
else:
journal_ids = obj_journal.search(cr, uid, [])
@ -756,16 +756,16 @@ class account_invoice(osv.osv):
for tax in inv.tax_line:
if tax.manual:
continue
key = (tax.tax_code_id.id, tax.base_code_id.id, tax.account_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)
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']
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:
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):
total = 0
@ -835,12 +835,12 @@ class account_invoice(osv.osv):
context = {}
for inv in self.browse(cr, uid, ids, context=context):
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:
raise osv.except_osv(_('No Invoice Lines !'), _('Please create some invoice lines.'))
if inv.move_id:
continue
ctx = context.copy()
ctx.update({'lang': inv.partner_id.lang})
if not inv.date_invoice:
@ -866,7 +866,7 @@ class account_invoice(osv.osv):
total_percent += line.value_amount
total_fixed = (total_fixed * 100) / (inv.amount_total or 1.0)
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
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 = journal_obj.browse(cr, uid, journal_id, context=ctx)
if journal.centralisation:
raise osv.except_osv(_('UserError'),
_('You cannot create an invoice on a centralised journal. Uncheck the centralised counterpart box in the related journal from the configuration menu.'))
raise osv.except_osv(_('User Error!'),
_('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)
@ -979,7 +979,7 @@ class account_invoice(osv.osv):
move_obj.post(cr, uid, [move_id], context=ctx)
self._log_event(cr, uid, ids)
return True
def invoice_validate(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'state':'open'}, context=context)
return True
@ -1061,7 +1061,7 @@ class account_invoice(osv.osv):
pay_ids = account_move_line_obj.browse(cr, uid, i['payment_ids'])
for move_line in pay_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
self.write(cr, uid, ids, {'state':'cancel', 'move_id':False})
@ -1187,7 +1187,7 @@ class account_invoice(osv.osv):
if context is None:
context = {}
#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)
src_account_id = invoice.account_id.id
# Take the seq as name for move
@ -1273,7 +1273,7 @@ class account_invoice(osv.osv):
else:
code = invoice.currency_id.symbol
# 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)
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)
@ -1281,11 +1281,11 @@ class account_invoice(osv.osv):
# Update the stored value (fields.function), so we write to trigger recompute
self.pool.get('account.invoice').write(cr, uid, ids, {}, context=context)
return True
# -----------------------------------------
# OpenChatter notifications and need_action
# -----------------------------------------
def _get_document_type(self, type):
type_dict = {
'out_invoice': 'Customer invoice',
@ -1294,19 +1294,19 @@ class account_invoice(osv.osv):
'in_refund': 'Supplier Refund',
}
return type_dict.get(type, 'Invoice')
def create_send_note(self, cr, uid, ids, context=None):
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)
def confirm_paid_send_note(self, cr, uid, ids, context=None):
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)
def invoice_cancel_send_note(self, cr, uid, ids, context=None):
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)
account_invoice()
class account_invoice_line(osv.osv):
@ -1345,19 +1345,18 @@ class account_invoice_line(osv.osv):
_name = "account.invoice.line"
_description = "Invoice Line"
_columns = {
'name': fields.char('Description', size=256, required=True),
'name': fields.text('Description', required=True),
'origin': fields.char('Source', size=256, help="Reference of the document that produced this invoice."),
'invoice_id': fields.many2one('account.invoice', 'Invoice Reference', ondelete='cascade', select=True),
'uos_id': fields.many2one('product.uom', 'Unit of Measure', ondelete='set null'),
'product_id': fields.many2one('product.product', 'Product', ondelete='set null'),
'account_id': fields.many2one('account.account', 'Account', required=True, domain=[('type','<>','view'), ('type', '<>', 'closed')], help="The income or expense account related to the selected product."),
'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Account')),
'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Product Price')),
'price_subtotal': fields.function(_amount_line, string='Subtotal', type="float",
digits_compute= dp.get_precision('Account'), store=True),
'quantity': fields.float('Quantity', required=True),
'discount': fields.float('Discount (%)', digits_compute= dp.get_precision('Account')),
'quantity': fields.float('Quantity', digits_compute= dp.get_precision('Product Unit of Measure'), required=True),
'discount': fields.float('Discount (%)', digits_compute= dp.get_precision('Discount')),
'invoice_line_tax_id': fields.many2many('account.tax', 'account_invoice_line_tax', 'invoice_line_id', 'tax_id', 'Taxes', domain=[('parent_id','=',False)]),
'note': fields.text('Notes'),
'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account'),
'company_id': fields.related('invoice_id','company_id',type='many2one',relation='res.company',string='Company', store=True, readonly=True),
'partner_id': fields.related('invoice_id','partner_id',type='many2one',relation='res.partner',string='Partner',store=True)
@ -1430,7 +1429,8 @@ class account_invoice_line(osv.osv):
domain = {}
result['uos_id'] = res.uom_id.id or uom or False
result['note'] = res.description
if res.description:
result['name'] += '\n'+res.description
if result['uos_id']:
res2 = res.uom_id.category_id.id
if res2:
@ -1475,7 +1475,7 @@ class account_invoice_line(osv.osv):
if prod.uom_id.category_id.id != prod_uom.category_id.id:
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 res
@ -1524,7 +1524,7 @@ class account_invoice_line(osv.osv):
def move_line_get_item(self, cr, uid, line, context=None):
return {
'type':'src',
'name': line.name[:64],
'name': line.name.split('\n')[0][:64],
'price_unit':line.price_unit,
'quantity':line.quantity,
'price':line.price_subtotal,
@ -1578,6 +1578,7 @@ class account_invoice_tax(osv.osv):
'invoice_id': fields.many2one('account.invoice', 'Invoice Line', ondelete='cascade', select=True),
'name': fields.char('Tax Description', size=64, required=True),
'account_id': fields.many2one('account.account', 'Tax Account', required=True, domain=[('type','<>','view'),('type','<>','income'), ('type', '<>', 'closed')]),
'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic account'),
'base': fields.float('Base', digits_compute=dp.get_precision('Account')),
'amount': fields.float('Amount', digits_compute=dp.get_precision('Account')),
'manual': fields.boolean('Manual'),
@ -1648,14 +1649,16 @@ class account_invoice_tax(osv.osv):
val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['base_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False)
val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['tax_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False)
val['account_id'] = tax['account_collected_id'] or line.account_id.id
val['account_analytic_id'] = tax['account_analytic_collected_id']
else:
val['base_code_id'] = tax['ref_base_code_id']
val['tax_code_id'] = tax['ref_tax_code_id']
val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['ref_base_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False)
val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['ref_tax_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False)
val['account_id'] = tax['account_paid_id'] or line.account_id.id
val['account_analytic_id'] = tax['account_analytic_paid_id']
key = (val['tax_code_id'], val['base_code_id'], val['account_id'])
key = (val['tax_code_id'], val['base_code_id'], val['account_id'], val['account_analytic_id'])
if not key in tax_grouped:
tax_grouped[key] = val
else:
@ -1687,7 +1690,8 @@ class account_invoice_tax(osv.osv):
'price': t['amount'] or 0.0,
'account_id': t['account_id'],
'tax_code_id': t['tax_code_id'],
'tax_amount': t['tax_amount']
'tax_amount': t['tax_amount'],
'account_analytic_id': t['account_analytic_id'],
})
return res

View File

@ -6,7 +6,6 @@
<record id="view_invoice_line_calendar" model="ir.ui.view">
<field name="name">account.invoice.calendar</field>
<field name="model">account.invoice</field>
<field name="type">calendar</field>
<field name="arch" type="xml">
<calendar string="Invoices" color="journal_id" date_start="date_invoice">
<field name="partner_id"/>
@ -18,7 +17,6 @@
<record model="ir.ui.view" id="view_invoice_graph">
<field name="name">account.invoice.graph</field>
<field name="model">account.invoice</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Invoices" type="bar">
<field name="partner_id"/>
@ -30,7 +28,6 @@
<record id="view_invoice_line_tree" model="ir.ui.view">
<field name="name">account.invoice.line.tree</field>
<field name="model">account.invoice.line</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Invoice Line">
<field name="name"/>
@ -47,27 +44,29 @@
<record id="view_invoice_line_form" model="ir.ui.view">
<field name="name">account.invoice.line.form</field>
<field name="model">account.invoice.line</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Invoice Line" version="7.0">
<group col="4">
<field name="product_id" on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
<field name="name"/>
<label string="Quantity" for="quantity" align="1.0"/>
<div>
<field name="quantity" class="oe_inline"/>
<field name="uos_id" class="oe_inline"
on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
</div>
<field name="price_unit"/>
<field domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id" on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)" groups="account.group_account_user"/>
<field name="discount" groups="sale.group_discount_per_so_line"/>
<field name="invoice_line_tax_id" context="{'type':parent.type}" domain="[('parent_id','=',False),('company_id', '=', parent.company_id)]" widget="many2many_tags"/>
<field domain="[('type','&lt;&gt;','view'), ('company_id', '=', parent.company_id), ('parent_id', '!=', False)]" name="account_analytic_id" groups="analytic.group_analytic_accounting"/>
<field name="company_id" groups="base.group_multi_company" readonly="1"/>
<group>
<group>
<field name="product_id" on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
<label for="quantity"/>
<div>
<field name="quantity" class="oe_inline"/>
<field name="uos_id" class="oe_inline" groups="product.group_uom"
on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
</div>
<field name="price_unit"/>
<field name="discount" groups="sale.group_discount_per_so_line"/>
</group>
<group>
<field domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id" on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)" groups="account.group_account_user"/>
<field name="invoice_line_tax_id" context="{'type':parent.type}" domain="[('parent_id','=',False),('company_id', '=', parent.company_id)]" widget="many2many_tags"/>
<field domain="[('type','&lt;&gt;','view'), ('company_id', '=', parent.company_id), ('parent_id', '!=', False)]" name="account_analytic_id" groups="analytic.group_analytic_accounting"/>
<field name="company_id" groups="base.group_multi_company" readonly="1"/>
</group>
</group>
<separator string="Notes"/>
<field name="note"/>
<label for="name"/>
<field name="name"/>
</form>
</field>
</record>
@ -75,7 +74,6 @@
<record id="view_invoice_tax_tree" model="ir.ui.view">
<field name="name">account.invoice.tax.tree</field>
<field name="model">account.invoice.tax</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Manual Invoice Taxes">
<field name="sequence"/>
@ -91,13 +89,13 @@
<record id="view_invoice_tax_form" model="ir.ui.view">
<field name="name">account.invoice.tax.form</field>
<field name="model">account.invoice.tax</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Manual Invoice Taxes" version="7.0">
<group col="4">
<field name="name"/>
<field name="sequence"/>
<field name="account_id" groups="account.group_account_user"/>
<field name="account_analytic_id" domain="[('type','&lt;&gt;','view'), ('company_id', '=', parent.company_id), ('parent_id', '!=', False)]" groups="analytic.group_analytic_accounting"/>
<field name="manual"/>
<field name="amount"/>
<field name="base" readonly="0"/>
@ -116,12 +114,11 @@
<record id="invoice_tree" model="ir.ui.view">
<field name="name">account.invoice.tree</field>
<field name="model">account.invoice</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree colors="blue:state == 'draft';black:state in ('proforma','proforma2','open');gray:state == 'cancel'" string="Invoice">
<field name="partner_id" groups="base.group_user"/>
<field name="date_invoice"/>
<field name="number"/>
<field name="partner_id" groups="base.group_user"/>
<field name="reference" invisible="1"/>
<field name="name" invisible="1"/>
<field name="journal_id" invisible="1"/>
@ -142,10 +139,9 @@
<record id="invoice_supplier_form" model="ir.ui.view">
<field name="name">account.invoice.supplier.form</field>
<field name="model">account.invoice</field>
<field name="type">form</field>
<field name="priority">2</field>
<field name="arch" type="xml">
<form version="7.0">
<form string="Supplier Invoice" version="7.0">
<header>
<span groups="base.group_user">
<button name="invoice_open" states="draft,proforma2" string="Validate" class="oe_highlight"/>
@ -159,43 +155,42 @@
<sheet string="Supplier Invoice">
<div class="oe_title">
<h1>
<label string="Draft Invoice" attrs="{'invisible': [('state', '&lt;&gt;', 'draft')]}"/>
<label for="number" class="oe_edit_only" attrs="{'invisible': [('state', '=', 'draft')]}"/>
<label string="Draft Invoice" attrs="{'invisible': ['|',('state','&lt;&gt;','draft'), ('type','&lt;&gt;','in_invoice')]}"/>
<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')]}"/>
</h1>
<h2>
<label for="origin" string="Concerns" class="oe_inline"/>
<field name="origin" placeholder="PO0025" class="oe_inline"/>
<label string=" from " attrs="{'invisible': [('origin', '=', False)]}" class='oe_inline'/>
<field string="Supplier" name="partner_id" class="oe_inline"
</div>
<field name="type" invisible="1"/>
<group>
<group>
<field string="Supplier" name="partner_id"
on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)"
context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}"
domain="[('supplier', '=', True)]"/>
</h2>
</div>
<group>
<field name="fiscal_position" widget="selection"/>
<field name="origin"/>
<label for="reference_type"/>
<div>
<field name="reference_type" class="oe_inline oe_edit_only"/>
<field name="reference" class="oe_inline"/>
</div>
</group>
<group>
<field name="date_invoice"/>
<field name="date_due"/>
<field name="type" invisible="1"/>
<field name="period_id" domain="[('state', '=', 'draft')]" groups="account.group_account_user" widget="selection"/>
</group>
<group>
<field name="fiscal_position" widget="selection"/>
<field domain="[('company_id', '=', company_id), ('type', '=', 'payable')]"
name="account_id" groups="account.group_account_user"/>
<field name="journal_id" groups="account.group_account_user"
on_change="onchange_journal_id(journal_id, context)" widget="selection"/>
<field name="currency_id"/>
<field domain="[('company_id', '=', company_id), ('type', '=', 'payable')]" name="account_id" groups="account.group_account_user" invisible="1"/>
</group>
<group>
<label for="reference"/>
<div>
<field name="reference" placeholder="Payment Reference"/>
</div>
</group>
</group>
<notebook>
<page string="Invoice">
<field context="{'partner_id': partner_id, 'price_type': 'price_type' in dir() and price_type or False, 'type': type}" name="invoice_line">
<tree string="Invoice lines">
<tree string="Invoice lines" editable="bottom">
<field name="product_id" on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
<field domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id" on_change="onchange_account_id(product_id,parent.partner_id,parent.type,parent.fiscal_position,account_id)" groups="base.group_account_user"/>
<field name="invoice_line_tax_id" view_mode="2" context="{'type':parent.type}" domain="[('parent_id','=',False)]"/>
@ -209,47 +204,54 @@
<field name="uos_id" invisible="1"/>
</tree>
</field>
<group>
<group class="oe_subtotal_footer oe_right">
<field name="amount_untaxed"/>
<div>
<field name="tax_line">
<tree editable="bottom" string="Taxes">
<field name="name"/>
<field name="account_id" groups="account.group_account_invoice"/>
<field name="base" on_change="base_change(base,parent.currency_id,parent.company_id,parent.date_invoice)" readonly="1"/>
<field name="amount" on_change="amount_change(amount,parent.currency_id,parent.company_id,parent.date_invoice)"/>
<field invisible="True" name="base_amount"/>
<field invisible="True" name="tax_amount"/>
<field name="factor_base" invisible="True"/>
<field name="factor_tax" invisible="True"/>
</tree>
</field>
<button name="button_reset_taxes" states="draft" string="Compute Taxes" type="object" icon="terp-stock_format-scientific" help="This action will erase taxes"/>
<label for="amount_tax"/>
<button name="button_reset_taxes" states="draft,proforma2"
string="(update)" class="oe_link oe_edit_only"
type="object" help="Recompute taxes and total"/>
</div>
<group class="oe_subtotal_footer">
<field name="amount_untaxed"/>
<field name="amount_tax"/>
<field name="amount_total" class="oe_subtotal_footer_separator"/>
<field name="amount_tax" nolabel="1"/>
<field name="amount_total" class="oe_subtotal_footer_separator"/>
<field name="residual" style="margin-top: 10px"/>
<field name="reconciled" invisible="1"/>
</group>
<field name="residual"/>
<field name="reconciled" invisible="1"/>
</group>
<label for="comment" string="Terms and Conditions"/>
<div style="width: 50%%">
<field name="tax_line">
<tree editable="bottom" string="Taxes">
<field name="name"/>
<field name="account_id" groups="account.group_account_invoice"/>
<field name="account_analytic_id" domain="[('type','&lt;&gt;','view'), ('company_id', '=', parent.company_id), ('parent_id', '!=', False)]" groups="analytic.group_analytic_accounting"/>
<field name="base" on_change="base_change(base,parent.currency_id,parent.company_id,parent.date_invoice)" readonly="1"/>
<field name="amount" on_change="amount_change(amount,parent.currency_id,parent.company_id,parent.date_invoice)"/>
<field invisible="True" name="base_amount"/>
<field invisible="True" name="tax_amount"/>
<field name="factor_base" invisible="True"/>
<field name="factor_tax" invisible="True"/>
</tree>
</field>
</div>
<div class="oe_clear">
<label for="comment"/>
</div>
<field name="comment"/>
</page>
<page string="Other Info">
<group>
<group>
<field domain="[('partner_id', '=', partner_id)]" name="partner_bank_id" on_change="onchange_partner_bank(partner_bank_id)"/>
<field name="payment_term" widget="selection"/>
</group>
<group>
<field name="user_id"/>
<field name="name" invisible="1"/>
<field name="move_id" groups="account.group_account_user"/>
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line,currency_id)" widget="selection" groups="base.group_multi_company"/>
</group>
<group>
<field domain="[('partner_id', '=', partner_id)]" name="partner_bank_id" on_change="onchange_partner_bank(partner_bank_id)"/>
<field name="user_id"/>
<field name="name" invisible="1"/>
<field name="payment_term" widget="selection"/>
</group>
<group>
<field name="move_id" groups="account.group_account_user"/>
<field name="period_id" domain="[('state', '=', 'draft')]" groups="account.group_account_user" widget="selection"/>
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line,currency_id)" widget="selection" groups="base.group_multi_company"/>
</group>
</group>
</page>
<page string="Payments">
@ -269,9 +271,10 @@
</page>
</notebook>
</sheet>
<footer>
<div class="oe_chatter">
<field name="message_ids" widget="mail_thread"/>
</footer>
<field name="message_follower_ids" widget="mail_followers"/>
</div>
</form>
</field>
</record>
@ -279,13 +282,14 @@
<record id="invoice_form" model="ir.ui.view">
<field name="name">account.invoice.form</field>
<field name="model">account.invoice</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form version="7.0">
<form string="Invoice" version="7.0">
<header>
<span groups="base.group_user">
<button name="action_invoice_sent" type="object" string="Send by Email" states="open" attrs="{'invisible':['|',('sent','=',True), ('state', '=', 'draft')]}" class="oe_highlight"/>
<button name="invoice_print" string="Print Invoice" type="object" states="open" attrs="{'invisible':['|',('sent','=',True), ('state', '=', 'draft')]}" class="oe_highlight"/>
<button name="action_invoice_sent" type="object" string="Send by Email" attrs="{'invisible':['|',('sent','=',True), ('state', '!=', 'open')]}" class="oe_highlight"/>
<button name="invoice_print" string="Print Invoice" type="object" attrs="{'invisible':['|',('sent','=',True), ('state', '!=', 'open')]}" class="oe_highlight"/>
<button name="action_invoice_sent" type="object" string="Send by Email" attrs="{'invisible':['|',('sent','=',False), ('state', '!=', 'open')]}"/>
<button name="invoice_print" string="Print Invoice" type="object" attrs="{'invisible':['|',('sent','=',False), ('state', '!=', 'open')]}"/>
<button name="invoice_open" states="draft" string="Validate" class="oe_highlight"/>
<button name="invoice_open" states="proforma2" string="Validate"/>
<button name="invoice_proforma2" states="draft" string="PRO-FORMA" groups="account.group_proforma_invoices"/>
@ -299,93 +303,110 @@
</header>
<sheet string="Invoice">
<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="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"/>
</h1>
<label string="Concerns" for="name" class="oe_edit_only"/>
<h2>
<field name="name" placeholder="Project XYZ"/>
</h2>
<field name="type" invisible="1"/>
<group>
<group>
<field string="Customer" name="partner_id"
on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)"
groups="base.group_user" context="{'search_default_customer': 1}"
domain="[('customer', '=', True)]"/>
groups="base.group_user" context="{'search_default_customer':1, 'show_address': 1}"
options='{"always_reload": true}'/>
<field name="fiscal_position" widget="selection" />
<field name="payment_term" widget="selection"/>
</group>
<group>
<field name="date_invoice"/>
<field name="period_id" domain="[('state', '=', 'draft')]"
groups="account.group_account_user" widget="selection"/>
<field name="journal_id" groups="account.group_account_user"
on_change="onchange_journal_id(journal_id, context)" widget="selection"/>
<field domain="[('company_id', '=', company_id),('type','=', 'receivable')]"
name="account_id" groups="account.group_account_user"/>
<label for="currency_id"/>
<div>
<field name="currency_id" class="oe_inline"/>
<!-- note fp: I don't think we need this feature ?
<button name="%(action_account_change_currency)d" type="action"
icon="terp-stock_effects-object-colorize"
attrs="{'invisible':[('state','!=','draft')]}"
groups="account.group_account_user"/>
groups="account.group_account_user"/> -->
</div>
</group>
</group>
<field name="sent" invisible="1"/>
<notebook colspan="4">
<page string="Invoice">
<field colspan="4" name="invoice_line" nolabel="1" widget="one2many_list" context="{'type': type}"/>
<group>
<page string="Invoice Lines">
<field name="invoice_line" nolabel="1" widget="one2many_list" context="{'type': type}">
<tree string="Invoice Lines" editable="bottom">
<field name="invoice_line_tax_id" invisible="1"/>
<field name="product_id" />
<field name="name"/>
<field name="account_id" groups="account.group_account_user"
domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]"
on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)"/>
<field name="quantity"/>
<field name="uos_id" groups="product.group_uom"
on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
<field name="price_unit"/>
<field name="discount" groups="sale.group_discount_per_so_line"/>
<field name="price_subtotal"/>
</tree>
</field>
<group class="oe_subtotal_footer oe_right">
<field name="amount_untaxed"/>
<div>
<field name="tax_line" nolabel="1">
<tree editable="bottom" string="Taxes">
<field name="name"/>
<field name="account_id" groups="account.group_account_user"/>
<field name="base" on_change="base_change(base,parent.currency_id,parent.company_id,parent.date_invoice)" readonly="1"/>
<field name="amount" on_change="amount_change(amount,parent.currency_id,parent.company_id,parent.date_invoice)"/>
<field invisible="True" name="base_amount"/>
<field invisible="True" name="tax_amount"/>
<field name="factor_base" invisible="True"/>
<field name="factor_tax" invisible="True"/>
</tree>
</field>
<button name="button_reset_taxes" states="draft,proforma2" string="Compute Taxes"
type="object" groups="account.group_account_user" icon="terp-stock_format-scientific"
help="This action will erase taxes"/>
<label for="amount_tax"/>
<button name="button_reset_taxes" states="draft,proforma2"
string="(update)" class="oe_link oe_edit_only"
type="object" help="Recompute taxes and total"/>
</div>
<group class="oe_subtotal_footer">
<field name="amount_untaxed"/>
<field name="amount_tax"/>
<field name="amount_total" class="oe_subtotal_footer_separator"/>
<field name="residual" style="margin-top: 10px" groups="account.group_account_user"/>
<field name="reconciled" invisible="1"/>
</group>
<field name="amount_tax" nolabel="1"/>
<field name="amount_total" class="oe_subtotal_footer_separator"/>
<field name="residual" groups="account.group_account_user"/>
<field name="reconciled" invisible="1"/>
</group>
<group>
<field name="payment_term" class="oe_inline"/>
</group>
<div class="oe_clear">
<label for="comment"/>
</div>
<field name="comment" class="oe_inline" placeholder="Additional notes..."/>
</page>
<page string="Other Info">
<group col="4">
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line,currency_id)" widget="selection" groups="base.group_multi_company"/>
<newline/>
<field name="date_due"/>
<field name="user_id" groups="base.group_user"/>
<newline/>
<field domain="[('partner_id.ref_companies', 'in', [company_id])]" name="partner_bank_id"/>
<field name="origin" placeholder="SO0032" groups="base.group_user"/>
<field name="move_id" groups="account.group_account_user"/>
<group>
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line,currency_id)" widget="selection" groups="base.group_multi_company"/>
<field name="user_id" groups="base.group_user"/>
<field domain="[('partner_id.ref_companies', 'in', [company_id])]" name="partner_bank_id"/>
<field name="period_id" domain="[('state', '=', 'draft')]"
groups="account.group_account_manager"
string="Accounting Period"
placeholder="force period"/>
<field name="date_due"/>
</group>
<group>
<field name="origin" groups="base.group_user"/>
<field name="name" string="Customer Reference"/>
<field name="move_id" groups="account.group_account_user"/>
</group>
</group>
<field name="comment" placeholder="Add an additional information in the invoice..."/>
<field name="tax_line">
<tree editable="bottom" string="Taxes">
<field name="name"/>
<field name="account_id" groups="account.group_account_user"/>
<field name="base" on_change="base_change(base,parent.currency_id,parent.company_id,parent.date_invoice)" readonly="1"/>
<field name="amount" on_change="amount_change(amount,parent.currency_id,parent.company_id,parent.date_invoice)"/>
<field invisible="True" name="base_amount"/>
<field invisible="True" name="tax_amount"/>
<field name="factor_base" invisible="True"/>
<field name="factor_tax" invisible="True"/>
</tree>
</field>
</page>
<page string="Payments" groups="base.group_user">
<field name="payment_ids">
@ -404,9 +425,10 @@
</page>
</notebook>
</sheet>
<footer>
<div class="oe_chatter">
<field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/>
</footer>
<field name="message_follower_ids" widget="mail_followers"/>
</div>
</form>
</field>
</record>
@ -414,35 +436,24 @@
<record id="view_account_invoice_filter" model="ir.ui.view">
<field name="name">account.invoice.select</field>
<field name="model">account.invoice</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Invoice">
<group>
<field name="number"
string="Invoice"
filter_domain="['|', ('number','ilike',self),('origin','ilike',self)]"/>
<separator orientation="vertical"/>
<filter name="draft" icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Invoices"/>
<filter name="proforma" icon="terp-gtk-media-pause" string="Proforma" domain="[('state','=','proforma2')]" help="Proforma Invoices" groups="account.group_proforma_invoices"/>
<filter name="invoices" icon="terp-dolar" string="Invoices" domain="[('state','not in',['draft','cancel'])]" help="Proforma/Open/Paid Invoices"/>
<separator orientation="vertical"/>
<filter name="unpaid" icon="terp-dolar_ok!" string="Unpaid" domain="[('state','=','open')]" help="Unpaid Invoices"/>
<separator orientation="vertical"/>
<filter domain="[('user_id','=',uid)]" help="My Invoices" icon="terp-personal"/>
<separator orientation="vertical"/>
<field name="partner_id"/>
<field name="user_id" widget="selection" string="Salesperson"/>
<field name="journal_id" widget="selection"/>
<field name="period_id" string="Period"/>
</group>
<newline/>
<field name="number" string="Invoice" filter_domain="['|', ('number','ilike',self),('origin','ilike',self)]"/>
<filter name="draft" icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Invoices"/>
<filter name="proforma" icon="terp-gtk-media-pause" string="Proforma" domain="[('state','=','proforma2')]" help="Proforma Invoices" groups="account.group_proforma_invoices"/>
<filter name="invoices" icon="terp-dolar" string="Invoices" domain="[('state','not in',['draft','cancel'])]" help="Proforma/Open/Paid Invoices"/>
<filter name="unpaid" icon="terp-dolar_ok!" string="Unpaid" domain="[('state','=','open')]" help="Unpaid Invoices"/>
<separator/>
<filter domain="[('user_id','=',uid)]" help="My Invoices" icon="terp-personal"/>
<field name="partner_id"/>
<field name="user_id" string="Salesperson"/>
<field name="journal_id"/>
<field name="period_id" string="Period"/>
<group expand="0" string="Group By...">
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<separator orientation="vertical"/>
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
<separator orientation="vertical"/>
<filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id'}"/>
<filter string="Invoice Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_invoice'}"/>
<filter string="Due Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_due'}"/>
@ -494,11 +505,18 @@
<field name="domain">[('type','=','out_invoice')]</field>
<field name="context">{'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="help">
Click here to create a new Invoice.
&lt;p&gt;
An invoice can be generated automatically from a sale order or a delivery order.
The invoice can be send by email.
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a customer invoice.
</p><p>
OpenERP's electronic invoicing allows to ease and fasten the
collection of customer payments. Your customer receives the
invoice by email and he can pay online and/or import it
in his own system.
</p><p>
The discussions with your customer are automatically displayed at
the bottom of each invoice.
</p>
</field>
</record>
@ -527,11 +545,14 @@
<field name="domain">[('type','=','in_invoice')]</field>
<field name="context">{'default_type': 'in_invoice', 'type': 'in_invoice', 'journal_type': 'purchase'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="help">
Click here to create Supplier invoice.
&lt;p&gt;
You can control the invoice from your supplier according to what you purchased or received.
OpenERP can also generate draft invoices automatically from purchase orders or receipts.
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to record a new supplier invoice.
</p><p>
You can control the invoice from your supplier according to
what you purchased or received. OpenERP can also generate
draft invoices automatically from purchase orders or receipts.
</p>
</field>
</record>
<menuitem action="action_invoice_tree2" id="menu_action_invoice_tree2" parent="menu_finance_payables"/>
@ -545,11 +566,16 @@
<field name="domain">[('type','=','out_refund')]</field>
<field name="context">{'default_type':'out_refund', 'type':'out_refund', 'journal_type': 'sale_refund'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="help">
Click here to create a new customer refund.
&lt;p&gt;
A refund is a document that credits an invoice completely or partially.
You can also generate refunds and reconcile them directly from the invoice form.
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a customer refund.
</p><p>
A refund is a document that credits an invoice completely or
partially.
</p><p>
Instead of manually creating a customer refund, you
can generate it directly from the related customer invoice.
</p>
</field>
</record>
@ -576,11 +602,13 @@
<field name="domain">[('type','=','in_refund')]</field>
<field name="context">{'default_type': 'in_refund', 'type': 'in_refund', 'journal_type': 'purchase_refund'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="help">
Click here to create a new supplier refund.
&lt;p&gt;
Track refunds you receive from your suppliers.
You can also generate refunds and reconcile them directly from the invoice form.
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to register a refund you received from a supplier.
</p><p>
Instead of creating the supplier refund manually, you can generate
refunds and reconcile them directly from the related supplier invoice.
</p>
</field>
</record>
<menuitem action="action_invoice_tree4" id="menu_action_invoice_tree4" parent="menu_finance_payables"/>

View File

@ -2,10 +2,12 @@
<openerp>
<data>
<menuitem icon="terp-account" id="menu_finance" name="Invoicing" sequence="14"
<!-- Top menu item -->
<menuitem name="Invoicing"
id="menu_finance"
groups="group_account_user,group_account_manager,group_account_invoice"
web_icon="images/accounting.png"
web_icon_hover="images/accounting-hover.png"/>
sequence="100"/>
<menuitem id="menu_finance_receivables" name="Customers" parent="menu_finance" sequence="2"/>
<menuitem id="menu_finance_payables" name="Suppliers" parent="menu_finance" sequence="3"/>
<menuitem id="menu_finance_bank_and_cash" name="Bank and Cash" parent="menu_finance" sequence="4"

View File

@ -19,6 +19,7 @@
#
##############################################################################
import sys
import time
from datetime import datetime
from operator import itemgetter
@ -94,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:
#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
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):
@ -326,7 +327,7 @@ class account_move_line(osv.osv):
if account and ((not fields) or ('debit' in fields) or ('credit' in fields)):
data['account_id'] = account.id
# Propose the price VAT excluded, the VAT will be added when confirming line
# Propose the price Tax excluded, the Tax will be added when confirming line
if account.tax_ids:
taxes = fiscal_pos_obj.map_tax(cr, uid, part and part.property_account_position or False, account.tax_ids)
tax = tax_obj.browse(cr, uid, taxes)
@ -576,14 +577,14 @@ class account_move_line(osv.osv):
lines = self.browse(cr, uid, ids, context=context)
for l in lines:
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
def _check_no_closed(self, cr, uid, ids, context=None):
lines = self.browse(cr, uid, ids, context=context)
for l in lines:
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
def _check_company_id(self, cr, uid, ids, context=None):
@ -608,9 +609,9 @@ class account_move_line(osv.osv):
return True
_constraints = [
(_check_no_view, 'You can not 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_company_id, 'Company must be the same for its related account and period.', ['company_id']),
(_check_no_view, 'You cannot create journal items on an account of type view.', ['account_id']),
(_check_no_closed, 'You cannot create journal items on closed account.', ['account_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_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']),
]
@ -742,7 +743,7 @@ class account_move_line(osv.osv):
context = {}
for line in self.browse(cr, uid, ids, context=context):
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)
for line in self.browse(cr, uid, ids, context=context):
@ -751,7 +752,7 @@ class account_move_line(osv.osv):
else:
currency_id = line.company_id.currency_id
if line.reconcile_id:
raise osv.except_osv(_('Warning'), _('Already Reconciled!'))
raise osv.except_osv(_('Warning!'), _('Already reconciled.'))
if line.reconcile_partial_id:
for line2 in line.reconcile_partial_id.line_partial_ids:
if not line2.reconcile_id:
@ -795,11 +796,11 @@ class account_move_line(osv.osv):
company_list = []
for line in self.browse(cr, uid, ids, context=context):
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)
for line in unrec_lines:
if line.state <> 'valid':
raise osv.except_osv(_('Error'),
raise osv.except_osv(_('Error!'),
_('Entry "%s" is not valid !') % line.name)
credit += line['credit']
debit += line['debit']
@ -822,15 +823,15 @@ class account_move_line(osv.osv):
r = cr.fetchall()
#TODO: move this check to a constraint in the account_move_reconcile object
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)
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 \
(account.currency_id and (not currency_obj.is_zero(cr, uid, account.currency_id, currency))):
if not writeoff_acc_id:
raise osv.except_osv(_('Warning'), _('You have to provide an account for the write off/exchange difference entry !'))
raise osv.except_osv(_('Warning!'), _('You have to provide an account for the write off/exchange difference entry.'))
if writeoff > 0:
debit = writeoff
credit = 0.0
@ -985,37 +986,32 @@ class account_move_line(osv.osv):
if context.get('view_mode', False):
return result
fld = []
fields = {}
flds = []
title = _("Accounting Entries") #self.view_header_get(cr, uid, view_id, view_type, context)
title = _("Accounting Entries") # self.view_header_get(cr, uid, view_id, view_type, context)
ids = journal_pool.search(cr, uid, [])
ids = journal_pool.search(cr, uid, [], context=context)
journals = journal_pool.browse(cr, uid, ids, context=context)
all_journal = [None]
common_fields = {}
total = len(journals)
for journal in journals:
all_journal.append(journal.id)
for field in journal.view_id.columns_id:
# sometimes, it's possible that a defined column is not loaded (the module containing
# sometimes, it's possible that a defined column is not loaded (the module containing
# this field is not loaded) when we make an update.
if field.name not in self._columns:
if field.field not in self._columns:
continue
if not field.field in fields:
fields[field.field] = [journal.id]
if not field.field in flds:
fld.append((field.field, field.sequence))
flds.append(field.field)
common_fields[field.field] = 1
else:
fields.get(field.field).append(journal.id)
common_fields[field.field] = common_fields[field.field] + 1
fld.append(('period_id', 3))
fld.append(('journal_id', 10))
flds.append('period_id')
flds.append('journal_id')
fields['period_id'] = all_journal
fields['journal_id'] = all_journal
default_columns = {
'period_id': 3,
'journal_id': 10,
'state': sys.maxint,
}
for d in default_columns:
if d not in flds:
fld.append((d, default_columns[d]))
flds.append(d)
fld = sorted(fld, key=itemgetter(1))
widths = {
'statement_id': 50,
@ -1029,10 +1025,7 @@ class account_move_line(osv.osv):
colors="red:state=='draft';black:state=='valid'")
fields_get = self.fields_get(cr, uid, flds, context)
for field, _seq in fld:
if common_fields.get(field) == total:
fields.get(field).append(None)
# if field=='state':
# state = 'colors="red:state==\'draft\'"'
# TODO add string to element
f = etree.SubElement(document, 'field', name=field)
if field == 'debit':
@ -1097,9 +1090,9 @@ class account_move_line(osv.osv):
res = cr.fetchone()
if res:
if res[1] != 'draft':
raise osv.except_osv(_('UserError'),
raise osv.except_osv(_('User Error!'),
_('The account move (%s) for centralisation ' \
'has been confirmed!') % res[2])
'has been confirmed.') % res[2])
return res
def _remove_move_reconcile(self, cr, uid, move_ids=[], context=None):
@ -1146,9 +1139,9 @@ class account_move_line(osv.osv):
if isinstance(ids, (int, long)):
ids = [ids]
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']:
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 ('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)
@ -1193,7 +1186,7 @@ class account_move_line(osv.osv):
result = cr.fetchall()
for (state,) in result:
if state == 'done':
raise osv.except_osv(_('Error !'), _('You can not add/modify entries in a closed journal.'))
raise osv.except_osv(_('Error!'), _('You cannot add/modify entries in a closed journal.'))
if not result:
journal = journal_obj.browse(cr, uid, journal_id, context=context)
period = period_obj.browse(cr, uid, period_id, context=context)
@ -1209,9 +1202,9 @@ class account_move_line(osv.osv):
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))
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:
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)
if t not in done:
self._update_journal_check(cr, uid, line.journal_id.id, line.period_id.id, context)
@ -1231,7 +1224,7 @@ class account_move_line(osv.osv):
if company_id:
vals['company_id'] = company_id[0]
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:
context['journal_id'] = vals['journal_id']
if 'period_id' in vals:
@ -1244,10 +1237,10 @@ class account_move_line(osv.osv):
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',''))
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]
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)
move_id = vals.get('move_id', False)
journal = journal_obj.browse(cr, uid, context['journal_id'], context=context)
@ -1270,7 +1263,7 @@ class account_move_line(osv.osv):
move_id = move_obj.create(cr, uid, v, context)
vals['move_id'] = move_id
else:
raise osv.except_osv(_('No piece number !'), _('Can not create an automatic sequence for this piece!\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)
if ('account_id' in vals):
account = account_obj.browse(cr, uid, vals['account_id'], context=context)
@ -1295,7 +1288,7 @@ class account_move_line(osv.osv):
vals['amount_currency'] = cur_obj.compute(cr, uid, account.company_id.currency_id.id,
account.currency_id.id, vals.get('debit', 0.0)-vals.get('credit', 0.0), context=ctx)
if not ok:
raise osv.except_osv(_('Bad account !'), _('You can not use this general account in this journal, 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 journal.analytic_journal_id:
@ -1354,7 +1347,7 @@ class account_move_line(osv.osv):
}
if data['tax_code_id']:
self.create(cr, uid, data, context)
#create the VAT movement
#create the Tax movement
data = {
'move_id': vals['move_id'],
'name': tools.ustr(vals['name'] or '') + ' ' + tools.ustr(tax['name'] or ''),

View File

@ -20,6 +20,7 @@
rml="account/report/account_print_invoice.rml"
string="Invoices"
attachment="(object.state in ('open','paid')) and ('INV'+(object.number or '').replace('/','')+'.pdf')"
attachment_use="True"
usage="default"
/>
<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">
<field name="currency_id" ref="base.EUR"/>
<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="state">draft</field>
<field name="type">out_invoice</field>

File diff suppressed because it is too large Load Diff

View File

@ -25,7 +25,6 @@
<record id="board_account_form" model="ir.ui.view">
<field name="name">board.account.form</field>
<field name="model">board.board</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Account Board" version="7.0">
<board style="2-1">

View File

@ -25,6 +25,11 @@ class res_company(osv.osv):
_inherit = "res.company"
_columns = {
'expects_chart_of_accounts': fields.boolean('Expects a Chart of Accounts'),
'tax_calculation_rounding_method': fields.selection([
('round_per_line', 'Round per Line'),
('round_globally', 'Round Globally'),
], 'Tax Calculation Rounding Method',
help="If you select 'Round per Line' : for each tax, the tax amount will first be computed and rounded for each PO/SO/invoice line and then these rounded amounts will be summed, leading to the total amount for that tax. If you select 'Round Globally': for each tax, the tax amount will be computed for each PO/SO/invoice line, then these amounts will be summed and eventually this total tax amount will be rounded. If you sell with tax included, you should choose 'Round per line' because you certainly want the sum of your tax-included line subtotals to be equal to the total amount with taxes."),
'paypal_account': fields.char("Paypal Account", size=128, help="Paypal username (usually email) for receiving online payments."),
'overdue_msg': fields.text('Overdue Payments Message', translate=True),
'property_reserve_and_surplus_account': fields.property(
@ -39,7 +44,8 @@ class res_company(osv.osv):
_defaults = {
'expects_chart_of_accounts': True,
'overdue_msg': '''Dear Sir, dear Madam,
'tax_calculation_rounding_method': 'round_per_line',
'overdue_msg': '''Dear Sir/Madam,
Our records indicate that some payments on your account are still due. Please find details below.
If the amount has already been paid, please disregard this notice. Otherwise, please forward us the total amount stated below.

View File

@ -5,7 +5,6 @@
<field name="name">res.company.form.inherit</field>
<field name="inherit_id" ref="base.view_company_form"/>
<field name="model">res.company</field>
<field name="type">form</field>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Overdue Payments" position="inside">
@ -20,12 +19,12 @@
<field name="name">res.company.form.inherit</field>
<field name="inherit_id" ref="base.view_company_form"/>
<field name="model">res.company</field>
<field name="type">form</field>
<field name="arch" type="xml">
<field name="currency_id" position="after">
<field name="property_reserve_and_surplus_account" colspan="2"/>
<field name="paypal_account" placeholder="sales@openerp.com"/>
</field>
<xpath expr="//group[@name='account_grp']" position="inside">
<field name="property_reserve_and_surplus_account"/>
<field name="tax_calculation_rounding_method"/>
<field name="paypal_account" placeholder="e.g. sales@openerp.com"/>
</xpath>
</field>
</record>

View File

@ -1,3 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<!-- Types -->
@ -550,7 +551,6 @@
<record id="action_wizard_multi_chart_todo" model="ir.actions.todo">
<field name="name">Set Your Accounting Options</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="category_id" ref="account.category_accounting_configuration"/>
<field name="type">automatic</field>
</record>

View File

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

View File

@ -31,7 +31,6 @@ INVOICE_LINE_EDI_STRUCT = {
'price_unit': True,
'quantity': True,
'discount': True,
'note': True,
# fields used for web preview only - discarded on import
'price_subtotal': True,

View File

@ -38,7 +38,7 @@
<!--Email template -->
<record id="email_template_edi_invoice" model="email.template">
<field name="name">Automated Invoice Notification Mail</field>
<field name="email_from">${object.user_id.user_email or object.company_id.email or 'noreply@localhost'}</field>
<field name="email_from">${object.user_id.email or object.company_id.email or 'noreply@localhost'}</field>
<field name="subject">${object.company_id.name} Invoice (Ref ${object.number or 'n/a' })</field>
<field name="email_to">${object.partner_id.email or ''}</field>
<field name="model_id" ref="account.model_account_invoice"/>
@ -58,7 +58,7 @@
% if object.origin:
&nbsp;&nbsp;Order reference: ${object.origin}<br />
% endif
&nbsp;&nbsp;Your contact: <a href="mailto:${object.user_id.user_email or ''}?subject=Invoice%20${object.number}">${object.user_id.name}</a>
&nbsp;&nbsp;Your contact: <a href="mailto:${object.user_id.email or ''}?subject=Invoice%20${object.number}">${object.user_id.name}</a>
</p>
<p>
@ -133,7 +133,7 @@ A new invoice is available for ${object.partner_id.name}:
% if object.origin:
| Order reference: ${object.origin}
% endif
| Your contact: ${object.user_id.name} ${object.user_id.user_email and '<%s>'%(object.user_id.user_email) or ''}
| Your contact: ${object.user_id.name} ${object.user_id.email and '<%s>'%(object.user_id.email) or ''}
You can view the invoice document, download it and pay online using the following link:
${ctx.get('edi_web_url_view') or 'n/a'}
@ -160,7 +160,7 @@ Thank you for choosing ${object.company_id.name}!
--
${object.user_id.name} ${object.user_id.user_email and '<%s>'%(object.user_id.user_email) or ''}
${object.user_id.name} ${object.user_id.email and '<%s>'%(object.user_id.email) or ''}
${object.company_id.name}
% if object.company_id.street:
${object.company_id.street or ''}

View File

@ -203,7 +203,7 @@ msgstr ""
#. module: account
#: help:account.tax.code,notprintable:0
#: help:account.tax.code.template,notprintable:0
msgid "Check this box if you don't want any VAT related to this Tax Code to appear on invoices"
msgid "Check this box if you don't want any tax related to this tax code to appear on invoices"
msgstr ""
#. module: account
@ -1853,7 +1853,7 @@ msgstr ""
#. module: account
#: report:account.journal.period.print.sale.purchase:0
msgid "VAT Declaration"
msgid "Tax Declaration"
msgstr ""
#. module: account
@ -2249,7 +2249,7 @@ msgstr ""
#. module: account
#: view:account.vat.declaration:0
msgid "This menu prints a VAT declaration based on invoices or payments. Select one or several periods of the fiscal year. The information required for a tax declaration is automatically generated by OpenERP from invoices (or payments, in some countries). This data is updated in real time. Thats very useful because it enables you to preview at any time the tax that you owe at the start and end of the month or quarter."
msgid "This menu prints a tax declaration based on invoices or payments. Select one or several periods of the fiscal year. The information required for a tax declaration is automatically generated by OpenERP from invoices (or payments, in some countries). This data is updated in real time. Thats very useful because it enables you to preview at any time the tax that you owe at the start and end of the month or quarter."
msgstr ""
#. module: account
@ -4480,7 +4480,7 @@ msgstr ""
#. module: account
#: model:ir.actions.act_window,name:account.action_account_vat_declaration
#: model:ir.model,name:account.model_account_vat_declaration
msgid "Account Vat Declaration"
msgid "Account Tax Declaration"
msgstr ""
#. module: account
@ -4821,7 +4821,7 @@ msgstr ""
#: help:account.tax.template,ref_base_code_id:0
#: help:account.tax.template,ref_tax_code_id:0
#: help:account.tax.template,tax_code_id:0
msgid "Use this code for the VAT declaration."
msgid "Use this code for the tax declaration."
msgstr ""
#. module: account
@ -5247,7 +5247,7 @@ msgstr ""
#. module: account
#: report:account.journal.period.print.sale.purchase:0
msgid "VAT"
msgid "Tax"
msgstr ""
#. module: account
@ -7561,7 +7561,7 @@ msgstr ""
#. module: account
#: model:ir.actions.act_window,help:account.action_account_vat_declaration
msgid "This menu print a VAT declaration based on invoices or payments. You can select one or several periods of the fiscal year. Information required for a tax declaration is automatically generated by OpenERP from invoices (or payments, in some countries). This data is updated in real time. Thats very useful because it enables you to preview at any time the tax that you owe at the start and end of the month or quarter."
msgid "This menu print a tax declaration based on invoices or payments. You can select one or several periods of the fiscal year. Information required for a tax declaration is automatically generated by OpenERP from invoices (or payments, in some countries). This data is updated in real time. Thats very useful because it enables you to preview at any time the tax that you owe at the start and end of the month or quarter."
msgstr ""
#. module: account

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:35+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:02+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0
@ -38,6 +38,8 @@ msgid ""
"Determine the display order in the report 'Accounting \\ Reporting \\ "
"Generic Reporting \\ Taxes \\ Taxes Report'"
msgstr ""
"تحديد عرض الترتيب في التقرير ’المحاسبة/تقارير/الإبلاغ العام/الضرائب/تقرير "
"الضرائب’"
#. module: account
#: view:account.move.reconcile:0
@ -55,7 +57,7 @@ msgstr "إحصائيات الحساب"
#. module: account
#: view:account.invoice:0
msgid "Proforma/Open/Paid Invoices"
msgstr ""
msgstr "الفواتير المبدئية/المفتوحة/المدفوعة"
#. module: account
#: field:report.invoice.created,residual:0
@ -81,7 +83,7 @@ msgstr "تعريف فروع"
#: code:addons/account/account_bank_statement.py:302
#, python-format
msgid "Journal item \"%s\" is not valid."
msgstr "عنصر يومية غير صحيح \"%s\"."
msgstr "بند اليومية \"%s\" غير صحيح."
#. module: account
#: model:ir.model,name:account.model_report_aged_receivable
@ -118,12 +120,14 @@ msgid ""
"Configuration error! The currency chosen should be shared by the default "
"accounts too."
msgstr ""
"خطأ في الإعدادات! يجب أن تكون العملة المختارة مشتركة للحسابات الإفتراضية "
"أيضأً."
#. module: account
#: report:account.invoice:0
#: field:account.invoice.line,origin:0
msgid "Origin"
msgstr "الاصل"
msgstr "المصدر"
#. module: account
#: view:account.account:0
@ -190,7 +194,7 @@ msgstr "عمود الأسماء"
#: code:addons/account/wizard/account_move_journal.py:95
#, python-format
msgid "Journal: %s"
msgstr "يومية: %s"
msgstr "دفتر اليومية: %s"
#. module: account
#: help:account.analytic.journal,type:0
@ -237,7 +241,7 @@ msgstr "فاتورة '%s' ستدفع علي الأجزاء التالية: %s%s
#. module: account
#: model:process.transition,note:account.process_transition_supplierentriesreconcile0
msgid "Accounting entries are an input of the reconciliation."
msgstr "السجلات المحاسبية ستكون مدخلات للموازنة"
msgstr "سيتم استخدام القيود المحاسبية أثناء التسوية."
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_management_belgian_reports
@ -248,7 +252,7 @@ msgstr "تقارير دولة بلجيكا"
#: code:addons/account/account_move_line.py:1200
#, python-format
msgid "You can not add/modify entries in a closed journal."
msgstr "لايمكن اضافة/تعديل البيانات في سجل مقفل"
msgstr "لايمكن اضافة أو تعديل البيانات في دفتر يومية مقفل."
#. module: account
#: help:account.account,user_type:0
@ -257,6 +261,8 @@ msgid ""
"legal reports, and set the rules to close a fiscal year and generate opening "
"entries."
msgstr ""
"يستخدم نوع الحساب لغرض الاستعلام، لتوليد تقارير قانونية خاصة ببلد معين, "
"ولتحديد قواعد إنهاء عام مالي و توليد إدخالات افتتاحية."
#. module: account
#: report:account.overdue:0
@ -307,8 +313,7 @@ msgid ""
"Installs localized accounting charts to match as closely as possible the "
"accounting needs of your company based on your country."
msgstr ""
"تثبيت مخططات المحاسبة المترجمة لتتوافق بأكبر قدر ممكن إلى المحاسبة التي "
"تحتاجها شركتك على أساس بلدتك."
"يقوم بتثبيت دليل محاسبي متوافق مع احتياجات مؤسستك حسب قوانين وأنظمة بلدك."
#. module: account
#: code:addons/account/wizard/account_move_journal.py:63
@ -342,11 +347,13 @@ msgid ""
"leave the automatic formatting, it will be computed based on the financial "
"reports hierarchy (auto-computed field 'level')."
msgstr ""
"يمكنك هنا إعداد التنسيق الذى ترىد ان يظهر به هذا السجل. إذا تركت التنسيق "
"الآلي, سيتم تعيينه آلياً بناءً على هيكل التقارير المالية."
#. module: account
#: view:account.installer:0
msgid "Configure"
msgstr "إضبط"
msgstr "إعداد"
#. module: account
#: selection:account.entries.report,month:0
@ -371,7 +378,7 @@ msgstr ""
#. module: account
#: constraint:account.move.line:0
msgid "You can not create journal items on an account of type view."
msgstr ""
msgstr "لا يمكنك إنشاء عناصر يومية علي حساب من نوع ’عرض’."
#. module: account
#: model:ir.model,name:account.model_account_tax_template
@ -442,7 +449,7 @@ msgstr "قالب مخطط"
#. module: account
#: help:account.model.line,amount_currency:0
msgid "The amount expressed in an optional other currency."
msgstr "أعرب الكمية بعملات اخرى اختيارية."
msgstr "قيمة المبلغ بعملة اختيارية أخرى."
#. module: account
#: field:accounting.report,enable_filter:0
@ -510,7 +517,7 @@ msgstr "تأكيد الفوراتير المختارة"
#. module: account
#: field:account.addtmpl.wizard,cparent_id:0
msgid "Parent target"
msgstr "الهدف الاساس"
msgstr "الهدف الرئيسي"
#. module: account
#: field:account.bank.statement,account_id:0
@ -543,7 +550,7 @@ msgstr "اسم الشركة يجب أن يكون فريداً"
#. module: account
#: model:ir.model,name:account.model_account_invoice_refund
msgid "Invoice Refund"
msgstr "استرجاع فاتورة"
msgstr "استرداد فاتورة"
#. module: account
#: report:account.overdue:0
@ -689,6 +696,8 @@ msgid ""
"The date of your Journal Entry is not in the defined period! You should "
"change the date or remove this constraint from the journal."
msgstr ""
"تاريخ قيد اليومية غير معرف الفترة! يجب تغيير التاريخ أو إزالة هذا الشرط من "
"اليومية."
#. module: account
#: model:ir.model,name:account.model_account_report_general_ledger
@ -781,6 +790,8 @@ msgid ""
"Taxes are missing!\n"
"Click on compute button."
msgstr ""
"الضرائب ناقصة!\n"
"اضغط على زر الحساب"
#. module: account
#: model:ir.model,name:account.model_account_subscription_line
@ -803,12 +814,12 @@ msgstr "فواتير المورد و المردودات المالية"
#: view:account.unreconcile.reconcile:0
#: model:ir.model,name:account.model_account_move_line_unreconcile_select
msgid "Unreconciliation"
msgstr "عكس التسوية"
msgstr "إلغاء التسوية"
#. module: account
#: view:account.payment.term.line:0
msgid "At 14 net days 2 percent, remaining amount at 30 days end of month."
msgstr ""
msgstr "عند 14 يوم صافي 2%، والمبلغ المتبقي عند 30 يوم نهاية الشهر"
#. module: account
#: model:ir.model,name:account.model_account_analytic_journal_report
@ -833,6 +844,9 @@ msgid ""
"or Loss you'd realized if those transactions were ended today. Only for "
"accounts having a secondary currency set."
msgstr ""
"عند القيام بعمليات متعددة العملات، قد تكسب أو تخسر قليلاً بسبب التغيرات في "
"سعر الصرف. توفر لك هذه القائمة توقعات بالمكسب أو الخسارة اللتان كنت ستحققهما "
"في حالة إتمام هذه العمليات اليوم (للحسابات التي لها عملة ثانوية فقط)."
#. module: account
#: selection:account.entries.report,month:0
@ -914,6 +928,8 @@ msgid ""
"You cannot validate this journal entry because account \"%s\" does not "
"belong to chart of accounts \"%s\"!"
msgstr ""
"لا يمكنك التحقق من صحة قيد اليومية لأن الحساب \"%s\" لاينتمى إلى الدليل "
"المحاسبي \"%s\"!"
#. module: account
#: code:addons/account/account_move_line.py:835
@ -922,6 +938,7 @@ msgid ""
"This account does not allow reconciliation! You should update the account "
"definition to change this."
msgstr ""
"هذا الحساب لا يسمح بالتسوية! يجب أن تقوم بتحديث تعريف الحساب لتغيير ذلك."
#. module: account
#: view:account.invoice:0
@ -992,7 +1009,7 @@ msgstr ""
#: code:addons/account/account.py:2596
#, python-format
msgid "I can not locate a parent code for the template account!"
msgstr ""
msgstr "لا أستطيع تحديد النرميز الأصلي للحساب النموذجي!"
#. module: account
#: view:account.analytic.line:0
@ -1068,6 +1085,7 @@ msgid ""
"You cannot change the type of account from '%s' to '%s' type as it contains "
"journal items!"
msgstr ""
"لا يمكنك تغيير نوع الحساب من نوع '%s' إلى نوع '%s' لأنه يحتوي على سجلات!"
#. module: account
#: field:account.report.general.ledger,sortby:0
@ -1093,7 +1111,7 @@ msgstr ""
#, python-format
msgid ""
"You have to provide an account for the write off/exchange difference entry !"
msgstr ""
msgstr "لابد من توفير حساب لإدخال تخفيض/ سعر التحويل!"
#. module: account
#: view:account.tax:0
@ -1132,7 +1150,7 @@ msgstr "تكوين المدخلات قبل:"
#. module: account
#: view:account.move.line:0
msgid "Unbalanced Journal Items"
msgstr ""
msgstr "قيود دفتر اليومية غير متوازنة"
#. module: account
#: model:account.account.type,name:account.data_account_type_bank
@ -1158,6 +1176,8 @@ msgid ""
"Total amount (in Secondary currency) for transactions held in secondary "
"currency for this account."
msgstr ""
"المبلغ الإجمالي (بالعملة الثانوية) للعمليات التي أجريت باستخدام العملة "
"الثانوية لهذا الحساب."
#. module: account
#: field:account.fiscal.position.tax,tax_dest_id:0
@ -1173,7 +1193,7 @@ msgstr "مركزية الدين"
#. module: account
#: view:report.account_type.sales:0
msgid "All Months Sales by type"
msgstr ""
msgstr "مبيعات جميع الأشهر حسب نوعها"
#. module: account
#: model:ir.actions.act_window,help:account.action_invoice_tree2
@ -1201,12 +1221,12 @@ msgstr "الغاء الفواتير"
#. module: account
#: help:account.journal,code:0
msgid "The code will be displayed on reports."
msgstr ""
msgstr "سيتم عرض الرمز في التقارير."
#. module: account
#: view:account.tax.template:0
msgid "Taxes used in Purchases"
msgstr ""
msgstr "الضرائب المستخدمة في المشتريات"
#. module: account
#: field:account.invoice.tax,tax_code_id:0
@ -1238,6 +1258,8 @@ msgid ""
"You can not use this general account in this journal, check the tab 'Entry "
"Controls' on the related journal !"
msgstr ""
"لا يمكنك استخدام هذا الحساب العام في دفتر اليومية هذا. تحقق من شريط \"ضوابط "
"الإدخال\" في دفتر اليومية."
#. module: account
#: field:account.move.line.reconcile,trans_nbr:0
@ -1273,7 +1295,7 @@ msgstr "أخرى"
#. module: account
#: view:account.subscription:0
msgid "Draft Subscription"
msgstr ""
msgstr "اشتركات المسودة"
#. module: account
#: view:account.account:0
@ -1500,7 +1522,7 @@ msgstr "عدد القيود "
msgid ""
"By unchecking the active field, you may hide a fiscal position without "
"deleting it."
msgstr ""
msgstr "عند إلغاء اختيار حقل \"نشط\"، يمكنك إخفاء الوضع المالي دون حذفه."
#. module: account
#: model:ir.model,name:account.model_temp_range
@ -1578,7 +1600,7 @@ msgstr "بحث كشوف حساب المصرف"
#. module: account
#: view:account.move.line:0
msgid "Unposted Journal Items"
msgstr ""
msgstr "قيود دفتر اليومية غير المسجلة"
#. module: account
#: view:account.chart.template:0
@ -1710,7 +1732,7 @@ msgstr ""
#. module: account
#: view:account.analytic.account:0
msgid "Pending Accounts"
msgstr ""
msgstr "حسابات معلقة"
#. module: account
#: view:account.tax.template:0
@ -1859,7 +1881,7 @@ msgstr "خطأ! لا يمكنك إنشاء شركات متداخلة (شركات
#. module: account
#: model:ir.actions.report.xml,name:account.account_journal_sale_purchase
msgid "Sale/Purchase Journal"
msgstr ""
msgstr "دفتر يومية المبيعات والمشتريات"
#. module: account
#: view:account.analytic.account:0
@ -1901,6 +1923,8 @@ msgid ""
"will be added, Loss : Amount will be deducted.), as calculated in Profit & "
"Loss Report"
msgstr ""
"يستخدم هذا الحساب لتحويل الربح والخسارة (في حالة الربح: سيتم إضافة المبلغ، "
"الخسارة: سيتم خصم المبلغ)، حسب تقرير الأرباح والخسائر"
#. module: account
#: model:process.node,note:account.process_node_reconciliation0
@ -1943,7 +1967,7 @@ msgstr "إذا تم إختيار \"صحيح\" فلن تقبل قيد بتاري
#: code:addons/account/account_invoice.py:73
#, python-format
msgid "You must define an analytic journal of type '%s'!"
msgstr ""
msgstr "يجب تعريف دفتر يومية تحليلي من نوع '%s'!"
#. module: account
#: field:account.installer,config_logo:0
@ -1958,11 +1982,13 @@ msgid ""
"currency. You should remove the secondary currency on the account or select "
"a multi-currency view on the journal."
msgstr ""
"الحساب المحدد لقيد اليومية يجبرك علي توفير عملة ثانوية. يجب إزالة العملة "
"الثانوية على الحساب أو تحديد طريقة عرض العملات في اليومية."
#. module: account
#: model:ir.actions.act_window,help:account.action_account_financial_report_tree
msgid "Makes a generic system to draw financial reports easily."
msgstr ""
msgstr "ينشئ نظاماً عاماً لاستخلاص التقارير المالية بسهولة."
#. module: account
#: view:account.invoice:0
@ -1981,12 +2007,12 @@ msgstr ""
#. module: account
#: view:account.analytic.line:0
msgid "Analytic Journal Items related to a sale journal."
msgstr ""
msgstr "قيود دفتر اليومية التحليلي المتعلقة بدفتر يومية المبيعات."
#. module: account
#: selection:account.financial.report,style_overwrite:0
msgid "Italic Text (smaller)"
msgstr ""
msgstr "نص مائل (أصغر)"
#. module: account
#: view:account.bank.statement:0
@ -2004,7 +2030,7 @@ msgstr "مسودّة"
#. module: account
#: report:account.journal.period.print.sale.purchase:0
msgid "VAT Declaration"
msgstr ""
msgstr "إعلان ضريبة القيمة المضافة"
#. module: account
#: field:account.move.reconcile,line_partial_ids:0
@ -2074,7 +2100,7 @@ msgstr ""
#: code:addons/account/account_bank_statement.py:357
#, python-format
msgid "You have to assign an analytic journal on the '%s' journal!"
msgstr ""
msgstr "لديك تعيين تحليل اليومية علي'%s' دفتر اليومية"
#. module: account
#: selection:account.invoice,state:0
@ -2122,6 +2148,8 @@ msgid ""
"Put a sequence in the journal definition for automatic numbering or create a "
"sequence manually for this piece."
msgstr ""
"لم يتم التمكن من إنشاء تسلسل تلقائي لهذه القطعة!\n"
"ضع تسلسل في تعريف السجل للترقيم التلقائي أو أنشيئ التسلسل يدويا لهذه القطعة."
#. module: account
#: code:addons/account/account.py:787
@ -2129,7 +2157,7 @@ msgstr ""
msgid ""
"You can not modify the company of this journal as its related record exist "
"in journal items"
msgstr ""
msgstr "لا يمكن تعديل الشركه المتسجله في المجله والموجوده في البنود اليوميه"
#. module: account
#: report:account.invoice:0
@ -2321,6 +2349,7 @@ msgid ""
"In order to delete a bank statement, you must first cancel it to delete "
"related journal items."
msgstr ""
"لكي يتم مسح كشف حساب بنكي, عليك أولا إلغائه لمسح البنود المتعلفة في السجل"
#. module: account
#: field:account.invoice,payment_term:0
@ -4352,7 +4381,7 @@ msgstr "إنشاء قيد من النماذج"
#: field:account.account,reconcile:0
#: field:account.account.template,reconcile:0
msgid "Allow Reconciliation"
msgstr "سماح بالتسوية"
msgstr "السماح بالتسوية"
#. module: account
#: code:addons/account/account.py:1077

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:36+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:36+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:36+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:36+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:36+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n"
"X-Generator: Launchpad (build 15745)\n"
"X-Poedit-Language: Czech\n"
#. module: account

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:36+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-26 05:22+0000\n"
"X-Generator: Launchpad (build 15482)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:04+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:37+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:04+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:43+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:09+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:43+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:41+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0
@ -5812,7 +5812,7 @@ msgstr "Cuenta n°"
#: code:addons/account/account_invoice.py:88
#, python-format
msgid "Free Reference"
msgstr "Referencia libre"
msgstr "Referencia libre / Nº Fact. Proveedor"
#. module: account
#: field:account.payment.term.line,value:0
@ -7618,7 +7618,7 @@ msgstr "Raiz/vista"
#: code:addons/account/account.py:3121
#, python-format
msgid "OPEJ"
msgstr ""
msgstr "OPEJ"
#. module: account
#: report:account.invoice:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:43+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:09+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:43+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:09+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

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

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-07-03 05:36+0000\n"
"X-Generator: Launchpad (build 15531)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:09+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0
@ -53,7 +53,7 @@ msgstr "Coinciliar entrada de diario"
#: view:account.move:0
#: view:account.move.line:0
msgid "Account Statistics"
msgstr ""
msgstr "Estadísticas de cuentas"
#. module: account
#: view:account.invoice:0
@ -73,23 +73,23 @@ msgstr "¡Error! La duración del periodo(s) no es válido. "
#. module: account
#: field:account.analytic.line,currency_id:0
msgid "Account currency"
msgstr ""
msgstr "Moneda contable"
#. module: account
#: view:account.tax:0
msgid "Children Definition"
msgstr ""
msgstr "Definición hijos"
#. module: account
#: code:addons/account/account_bank_statement.py:302
#, python-format
msgid "Journal item \"%s\" is not valid."
msgstr ""
msgstr "El asiento \"%s\" no es válido"
#. module: account
#: model:ir.model,name:account.model_report_aged_receivable
msgid "Aged Receivable Till Today"
msgstr ""
msgstr "A cobrar anteriores hasta hoy"
#. module: account
#: model:process.transition,name:account.process_transition_invoiceimport0
@ -112,6 +112,9 @@ msgid ""
"If you unreconciliate transactions, you must also verify all the actions "
"that are linked to those transactions because they will not be disabled"
msgstr ""
"Si rompe la conciliación de transacciones, también debe verificar todas la "
"acciones que están relacionadas con esas transacciones porque no serán "
"deshabilitadas."
#. module: account
#: constraint:account.journal:0
@ -119,6 +122,8 @@ msgid ""
"Configuration error! The currency chosen should be shared by the default "
"accounts too."
msgstr ""
"¡Error de configuración! La moneda elegida debería ser también la misma en "
"las cuentas por defecto"
#. module: account
#: report:account.invoice:0
@ -156,6 +161,8 @@ msgid ""
"If the active field is set to False, it will allow you to hide the payment "
"term without removing it."
msgstr ""
"Si el campo activo se desmarca, permite ocultar el plazo de pago sin "
"eliminarlo."
#. module: account
#: code:addons/account/account_invoice.py:1428
@ -167,13 +174,13 @@ msgstr "¡Aviso!"
#: code:addons/account/account.py:3112
#, python-format
msgid "Miscellaneous Journal"
msgstr ""
msgstr "Diario varios"
#. module: account
#: field:account.fiscal.position.account,account_src_id:0
#: field:account.fiscal.position.account.template,account_src_id:0
msgid "Account Source"
msgstr ""
msgstr "Origen cuenta"
#. module: account
#: model:ir.actions.act_window,name:account.act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal

View File

@ -10,15 +10,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2011-12-31 16:16+0000\n"
"Last-Translator: Christopher Ormaza - (Ecuadorenlinea.net) "
"<chris.ormaza@gmail.com>\n"
"PO-Revision-Date: 2012-07-30 03:26+0000\n"
"Last-Translator: Cristian Salamea (Gnuthink) <ovnicraft@gmail.com>\n"
"Language-Team: Spanish (Ecuador) <es_EC@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:44+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:10+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0
@ -446,7 +445,7 @@ msgstr "Total crédito"
#. module: account
#: view:account.move.line.unreconcile.select:0
msgid "Open for Unreconciliation"
msgstr ""
msgstr "Abrir para romper conciliación"
#. module: account
#: field:account.account.template,chart_template_id:0
@ -1612,7 +1611,7 @@ msgstr "Base Imponible"
#. module: account
#: view:account.partner.reconcile.process:0
msgid "Go to Next Partner"
msgstr ""
msgstr "Ir a la siguiente empresa"
#. module: account
#: view:account.bank.statement:0
@ -2859,7 +2858,7 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_tax_code_list
#: model:ir.ui.menu,name:account.menu_action_tax_code_list
msgid "Tax Codes"
msgstr ""
msgstr "Códigos de impuestos"
#. module: account
#: view:account.account:0
@ -3229,7 +3228,7 @@ msgstr "Plantillas para el plan contable"
#. module: account
#: model:ir.actions.act_window,name:account.action_wizard_multi_chart
msgid "Set Your Accounting Options"
msgstr ""
msgstr "Configurar tu Contabilidad"
#. module: account
#: view:report.account.sales:0
@ -4405,7 +4404,7 @@ msgstr "Reconcile Writeoff"
#. module: account
#: view:report.account.receivable:0
msgid "Accounts by Type"
msgstr ""
msgstr "Cuentas por tipo"
#. module: account
#: view:account.bank.statement:0
@ -4447,7 +4446,7 @@ msgstr "res_config_contents"
#. module: account
#: view:account.unreconcile:0
msgid "Unreconciliate Transactions"
msgstr ""
msgstr "Transacciones no conciliadas"
#. module: account
#: help:account.chart.template,visible:0
@ -4650,7 +4649,7 @@ msgstr "Fecha de realizacion"
#. module: account
#: view:account.unreconcile.reconcile:0
msgid "Unreconciliation Transactions"
msgstr ""
msgstr "Desconcialiación de Transacciones"
#. module: account
#: field:account.tax,ref_tax_code_id:0
@ -4785,7 +4784,7 @@ msgstr "Pagado"
#. module: account
#: view:account.period.close:0
msgid "Are you sure?"
msgstr ""
msgstr "¿Está Seguro?"
#. module: account
#: help:account.move.line,statement_id:0
@ -5183,7 +5182,7 @@ msgstr "Cuenta impuesto"
#. module: account
#: view:account.automatic.reconcile:0
msgid "Reconciliation Result"
msgstr ""
msgstr "Resultado de conciliación"
#. module: account
#: model:account.financial.report,name:account.account_financial_report_balancesheet0
@ -6173,7 +6172,7 @@ msgstr "Impuesto de venta(%)"
#. module: account
#: view:account.addtmpl.wizard:0
msgid "Create an Account Based on this Template"
msgstr ""
msgstr "Crear una cuenta basada en esta plantilla"
#. module: account
#: view:account.account.type:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:44+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:10+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

10523
addons/account/i18n/es_UY.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:43+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:09+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:37+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:36+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:02+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:39+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:06+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:44+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:10+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:37+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:37+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:04+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: code:addons/account/account_move_line.py:1200

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:43+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:37+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:04+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:37+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:04+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

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

View File

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

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:40+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -8,13 +8,13 @@ msgstr ""
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-05-17 13:09+0000\n"
"Last-Translator: Peter <herczegp@gmail.com>\n"
"Last-Translator: Herczeg Péter <herczegp@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:38+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:04+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-07-06 04:58+0000\n"
"X-Generator: Launchpad (build 15558)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:05+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

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

View File

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

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:39+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:05+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:39+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:05+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:39+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:05+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:39+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:05+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:39+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:06+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-29 04:38+0000\n"
"X-Generator: Launchpad (build 15505)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: code:addons/account/account.py:1307
@ -218,7 +218,7 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_account_tax_template_form
#: model:ir.ui.menu,name:account.menu_action_account_tax_template_form
msgid "Tax Templates"
msgstr "Belasting templates"
msgstr "Belasting sjablonen"
#. module: account
#: model:ir.model,name:account.model_account_tax
@ -260,7 +260,9 @@ msgstr "Belgische overzichten"
#: code:addons/account/account_move_line.py:1200
#, python-format
msgid "You can not add/modify entries in a closed journal."
msgstr "Er kunnen geen boekingen worden aangepast die zijn afgesloten"
msgstr ""
"Er kunnen geen wijzigingen worden aangebracht in een dagboek dat al is "
"afgesloten."
#. module: account
#: help:account.account,user_type:0
@ -269,9 +271,9 @@ msgid ""
"legal reports, and set the rules to close a fiscal year and generate opening "
"entries."
msgstr ""
"De rekeningsoort wordt gebruikt voor (land-specifieke) rapportagedoeleinden "
"en bepaalt de handelswijze bij het afsluiten van het boekjaar en het openen "
"van de balans."
"De rekening categorie wordt gebruikt voor (land-specifieke) "
"rapportagedoeleinden en bepaalt de handelswijze bij het afsluiten van het "
"boekjaar en het openen van de balans."
#. module: account
#: report:account.overdue:0
@ -384,7 +386,7 @@ msgid ""
msgstr ""
"Dit formulier wordt gebruikt door boekhouders voor het invoeren van grote "
"hoeveelheden boekingen in OpenERP. De journaalposten worden aangemaakt door "
"OpenERP als er gebruik wordt gemaakt van bankafschriften, kassasystemen of "
"OpenERP als er gebruik wordt gemaakt van bankafschriften, Kasregisters of "
"klant/leverancier-betalingen."
#. module: account
@ -491,9 +493,9 @@ msgid ""
"amount of each area of the tax declaration for your country. Its presented "
"in a hierarchical structure, which can be modified to fit your needs."
msgstr ""
"De belastingstructuur is een boomweergave van de verschillende "
"De belastingweergave is een boomweergave van de verschillende "
"belastingrubrieken, en toont de belastingsituatie van dit moment. De "
"bedragen in de belastingstructuur komen overeen met de onderdelen van de "
"bedragen in de belastingweergave komen overeen met de onderdelen van de "
"belastingaangifte van uw land. De hiërarchische structuur kan naar uw wensen "
"worden aangepast."
@ -573,7 +575,7 @@ msgstr "Creditering factuur"
#. module: account
#: report:account.overdue:0
msgid "Li."
msgstr "Li."
msgstr "Bt."
#. module: account
#: field:account.automatic.reconcile,unreconciled:0
@ -584,7 +586,7 @@ msgstr "Niet afgeletterde transacties"
#: report:account.general.ledger:0
#: report:account.general.ledger_landscape:0
msgid "Counterpart"
msgstr "Tegenboeking"
msgstr "Tegenrekening"
#. module: account
#: view:account.fiscal.position:0
@ -748,7 +750,7 @@ msgstr "Vandaag afgeletterde relaties"
#. module: account
#: view:report.hr.timesheet.invoice.journal:0
msgid "Sale journal in this year"
msgstr "Verkoop journaal in dit jaar"
msgstr "Verkoopboek in dit jaar"
#. module: account
#: selection:account.financial.report,display_detail:0
@ -856,7 +858,7 @@ msgstr "Automatisch afletteren"
#. module: account
#: report:account.analytic.account.quantity_cost_ledger:0
msgid "J.C./Move name"
msgstr "J.C./Verplaats naam"
msgstr "Dagboek code / Mutatienaam"
#. module: account
#: model:ir.actions.act_window,help:account.action_account_gain_loss
@ -916,7 +918,7 @@ msgstr "Berekening"
#. module: account
#: selection:account.invoice.refund,filter_refund:0
msgid "Cancel: refund invoice and reconcile"
msgstr "Annuleer: factuur crediteren en afletteren"
msgstr "Factuur annuleren: factuur crediteren en afletteren"
#. module: account
#: field:account.cashbox.line,pieces:0
@ -934,7 +936,7 @@ msgstr "Gem. betaaltermijn"
#: model:ir.actions.act_window,name:account.action_tax_code_tree
#: model:ir.ui.menu,name:account.menu_action_tax_code_tree
msgid "Chart of Taxes"
msgstr "Belastingstructuur"
msgstr "Belastingweergave"
#. module: account
#: view:account.fiscalyear:0
@ -1103,7 +1105,7 @@ msgstr "Weeknummer"
#. module: account
#: field:account.report.general.ledger,landscape:0
msgid "Landscape Mode"
msgstr "Landschap modus"
msgstr "Liggend afdrukken"
#. module: account
#: code:addons/account/account.py:645
@ -1151,13 +1153,13 @@ msgstr "Toepasbaarheidsopties"
#. module: account
#: report:account.partner.balance:0
msgid "In dispute"
msgstr "Geschil"
msgstr "Wordt betwist"
#. module: account
#: model:ir.actions.act_window,name:account.action_view_bank_statement_tree
#: model:ir.ui.menu,name:account.journal_cash_move_lines
msgid "Cash Registers"
msgstr "Kassasystemen"
msgstr "Kasregisters"
#. module: account
#: report:account.analytic.account.journal:0
@ -1356,7 +1358,7 @@ msgstr "Concept abonnement"
#: model:ir.model,name:account.model_account_account
#: field:report.account.sales,account_id:0
msgid "Account"
msgstr "Grootboekrek."
msgstr "Rekening"
#. module: account
#: field:account.tax,include_base_amount:0
@ -1418,7 +1420,7 @@ msgstr "Belastingsjabloon zoeken"
#: model:ir.actions.act_window,name:account.action_account_reconcile_select
#: model:ir.actions.act_window,name:account.action_view_account_move_line_reconcile
msgid "Reconcile Entries"
msgstr "Letter boekingen af"
msgstr "Afletteren boekingen"
#. module: account
#: model:ir.actions.report.xml,name:account.account_overdue
@ -1589,7 +1591,7 @@ msgstr "Herhalende boekingen"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_template
msgid "Template for Fiscal Position"
msgstr "Sjabloon voor fiscale situatie"
msgstr "Sjabloon voor fiscale positie"
#. module: account
#: field:account.automatic.reconcile,reconciled:0
@ -1647,7 +1649,7 @@ msgstr "Crediteur"
#: field:account.tax,account_paid_id:0
#: field:account.tax.template,account_paid_id:0
msgid "Refund Tax Account"
msgstr "Rekening terugontvangen belasting"
msgstr "Rekening te vorderen belasting"
#. module: account
#: view:account.bank.statement:0
@ -1673,7 +1675,7 @@ msgstr ""
#. module: account
#: report:account.analytic.account.cost_ledger:0
msgid "Date/Code"
msgstr "Datum/code"
msgstr "Datum"
#. module: account
#: field:account.analytic.line,general_account_id:0
@ -1724,8 +1726,8 @@ msgid ""
"Cancel Invoice: Creates the refund invoice, validate and reconcile it to "
"cancel the current invoice."
msgstr ""
"Annuleer factuur: Genereert een creditfactuur, valideert en lettert af om de "
"huidige factuur te annuleren."
"Factuur annuleren: Genereert een creditfactuur, valideert en lettert af om "
"de huidige factuur te annuleren."
#. module: account
#: model:ir.ui.menu,name:account.periodical_processing_invoicing
@ -1933,7 +1935,7 @@ msgstr "Kostenplaatsen"
#, python-format
msgid "Please verify that an account is defined in the journal."
msgstr ""
"Controleer alstublieft of een grootboekrekening is opgegeven in het journaal"
"Controleer alstublieft of een grootboekrekening is opgegeven in het dagboek"
#. module: account
#: selection:account.entries.report,move_line_state:0
@ -2259,14 +2261,14 @@ msgstr "CIKB"
#: view:account.subscription:0
#: selection:account.subscription,state:0
msgid "Running"
msgstr "Running"
msgstr "Lopend"
#. module: account
#: view:account.chart.template:0
#: field:product.category,property_account_income_categ:0
#: field:product.template,property_account_income:0
msgid "Income Account"
msgstr "Opbrengsten rekening"
msgstr "Opbrengsten verkoop rekening"
#. module: account
#: code:addons/account/account_invoice.py:370
@ -2489,9 +2491,9 @@ msgid ""
"You can create one in the menu: \n"
"Configuration\\Financial Accounting\\Accounts\\Journals."
msgstr ""
"Kan geen journaal van het type %s vinden voor dit bedrijf.\n"
"U kunt een journaal creëren in het menu:\n"
"Configuratie\\Financieel boekhouden\\Rekeningen\\Journalen"
"Kan geen dagboek van het type %s vinden voor dit bedrijf.\n"
"U kunt een dagboek aanmaken in het menu:\n"
"Instellingen\\ Financiële administratie\\Dagboeken"
#. module: account
#: model:account.payment.term,name:account.account_payment_term_advance
@ -2622,7 +2624,7 @@ msgid ""
"The fiscal position will determine taxes and the accounts used for the "
"partner."
msgstr ""
"De fiscale situatie bepaalt de belastingen en de grootboekrekeningen die "
"De fiscale positie bepaalt de belastingen en de grootboekrekeningen die "
"gebruikt worden voor de relatie."
#. module: account
@ -2666,7 +2668,7 @@ msgstr "Kostenplaatsen"
#: model:ir.ui.menu,name:account.menu_action_account_form
#: model:ir.ui.menu,name:account.menu_analytic
msgid "Accounts"
msgstr "Rekeningen"
msgstr "Grootboekrekeningen"
#. module: account
#: code:addons/account/account_invoice.py:369
@ -2711,7 +2713,7 @@ msgstr "Afletteren bank"
#. module: account
#: report:account.invoice:0
msgid "Disc.(%)"
msgstr "Korting. (%)"
msgstr "Krt. (%)"
#. module: account
#: report:account.general.ledger:0
@ -2892,7 +2894,7 @@ msgstr "Klanten"
#: report:account.analytic.account.journal:0
#: report:account.analytic.account.quantity_cost_ledger:0
msgid "Period to"
msgstr "Periode tot"
msgstr "Periode t/m"
#. module: account
#: selection:account.entries.report,month:0
@ -2942,7 +2944,7 @@ msgstr "Verplicht"
#: field:product.category,property_account_expense_categ:0
#: field:product.template,property_account_expense:0
msgid "Expense Account"
msgstr "Kosten rekening"
msgstr "Inkoopwaarde verkopen"
#. module: account
#: help:account.invoice,period_id:0
@ -3289,7 +3291,7 @@ msgstr ""
#: code:addons/account/wizard/account_open_closed_fiscalyear.py:39
#, python-format
msgid "No End of year journal defined for the fiscal year"
msgstr "Geen Eindejaars-journaal gedefinieerd voor het fiscale jaar"
msgstr "Geen Eindejaars-dagboek gedefinieerd voor het fiscale jaar"
#. module: account
#: view:account.tax:0
@ -3329,7 +3331,7 @@ msgstr "Laat leeg om de kostenrekening te gebruiken"
#: model:ir.ui.menu,name:account.menu_journals
#: model:ir.ui.menu,name:account.menu_journals_report
msgid "Journals"
msgstr "Overige dagboeken"
msgstr "Dagboeken"
#. module: account
#: field:account.partner.reconcile.process,to_reconcile:0
@ -3418,7 +3420,7 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_account_unreconcile_reconcile
#: model:ir.actions.act_window,name:account.action_account_unreconcile_select
msgid "Unreconcile Entries"
msgstr "Boekingen niet vereffenen"
msgstr "Afletteren ongedaan maken"
#. module: account
#: field:account.tax.code,notprintable:0
@ -3605,7 +3607,7 @@ msgstr ""
#. module: account
#: field:account.journal,centralisation:0
msgid "Centralised counterpart"
msgstr "Samengevoegde tegenboeking"
msgstr "Centrale tegenrekening"
#. module: account
#: code:addons/account/account_move_line.py:584
@ -3836,7 +3838,7 @@ msgstr "Mutaties"
#. module: account
#: selection:account.invoice.refund,filter_refund:0
msgid "Create a draft Refund"
msgstr "Maak een concept terugbetaling"
msgstr "Crediteer factuur: Maak een concept credit factuur"
#. module: account
#: view:account.state.open:0
@ -3862,7 +3864,7 @@ msgid ""
"menu."
msgstr ""
"U kunt geen factuur aanmaken in een gecentraliseerd dagboek. Zet de optie "
"'Gecentraliseerde tegenboekingen' uit in de instellingen van het dagboek."
"'Centrale tegenrekening' uit in de instellingen van het dagboek."
#. module: account
#: field:account.account,name:0
@ -3892,13 +3894,13 @@ msgstr ""
#. module: account
#: field:account.move.line,date:0
msgid "Effective date"
msgstr "Effective date"
msgstr "Boek datum"
#. module: account
#: model:ir.actions.act_window,name:account.action_bank_tree
#: model:ir.ui.menu,name:account.menu_action_bank_tree
msgid "Setup your Bank Accounts"
msgstr "Stel uw bankrekeningen in"
msgstr "Bankrekeningen"
#. module: account
#: code:addons/account/wizard/account_move_bank_reconcile.py:53
@ -3909,7 +3911,7 @@ msgstr "Standaard invoer"
#. module: account
#: help:account.journal,analytic_journal_id:0
msgid "Journal for analytic entries"
msgstr "Journaal voor kostenplaats boekingen"
msgstr "Dagboek voor kostenplaats boekingen"
#. module: account
#: constraint:account.aged.trial.balance:0
@ -3990,7 +3992,7 @@ msgstr ""
"Aangeraden wordt om een apart dagboek te gebruiken voor het maken van de "
"openingsboekingen van de fiscale jaren. Merk op dat de juiste instellingen "
"hiervoor zijn: de standaard debet- en creditrekeningen, type 'situatie' en "
"met gecentraliseerde tegenboekingen."
"met gecentraliseerde tegenrekeningen."
#. module: account
#: view:account.installer:0
@ -4026,7 +4028,7 @@ msgstr "Bevestig"
#: model:ir.actions.act_window,name:account.action_account_analytic_cost
#: model:ir.actions.report.xml,name:account.account_analytic_account_cost_ledger
msgid "Cost Ledger"
msgstr "Kostenstaat"
msgstr "Kostenplaats kosten"
#. module: account
#: model:account.financial.report,name:account.account_financial_report_assets0
@ -4077,7 +4079,7 @@ msgstr "30 Dagen einde van de maand"
#: model:ir.actions.act_window,name:account.action_account_analytic_balance
#: model:ir.actions.report.xml,name:account.account_analytic_account_balance
msgid "Analytic Balance"
msgstr "Kostenplaats balans"
msgstr "Kostenplaatsbalans (kostenplaats-rekening)"
#. module: account
#: help:account.account,active:0
@ -4140,7 +4142,7 @@ msgstr ""
#: field:report.account.receivable,type:0
#: field:report.account_type.sales,user_type:0
msgid "Account Type"
msgstr "Rekeningsoort"
msgstr "Rekening categorie"
#. module: account
#: view:res.partner:0
@ -4456,7 +4458,7 @@ msgstr "Kan zichtbaar zijn?"
#. module: account
#: model:ir.model,name:account.model_account_journal_select
msgid "Account Journal Select"
msgstr "Rekening journaal selectie"
msgstr "Rekening dagboek selectie"
#. module: account
#: view:account.tax.template:0
@ -4500,7 +4502,7 @@ msgstr "Genereer boekingen vanuit standaard modellen"
#: field:account.account,reconcile:0
#: field:account.account.template,reconcile:0
msgid "Allow Reconciliation"
msgstr "Verrekening toestaan"
msgstr "Afletteren toestaan"
#. module: account
#: code:addons/account/account.py:1077
@ -4608,7 +4610,7 @@ msgstr ""
#: view:account.tax:0
#: view:account.tax.template:0
msgid "Keep empty to use the income account"
msgstr "Laat leeg om de opbrengsten rekening te gebruiken"
msgstr "Laat leeg om de opbrengsten verkoop rekening te gebruiken"
#. module: account
#: code:addons/account/account.py:3299
@ -4693,7 +4695,7 @@ msgid ""
"All draft account entries in this journal and period will be validated. It "
"means you won't be able to modify their accounting fields anymore."
msgstr ""
"Alle concept boekingen in dit journaal en periode worden gecontroleerd. Dit "
"Alle concept boekingen in dit dagboek en periode worden gecontroleerd. Dit "
"betekent dat u de boekingsvelden niet meer kunt wijzigen."
#. module: account
@ -4709,7 +4711,7 @@ msgstr "Startdatum"
#. module: account
#: field:account.chart.template,property_account_income:0
msgid "Income Account on Product Template"
msgstr "Opbrengsten rekening op product sjabloon"
msgstr "Opbrengsten verkoop rekening op product sjabloon"
#. module: account
#: code:addons/account/account.py:3120
@ -5059,7 +5061,7 @@ msgstr ""
#. module: account
#: report:account.analytic.account.balance:0
msgid "Analytic Balance -"
msgstr "Kostenplaats saldo -"
msgstr "Kostenplaats balans -"
#. module: account
#: report:account.account.balance:0
@ -5191,12 +5193,12 @@ msgstr "Interne naam"
#. module: account
#: selection:account.subscription,period_type:0
msgid "month"
msgstr "maand"
msgstr "Maand"
#. module: account
#: field:account.partner.reconcile.process,next_partner_id:0
msgid "Next Partner to Reconcile"
msgstr "Volgende relatie voor vereffening"
msgstr "Volgende relatie om af te letteren"
#. module: account
#: field:account.invoice.tax,account_id:0
@ -5606,7 +5608,7 @@ msgstr "Normale tekst"
#. module: account
#: view:account.invoice.refund:0
msgid "Refund Invoice Options"
msgstr "Creditnota opties"
msgstr "Credit factuur opties"
#. module: account
#: help:account.automatic.reconcile,power:0
@ -5631,7 +5633,7 @@ msgstr ""
#: view:account.fiscal.position.template:0
#: field:account.fiscal.position.template,name:0
msgid "Fiscal Position Template"
msgstr "Fiscale situatie sjabloon"
msgstr "Fiscale positie sjabloon"
#. module: account
#: view:account.analytic.chart:0
@ -5882,7 +5884,7 @@ msgid ""
"You can define both numeric and alphanumeric tax codes."
msgstr ""
"De balastingrubriek definitie hangt af van de belastingopgave van uw land. "
"OpenERP geeft u de mogelijkheid om, vanuit dit menu, een belastingstructuur "
"OpenERP geeft u de mogelijkheid om, vanuit dit menu, een belastingweergave "
"te beheren. Het is mogelijk om numerieke en alfanumerieke belastingrubrieken "
"te gebruiken."
@ -5979,7 +5981,7 @@ msgstr "Huidige valuta is niet correct geconfigureerd!"
#: field:account.tax,account_collected_id:0
#: field:account.tax.template,account_collected_id:0
msgid "Invoice Tax Account"
msgstr "Rekening ontvangen belastig"
msgstr "Rekening af te dragen belasting"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_general_journal
@ -6079,7 +6081,7 @@ msgstr ""
#. module: account
#: view:account.subscription:0
msgid "Running Subscription"
msgstr "Lopende abonnementen"
msgstr "Lopende boekingen"
#. module: account
#: report:account.invoice:0
@ -6229,6 +6231,10 @@ msgid ""
"choice assumes that the set of tax defined for the chosen template is "
"complete"
msgstr ""
"Deze optie helpt u bij het kiezen of u de gebruiker de verkoop- en "
"inkoopkoers wil laten invoeren of de gebruikelijke keuzevelden te gebruiken. "
"Bij de laatste keuze neemt het systeem aan dat de belastingen voor het "
"gekozen sjabloon compleet zijn."
#. module: account
#: report:account.vat.declaration:0
@ -6426,7 +6432,7 @@ msgstr "Afletteren: Ga naar de volgende relatie"
#: model:ir.actions.act_window,name:account.action_account_analytic_invert_balance
#: model:ir.actions.report.xml,name:account.account_analytic_account_inverted_balance
msgid "Inverted Analytic Balance"
msgstr "Omgekeerde kostenplaats balans"
msgstr "Kostenplaatsbalans (rekening-kostenplaats)"
#. module: account
#: field:account.tax.template,applicable_type:0
@ -6766,8 +6772,9 @@ msgid ""
"This account will be used instead of the default one as the receivable "
"account for the current partner"
msgstr ""
"Deze rekening zal gebruikt worden in plaats van de standaard- als de "
"opbrengsten rekening voor de huidige relatie."
"Deze rekening zal gebruikt worden als de debiteuren rekening voor de huidige "
"relatie, in plaats van de standaard rekening, zoals ingesteld bij "
"Instellingen\\Instellingen\\Parameters\\Configuratie parameters."
#. module: account
#: field:account.tax,python_applicable:0
@ -6857,7 +6864,7 @@ msgstr "Behoud het balans +/- teken"
#: model:ir.actions.report.xml,name:account.account_vat_declaration
#: model:ir.ui.menu,name:account.menu_account_vat_declaration
msgid "Taxes Report"
msgstr "Overzicht belasting"
msgstr "Belastingen rapport"
#. module: account
#: selection:account.journal.period,state:0
@ -7273,7 +7280,7 @@ msgstr "Financieel rapporthistorie"
#: view:analytic.entries.report:0
#: field:analytic.entries.report,product_uom_id:0
msgid "Product UOM"
msgstr "Product eenh."
msgstr "Product maateenheid"
#. module: account
#: model:ir.actions.act_window,help:account.action_view_bank_statement_tree
@ -7738,11 +7745,17 @@ msgid ""
"few new accounts (You don't need to define the whole structure that is "
"common to both several times)."
msgstr ""
"Dit optionele veld geeft u de mogelijkheid om een rekeningsjabloon te "
"koppelen aan een specifiek rekeningsjabloon, welke anders mag zijn dan de "
"bovenliggende sjablonen. Dit geeft u de mogelijkheid om een rekeningsjabloon "
"te definiëren welke een uitbreiding is op de andere, met een aantal extra "
"nieuwe rekeningen (U hoeft niet de gehele structuur te definiëren voor het "
"gedeelte wat gelijk is)."
#. module: account
#: view:account.move:0
msgid "Unposted Journal Entries"
msgstr "Niet geboekte journaalposten"
msgstr "Ongeboekte journaalposten"
#. module: account
#: view:product.product:0
@ -8008,7 +8021,7 @@ msgstr ""
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_legal_statement
msgid "Legal Reports"
msgstr "Wettelijke rapporten"
msgstr "Boekhoudkundige rapporten"
#. module: account
#: field:account.tax.code,sum_period:0
@ -8195,6 +8208,12 @@ msgid ""
"Most of the OpenERP operations (invoices, timesheets, expenses, etc) "
"generate analytic entries on the related account."
msgstr ""
"Het normale grootboekschema heeft een structuur volgens de wettelijke "
"richtlijnen voor boekhouden. De kostenplaats rekeningen kunt u vrij "
"inrichten naar uw behoeften. Kostenplaatsen worden normaliter gebruikt bij "
"contracten, projecten en/of afdelingen. De meeste acties uitgevoerd door "
"OpenERP (facturen, urenstaten, declaraties, etc.) genereren "
"kostenplaatsboekingen."
#. module: account
#: field:account.account.type,close_method:0
@ -8246,7 +8265,7 @@ msgstr ""
#. module: account
#: report:account.analytic.account.inverted.balance:0
msgid "Inverted Analytic Balance -"
msgstr "Geïnverteerde kostenplaatsbalans -"
msgstr "Omgekeerde kostenplaatsbalans -"
#. module: account
#: view:account.move.bank.reconcile:0
@ -8346,7 +8365,7 @@ msgstr "Proforma"
#. module: account
#: report:account.analytic.account.cost_ledger:0
msgid "J.C. /Move name"
msgstr "J.C. /Mutatienaam"
msgstr "Dagboek code / Mutatienaam"
#. module: account
#: model:ir.model,name:account.model_account_open_closed_fiscalyear
@ -8380,8 +8399,8 @@ msgid ""
"Modify Invoice: Cancels the current invoice and creates a new copy of it "
"ready for editing."
msgstr ""
"Wijzig factuur: Annuleert de huidige facturen en maak een kopie aan, gereed "
"voor bewerken."
"Wijzig factuur: Annuleert de huidige factuur en maakt een kopie aan waarop u "
"wijzigingen kunt maken."
#. module: account
#: field:account.automatic.reconcile,period_id:0
@ -8471,7 +8490,7 @@ msgstr "Aangepaste balans"
#: model:ir.actions.act_window,name:account.action_account_fiscal_position_template_form
#: model:ir.ui.menu,name:account.menu_action_account_fiscal_position_form_template
msgid "Fiscal Position Templates"
msgstr "Fiscale situatie sjablonen"
msgstr "Fiscale positie sjablonen"
#. module: account
#: view:account.entries.report:0
@ -8565,8 +8584,8 @@ msgid ""
"You can check this box to mark this journal item as a litigation with the "
"associated partner"
msgstr ""
"U kunt deze optie aanvinken om deze boeking te markeren als een geschil met "
"de geassocieerde partner"
"U kunt deze optie aanvinken om deze boeking te markeren als deze boeking "
"wordt betwist door uw klant."
#. module: account
#: field:account.move.line,reconcile_partial_id:0
@ -8577,7 +8596,7 @@ msgstr "Letter deels af"
#. module: account
#: model:ir.model,name:account.model_account_analytic_inverted_balance
msgid "Account Analytic Inverted Balance"
msgstr "Geïnverteerde kostenplaats balans"
msgstr "Kostenplaatsbalans (rekening-kostenplaats)"
#. module: account
#: model:ir.model,name:account.model_account_common_report
@ -8672,7 +8691,7 @@ msgstr "Fiscale jaar afgesloten"
#. module: account
#: field:account.invoice.refund,journal_id:0
msgid "Refund Journal"
msgstr "Creditnota dagboek"
msgstr "Credit factuur dagboek"
#. module: account
#: report:account.account.balance:0
@ -8694,7 +8713,7 @@ msgid ""
msgstr ""
"Met dit programmaonderdeel kunt u verkoopfacturen aanmaken en beheren. "
"OpenERP kan ook automatisch concept facturen aanmaken van verkooporders of "
"leveringsopdrachten. U hoeft ze alleen nog maar te bevestigen alvorens u ze "
"uitgaande leveringen. U hoeft ze alleen nog maar te bevestigen alvorens u ze "
"verstuurt naar uw klanten."
#. module: account
@ -9065,7 +9084,7 @@ msgid ""
msgstr ""
"Voor rekeningen welke normaliter meer debet zijn dan credit en welke u "
"afgedrukt wilt hebben als negatief bedrag in uw rapporten, dient u het +/- "
"teken van de balans om te draaien. Bijvoorbeeld voor de opbrengsten "
"teken van de balans om te draaien. Bijvoorbeeld voor de opbrengsten verkoop "
"rekening. Hetzelfde geld voor rekeningen welke normaliter meer credit zijn "
"dan debet en welke u wilt afdrukken als positief bedrag in uw rapporten, "
"bijvoorbeeld de inkomsten rekening."
@ -9383,7 +9402,7 @@ msgstr "Belastingrubriek sjabloon"
#. module: account
#: report:account.overdue:0
msgid "Document: Customer account statement"
msgstr "Document: Boekhoudkundige klantverklaring"
msgstr "Document: Rekeningoverzicht klant"
#. module: account
#: field:account.account.type,report_type:0
@ -9500,9 +9519,9 @@ msgstr ""
"Dit formulier wordt gebruikt door boekhouders voor het invoeren van grote "
"hoeveelheden boekingen in OpenERP. Indien u een klantfactuur wilt boeken, "
"selecteert u het dagboek en de periode in de zoekbalk. Beging vervolgens met "
"het vastleggen van de regel voor de opbrengsten rekening, OpenERP zal u "
"automatisch de een voorstel doen voor de belastingen, gerelateerd aan deze "
"rekening en de tegenrekening \"Debiteuren\""
"het vastleggen van de regel voor de opbrengsten verkoop rekening, OpenERP "
"zal u automatisch de een voorstel doen voor de belastingen, gerelateerd aan "
"deze rekening en de tegenrekening \"Debiteuren\""
#. module: account
#: code:addons/account/wizard/account_automatic_reconcile.py:152
@ -9565,7 +9584,7 @@ msgstr ""
#. module: account
#: view:analytic.entries.report:0
msgid "Analytic Entries of last 365 days"
msgstr "Kostenplaatsboekingen over ed afgelopen 365 dagen"
msgstr "Kostenplaatsboekingen over de afgelopen 365 dagen"
#. module: account
#: report:account.central.journal:0
@ -9658,7 +9677,7 @@ msgstr "Verdeling"
#. module: account
#: model:ir.model,name:account.model_account_analytic_balance
msgid "Account Analytic Balance"
msgstr "Kostenplaats balans"
msgstr "Kostenplaatsbalans (kostenplaats-rekening)"
#. module: account
#: code:addons/account/account.py:412
@ -9869,8 +9888,9 @@ msgid ""
"This account will be used instead of the default one as the payable account "
"for the current partner"
msgstr ""
"Deze rekening zal gebruikt worden in plaats van de standaard- als de "
"crediteurenrekening van de huidige relatie."
"Deze rekening zal gebruikt worden als de crediteuren rekening van de huidige "
"relatie in plaats van de standaard rekening, zoals ingesteld bij "
"Instellingen\\Instellingen\\Parameters\\Configuratie parameters."
#. module: account
#: field:account.period,special:0
@ -9929,7 +9949,7 @@ msgstr ""
#: code:addons/account/account.py:181
#, python-format
msgid "Profit & Loss (Income account)"
msgstr "Winst & verlies (omzet rekening)"
msgstr "Winst & verlies (Omzet rekening)"
#. module: account
#: constraint:account.account:0
@ -10035,7 +10055,7 @@ msgstr "April"
#. module: account
#: model:account.financial.report,name:account.account_financial_report_profitloss_toreport0
msgid "Profit (Loss) to report"
msgstr "Winst (verlies) te rapoprteren"
msgstr "Winst (verlies) te rapporteren"
#. module: account
#: view:account.move.line.reconcile.select:0
@ -10387,7 +10407,7 @@ msgstr "Lege rekeningen? "
#. module: account
#: constraint:account.bank.statement:0
msgid "The journal and period chosen have to belong to the same company."
msgstr "De gekozen journaal en periode moeten behoren tot hetzelfde bedrijf."
msgstr "Het gekozen dagboek en periode moeten behoren tot hetzelfde bedrijf."
#. module: account
#: view:account.invoice:0
@ -10558,8 +10578,8 @@ msgstr ""
"Het 'Interne Type' wordt gebruikt voor functies die beschikbaar zijn op "
"verschillende soorten rekeningen: 'Weergave' kan geen boekingen hebben, "
"consolidatie zijn rekeningen die onderliggende rekeningen kunnen hebben voor "
"multi-company consolidaties, te crediteuren/debiteuren zijn voor de "
"relatierekeningen (voor debet/credit berekeningen), gesloten wodrt gebruikt "
"multi-company consolidaties, de crediteuren/debiteuren zijn voor de "
"relatierekeningen (voor debet/credit berekeningen), gesloten wordt gebruikt "
"voor afgeschreven rekeningen."
#. module: account
@ -10597,7 +10617,7 @@ msgstr "December"
#: model:ir.actions.act_window,name:account.action_account_analytic_journal_tree
#: model:ir.ui.menu,name:account.account_analytic_journal_print
msgid "Print Analytic Journals"
msgstr "Druk kostenplaatsdagboeken af"
msgstr "Kostenplaatsdagboeken"
#. module: account
#: view:account.invoice.report:0
@ -10707,11 +10727,12 @@ msgid ""
"created by the system on document validation (invoices, bank statements...) "
"and will be created in 'Posted' state."
msgstr ""
"Alle handmatig gemaakte nieuwe journaalposten zijn meestal in de staat 'Niet "
"geboekt', maar u kunt met de optie instellen om deze status over te slaan op "
"het betreffende dagboek. In dat geval worden ze behandeld als journaalposten "
"automatisch aangemaakt door het systeem bij document validatie (facturen, "
"bankafschriften, ...). Tevens worden ze aangemaakt in de 'Geboekt' staat."
"Alle handmatig gemaakte nieuwe journaalposten zijn meestal in de staat "
"'Ongeboekt', maar u kunt met de optie instellen om deze status over te slaan "
"op het betreffende dagboek. In dat geval worden ze behandeld als "
"journaalposten automatisch aangemaakt door het systeem bij document "
"validatie (facturen, bankafschriften, ...). Tevens worden ze aangemaakt in "
"de 'Geboekt' staat."
#. module: account
#: view:account.fiscal.position.template:0
@ -10737,7 +10758,8 @@ msgstr "November"
#: selection:account.invoice.refund,filter_refund:0
msgid "Modify: refund invoice, reconcile and create a new draft invoice"
msgstr ""
"Bewerken: Crediteer factuur, afletteren en maak een nieuwe concept factuur"
"Wijzig factuur: Annuleert de huidige factuur en maakt een kopie aan waarop u "
"wijzigingen kunt maken."
#. module: account
#: help:account.invoice.line,account_id:0
@ -10946,7 +10968,7 @@ msgstr "Daboekregels bevestigen"
#: model:ir.actions.act_window,name:account.action_account_analytic_cost_ledger_journal
#: model:ir.actions.report.xml,name:account.account_analytic_account_quantity_cost_ledger
msgid "Cost Ledger (Only quantities)"
msgstr "Kostenadministratie (Alleen aantallen)"
msgstr "Kostenplaats kosten (alleen aantallen)"
#. module: account
#: model:process.node,note:account.process_node_supplierpaidinvoice0
@ -11083,7 +11105,7 @@ msgstr "Meestal 1 of -1"
#: model:ir.actions.act_window,name:account.action_account_analytic_chart
#: model:ir.ui.menu,name:account.menu_action_analytic_account_tree2
msgid "Chart of Analytic Accounts"
msgstr "Kostenplaatsenrekeningschema"
msgstr "Kostenplaatsenschema"
#. module: account
#: field:account.chart.template,property_account_expense:0
@ -13023,9 +13045,6 @@ msgstr ""
#~ msgid "Cost Ledger for period"
#~ msgstr "Kosten grootboek voor periode"
#~ msgid "Income Accounts"
#~ msgstr "Opbrengsten rekeningen"
#~ msgid "Consider reconciled entries"
#~ msgstr "Afgeletterde boekingen meenemen"
@ -13186,3 +13205,6 @@ msgstr ""
#~ msgid "Tax codes"
#~ msgstr "Belastingrubrieken"
#~ msgid "Income Accounts"
#~ msgstr "Opbrengsten verkoop rekening"

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2010-07-22 16:28+0000\n"
"Last-Translator: Niels Huylebroeck <Unknown>\n"
"PO-Revision-Date: 2012-07-27 12:48+0000\n"
"Last-Translator: Els Van Vossel (Agaplan) <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:43+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:09+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0
@ -444,7 +444,7 @@ msgstr "Totaal credit"
#. module: account
#: view:account.move.line.unreconcile.select:0
msgid "Open for Unreconciliation"
msgstr ""
msgstr "Afpunting ongedaan maken"
#. module: account
#: field:account.account.template,chart_template_id:0
@ -1611,7 +1611,7 @@ msgstr "Onbelast"
#. module: account
#: view:account.partner.reconcile.process:0
msgid "Go to Next Partner"
msgstr ""
msgstr "Naar volgende relatie"
#. module: account
#: view:account.bank.statement:0
@ -2854,7 +2854,7 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_tax_code_list
#: model:ir.ui.menu,name:account.menu_action_tax_code_list
msgid "Tax Codes"
msgstr ""
msgstr "Btw-codes"
#. module: account
#: view:account.account:0
@ -3226,7 +3226,7 @@ msgstr "Sjablonen boekhoudplan"
#. module: account
#: model:ir.actions.act_window,name:account.action_wizard_multi_chart
msgid "Set Your Accounting Options"
msgstr ""
msgstr "Stel uw boekhouding in"
#. module: account
#: view:report.account.sales:0
@ -4402,7 +4402,7 @@ msgstr "Afpunten met afschrijving"
#. module: account
#: view:report.account.receivable:0
msgid "Accounts by Type"
msgstr ""
msgstr "Rekeningen per type"
#. module: account
#: view:account.bank.statement:0
@ -4444,7 +4444,7 @@ msgstr "res_config_contents"
#. module: account
#: view:account.unreconcile:0
msgid "Unreconciliate Transactions"
msgstr ""
msgstr "Afpuntingen ongedaan maken"
#. module: account
#: help:account.chart.template,visible:0
@ -4645,7 +4645,7 @@ msgstr "Bewerkingsdatum"
#. module: account
#: view:account.unreconcile.reconcile:0
msgid "Unreconciliation Transactions"
msgstr ""
msgstr "Afpuntingen ongedaan maken"
#. module: account
#: field:account.tax,ref_tax_code_id:0
@ -4780,7 +4780,7 @@ msgstr "Betaald"
#. module: account
#: view:account.period.close:0
msgid "Are you sure?"
msgstr ""
msgstr "Bent u zeker?"
#. module: account
#: help:account.move.line,statement_id:0
@ -5177,7 +5177,7 @@ msgstr "Btw-rekening"
#. module: account
#: view:account.automatic.reconcile:0
msgid "Reconciliation Result"
msgstr ""
msgstr "Afpuntresultaat"
#. module: account
#: model:account.financial.report,name:account.account_financial_report_balancesheet0
@ -6169,7 +6169,7 @@ msgstr "Verkoop-btw (%)"
#. module: account
#: view:account.addtmpl.wizard:0
msgid "Create an Account Based on this Template"
msgstr ""
msgstr "Maak een rekening op basis van deze sjabloon"
#. module: account
#: view:account.account.type:0
@ -7310,7 +7310,7 @@ msgstr "Hoofdrekeningsjabloon"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_configuration_installer
msgid "Configure your Chart of Accounts"
msgstr ""
msgstr "Installeer uw boekhoudplan"
#. module: account
#: view:account.bank.statement:0
@ -8205,7 +8205,7 @@ msgstr "Omgekeerde analytische balans -"
#. module: account
#: view:account.move.bank.reconcile:0
msgid "Open for Bank Reconciliation"
msgstr ""
msgstr "Bank afpunten"
#. module: account
#: view:account.analytic.line:0
@ -8394,7 +8394,7 @@ msgstr ""
#. module: account
#: view:account.tax.template:0
msgid "Compute Code for Taxes Included Prices"
msgstr ""
msgstr "Bereken code voor prijzen inclusief btw"
#. module: account
#: code:addons/account/account_invoice.py:1030
@ -9071,7 +9071,7 @@ msgstr "Verkopen van dit jaar per type"
#. module: account
#: view:account.analytic.cost.ledger.journal.report:0
msgid "Cost Ledger for Period"
msgstr ""
msgstr "Analytisch dagboek voor periode"
#. module: account
#: help:account.tax,child_depend:0
@ -9539,7 +9539,7 @@ msgstr "U moet een bankrekening instellen in het afpuntjournaal."
#. module: account
#: view:account.move.line.reconcile:0
msgid "Reconciliation Transactions"
msgstr ""
msgstr "Afpunttransacties"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_common_menu
@ -9644,7 +9644,7 @@ msgstr "Vervaldatum"
#. module: account
#: view:account.move.journal:0
msgid "Standard Entries"
msgstr ""
msgstr "Standaardboekingen"
#. module: account
#: help:account.journal,type:0
@ -10598,7 +10598,7 @@ msgstr ""
#. module: account
#: view:account.payment.term:0
msgid "Description on Invoices"
msgstr ""
msgstr "Omschrijving op facturen"
#. module: account
#: model:ir.model,name:account.model_account_analytic_chart

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:39+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:06+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:40+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:06+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0
@ -1496,7 +1496,7 @@ msgstr "# cyfr"
#. module: account
#: field:account.journal,entry_posted:0
msgid "Skip 'Draft' State for Manual Entries"
msgstr "Pomiń stan \"prjekt\" przy ręcznych zapisach"
msgstr "Pomiń stan \"Projekt\" przy ręcznych zapisach"
#. module: account
#: view:account.invoice.report:0
@ -6673,7 +6673,7 @@ msgid ""
"this journal or of the invoice related to this journal"
msgstr ""
"Zaznacz to pole, jeśli chcesz pozwolić na anulowanie zapisów związanych z "
"tego dziennika lub faktur tego dziennika."
"tym dziennikiem lub faktur z tego dziennika."
#. module: account
#: view:account.fiscalyear.close:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:40+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:06+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-06-20 16:26+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
"PO-Revision-Date: 2012-07-28 14:05+0000\n"
"Last-Translator: Fábio Martinelli <webmaster@guaru.net>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:43+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:09+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0
@ -3235,7 +3235,7 @@ msgstr "Modelo de plano de contas"
#. module: account
#: model:ir.actions.act_window,name:account.action_wizard_multi_chart
msgid "Set Your Accounting Options"
msgstr ""
msgstr "Defina suas opções Contábeis"
#. module: account
#: view:report.account.sales:0
@ -4222,6 +4222,10 @@ msgid ""
"some non legal fields or you must unconfirm the journal entry first! \n"
"%s"
msgstr ""
"Você não pode fazer essa modificação em uma entrada confirmada! Você pode "
"apenas mudar alguns campos não legais ou você deve primeiro desconfirmar a "
"entrada de diário em primeiro lugar\" \n"
"%s"
#. module: account
#: field:res.company,paypal_account:0
@ -4472,6 +4476,10 @@ msgid ""
"you want to generate accounts of this template only when loading its child "
"template."
msgstr ""
"Marque como False se você não quer que este template seja usado no "
"configurador que gera o Plano de Contas dos modelos, isto é útil quando você "
"deseja criar as contas desse modelo somente quando for carregar os modelos "
"filhos."
#. module: account
#: view:account.use.model:0
@ -4816,6 +4824,9 @@ msgid ""
"You can not define children to an account with internal type different of "
"\"View\"! "
msgstr ""
"Erro de configuração!\n"
"Você não pode definir um filho a uma conta com tipo interno diferente de "
"\"Visualização\"! "
#. module: account
#: code:addons/account/account.py:923
@ -5120,6 +5131,10 @@ msgid ""
"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"
msgstr ""
"Esta lógica ajuda você a escolher se você quer propor para o usuário "
"codificar as taxas de compra e venda ou escolher de um conjunto de impostos. "
" Esta última escolha pressupõe que o conjunto de imposto definido para o "
"modelo escolhido está completa"
#. module: account
#: view:account.financial.report:0
@ -5748,7 +5763,7 @@ msgstr "Sub-contas"
#: code:addons/account/account_move_line.py:1214
#, python-format
msgid "Move name (id): %s (%s)"
msgstr ""
msgstr "Mova nome (id) %s (%s)"
#. module: account
#: view:account.move.line.reconcile:0
@ -6091,6 +6106,9 @@ msgid ""
"You can not define children to an account with internal type different of "
"\"View\"! "
msgstr ""
"Erro de configuração!\n"
"Você não pode definir um filho a uma conta com tipo interno diferente de "
"\"Visualização\"! "
#. module: account
#: help:res.partner.bank,journal_id:0
@ -6211,6 +6229,10 @@ msgid ""
"choice assumes that the set of tax defined for the chosen template is "
"complete"
msgstr ""
"Este logica ajuda você a escolher se você quer propor ao usuário para "
"codificar as vendas e as taxas de compra ou use os campos usuais m2o. Esta "
"última escolha pressupõe que o conjunto de imposto definido para o modelo "
"escolhido está completa"
#. module: account
#: report:account.vat.declaration:0
@ -6230,7 +6252,7 @@ msgstr "Faturas em Aberto e Pagos"
#. module: account
#: selection:account.financial.report,display_detail:0
msgid "Display children flat"
msgstr ""
msgstr "Mostrar plano filho"
#. module: account
#: code:addons/account/account.py:629
@ -6662,7 +6684,7 @@ msgstr "Criar lançamentos recorrentes manuais no diário escolhido."
#. module: account
#: help:res.partner.bank,currency_id:0
msgid "Currency of the related account journal."
msgstr ""
msgstr "Moeda da conta do diário relacionada."
#. module: account
#: code:addons/account/account.py:1563
@ -6787,7 +6809,7 @@ msgstr "Criar lançamento"
#: code:addons/account/account.py:182
#, python-format
msgid "Profit & Loss (Expense account)"
msgstr ""
msgstr "Ganhos e perdas (conta de Despesa)"
#. module: account
#: code:addons/account/account.py:622
@ -6914,6 +6936,9 @@ msgid ""
"some non legal fields or you must unreconcile first!\n"
"%s"
msgstr ""
"Você não pode fazer essa modificação em uma entrada reconciliada! Você pode "
"apenas mudar alguns campos não legais ou você deve desconciliar primeiro!\n"
"%s"
#. module: account
#: report:account.general.ledger:0
@ -7054,6 +7079,9 @@ msgid ""
"Please define BIC/Swift code on bank for bank type IBAN Account to make "
"valid payments"
msgstr ""
"\n"
"Por favor defina o BIC/Swift code no Banco para o tipo de conta IBAN para "
"fazer pagamentos válidos"
#. module: account
#: report:account.analytic.account.cost_ledger:0
@ -7186,7 +7214,7 @@ msgstr "Documento de Origem"
#: code:addons/account/account.py:1432
#, python-format
msgid "You can not delete a posted journal entry \"%s\"!"
msgstr ""
msgstr "Você não pode excluir um lançamento do diário publicado \"%s\"!"
#. module: account
#: selection:account.partner.ledger,filter:0
@ -7360,7 +7388,7 @@ msgstr "Entradas Postadas"
#. module: account
#: help:account.payment.term.line,value_amount:0
msgid "For percent enter a ratio between 0-1."
msgstr ""
msgstr "Para porcentagem introduzir um razão entre 0-1."
#. module: account
#: report:account.invoice:0
@ -7590,7 +7618,7 @@ msgstr "Os prazos para gerar entradas de abertura não foram encontrados"
#. module: account
#: model:account.account.type,name:account.data_account_type_view
msgid "Root/View"
msgstr ""
msgstr "Origem/Visualização"
#. module: account
#: code:addons/account/account.py:3121
@ -7660,7 +7688,7 @@ msgstr "Multi-Moedas"
#. module: account
#: field:account.model.line,date_maturity:0
msgid "Maturity Date"
msgstr ""
msgstr "Data de Vencimento"
#. module: account
#: code:addons/account/account_move_line.py:1302
@ -7706,6 +7734,11 @@ msgid ""
"few new accounts (You don't need to define the whole structure that is "
"common to both several times)."
msgstr ""
"Este campo opcional te permite criar um link para um modelo específico de "
"plano de contas que pode ser diferente do que o superior pertence. Isto "
"permite a você definir o plano de contas que amplia e completa com algumas "
"novas contas (você não precisa definir toda uma estrutura que é comum aos "
"dois várias vezes)."
#. module: account
#: view:account.move:0
@ -7758,6 +7791,7 @@ msgstr "Cancelar Faturas Selecionadas"
msgid ""
"This field is used to generate legal reports: profit and loss, balance sheet."
msgstr ""
"Este campo é usado para gerar relatórios legais: de lucros e perdas, balanço."
#. module: account
#: model:ir.actions.act_window,help:account.action_review_payment_terms_installer
@ -7767,6 +7801,10 @@ msgid ""
"terms for each letter. Each customer or supplier can be assigned to one of "
"these payment terms."
msgstr ""
"Termos de pagamento define as condições para pagamento de um cliente ou "
"fornecedor em um ou mais pagamentos. Lembretes periódicos irão usar os "
"termos de pagamento em cada aviso. Cada cliente ou fornecedor pode ser "
"associado para um desses termos de pagamento."
#. module: account
#: selection:account.entries.report,month:0
@ -7897,7 +7935,7 @@ msgstr "Quantidade ideal de entradas."
#. module: account
#: view:account.financial.report:0
msgid "Parent Report"
msgstr ""
msgstr "Relatório"
#. module: account
#: view:account.state.open:0
@ -7947,7 +7985,7 @@ msgstr " 7 Dias "
#. module: account
#: field:account.bank.statement,balance_end:0
msgid "Computed Balance"
msgstr ""
msgstr "Balanço computado"
#. module: account
#: field:account.account,parent_id:0
@ -8032,7 +8070,7 @@ msgstr "Status da Linha de Movimento"
#. module: account
#: model:ir.model,name:account.model_account_move_line_reconcile
msgid "Account move line reconcile"
msgstr ""
msgstr "Reconciliar movimentação de linha de conta"
#. module: account
#: view:account.subscription.generate:0
@ -8075,7 +8113,7 @@ msgstr "Selecione uma moeda para ser usada na fatura"
#, python-format
msgid ""
"The bank account defined on the selected chart of accounts hasn't a code."
msgstr ""
msgstr "A conta bancária definida no plano de contas não possui um código"
#. module: account
#: code:addons/account/wizard/account_invoice_refund.py:108
@ -8092,7 +8130,7 @@ msgstr "Sem Linhas na Fatura !"
#. module: account
#: view:account.financial.report:0
msgid "Report Type"
msgstr ""
msgstr "Tipo de Relatório"
#. module: account
#: view:account.analytic.account:0
@ -8121,6 +8159,8 @@ msgid ""
"Select Fiscal Year which you want to remove entries for its End of year "
"entries journal"
msgstr ""
"Escolha o Ano Fiscal que você deseja remover entradas de diário de "
"Fechamento de ano"
#. module: account
#: field:account.tax.template,type_tax_use:0
@ -8153,6 +8193,12 @@ msgid ""
"Most of the OpenERP operations (invoices, timesheets, expenses, etc) "
"generate analytic entries on the related account."
msgstr ""
"Um plano de contas normal tem uma estrutura definida por uma legislação "
"mínima obrigatória no país. A estrutura do plano de contas analítico deve "
"refletir sua própria necessidade empresarial em termos de relatórios de "
"receitas/despesas. Eles são geralmente estruturados por contratos, projetos, "
"produtos ou departamentos. A maioria das operações do OpenErp (faturas, "
"planilhas de tempo, despesas, etc) geram uma entrada em uma conta relacionada"
#. module: account
#: field:account.account.type,close_method:0
@ -8251,6 +8297,15 @@ msgid ""
"related journal entries may or may not be reconciled. \n"
"* The 'Cancelled' state is used when user cancel invoice."
msgstr ""
" * 'Cotação' é usada quando um usuário está criando uma fatura nova e sem "
"confirmação. \n"
"* 'Pro-forma' quando uma fatura está em Pro-forma ela não possui um código "
"de fatura. \n"
"* 'Aberto' é quando um usuário cria uma fatura, um número de fatura é "
"gerado. Ficará em Aberto enquanto o usuário não pagar a fatura\n"
"* 'Pago' é definido automaticamente quando a fatura for paga. Suas entradas "
"nos diários podem ou não ser reconciliadas. \n"
"* 'Cancelado' é usado quando o usuário cancela a fatura."
#. module: account
#: view:account.invoice.report:0
@ -8281,6 +8336,7 @@ msgstr ""
msgid ""
"Can not find a chart of accounts for this company, you should create one."
msgstr ""
"Não encontramos um plano de contas para esta empresa, você deve criar um."
#. module: account
#: view:account.invoice:0
@ -8290,7 +8346,7 @@ msgstr "Pro-forma"
#. module: account
#: report:account.analytic.account.cost_ledger:0
msgid "J.C. /Move name"
msgstr ""
msgstr "J.C. /Nome da movimentação"
#. module: account
#: model:ir.model,name:account.model_account_open_closed_fiscalyear
@ -8359,6 +8415,8 @@ msgid ""
"Total amount (in Company currency) for transactions held in secondary "
"currency for this account."
msgstr ""
"Valor Total (na moeda da empresa) para as transações mantidas em uma moeda "
"secundária para esta conta."
#. module: account
#: report:account.invoice:0
@ -8395,6 +8453,8 @@ msgid ""
"You can not cancel an invoice which is partially paid! You need to "
"unreconcile related payment entries first!"
msgstr ""
"Você não pode cancelar uma fatura que foi parcialmente paga! Você precisa "
"desconciliar as entradas de pagamento primeiro!"
#. module: account
#: field:account.chart.template,property_account_income_categ:0
@ -8425,7 +8485,7 @@ msgstr "Valor do Imposto/Base"
#. module: account
#: view:account.payment.term.line:0
msgid " Valuation: Percent"
msgstr ""
msgstr " Avaliação: Percentual"
#. module: account
#: model:ir.actions.act_window,help:account.action_invoice_tree3
@ -8516,18 +8576,18 @@ msgstr "Conciliação parcial"
#. module: account
#: model:ir.model,name:account.model_account_analytic_inverted_balance
msgid "Account Analytic Inverted Balance"
msgstr ""
msgstr "Balanço invertido da conta analítica"
#. module: account
#: model:ir.model,name:account.model_account_common_report
msgid "Account Common Report"
msgstr ""
msgstr "Relatório de Conta Comum"
#. module: account
#: view:account.invoice.report:0
#: view:analytic.entries.report:0
msgid "current month"
msgstr ""
msgstr "mês atual"
#. module: account
#: code:addons/account/account.py:1052
@ -8536,6 +8596,8 @@ msgid ""
"No period defined for this date: %s !\n"
"Please create one."
msgstr ""
"Nenhum período definido para esta data: %s !\n"
"Por favor, crie um."
#. module: account
#: model:process.transition,name:account.process_transition_filestatement0
@ -8563,7 +8625,7 @@ msgstr "Tipos de Conta"
#. module: account
#: view:account.payment.term.line:0
msgid " Value amount: n.a"
msgstr ""
msgstr " Valor total: n.a"
#. module: account
#: view:account.automatic.reconcile:0
@ -8595,11 +8657,17 @@ msgid ""
"You should press this button to re-open it and let it continue its normal "
"process after having resolved the eventual exceptions it may have created."
msgstr ""
"Este botão só aparece quando a situação da fatura for 'Paga' (mostrando que "
"foi paga e totalmente reconciliada) e o valor gerado automaticamente "
"'Reconciliado' for falso (representando que não é mais o caso). Em outras "
"palavras, a fatura foi desconciliada e não cabe mais usar a situação 'paga' "
". Você deve clicar neste botão e re-abrir e então continuar o processo "
"normal depois de resolver as exceções que possa ter gerado"
#. module: account
#: model:ir.model,name:account.model_account_fiscalyear_close_state
msgid "Fiscalyear Close state"
msgstr ""
msgstr "Situação do Fechamento do Ano Fiscal"
#. module: account
#: field:account.invoice.refund,journal_id:0
@ -8635,6 +8703,8 @@ msgstr ""
msgid ""
"In order to close a period, you must first post related journal entries."
msgstr ""
"Para fechar um período você precisa primeiro criar as entradas de diário "
"relacionadas."
#. module: account
#: view:account.entries.report:0
@ -8652,7 +8722,7 @@ msgstr "A conta do parceiro usada para esta fatura"
#: code:addons/account/account.py:3296
#, python-format
msgid "Tax %.2f%%"
msgstr ""
msgstr "Imposto %.2f%%"
#. module: account
#: view:account.analytic.account:0
@ -8763,6 +8833,8 @@ msgstr "Faturas Não Pagas"
#, python-format
msgid "The payment term of supplier does not have a payment term line!"
msgstr ""
"O termo de pagamento do fornecedor não possui uma linha de prazo de "
"pagamento!"
#. module: account
#: field:account.move.line.reconcile,debit:0
@ -8827,17 +8899,17 @@ msgstr "Nome do diário"
#. module: account
#: view:account.move.line:0
msgid "Next Partner Entries to reconcile"
msgstr ""
msgstr "Próxima entrada a reconciliar"
#. module: account
#: selection:account.financial.report,style_overwrite:0
msgid "Smallest Text"
msgstr ""
msgstr "Menor Texto"
#. module: account
#: model:res.groups,name:account.group_account_invoice
msgid "Invoicing & Payments"
msgstr ""
msgstr "Faturamento & Pagamentos"
#. module: account
#: help:account.invoice,internal_number:0
@ -8889,6 +8961,9 @@ msgid ""
"Make sure you have configured payment terms properly !\n"
"The latest payment term line should be of the type \"Balance\" !"
msgstr ""
"Você não pode validar uma entrada sem balanço!\n"
"Tenha certeza de que você configurou os termos de pagamento corretamente!\n"
"A última linha de prazo de pagamento deve ser do tipo \"Balanço\"!"
#. module: account
#: view:account.account:0
@ -8966,7 +9041,7 @@ msgstr "Endereço do contato"
#: code:addons/account/account.py:2256
#, python-format
msgid "Wrong model !"
msgstr ""
msgstr "Modelo errado!"
#. module: account
#: field:account.invoice.refund,period:0
@ -8987,6 +9062,11 @@ msgid ""
"accounts that are typically more credited than debited and that you would "
"like to print as positive amounts in your reports; e.g.: Income account."
msgstr ""
"Para contas que são tipicamente mais debitadas do que creditadas e que você "
"deseja exibir como valores negativos nos relatórios, você deve inverter o "
"sinal do balanço; ex.: Conta de despesa. O mesmo aplica para contas que são "
"tipicamente mais creditadas do que debitadas e você deseja exibir como "
"valores positivos nos relatórios; ex.: Contas de recebimento."
#. module: account
#: field:res.partner,contract_ids:0
@ -9028,7 +9108,7 @@ msgstr ""
#: code:addons/account/account_invoice.py:808
#, python-format
msgid "Please define sequence on the journal related to this invoice."
msgstr ""
msgstr "Defina a sequencia do diário referente a essa fatura."
#. module: account
#: view:account.move:0
@ -9041,7 +9121,7 @@ msgstr "Nota Interna"
#. module: account
#: view:report.account.sales:0
msgid "This year's Sales by type"
msgstr ""
msgstr "Vendas deste ano, por tipo"
#. module: account
#: view:account.analytic.cost.ledger.journal.report:0
@ -9095,7 +9175,7 @@ msgstr "Linhas de lançamentos"
#. module: account
#: model:ir.actions.act_window,name:account.action_view_financial_accounts_installer
msgid "Review your Financial Accounts"
msgstr ""
msgstr "Reveja as suas contas financeiras"
#. module: account
#: model:ir.actions.act_window,name:account.action_open_journal_button
@ -9136,7 +9216,7 @@ msgstr "Pagamento registrado"
#. module: account
#: view:account.fiscalyear.close.state:0
msgid "Close states of Fiscal year and periods"
msgstr ""
msgstr "Situação do fechamento de Ano Fiscal e períodos"
#. module: account
#: view:account.analytic.line:0
@ -9176,7 +9256,7 @@ msgstr "Caros Ser/Senhora,"
#. module: account
#: field:account.vat.declaration,display_detail:0
msgid "Display Detail"
msgstr ""
msgstr "Mostrar Detalhes"
#. module: account
#: code:addons/account/account.py:3118
@ -9221,7 +9301,7 @@ msgstr "Fim do Período"
#: model:ir.actions.act_window,name:account.action_account_report_pl
#: model:ir.ui.menu,name:account.menu_account_reports
msgid "Financial Reports"
msgstr ""
msgstr "Relatórios Financeiros"
#. module: account
#: report:account.account.balance:0
@ -9305,7 +9385,7 @@ msgstr "Documento: demonstrativo da conta cliente"
#. module: account
#: field:account.account.type,report_type:0
msgid "P&L / BS Category"
msgstr ""
msgstr "Categoria P&L / BS"
#. module: account
#: model:ir.actions.act_window,help:account.action_invoice_tree4
@ -9481,12 +9561,12 @@ msgstr ""
#. module: account
#: view:analytic.entries.report:0
msgid "Analytic Entries of last 365 days"
msgstr ""
msgstr "Entradas analíticas dos últimos 365 dias"
#. module: account
#: report:account.central.journal:0
msgid "A/C No."
msgstr ""
msgstr "No. A/C"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_journal_2_account_bank_statement
@ -9522,7 +9602,7 @@ msgstr "Conciliação de transações"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_common_menu
msgid "Common Report"
msgstr ""
msgstr "Relatório Comum"
#. module: account
#: view:account.account:0
@ -9543,7 +9623,7 @@ msgstr ""
#. module: account
#: view:account.invoice.report:0
msgid "Customer And Supplier Invoices"
msgstr ""
msgstr "Faturas de clientes e fornecedores"
#. module: account
#: model:process.node,note:account.process_node_paymententries0
@ -9583,6 +9663,8 @@ msgid ""
"No opening/closing period defined, please create one to set the initial "
"balance!"
msgstr ""
"Nenhum período de abertura/fechamento definido, por favor crie um e defina o "
"balanço inicial!"
#. module: account
#: report:account.account.balance:0
@ -9631,6 +9713,11 @@ msgid ""
"journals. Select 'Opening/Closing Situation' for entries generated for new "
"fiscal years."
msgstr ""
"Escolha 'Venda' para diários de faturas de clientes. Escolha 'Compra' para "
"diários de faturas de fornecedores. Escolha 'Dinheiro' ou 'Banco' para "
"diários que são usados nos pagamentos de clientes ou fornecedores. Escolha "
"'Geral' para diários de operações diversas. Escolha 'Situação de "
"Abertura/Fechamento' para entradas geradas em um novo ano fiscal."
#. module: account
#: model:ir.model,name:account.model_account_subscription
@ -9683,6 +9770,8 @@ msgid ""
"It indicates that the invoice has been paid and the journal entry of the "
"invoice has been reconciled with one or several journal entries of payment."
msgstr ""
"Indica que a fatura foi paga e a entrada do diário foi reconciliada com um "
"ou mais diários de pagamentos"
#. module: account
#: view:account.invoice:0
@ -9720,6 +9809,13 @@ msgid ""
"open period. Close a period when you do not want to record new entries and "
"want to lock this period for tax related calculation."
msgstr ""
"Um período é um período fiscal em que a contabilidade deve ser registrada "
"para atividades relacionadas. Períodos mensais costumam ser o padrão, mas "
"dependendo do seu pais ou necessidades da empresa, você também pode definir "
"períodos trimestrais. Após fechar um período é impossível adicionar novas "
"entradas, todas as novas entradas deverão ser feitas no período seguinte. "
"Feche um período quando você não desejar mais gravar novas entradas e quer "
"bloquear o período para o cálculo de impostos"
#. module: account
#: view:account.analytic.account:0
@ -9755,7 +9851,7 @@ msgstr "Ativo"
#. module: account
#: view:accounting.report:0
msgid "Comparison"
msgstr ""
msgstr "Comparação"
#. module: account
#: code:addons/account/account_invoice.py:372
@ -9828,7 +9924,7 @@ msgstr ""
#: code:addons/account/account.py:181
#, python-format
msgid "Profit & Loss (Income account)"
msgstr ""
msgstr "Ganhos e perdas (conta Lucro)"
#. module: account
#: constraint:account.account:0
@ -9837,6 +9933,9 @@ msgid ""
"You can not select an account type with a deferral method different of "
"\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! "
msgstr ""
"Erro de Configuração!\n"
"Você não pode selecionar um tipo de conta com um método de deferimento "
"diferente de \"Não conciliado\" para contas do tipo \"Pagáveis/Recebíveis\" "
#. module: account
#: view:account.model:0
@ -9873,7 +9972,7 @@ msgstr "Geral"
#. module: account
#: view:analytic.entries.report:0
msgid "Analytic Entries of last 30 days"
msgstr ""
msgstr "Entradas analíticas dos últimos 30 dias"
#. module: account
#: selection:account.aged.trial.balance,filter:0
@ -9930,7 +10029,7 @@ msgstr "Abril"
#. module: account
#: model:account.financial.report,name:account.account_financial_report_profitloss_toreport0
msgid "Profit (Loss) to report"
msgstr ""
msgstr "Lucro (Prejuízo) para relatório"
#. module: account
#: view:account.move.line.reconcile.select:0
@ -9954,7 +10053,7 @@ msgstr ""
#. module: account
#: selection:account.financial.report,style_overwrite:0
msgid "Title 2 (bold)"
msgstr ""
msgstr "Título 2 (em negrito)"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree2
@ -9995,6 +10094,8 @@ msgid ""
"When new statement is created the state will be 'Draft'.\n"
"And after getting confirmation from the bank it will be in 'Confirmed' state."
msgstr ""
"Quando um novo statement for criado, a situação será 'Rascunho'.\n"
"E após a confirmação do banco a situação será \"Confirmada\"."
#. module: account
#: model:ir.model,name:account.model_account_period
@ -10115,7 +10216,7 @@ msgstr "Sequências de ano fiscal"
#. module: account
#: selection:account.financial.report,display_detail:0
msgid "No detail"
msgstr ""
msgstr "Não há detalhes"
#. module: account
#: code:addons/account/account_analytic_line.py:102
@ -10126,14 +10227,14 @@ msgstr "Não há conta de entrada definida para este produto:\"%s\" (id:%d)"
#. module: account
#: constraint:account.move.line:0
msgid "You can not create journal items on closed account."
msgstr ""
msgstr "Você não pode criar ítens de diário em uma conta fechada."
#. module: account
#: field:account.account,unrealized_gain_loss:0
#: model:ir.actions.act_window,name:account.action_account_gain_loss
#: model:ir.ui.menu,name:account.menu_unrealized_gains_losses
msgid "Unrealized Gain or Loss"
msgstr ""
msgstr "Perdas ou Ganhos não realizados"
#. module: account
#: view:account.fiscalyear:0
@ -10146,12 +10247,12 @@ msgstr "Estado"
#. module: account
#: model:ir.actions.server,name:account.ir_actions_server_edi_invoice
msgid "Auto-email confirmed invoices"
msgstr ""
msgstr "Enviar automaticamente as Faturas confirmadas"
#. module: account
#: field:account.invoice,check_total:0
msgid "Verification Total"
msgstr ""
msgstr "Verificação total"
#. module: account
#: report:account.analytic.account.balance:0
@ -10279,7 +10380,7 @@ msgstr "Esvaziar as contas ? "
#. module: account
#: constraint:account.bank.statement:0
msgid "The journal and period chosen have to belong to the same company."
msgstr ""
msgstr "O diário e o período escolhido tem que pertencer à mesma empresa."
#. module: account
#: view:account.invoice:0
@ -10303,11 +10404,13 @@ msgid ""
"This account will be used to value outgoing stock for the current product "
"category using cost price"
msgstr ""
"Esta conta será usada para para estimar o estoque de saída da categoria de "
"produtos usando o preço de custo"
#. module: account
#: view:wizard.multi.charts.accounts:0
msgid "Generate Your Chart of Accounts from a Chart Template"
msgstr ""
msgstr "Crie seu Plano de Contas através de um modelo"
#. module: account
#: model:ir.actions.act_window,help:account.action_account_invoice_report_all
@ -10379,7 +10482,7 @@ msgstr "Débito"
#. module: account
#: selection:account.financial.report,style_overwrite:0
msgid "Title 3 (bold, smaller)"
msgstr ""
msgstr "Título 3 (em negrito, menor)"
#. module: account
#: field:account.invoice,invoice_line:0
@ -10394,7 +10497,7 @@ msgstr "Erro ! Você não pode criar templates recursivos para contas."
#. module: account
#: selection:account.print.journal,sort_selection:0
msgid "Journal Entry Number"
msgstr ""
msgstr "Número da Entrada de Diário"
#. module: account
#: view:account.subscription:0
@ -10408,6 +10511,8 @@ msgid ""
"You cannot change the type of account from 'Closed' to any other type which "
"contains journal items!"
msgstr ""
"Você não pode mudar o tipo de conta de 'Fechado' para nenhum outro tipo que "
"contém entradas de diário!"
#. module: account
#: code:addons/account/account_move_line.py:832
@ -10433,7 +10538,7 @@ msgstr "Intervalo"
#. module: account
#: view:account.analytic.line:0
msgid "Analytic Journal Items related to a purchase journal."
msgstr ""
msgstr "Itens de diário relacionados a um diário de compras."
#. module: account
#: help:account.account,type:0
@ -10444,6 +10549,11 @@ msgid ""
"payable/receivable are for partners accounts (for debit/credit "
"computations), closed for depreciated accounts."
msgstr ""
"O 'Tipo Interno' é usado para recursos disponíveis em diferentes tipo de "
"contas: visualizações não podem conter itens de diário, consolidações são "
"contas que possuem contas filhas de consolidações multi-empresas, "
"pagáveis/recebíveis são para contas de parceiros (para cálculo de "
"débito/crédito), fechado para contas de depreciação."
#. module: account
#: selection:account.balance.report,display_account:0
@ -10485,7 +10595,7 @@ msgstr "Imprimir diários analíticos"
#. module: account
#: view:account.invoice.report:0
msgid "Group by month of Invoice Date"
msgstr ""
msgstr "Agrupar por mês da fatura"
#. module: account
#: view:account.analytic.line:0
@ -10519,6 +10629,8 @@ msgstr "A outra moeda opcional se este for um lançamento multi-moeda"
msgid ""
"Import of the statement in the system from a supplier or customer invoice"
msgstr ""
"Importar da declaração no sistema a partir de uma fatura do fornecedor ou "
"cliente"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_periodical_processing_billing
@ -10551,7 +10663,7 @@ msgstr ""
#. module: account
#: view:account.payment.term:0
msgid "Description on Invoices"
msgstr ""
msgstr "Descrição nas Faturas"
#. module: account
#: model:ir.model,name:account.model_account_analytic_chart
@ -10578,7 +10690,7 @@ msgstr "Conta inválida!"
#. module: account
#: field:account.print.journal,sort_selection:0
msgid "Entries Sorted by"
msgstr ""
msgstr "Entradas classificadas por"
#. module: account
#: help:account.move,state:0
@ -10589,6 +10701,11 @@ msgid ""
"created by the system on document validation (invoices, bank statements...) "
"and will be created in 'Posted' state."
msgstr ""
"Todas as entradas de diário criadas manualmente ficam na situação 'Não "
"publicadas', mas você pode definir uma opção para pular esta situação no "
"diário relacionado. Neste caso, elas se comportarão como entradas de diário "
"automaticamente pelo sistema na validação do documento (faturas, extratos "
"bancários...) e serão criadas na situação 'Publicadas'."
#. module: account
#: view:account.fiscal.position.template:0
@ -10719,6 +10836,76 @@ msgid ""
"% endif\n"
" "
msgstr ""
"\n"
"Olá ${object.address_invoice_id.name and ' ' or "
"''}${object.address_invoice_id.name or ''},\n"
"\n"
"Uma nova fatura está disponível para ${object.partner_id.name}:\n"
" | Número da Fatura: *${object.number}*\n"
" | Total da Fatura: *${object.amount_total} "
"${object.currency_id.name}*\n"
" | Data da Fatura: ${object.date_invoice}\n"
" % if object.origin:\n"
" | Referente a: ${object.origin}\n"
" % endif\n"
" | Seu contato: ${object.user_id.name} ${object.user_id.user_email and "
"'<%s>'%(object.user_id.user_email) or ''}\n"
"\n"
"Você pode ver a fatura, fazer o download e pagar online usando o seguinte "
"link:\n"
" ${ctx.get('edi_web_url_view') or 'n/a'}\n"
"\n"
"% if object.company_id.paypal_account and object.type in ('out_invoice', "
"'in_refund'):\n"
"<% \n"
"comp_name = quote(object.company_id.name)\n"
"inv_number = quote(object.number)\n"
"paypal_account = quote(object.company_id.paypal_account)\n"
"inv_amount = quote(str(object.amount_total))\n"
"cur_name = quote(object.currency_id.name)\n"
"paypal_url = \"https://www.paypal.com/cgi-"
"bin/webscr?cmd=_xclick&business=%s&item_name=%s%%20Invoice%%20%s\"\\\n"
" "
"\"&invoice=%s&amount=%s&currency_code=%s&button_subtype=services&no_note=1&bn"
"=OpenERP_Invoice_PayNow_%s\" % \\\n"
" "
"(paypal_account,comp_name,inv_number,inv_number,inv_amount,cur_name,cur_name)"
"\n"
"%>\n"
"É possível pagar diretamente através do Paypal:\n"
" ${paypal_url}\n"
"% endif\n"
"\n"
"Se você tiver alguma dúvida por favor entre em contato conosco.\n"
"\n"
"\n"
"Obrigado por escolher ${object.company_id.name}!\n"
"\n"
"\n"
"--\n"
"${object.user_id.name} ${object.user_id.user_email and "
"'<%s>'%(object.user_id.user_email) or ''}\n"
"${object.company_id.name}\n"
"% if object.company_id.street:\n"
"${object.company_id.street or ''}\n"
"% endif\n"
"% if object.company_id.street2:\n"
"${object.company_id.street2}\n"
"% endif\n"
"% if object.company_id.city or object.company_id.zip:\n"
"${object.company_id.zip or ''} ${object.company_id.city or ''}\n"
"% endif\n"
"% if object.company_id.country_id:\n"
"${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) "
"or ''} ${object.company_id.country_id.name or ''}\n"
"% endif\n"
"% if object.company_id.phone:\n"
"Phone: ${object.company_id.phone}\n"
"% endif\n"
"% if object.company_id.website:\n"
"${object.company_id.website or ''}\n"
"% endif\n"
" "
#. module: account
#: model:ir.model,name:account.model_res_partner_bank
@ -13102,3 +13289,6 @@ msgstr ""
#~ msgid "Install your Chart of Accounts"
#~ msgstr "Instale o seu Plano de Contas"
#~ msgid "Description On Invoices"
#~ msgstr "Descrição em Faturas"

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:40+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:06+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-05-10 17:32+0000\n"
"Last-Translator: Michael Otcheskih <otma@mail.ru>\n"
"PO-Revision-Date: 2012-08-17 11:07+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:40+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-18 04:58+0000\n"
"X-Generator: Launchpad (build 15810)\n"
#. module: account
#: view:account.invoice.report:0
@ -9872,7 +9872,7 @@ msgstr "Не определен счет доходов для ТМЦ: \"%s\" (i
#. module: account
#: constraint:account.move.line:0
msgid "You can not create journal items on closed account."
msgstr ""
msgstr "Нельзя создать элемент журнала по закрытому счету ."
#. module: account
#: field:account.account,unrealized_gain_loss:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:40+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:41+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:41+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:35+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:02+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:40+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:44+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:10+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:41+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0
@ -479,11 +479,10 @@ msgid ""
"amount of each area of the tax declaration for your country. Its presented "
"in a hierarchical structure, which can be modified to fit your needs."
msgstr ""
"Skattetabellen är en trädvy som återspeglar strukturen i de skatteklasser "
"(eller skattekoder) och visar den aktuella skattesituationen. Tabellen "
"representerar den mängd varje område av deklarationen för ditt land. Det "
"presenteras i en hierarkisk struktur, som kan ändras för att passa dina "
"behov."
"Skattetabellen är en trädvy som återspeglar skatteklassernas (eller "
"skattekodernas) struktur och visar den aktuella skattesituationen. Tabellen "
"representerar de belopp för varje ruta i ditt lands deklaration, presenterat "
"i en hierarkisk struktur, som kan ändras för att passa dina behov."
#. module: account
#: view:account.analytic.line:0
@ -660,7 +659,7 @@ msgstr "Period saknas eller flera perioder finns för det givna datumet."
#. module: account
#: field:account.invoice.tax,tax_amount:0
msgid "Tax Code Amount"
msgstr "Tax Code Amount"
msgstr "Skattekodsbelopp"
#. module: account
#: code:addons/account/account.py:3116
@ -730,7 +729,7 @@ msgstr "Skriv ut faktura"
#. module: account
#: field:account.partner.reconcile.process,today_reconciled:0
msgid "Partners Reconciled Today"
msgstr "Partners Sammanslagna Idag"
msgstr "Avstämda företag idag"
#. module: account
#: view:report.hr.timesheet.invoice.journal:0
@ -1249,7 +1248,7 @@ msgstr "Moms vid inköp"
#: field:account.tax.template,tax_code_id:0
#: model:ir.model,name:account.model_account_tax_code
msgid "Tax Code"
msgstr "Momskod"
msgstr "Skattekod"
#. module: account
#: field:account.account,currency_mode:0
@ -1466,7 +1465,7 @@ msgstr "Central Journal"
#: selection:account.partner.balance,display_partner:0
#: selection:account.report.general.ledger,display_account:0
msgid "With balance is not equal to 0"
msgstr "With balance is not equal to 0"
msgstr "Med balans skilt från 0"
#. module: account
#: view:account.tax:0
@ -1577,7 +1576,7 @@ msgstr "Mall för skatteregion"
#. module: account
#: field:account.automatic.reconcile,reconciled:0
msgid "Reconciled transactions"
msgstr "Reconciled transactions"
msgstr "Avstämda transaktioner"
#. module: account
#: field:account.journal.view,columns_id:0
@ -1726,7 +1725,7 @@ msgstr "Okänt företag"
#. module: account
#: field:account.tax.code,sum:0
msgid "Year Sum"
msgstr "Year Sum"
msgstr "Årtotal"
#. module: account
#: code:addons/account/account_invoice.py:1429
@ -2075,7 +2074,7 @@ msgstr "Öppna verifikat"
#. module: account
#: field:account.automatic.reconcile,account_ids:0
msgid "Accounts to Reconcile"
msgstr "Konton att balansera"
msgstr "Konton att stämma av"
#. module: account
#: model:process.transition,note:account.process_transition_filestatement0
@ -2472,7 +2471,7 @@ msgstr "30 dagar månadsskiftet"
#. module: account
#: view:account.entries.report:0
msgid "Unreconciled entries"
msgstr "Ej avstämda transaktioner"
msgstr "Oavstämda poster"
#. module: account
#: field:account.invoice.tax,base_code_id:0
@ -2713,13 +2712,13 @@ msgstr "Automatisk avstämning"
#. module: account
#: field:account.invoice,reconciled:0
msgid "Paid/Reconciled"
msgstr "Betald/Återbetald"
msgstr "Betald/avstämd"
#. module: account
#: field:account.tax,ref_base_code_id:0
#: field:account.tax.template,ref_base_code_id:0
msgid "Refund Base Code"
msgstr "Refund Base Code"
msgstr "Återbetalningskod"
#. module: account
#: selection:account.tax.template,applicable_type:0
@ -3337,7 +3336,7 @@ msgstr " Värdebelopp: 0.02"
#: model:ir.actions.act_window,name:account.open_board_account
#: model:ir.ui.menu,name:account.menu_board_account
msgid "Accounting Dashboard"
msgstr "Redovisningsdashboard"
msgstr "Redovisningsinfopanel"
#. module: account
#: field:account.bank.statement,balance_start:0
@ -3387,7 +3386,7 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_account_unreconcile_reconcile
#: model:ir.actions.act_window,name:account.action_account_unreconcile_select
msgid "Unreconcile Entries"
msgstr "Unreconcile Entries"
msgstr "Oavstämda poster"
#. module: account
#: field:account.tax.code,notprintable:0
@ -3462,7 +3461,7 @@ msgstr "Sök affärshändelse"
#: field:account.tax.code,name:0
#: field:account.tax.code.template,name:0
msgid "Tax Case Name"
msgstr "Tax Case Name"
msgstr "Skatteklass"
#. module: account
#: report:account.invoice:0
@ -3520,7 +3519,7 @@ msgstr "Försäljningskonto per kontotyp"
#. module: account
#: view:account.move.line:0
msgid "Unreconciled Journal Items"
msgstr "Obalanserade transaktioner"
msgstr "Oavstämda verifikat"
#. module: account
#: sql_constraint:res.currency:0
@ -3646,7 +3645,7 @@ msgstr "Bokför"
#: view:account.unreconcile:0
#: view:account.unreconcile.reconcile:0
msgid "Unreconcile"
msgstr "Unreconcile"
msgstr "Oavstäm"
#. module: account
#: view:account.analytic.line:0
@ -3678,7 +3677,7 @@ msgstr ""
#: code:addons/account/account_move_line.py:837
#, python-format
msgid "Some entries are already reconciled !"
msgstr "Some entries are already reconciled !"
msgstr "Vissa poster är redan avstämda !"
#. module: account
#: view:account.tax:0
@ -3726,14 +3725,14 @@ msgid ""
"If not applicable (computed through a Python code), the tax won't appear on "
"the invoice."
msgstr ""
"If not applicable (computed through a Python code), the tax won't appear on "
"the invoice."
"Om ej tillämpligt (beräknas med Pythonkod), kommer skatten inte att visas på "
"fakturan."
#. module: account
#: view:account.tax:0
#: view:account.tax.template:0
msgid "Applicable Code (if type=code)"
msgstr "Applicable Code (if type=code)"
msgstr "Gäller Kod (om type = kod)"
#. module: account
#: view:account.invoice.report:0
@ -3771,7 +3770,8 @@ msgstr "Betalorder"
msgid ""
"Check this option if you want the user to reconcile entries in this account."
msgstr ""
"Check this option if you want the user to reconcile entries in this account."
"Markera det här alternativet om du vill att användaren ska stämma av poster "
"i detta konto."
#. module: account
#: model:ir.actions.report.xml,name:account.account_account_balance_landscape
@ -4019,7 +4019,7 @@ msgstr "Visningskonton"
#. module: account
#: view:account.state.open:0
msgid "(Invoice should be unreconciled if you want to open it)"
msgstr "(Invoice should be unreconciled if you want to open it)"
msgstr "(fakturan skall vara oavstämd om du vill öppna den)"
#. module: account
#: field:account.chart,period_from:0
@ -4243,7 +4243,7 @@ msgstr "Tax Lines"
#. module: account
#: field:account.tax,base_code_id:0
msgid "Account Base Code"
msgstr "Konto bas kod"
msgstr "Kontobaskod"
#. module: account
#: code:addons/account/account_analytic_line.py:93
@ -4387,7 +4387,7 @@ msgstr "Kontoutdrag är registrerade"
#: code:addons/account/wizard/account_reconcile.py:133
#, python-format
msgid "Reconcile Writeoff"
msgstr "Beräkna avskrivning"
msgstr "Stäm av avskrivning"
#. module: account
#: view:report.account.receivable:0
@ -4641,7 +4641,7 @@ msgstr "Unreconciliation Transactions"
#: field:account.tax,ref_tax_code_id:0
#: field:account.tax.template,ref_tax_code_id:0
msgid "Refund Tax Code"
msgstr "Refund Tax Code"
msgstr "Återbetalningsskattekod"
#. module: account
#: view:validate.account.move:0
@ -4710,7 +4710,7 @@ msgstr "Mina fakturor"
#. module: account
#: selection:account.bank.accounts.wizard,account_type:0
msgid "Check"
msgstr "Markera"
msgstr "Check"
#. module: account
#: view:account.invoice:0
@ -5069,7 +5069,7 @@ msgstr "Betalningar"
#. module: account
#: view:account.tax:0
msgid "Reverse Compute Code"
msgstr "Backberäknings kod"
msgstr "Återberäkningskod"
#. module: account
#: field:account.subscription.line,move_id:0
@ -5080,7 +5080,7 @@ msgstr "Konteringspost"
#: field:account.tax,python_compute_inv:0
#: field:account.tax.template,python_compute_inv:0
msgid "Python Code (reverse)"
msgstr "Python Code (reverse)"
msgstr "Pythonkod (bakåt)"
#. module: account
#: model:ir.actions.act_window,name:account.action_payment_term_form
@ -5222,7 +5222,7 @@ msgstr "Ingen period är vald för fakturan!"
#. module: account
#: view:account.tax.template:0
msgid "Compute Code (if type=code)"
msgstr "Compute Code (if type=code)"
msgstr "Beräkna kod (if type=code)"
#. module: account
#: selection:account.analytic.journal,type:0
@ -5413,7 +5413,7 @@ msgstr "Du kan inte skapa mer än en transaktion per period i huvudboken."
#: field:account.tax.template,ref_tax_sign:0
#: field:account.tax.template,tax_sign:0
msgid "Tax Code Sign"
msgstr "Tax Code Sign"
msgstr "Skattekodstecken"
#. module: account
#: model:ir.model,name:account.model_report_invoice_created
@ -5532,7 +5532,7 @@ msgstr ""
#. module: account
#: model:ir.actions.act_window,name:account.action_view_move_line
msgid "Lines to reconcile"
msgstr "Rader att balansera"
msgstr "Rader att stämma av"
#. module: account
#: report:account.analytic.account.balance:0
@ -6895,7 +6895,7 @@ msgstr ""
"Du kan inte göra denna ändring på en avstämd transaktion! Du kan bara ändra "
"vissa icke bokföringsinformation eller så måste du göra transaktionen "
"oavstämd först!\n"
"% s"
"%s"
#. module: account
#: report:account.general.ledger:0
@ -7081,7 +7081,7 @@ msgstr ""
#: field:account.tax.code,child_ids:0
#: field:account.tax.code.template,child_ids:0
msgid "Child Codes"
msgstr "Child Codes"
msgstr "Underkoder"
#. module: account
#: view:account.tax.template:0
@ -7380,7 +7380,7 @@ msgstr "Ok"
#. module: account
#: field:account.chart.template,tax_code_root_id:0
msgid "Root Tax Code"
msgstr "Root Tax Code"
msgstr "skattekodsrot"
#. module: account
#: help:account.journal,centralisation:0
@ -7701,7 +7701,7 @@ msgstr "Icke bokförda verifikat"
#: view:product.product:0
#: view:product.template:0
msgid "Sales Properties"
msgstr "Sales Properties"
msgstr "Försäljningsegenskaper"
#. module: account
#: model:ir.ui.menu,name:account.menu_manual_reconcile
@ -7802,7 +7802,7 @@ msgstr "Numreringsfältet används för stigande sortering"
#: field:account.tax.code,code:0
#: field:account.tax.code.template,code:0
msgid "Case Code"
msgstr "Ärendekod"
msgstr "Skatteklasskod"
#. module: account
#: view:validate.account.move:0
@ -8229,7 +8229,7 @@ msgstr "You must first select a partner !"
#: view:account.invoice:0
#: field:account.invoice,comment:0
msgid "Additional Information"
msgstr "Additional Information"
msgstr "Ytterligare information"
#. module: account
#: help:account.invoice,state:0
@ -8681,7 +8681,7 @@ msgstr "Kontakter"
#: view:account.tax.code.template:0
#: field:account.tax.code.template,parent_id:0
msgid "Parent Code"
msgstr "Parent Code"
msgstr "Överliggande kod"
#. module: account
#: model:ir.model,name:account.model_account_payment_term_line
@ -9033,7 +9033,7 @@ msgstr "Öppna transaktionsjournal"
#. module: account
#: model:process.transition,note:account.process_transition_customerinvoice0
msgid "Draft invoices are checked, validated and printed."
msgstr "Priliminära fakturor är kontrollerade, validerade och utskrivna."
msgstr "Preliminära fakturor är kontrollerade, validerade och utskrivna."
#. module: account
#: help:account.chart.template,property_reserve_and_surplus_account:0
@ -9317,7 +9317,7 @@ msgstr "Obetald"
#. module: account
#: model:ir.model,name:account.model_account_tax_code_template
msgid "Tax Code Template"
msgstr "Tax Code Template"
msgstr "Skattekodsmall"
#. module: account
#: report:account.overdue:0
@ -9446,7 +9446,7 @@ msgstr ""
#: code:addons/account/wizard/account_automatic_reconcile.py:152
#, python-format
msgid "You must select accounts to reconcile"
msgstr "You must select accounts to reconcile"
msgstr "Du måste välja konton att stämma av"
#. module: account
#: model:process.transition,note:account.process_transition_entriesreconcile0
@ -9558,8 +9558,8 @@ msgid ""
"The journal must have centralised counterpart without the Skipping draft "
"state option checked!"
msgstr ""
"The journal must have centralised counterpart without the Skipping draft "
"state option checked!"
"Journalen ska ha centraliserat motkonto som inte har alternativet att hoppar "
"över utkastläget!"
#. module: account
#: view:account.invoice.report:0
@ -10458,7 +10458,7 @@ msgstr ""
#: code:addons/account/account_move_line.py:832
#, python-format
msgid "Entry is already reconciled"
msgstr "Entry is already reconciled"
msgstr "Verifikat är redan avstämd"
#. module: account
#: model:ir.model,name:account.model_report_account_receivable
@ -10509,7 +10509,7 @@ msgstr "Account Data"
#. module: account
#: view:account.tax.code.template:0
msgid "Account Tax Code Template"
msgstr "Account Tax Code Template"
msgstr "Kontoskattekodsmall"
#. module: account
#: model:process.node,name:account.process_node_manually0
@ -10592,11 +10592,11 @@ msgid ""
msgstr ""
"Skapa och hantera ditt företags journaler från denna meny. En journal som "
"används för att registrera transaktioner för alla redovisningsdata knutet "
"till den dagliga verksamheten i ditt företag som använder dubbel bokföring "
"system. Beroende på arten av sin verksamhet och antalet dagliga "
"transaktioner kan ett företag ha flera typer av specialiserade journaler som "
"till exempel journalen för kontantförsäljning, inköpsjournalen och "
"försäljningsjournalen ..."
"till den dagliga verksamheten i ditt företag som använder dubbel bokföring. "
"Beroende på arten av sin verksamhet och antalet dagliga transaktioner kan "
"ett företag ha flera typer av specialiserade journaler som till exempel "
"journalen för kontantförsäljning, inköpsjournalen och försäljningsjournalen "
"..."
#. module: account
#: view:account.payment.term:0
@ -12903,9 +12903,6 @@ msgstr ""
#~ msgid "Receivable Accounts"
#~ msgstr "Kundfordringskonton"
#~ msgid "Tax codes"
#~ msgstr "Skattedeklarationsrubriker"
#~ msgid "Install your Chart of Accounts"
#~ msgstr "Installera din kontoplan"
@ -12929,3 +12926,6 @@ msgstr ""
#~ msgid "Reconciliation transactions"
#~ msgstr "Avstämningstransaktioner"
#~ msgid "Tax codes"
#~ msgstr "Skattekoder"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:41+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:41+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:41+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:42+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

File diff suppressed because it is too large Load Diff

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:42+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:42+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:42+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:42+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-06-20 16:17+0000\n"
"Last-Translator: Jeff Wang <wjfonhand@hotmail.com>\n"
"PO-Revision-Date: 2012-07-11 03:05+0000\n"
"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:44+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:10+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0
@ -4963,7 +4963,7 @@ msgstr "资产负债表"
#: view:account.general.journal:0
#: model:ir.ui.menu,name:account.menu_account_general_journal
msgid "General Journals"
msgstr "一般账簿"
msgstr "总账账簿"
#. module: account
#: field:account.journal,allow_date:0
@ -5702,7 +5702,7 @@ msgstr "发票税科目"
#: model:ir.actions.act_window,name:account.action_account_general_journal
#: model:ir.model,name:account.model_account_general_journal
msgid "Account General Journal"
msgstr "一般账簿"
msgstr "科目总账账簿"
#. module: account
#: field:account.payment.term.line,days:0
@ -10184,7 +10184,7 @@ msgstr "周期次数"
#: report:account.general.journal:0
#: model:ir.actions.report.xml,name:account.account_general_journal
msgid "General Journal"
msgstr "一般账簿"
msgstr "总账账簿"
#. module: account
#: view:account.invoice:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:42+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:44+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-08-07 05:09+0000\n"
"X-Generator: Launchpad (build 15745)\n"
#. module: account
#: view:account.invoice.report:0

View File

@ -91,7 +91,7 @@ class account_installer(osv.osv_memory):
def check_unconfigured_cmp(self, cr, uid, context=None):
""" check if there are still unconfigured companies """
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):
if context is None:context = {}
@ -119,6 +119,15 @@ class account_installer(osv.osv_memory):
self.execute_simple(cr, uid, ids, context)
super(account_installer, self).execute(cr, uid, ids, context=context)
def action_next(self, cr, uid, ids, context=None):
next = self.execute(cr, uid, ids, context=context)
for installer in self.browse(cr, uid, ids, context=context):
if installer.charts == 'l10n_be':
return {'type': 'ir.actions.act_window_close'}
else :
if next : return next
return self.next(cr, uid, ids, context=context)
def execute_simple(self, cr, uid, ids, context=None):
if context is None:
context = {}

View File

@ -4,7 +4,6 @@
<record id="sequence_inherit_form" model="ir.ui.view">
<field name="name">ir.sequence.form</field>
<field name="model">ir.sequence</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.sequence_view"/>
<field name="arch" type="xml">
<page position="after">

View File

@ -5,7 +5,6 @@
<record id="view_account_position_form" model="ir.ui.view">
<field name="name">account.fiscal.position.form</field>
<field name="model">account.fiscal.position</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Fiscal Position">
<group col="4">
@ -42,7 +41,6 @@
<record id="view_account_position_tree" model="ir.ui.view">
<field name="name">account.fiscal.position.tree</field>
<field name="model">account.fiscal.position</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Fiscal Position">
<field name="name"/>
@ -70,62 +68,62 @@
<record id="view_partner_property_form" model="ir.ui.view">
<field name="name">res.partner.property.form.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="priority">2</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<page string="History" position="before" version="7.0">
<page string="Accounting" col="4">
<group col="4">
<group string="Customer Accounting Properties" col="4">
<field name="property_account_receivable" groups="account.group_account_invoice" />
<group>
<group>
<field name="property_account_position" widget="selection"/>
</group>
<group>
<field name="last_reconciliation_date"/>
</group>
<group>
<field name="property_account_receivable" groups="account.group_account_invoice" />
<field name="property_payment_term" widget="selection"/>
</group>
<group string="Supplier Accounting Properties" col="4">
<field name="property_account_payable" groups="account.group_account_invoice"/>
</group>
<group string="Customer Credit" col="4">
<field name="credit"/>
<field name="credit_limit"/>
</group>
<group string="Supplier Debit" col="4">
<group>
<field name="property_account_payable" groups="account.group_account_invoice"/>
<field name="debit"/>
</group>
<field name="bank_ids">
<form string="Bank account" version="7.0">
<field name="state"/>
<field name="acc_number"/>
<group>
<group name="owner" string="Bank Account Owner">
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="owner_name"/>
<label for="street" string="Address"/>
<div>
<field name="street" placeholder="Street..."/>
<div>
<field name="zip" class="oe_inline" placeholder="ZIP"/>
<field name="city" class="oe_inline" placeholder="City"/>
</div>
<field name="state_id" placeholder="State"/>
<field name="country_id" placeholder="Country"/>
</div>
</group>
<group name="bank" string="Information About the Bank">
<field name="bank" on_change="onchange_bank_id(bank)"/>
<field name="bank_name"/>
<field name="bank_bic" placeholder="[Identifier code]"/>
</group>
</group>
</form>
<tree string="Bank Details">
<field name="sequence" invisible="1"/>
<field name="acc_number"/>
<field name="bank_name"/>
<field name="owner_name"/>
</tree>
</field>
</group>
<field name="bank_ids">
<form string="Bank account" version="7.0">
<field name="state"/>
<field name="acc_number"/>
<group>
<group name="owner" string="Bank Account Owner">
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="owner_name"/>
<label for="street" string="Address"/>
<div>
<field name="street" placeholder="Street..."/>
<div>
<field name="zip" class="oe_inline" placeholder="ZIP"/>
<field name="city" class="oe_inline" placeholder="City"/>
</div>
<field name="state_id" placeholder="State" options='{"no_open": true}'/>
<field name="country_id" placeholder="Country" options='{"no_open": true}'/>
</div>
</group>
<group name="bank" string="Information About the Bank">
<field name="bank" on_change="onchange_bank_id(bank)"/>
<field name="bank_name"/>
<field name="bank_bic" placeholder="e.g. GEBABEBB"/>
</group>
</group>
</form>
<tree string="Bank Details">
<field name="sequence" invisible="1"/>
<field name="acc_number"/>
<field name="bank_name"/>
<field name="owner_name"/>
</tree>
</field>
</page>
</page>
</field>
@ -142,16 +140,5 @@
view_type="form"
view_mode="tree,form,graph,calendar"/>
<record id="view_res_partner_reconcile" model="ir.ui.view">
<field name="name">res.partner.form.reconcile</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<field name="credit_limit" position="after">
<field name="last_reconciliation_date"/>
</field>
</field>
</record>
</data>
</openerp>

View File

@ -4,7 +4,6 @@
<record id="product_normal_form_view" model="ir.ui.view">
<field name="name">product.normal.form.inherit</field>
<field name="model">product.product</field>
<field name="type">form</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<notebook position="inside">
@ -27,7 +26,6 @@
<record id="product_template_form_view" model="ir.ui.view">
<field name="name">product.template.product.form.inherit</field>
<field name="model">product.template</field>
<field name="type">form</field>
<field name="inherit_id" ref="product.product_template_form_view"/>
<field name="arch" type="xml">
<notebook position="inside">
@ -48,7 +46,6 @@
<record id="view_category_property_form" model="ir.ui.view">
<field name="name">product.category.property.form.inherit</field>
<field name="model">product.category</field>
<field name="type">form</field>
<field name="inherit_id" ref="product.product_category_form_view"/>
<field name="arch" type="xml">
<data>

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